基于ARM的智能机器人小车控制系统设计

更新时间:2023-10-25 16:14:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于ARM的智能机器人小车控制系统设计

1 引言

机器人小车是一个集环境感知、动态决策与规划、行为控制与执行等多种功能于一体的综合系统。随着传感技术、计算机科学、人工智能及其它相关学科的迅速发展,机器人小车正向着智能化的方向发展。机器人小车要具有智能其必须具有感知作业环境的能力、任务规划的能力以及决策的能力。从系统硬件层次上讲,机器人小车必须具有丰富的传感器,功能强大的控制计算机以及灵活精确的驱动系统。随着控制系统研究的深入,采用复杂的控制算法已成为必然,这使得软件的复杂度和程序代码增加。而单片机作为控制系统的微处理器,在数据处理和代码存储等方面都已经无法满足系统的需求,ARM微处理器资源丰富,具有良好的通用性,其主要优点是高性能、低价格、低功耗。ARM本身是32位微处理器,但却集成了16位的Thumb指令集,这使得ARM可以代替16位的处理器如51系列单片机使用,同时具有32位处理器的速度。基于ARM的嵌入式系统其性能优良,移植性好,已广泛应用在各个行业,因此将ARM微处理器应用于机器人小车的控制系统是一种较好的选择。 2 机器人小车控制系统结构

机器人小车底盘采用四轮结构,前轮为万向轮,起支撑作用,不起导向作用。两个后轮为驱动轮,采用差动方式转向,每一个驱动轮采用一个直流电机独立驱动,直流电机与各自的驱动轮采用速度反馈和闭环PID控制,以实现小车精确的速度和位置控制。工作时,通过控制系统调节电机的通断时间比例(即输入电压),调节相应的驱动轮转速,从而达到调速的目的。

机器人小车的系统结构如图1所示。其系统结构可划分为三层,上层为传感器层,主要包括用于避障的超声波传感器和其他的功能传感器(如编码器等);中间层是数据处理和控制的决策层,由主控制器ARM7以及在此基础上扩展的外围部件、无线收发模块、正交解码器等组成;下层为驱动层,包括直流电机组成的驱动单元和驱动轮等。

图1 机器人小车系统结构

3 系统硬件电路和控制算法 3.1 系统的硬件电路

系统主控制器采用三星公司生产的ARM7芯片S3C44B0X。S3C44B0X是高性价比、高性能的微控制器,它采用ARM7TDMI内核。ARM7TDMI是一种32位嵌入式RISC处理器,片上主要集成有 71个通用可编程I/O口,8个外部中断源,5个PWM定时器及1个内部定时器,8路10位ADC,4路组相联统一的8KB指令/数据Cache,2个带有握手协议的UART和1个SIO,PLL时钟发生器,具有日历功能的RTC(实时时钟)。硬件资源丰富,可以满足机器人小车系统的数据处理要求。无线收发模块采用nRF401,它采用FSK调制解调技术,抗干扰能力强,电路实现简单。根据机器人小车的车体结构和刚体平动原理可知,机器人小车在任意的瞬时都是绕车体瞬心转动。机器人小车系统的主要功能有前进、后退、左右转弯、自主行走、自主避障等。超声波传感器检测机器人小车与障碍物之间的距离,通过微处理器处理此距离信号,若此距离信号达到设定的范围,微处理器立即发出命令,通过双H桥驱动两个驱动轮作出相应的动作。系统的硬件框图如图2 所示。

图2系统的硬件电路 3.2控制算法研究

在自主行走的机器人小车系统中,机器人小车要实现在未知环境和不确定环境下独立行走,就必须实时的采集环境信息,以实现自主避障和导航。这些任务必须依靠能实时感知环境信息的传感器系统来完成。视觉传感器、超声波传感器、红外线传感器等都在机器人小车中取得了广泛的应用。

超声波传感器具有信息处理简单、速度快、性价比高和硬件实现方便等特点,因此被广泛的应用于移动机器人系统中。该设计采用超声波传感器来实现机器人小车的避障和导航。超声波传感器的测距原理是通过不断的检测超声波发射后遇到障碍物所反射的回波的时间。因此,在已知超声波速度的前提下,就可以计算出小车与障碍物之间的距离,即S=VT/2。其中S是机器人与障碍物之间

的距离,V是超声波在介质中的传播速度,T是从超声波发射到反射回来的时间间隔。

超声波传感器发出的超声波是具有一定方向性的波束,当超声波传感器与障碍物形成一定的夹角时,会发生镜面反射,从而产生幻影,导致机器人小车得到错误的信息,从而发生碰撞。为了能够测量不同方向的障碍物和避免产生幻影,该系统中使用了四个超声波传感器,分别安放在两个前轮和车体的两侧,这样便能够采集到机器人小车前方、车体左侧、车体右侧的环境距离信息。为了实现机器人小车能够安全可靠的无碰撞运行,设计了基于模糊控制算法的控制器。模糊控制器的输入是超声波传感器的距离信号,输出是机器人小车的动作,规定机器人小车只有前进和旋转两种运动方式,该控制器共5个输入和2个输出。5个输入分别是机器人小车与障碍物之间的距离Li (i=1,2,3,4,分别代表障碍物与左前轮,右前轮,左侧,右侧之间的距离)和机器人小车的速度V;两个输出为机器人小车的转向角θ和加速度α。

