移动机器人是一种能够感知外部环境,在有障碍物的环境中能够实现动态决策与规划,从而完成避障等多种功能的综合系统。机器人系统通常分为机构本体和控制系统两部分,控制系统的作用是根据用户的指令对机构本体进行操作和控制。随着机器人的智能化水平越来越高,控制器要有方便、灵活的操作方式,以及多种形式的控制方式和高度可靠性,还要有很高的实时性。
为了保证系统的实时性,简化控制系统软件的设计,有必要在控制系统引入嵌入式操作系统。本设计将嵌入式技术与机器人技术相结合,利用ARM作为硬件平台并移人μC/OS-Ⅱ嵌入式实时操作系统,开发了具有多线程、多任务管理的控制终端。嵌入式主控制器ARM是整个机器人控制系统的核心,主要完成环境感知、组织管理、总体任务分配。嵌入式主控器作为机器人的运算层,一方面作为控制上位机,可以通过串口与下位机伺服控制系统通信,从而完成机器人的运动控制;另一方面还提供了与遥控操作端或用户端的无线通信接口。本文设计的机器人控制系统可应用于日常生活、足球机器人以及其他科学探索领域。
1 系统组织架构与硬件设计
设计时考虑到机器人在体积、质量等方面的限制,以及要满足功耗低,实时性高,性能优越的特点,选择合适的软硬件结构及有效的控制模式是整个设计过程的关键。
1.1 系统总体架构
整个机器人控制系统由嵌入式主控制器、伺服控制模块、无线通信模块和传感检测模块组成。控制系统的总体架构如图1所示。
按功能划分,该控制系统分为上下两层。由实现任务管理、运动轨迹生成、定位的上层控制系统,以及完成机器人伺服控制、传感器信息采集的下层控制系统组成。上层控制系统是整个控制系统的核心控制层,它有两种控制实现方式:一种是独立运行模式,另一种是遥控或远程实时控制模式。独立运行模式有自己的运行参数,即上层控制系统根据激光雷达的信息传递到环境建模模块,产生环境地图并产生避障算法所需信息,控制器根据避障模块信息产生机器人本体速度和方向信息,传递到运动控制器。在运动控制底层程序定义了一系列程序,运动控制器通过解释上层控制系统传递过来的信息并执行相应程序,从而达到机器人控制的目的,实现实时避障。遥控器或远程实时控制模式是通过无线通信单元接收用户端或遥控端发出的命令,实现对机器人的实时控制。系统的控制实现方式如图2所示。
1.2 主控制模块
主控制模块采用SAMSUNG公司16/32位RISC处理器S3C4480作为控制器。S3C4480功耗低,有多种电源供电方式,有多种外部存储器访问,新的总线体系结构(SAMBA),速度可达132 MHz。主控模块使用Hynix公司的HY57V281620(SDRAM)以及SAM-SUNG公司的Nand-Flash芯片K9F2808U作为存储器。为了增大数据吞吐能力,选取了2片SDRAM构成32位地址宽度。S3C4480使用ARM7TDMI核,它满足μC/OS-Ⅱ正常运行的所有条件,设计时S3C4480移入μC/OS-Ⅱ操作系统,将加快处理器的应用和开发,而且还能提高系统的实时性。通过将系统的功能划分成按不同优先级调度的任务,实现对机器人的多任务控制,主控制模块中的路径规划任务采用栅格法。
1.3 激光雷达测距模块
激光雷达是一种工作在从红外线到紫外光谱段的雷达系统,相对于超声波、红外、摄像头等其他传感测距方法,激光雷达具有探测距离远,测量精度高,价格相对适中等优点。在本设计中使用德国施克公司的LMS291激光测量系统,基于飞行时间测量原理,180°扫描角度,可以设置三个保护区域,具有滤波功能,以消除障碍检测过程中激光雷达的测距噪声干扰。
LMS291激光雷达通过旋转镜面向各个方向发射脉冲激光,并由LMS291接收器接收反射光线。该激光雷达响应时间可固定为13 ms,发射角为几mrad的激光脉冲,通过测量发射脉冲与反射脉冲之间的时间延迟,并乘以光速,就可以测得障碍物的距离。时间测量通过图3所示的脉冲填充法求出。
如果计数值为N,则t=N△T=N/f,从而可得L=ct/2=cN/(2f),其中,f为时钟脉冲。
LMS291激光测量系统提供RS 232数据接口,本设计主控制器采用的是S3C44B0,由于它的LVTTL电路所定义的高、低电平信号为正逻辑,而RS 232标准采用负逻辑方式,两者间通信要进行电平转换,在设计时系统采用RS 232电平转换芯片MAX232ACPE实现串口的通信。
1.4 无线通信模块
无线通信模块利用从前端RF接收到的遥控端或用户端的信息通过串口发送到机器人,也可将机器人的信息通过无线通信模块发送出去。前端RF使用Chip-con公司生产的CC2420芯片,无线通信模块采用的微控制器为Microchip公司的PIC18LF4620。CC2420与PIC18LF4620都使用3.3 V作为工作电压,可以降低功耗,CC2420只需通过SI,SO,SCLK,CSn与PIC18LF4620的SPI接口进行连接。本设计中使用PIC18LF4620的RC6,RC7引脚作为RS 232的数据发送端与数据接收端。CC2420是一款较为通用的符合IEEE802.15.4的2.4 GHz ZigBee收发芯片,该芯片在集成了PHY层和部分MAC层的同时,还提供了许多硬件支持。
1.5 伺服控制模块
运动控制模块通过RS 232与主控制模块连接,主控制模块通过串行总线将期望速度、方向信息传送至运动控制器,运动控制器将信息处理后作为运动控制算法的输入量,运动控制算法得到以PWM形式表示的电机控制信息。为判断电机转速及运转方向,安装在电机上的光电编码器提供相位相差90°的两个通道的光码脉冲输出,光电编码器产生的两脉冲送入DSP的正交编码脉冲单元的QEP1,QEP2引脚,通过DSP的比较单元CAP1,CAP2捕捉,然后经译码单元产生内部4倍频后的脉冲信号CLK以及转向信号,将脉冲信号送入选定的计数器进行计数,计数方向由转向信号决定,通过读取选定通用定时器的计数值、脉冲数、计数方向可得到电机的转速、行程及方向为伺服控制提供反馈输入。没计使用TI公司的TMS320F2812作为控制驱动模块的控制器,该芯片产生的PWM信号并不能够直接驱动电机的执行,设计时使用TI公司的直流电机驱动芯片SN7S4410将PWM转换成可驱动电机的驱动信号。图4为移动机器人运动控制系统的原理图。
图4中电流传感器为霍尔元件电流传感器,将采集到的电机电流信息送入A/D转换接口,从而整个运动控制系统形成双闭环控制系统。运动控制器中运动控制算法采用PID算法,设定允许的误差为e0,设定如下关系:
当| e(k)|≤e0时,控制器不起作用;
当| e(k)|>e0时,可以得到控制器的输出为:
PWM信号的宽度由时间管理器中定时器的周期寄存器和与该定时器相关的比较寄存器决定,经过PID处理后的控制器输出u(k)为脉冲的占空比,然后写入选定定时器的比较寄存器,比较寄存器与周期寄存器的比值即为PWM波形的占空比,从而实现电机转速的控制。
2 软件设计
该机器人控制系统的软件设计包括主控制模块、DSP运动控制器算法程序、PIC18LF4620的程序设计。PIC18LF4620的程序设计在这里不做介绍。
2.1 主控制模块程序设计
主控制模块软件设计是在μC/OS-Ⅱ平台上设计各硬件的驱动程序,创建和启动各项任务,创建信号量、消息邮箱、消息队列完成各任务间的通信。
针对S3C4480的硬件资源和编译器特性,移植时要对μC/OS一Ⅱ的三个源文件做修改:
(1)OS_CPU.H头文件与编译器相关的数据类型重新修改;
(2)OS_CPU_ A.S文件中修改处理器相关的4个汇编函数;
(3)OS_ CPU.C文件中编写初始化任务的堆栈函数。
μC/OS-Ⅱ中程序是从main()函数开始执行,程序启动后跳转至主程序运行,调用ARMInit()初始化ARM系统,包括建立相关参数和变量,配置ARM处理器中断端口、设置中断并初始化各器件,然后调用OSInit()初始化μC/OS-Ⅱ操作系统,将操作系统的初始化与硬件的初始化分开来使得思路更清晰,便于调试。由于各任务之间要通过创建信号量、消息邮箱、消息队列来完成通信,该操作通过调用OSSemCreate(),OSMboxCreate(),OSQCreate()函数来完成,然后调用OSTaskCreate(void(*task)(void*pd),void*pda-ta,OS_STK*ptos,INT8U prio)函数创建各任务完成系统控制。最后调用函数OSStlart(),μC/OS-Ⅱ开始运行,执行任务。本系统设计时主要完成的任务有无线通信任务、命令解释任务、激光雷达信息处理任务。
2.2 伺服控制模块程序设计
伺服控制模块利用高速的DSP运动控制器与反馈信号组成闭环控制系统,DSP发送PWM波与方向信号控制直流电机的转速,通过速度反馈,DSP可实时读取当前速度,利用DSP中的控制程序根据速度读数控制PWM的占空比,从而实现闭环控制。主程序流程图如图5所示。
在DSP的事件管理器中,将其中一个定时器设定一个中断周期,每当定时器产生中断时,调用中断处理子程序获得电机的反馈速度。
3 结 语
根据新型激光雷达跟踪测量理论,开发研制了基于μC/OS-Ⅱ的机器人实时控制系统。该控制系统已成功用于实验室自主研制开发的足球机器人。性能测试表明,该机器人控制系统能够快速及时跟踪定位目标,并且能够通过无线通信模块与遥控端进行通信,完成指定操作指令。该控制系统采用的控制决策算法为PID,今后将致力于研究采用更为先进的算法。