如何实现移动机器人的设计?
1 移动机器人利用导航技术,获得机器人的目前所处的位置,结合传感器技术对周围外界环境(障碍物等)作实时探测,并根据环境提供的信息规划一条可行路径完成达到目标点的任务。移动机器人技术涉及到传感器技术,导航技术,计算机技术,人工智能等多个领域,因而对移动机器人的控制部分提出很高的要求,特别是视觉传感器的出现,要求控制系统不仅存储量大,而且处理速度快等。以往基于PLC和单片机控制的移动机器人就不能很好的满足实时性快速性的特点。
随着ARM处理器的出现和发展以及嵌入式系统的发展,移动机器人的实时性快速性要求便能得到很好满足,现在该技术已经在多种领域得到有效的应用。本文是以SAMSUNG公司一款基于ARM7TDMI核的低功耗高性能的32位处理器芯片S3C44B0X为控制核心,以凌阳16位单片机SPCE061A为辅助处理器来处理传感器探测的障碍物信息,并运用嵌入式实时多任务操作系统?C/OS-II管理移动机器人的导航算法的实现和多任务的执行。实验结果表明:该系统能够实现避障和导航功能并能顺利达到目的地。
控制系统的硬件设计
移动机器人的控制系统主要完成对外界障碍物的探测与信息的传输,机器人当前位置的获取,路径规划,和运行控制等功能。对系统进行功能模块化划分,本系统可划分以下五大模块:环境探测模块;全局定位模块;程序下载模块,电机驱动模块和电源管理模块。各个模块之间的关系如图1所示。
2.1 环境探测模块
移动机器人在避障和路径规划过程中,机器人必须实时探测周围的障碍物的信息,测量障碍物的距离。目前有红外,超声波,激光和视觉(CDD)传感器,激光传感器受环境影响大,价格比较昂贵,视觉传感器(CCD)要求芯片的存储容量大且要求处理速度快等特点,不易采用。基于这一点本文在移动机器人的前方,左方,右方各安装一套红外传感器和超声波传感器以测量3个方向的障碍物的距离,多传感器的使用可以避免了单一传感器的测量存在的盲区。
红外传感器有发射器和接受器构成,此传感器的3路发射端口接凌阳单片机SPCE061A的3路I/O口,3路接受器的端口接单片机的另外3路。当单片机I/O输出为高电平时,发射器端口发射红外光,光波遇到障碍物反射被接受器,产生光强相对的电流经过A/D转换输入单片机,根据电压大小计算障碍物的距离。超声波传感器的工作原理与红外传感器基本相同,声波遇到障碍物返回被接受器接受,根据时间差计算障碍物的距离。
该探测模块可以测量0~2m距离内的障碍物,测量误差小,采用16位凌阳单片机SPCE061A对障碍信息进行快速处理,一旦探测到障碍物便通过总线接口与S3C44B0X通讯并作数据传输。
2.2 全局定位模块
机器人当前位置的确定至关重要,为机器人路径规划提供必不可少的信息,目前定位传感器有全球定位系统(GPS),旋转电位计,光电编码器,磁罗盘,电子罗盘,加速度计等。针对使用环境,本模块采用长春第一光学有限公司生产的光电编码器和电子罗盘相结合的方法来确定机器人的当前的坐标点?。光电编码器经光电转换,将轴的角度位移转换成电脉冲信号,6通过放大电路输出到S3C44B0X的计数器T1,把在特定时间采集的脉冲进行存储,脉冲信号与轮子的转过的圈数成正比,因而可以计算在设定机器人的实际路程。电子罗盘采用霍尼维尔低成本的HMR3100平面电子罗盘,内部有HMC1022二轴磁传感器,,角度测量精度可达5度,电子罗盘可以确定机器人相对北极的绝对方向,可以精确测出机器人的运动方向与理论方向之间的偏差,从而纠正机器人运动轨迹。
2.3 程序下载模块和电机驱动模块
程序下载模块主要完成启动程序和应用程序的下载,本系统提供两种下载方式,串口下载和并口下载。串口下载通过RS232串口线连接板上COM1与PC进行通讯,并口下载通过并口线与JTAG调试接口连接完成PC与S3C44B0的通讯。
电机驱动模块的精度对整个系统精度的影响很大,考虑各种因素本模块选用一种基于双通道、高压、高速栅极驱动方式的集成驱动器IR2110。IR2110驱动芯片能将输入的逻辑信号转化成同相位的低阻抗输出驱动信号,可驱动同一桥臂上的 2路输出,驱动能力强,响应速度快,工作电压高,成本低等特点提高了系统的精度和可靠性。电机采用普通大功率直流减速电机,使用大功率H桥驱动电路,电路原理如图2所示。
电路中IR2110作为前置驱动,四个IRFP250组成H桥驱动电路。当IN1端加上PWM信号,IN2端加上低电平时Q2,Q5导通,Q3,Q4截止,驱动电机正转;当IN2端加上PWM信号,IN1端加上低电平时Q3,Q4导通,Q2,Q5截止,驱动电机反转。调节PWM脉冲宽度可以调节电机转速。为了使电机运行平稳,PWM信号的频率不低于1KHZ。
系统软件实现
软件部分的实现是基于移植到S3C44B0X的实时多任务操作系统?C/OS-II,它是基于优先级,抢占式实时内核,具有源代码公开,可移植性好,可剪裁,多任务等特点,可以管理64个任务,应用程序可达56个任务。它主要完成任务管理,时间管理,信号量管理,内存管理等功能。
该机器人主要完成避障检测与信息传输,位置获取,路径规划,运行控制功能,因此,该系统共创建了4个任务,任务1:避障检测与信息传输,任务2:位置获取,任务3:路径规划,任务4:电机驱动控制。任务的优先级依次降低,任务之间通过油箱传递信息。移动机器人在完成初始化系统后,驱动电机执行任务4按照预定的路径向目标点前进,同时单片机SPCE061A控制的传感器工作,当传感器探测周围有障碍物时,任务1进入就绪态,由于任务1的优先级高,就抢占CPU的使用权,完成障碍信息的处理与传输。通过信号量的传递,任务2进入就绪态,完成目前位置的计算,为路径规划提供依据。任务3根据任务1提供的障碍信息和任务2提供的信息位置信息启动导航算法进行路径规划,新的路径规划完成之后,任务4进入运行状态,从而完成最终规定任务。
实验结果
实验是在室内进行的,场地面积12m×12m,绿色毛毯状物质贴于场地表层以防止打滑。路径规划采用基于栅格的导航算法?,机器人形状大小0.8m×0.8m×0.6m, 栅格尺度为机器人尺度为0.8m×0.8m,栅格的行数与列数均为15,栅格总数为15×15=225格。以积木和其它机器人为静止障碍物。移动机器人的运行轨迹如图3所示。图中浅灰色方框为障碍物,深灰色方框路线为机器人运动轨迹,起始点与目标点如下图4所标。实验结果表明,该机器人能够避开障碍物到达目标点,实验多次,位置误差在0~0.4m,具有可行性。
本文作者的创新点是采用高性能ARM芯片S3C44B0X为主控制和单片机SPCE061A为辅助控制器相结合的方法对机器人进行控制,并引入嵌入式实时操作系统?C/OS-II完成机器人导航算法的实现以及对机器人多个任务进行合理规划和调度,以及保证机器人对未知环境的快速响应和保证整个系统的精度,实验证明了这种方法具有可行性。
该控制系统有丰富的硬件资源,传感器所获取的信息的处理也采用高性能单片机SPCE061A,为以后视觉传感器(CCD)的使用提供了硬件基础,该机器人占用主控制器的硬件也比较少,为以后系统的升级提供方便。也可以采用更先进的导航算法使 更加智能化。