设Li(i=1,2,3,4,L1,L2,L3,L4分别代表障碍物与左前轮,右前轮,车体左侧,车体右侧之间的距离)的变化范围为[0.3m,3m]。模糊距离变化量的语言值为:很近(VN),近(N),中(M),远(F),很远(VF);根据所选电机的参数及速度的变化范围[0.02m/s,0.2m/s],模糊速度V的语言值FV为:很慢(VS),慢(S),中(M),快(F),很快(VF);转向角θ的变化范围为[-90°,90°],模糊转向角θ的语言值Fθ为:负大(NB),负中(NM),负小(NS),零(Z),正小(PS),

22

正中(PM),正大(PB);加速度α的变化范围为[-1m/s,1m/s],模糊化的加速度α语言值Fα为:加速(A),不变(Z),减速(D)。 利用典型的if-then规则进行模糊推理,其形式是:

if(FL1 is FL1a and FL2 is FL2b and FL3 is FL3c and FL4 is FL4d andFV is FVe)

Then(Fθ is Fθj and Fα is Fαk)

其中:a=b=c=d=e=1,2,3,4,5;j=1,2,3,4,5,6,7;k=1,2,3

根据上述推理可以归纳出3125条模糊控制规则组成的模糊规则库。模糊量不能直接控制被控对象,还需要进行非模糊化,转换成精确量才能执行,此过程称为非模糊化。非模糊化的方法有多种,常用的有最大隶属度法、加权平均法、取中位数法、重心法等。为了兼顾系统的稳定性和可靠性,采用重心法进行非模糊化,得到用于控制机器人小车的精确指令。通过把加速度信号转变成电压信号加在电机上,利用调节电机的通断时间比例,进行调速。根据转向角所得的控制信息来求左右两个电机所需要的电压,从而利用左、右两驱动轮的速度差实现转向。

4系统软件的设计及μC /OS-II的移植

系统软件的设计可以分为三个层次:硬件层、任务层和操作系统层。硬件层包括存储器分配、启动代码编写等软件设计;任务层主要是一些设备驱动程序和应用程序的编写;操作系统层则负责任务的调度,是系统启动代码编写的管理核心。

μC/OS-II是一个可移植、固化、裁剪的占先式实时多任务内核,它采用标准的ANSIC语言编写,并包含一段汇编语言代码,使之可供不同架构的微处理器使用。μC /OS-II的软件体系结构,如图3所示。μC /OS-II是针对嵌入式系统编写的,移植起来十分方便,只需改动部分与硬件相关的代码即可,这三个文件是:OS _CPU. H、OS_CPU_C. C和OS_CPU_A.ASM。下面对其进行分别说明: (1)OS_CPU.H包括了用#define 定义与处理器相关的一个常量的值,3个宏和10个类型定义,主要是编译器相关的数据类型的定义和堆栈类型的定义等,为实移植应重新对此文件进行配置。

(2)用C语言在OS_CPU_C.C文件中编写六个简单的函数:OSTaskStkInit()任务堆栈初始化函数,这个是唯一必要的函数,在本方案中只是需要修改

OSTaskStkInit()函数。它是由OSTaskCreate()或OSTaskCreateExt()调用,用来初始化任务的堆栈。其他的五个函数必须声明但没有必要包含代码,供执行某些操作时调用:OSTaskCreateHook(),OSTaskDelHook(),OSTaskSwHook(),OSTaskStartHook(),OSTimeTickHook()。

(3)在OS_CPU_A.ASM文件中编写四个汇编语言函数:运行优先级最高的就绪任务OSStartHighRdy(),任务级的任务切换函数OSCtxSw(),中断级的任务切换函数OSIntCtxSw(),中断服务函数 OSTickISR()。这部分是最关键的,直接涉及RTOS的任务调度过程,主要修改OSStartHighRdy()、OSCtxSw()、OSIntCtxSw()。

系统移植结束以后,编写相应的应用程序代码,并对系统进行测试。开始的时候可以运行一些简单的任务和时钟节拍中断服务例程。一旦多任务调度成功地运行了,再添加应用程序的任务就是比较简单了。

图3 μC /OS-II的软件体系结构

5结束语

本设计创新点在于采用多传感器系统和模糊避障算法,很好的解决了超声波传感器的幻影问题,增强了系统的可靠性。同时将实时性较高的μC /OS-II操作系统移植到ARM内核中,极大的提高了系统的实时性。程序经仿真调试后编译烧入S3C44B0X处理器中,运行测试结果证明,工作安全可靠、数据收发正确。系统采用了嵌入式的研究方法来构建系统的软硬件平台,实验数据来源于实验和经验的总结。本系统可以作为移动机器人的载体,在技术成熟以后可以应用于门禁系统、小区巡逻、实地勘测、智能玩具等领域,市场前景广阔,具有很大经济效益。 参考文献:

[1]刘喜昂,周志宇.移动机器人的超声模糊避障算法.微计算机信息[J].2004,1:31-32.

[2]李勇,郑萍,熊利.嵌入式μC /OS-II在LPC2104上的移植及通信设计. 微计算机信息[J].2006,2-2:69-71.

[3]田泽. 嵌入式系统开发与应用教程[M].北京航空航天大学出版社,2005,3. [4]陈赜,刘振兴,李宗富.ARM嵌入式技术实践教程[M].北京航空航天大学出版社,2005,2.

本文来源:https://www.bwwdw.com/article/9l02.html

Top