基于DSP的移动机器人的设计与实现
摘要:智能交通系统是21世纪城市交通的发展方向,移动机器人作为智能车辆控制系统实验平台的一个主要部分,对智能交通系统的关键技术的研究具有十分重要的意义。介绍了面向智能交通系统的SJTNC-1移动机器人的组成和结构,并详细叙述了基于数字信号处理器TMS320LF2407A的控制系统的设计和实现。
关键词:智能交通系统 移动机器人 数字信号处理器
智能交通系统(ITS)的概念是美国智能交通学会于1990年提出的,它将先进的信息技术、通信技术、自动控制技术、电子技术及计算机处理技术综合运用于整个运输管理系统中,通过对交通信息的采集、传输和处理,对交通运输进行协调和管理,建立起实时、准确、高效的综合交通运输管理体系,从而提高了交通效率和安全了,实现性交通运输服务和管理的智能化。
javascript:window.open(this.src);" style="cursor:pointer;"/>
智能车辆的导航与定位、自动驾驶与控制和车辆的预警防碰等智能交通系统关键技术的研究,近年来受到国内外越来越广泛的关注,也取得了丰硕的成果。但真正的实验研究还是很少,基本上只进行了仿真试验。鉴于理论上的模拟和实际应用情况可能相差甚远,选择了具有智能性、易扩展性和移动性等优点的车型移动机器人作为ITS关键技术的研究平台中的主要部分——车辆模拟器。
本文所阐述的移动机器人SJTNC-1,就是面向ITS提出的。考虑到关键技术研究中需进行大量的计算,如模糊控制、卡尔曼滤波和路径导引等,并且系统对数据的实时性要求很高,所以采用数字信号处理器(DSP)作为移动机器人主控CPU。
1 TMS320LF2407A简介
TMS320LF2407A(以下简称F2407)是TI公司在TMS320系列DSP的基础上,专为数字电机控制而设计的。除了具有一般DSP的改进的哈佛结构、多总线结构和流水线结构等优点外,它还采用高性能静态CMOS技术,电压从5V降为3.3V,减少了功耗。并且指令执行速度提高到40MIPS,几乎所有指令都可以在25ns的单周期内完成。如此高的运算速度使其可以通过采用高级控制算法如模糊控制、卡尔曼滤波以及状态控制等来提高系统的性能。而且,它具有电机控制应用所必需的外设,如:32K片内FLASH、2K单访问RAM、串行外设接口(SPl)、串行通信接口(SCl)、两个事件管理模块、16通道双10位A/D转换器和CAN控制器模块。
javascript:window.open(this.src);" style="cursor:pointer;"/>
2 移动机器人的运动机构
考虑到该移动机器人是面向ITS的,所以采用的是车型结构(四轮结构)。前两轮通过减速比为8:1的齿轮减速机构与转向电机进行连接,实现移动机器人的转向功能;后两轮通过减速比为6:1的齿轮减速机构与驱动电机进行连接,实现移动机器人的驱动。电机的选型可根据实际情况选择小型步进电机或小型直流电机。这里选用的是瑞土Minimotor公司生产的直流电机,这种电机具有体积小、转矩大等特点。
3 移动机器人控制系统
控制系统以控制器F2407为核心,由无线通信、电机驱动、速度传感器、数字罗盘、差分GPS(DGPS)接收机和4转1串口通信模块等组成,如图1所示。无线通信模块根据自行约定的通信协议接收上位机的规划好的路径信息,整个控制系统通过控制驱动电机和转向电机使移动机器人跟踪该路径行驶。电机采用PWM调速方式,其中驱动电机采用双闭环(速度和电流)PID控制策略,而转向电机则通过把数字罗盘的航向信息作为转向的反馈量进行PID控制。整个控制系统把DGPS接收机的位置信息作为系统的位置反馈信息,用以完成整个系统的位置闭环控制。
图3
3.1 无线通信模块
MC35是德国西门子公司生产的可二次开发的支持GPRS的双频GSM模块,可以通过标准串口与PC机相连。本系统用MC35作为移动机器人与上位机的通信模块。它具有GPRS技术带来的一切优点,如一直在线和提供高速价廉的数据传送服务等。该产品的特性如下:
·支持双频:EGSM900/GSM1800
·支持GPRS Class8协议
·支持数据、语音、短消息和传真服务
·采用电路交换方式,最大传送速率为14.4kbps
·支持的电压范围:8V~30V
·采用标准工业接口
·体积:65mmx74mmx33mm
·重量:130g
3.2 驱动模块
驱动电机和转向电机的驱动原理相同,都采用脉宽调制(PWM)方式进行调速,PWM信号由F2407产生。驱动电路采用H全桥方式,由4个达林顿管(2个TIPl32和2个TIPl37)、4个IN4001二极管及与非门组成。电路原理图如图2所示。 当PWM2、PWM4为低电平而PWMl、PWM3为高电平时,T1、T4饱和导通,T2、T3截止,电流从T1→电机→T4,电机正转;反之,当PWMl、PWM3为低电平而PWM2、PWM4为高电平时,T2、T3饱和导通,T1、T4截止,电流从T2→电机→T3,电机反转。
图4
为防止T1、T3或T2、T4同时导通,形成短路而击穿器件,要用一对无重叠的PWM输出去正确地开启和关断这两对管子。在一个管子关断和另一个管子开启之间加入死区时间,这样就使得一个管子开启前,另一个管子已完全关断。F2407具有死区控制单元是其一大特色,从而可用软件确保功率电路上下桥臂开关元件的开通区间没有重叠,简化了硬件电路设计,提高了可靠性。
3.3 4转1串口通信模块
由于DGPS接收机、磁罗盘、里程计和MC35通信模块都采用RS-232异步串行通信,而F2407只有一个串行口,所以必须将4个串口数据通过转换处理来完成与F2407的串口通信。为此研制了基于分时复用方法的4转1串口通信模块。当F2407需要某个传感器(或无线通信模块)的数据时,就通过电路选通该传感器占用F2407串口进行通信;当需要另外传感器或无线通信模块数据时,则关断上次传感器的选通,同时选通该次传感器或无线通信模块。4转1串口通信模块由3-8译码器74LSl38、三态输出的四总线缓冲门74LSl25和电平转换器MAX232等组成,其电路原理图如图3所示。
3.4 定位传感器
3.4.1 DGPS接收机
CPS(全球定位系统)是基于卫星的无线电导航系统,它提供一种廉价实用的可在全球范围内确定位置、速度和时间的工具。CPS由24颗卫星(21颗工作星、3颗备份星)组成星座,星座分布在与地球赤道面倾角为55°的6个轨道面上,其运行周期为11小时58分,轨道半径为20200km,各轨道面夹角,为60°。每颗卫星向地球发射L频段的特高连续波,调制两种伪随机码(军用高精度保密P码和民用C/A码)。这样的分布特点保证了用户在地球上任何地点、任何时间至少可以连续地收到4颗以上卫星的导航信号,从而联立解算出接收机的三维坐标以及接收机和GPS间的时间偏移。三维坐标采用ECEF笛卡儿坐标系或大地坐标系如WGS84。javascript:window.open(this.src);" style="cursor:pointer;"/>
虽然美国政府于2001年5月取消了民用C/A码的可选择性保护,但民用导航型GPS接收机的单点实时定位精度只能达到25m左右,不能满足系统的定位导航要求。而采用实时差分GPS(DGPS),其定位精度可以达到2~5m,该精度已能满足系统定位和导航的要求。
为此研发了单基站DGPS(SRDGPS)系统,其结构框图如图4所示。基准站由ALLSTAR BASE GPS接收机、天线和MDS无线电发射台、天线组成,流动站由SUPERSTAR GPS接收机、天线和MDX无线电接收台、天线组成。其中基准站安装在上海交大徐家汇校区教学一楼楼顶,该基准站能覆盖方圆30公里的范围,流动站安装在车载单元上。
3.4.2 数字罗盘和车速传感器
采用HoneyWell公司的HMR 3300数字罗盘作为移动机器人的方向检测传感器。其主要技术指标为:(1)1度航向精度,0.1度分辨率;(2)0.5度重复性;(3)±60度倾斜俯仰范围;(4)15Hz响应时间;(5)-40+85度工作温度;(6)6~15V直流电压。
同时采用用于大众汽车公司桑塔纳2000型轿车的霍尔车速传感器作为移动机器人的车速传感器。其工作原理是以霍尔传感器为变换元件,将机械旋转量转化为电脉冲信号输出。主要技术指标为:(1)输出波形为矩形脉冲,占空比为50%;(2)每旋转一周产生6个脉冲;(3)额定电压为12V。
4 电源模块
电源模块需分别给各传感器、DSP芯片、其它芯片和电机供电。其中,磁罗盘、码盘和DGPS接收机使用12V直流电压,DSP芯片使用3.3V直流电压,其它芯片使用5V直流电压,还有电机电源使用12V直流电压。所以,采用1节12V的直流蓄电池(4AH),直流5V通过ST半导体公司的L7805和扩流用的功率管实现,DSP芯片用3.3V电源采用ON半导体公司的1SMB5913BT3实现。F2407正常工作时,所有电源管脚都为3.3V;写入FLASH存储器时,VCCP引脚为5V供电;复位时,复位电路会产生一个10μs宽度的持续低电平使芯片复位。
5 控制器程序结构
DSP程序由五大功能模块组成,分别为系统初始化模块、串口通信模块、路径引导模块、驱动电机控制模块和转向电机控制模块。TI公司提供了用于C语言开发的CC和CCS平台。该平台包括了ANSIC优化编译器,从而可以在源程序级进行开发调试。这种方式大大提高了软件的开发速度和可读性,方便了软件的修改和移植。但在某些情况下,代码的效率还是无法与手工编写的汇编代码的效率相比。此外,用C语言实现芯片的某些硬件控制也不如汇编程序方便,有些甚至无法用语言实现。为了充分利用芯片的资源,更好地发挥C语言和汇编语言进行软件开发的各自优点,采用混合编程方法将两者有机结合起来,兼顾两者的优点,避免其弊端。系统的框架如图5所示。下面对关键的几大模块进行简要的阐述。
5.1 串口通信模块
该模块程序采用串口中断方式实现,主程序主要由系统初始化、串口初始化、串口中断设置和等待中断组成。而中断子程序分为发送子程序和接收子程序。本文给出发送子程序流程图。主程序及发送子程序流程图如图6所示。
5.2 路径引导模块
该模块在移动机器人行驶中为其提供实时的速度和转向指令,从而引导它沿着上位机给定的路径行驶。主要包括行驶指令的产生和规划路径的跟踪两个环节。
根据预瞄跟随理论及驾驶员的开车行为特性,智能行驶和驾驶员操纵行为是内在一致的。通过研究有驾驶员操纵行为,发现主要根据两个因素决定车辆的前进速度,这两个因素分别是道路的弯曲程度和机器人相对参考路径上的方向偏差。
javascript:window.open(this.src);" style="cursor:pointer;"/>