张化龙 李艳杰 卜春光 高英丽
(沈阳理工大学机械工程学院1,辽宁 沈阳 110159;中国科学院沈阳自动化研究所2,辽宁 沈阳 110016 )
履带复合式移动机器人控制系统的设计与实现
张化龙1李艳杰1卜春光2高英丽2
(沈阳理工大学机械工程学院1,辽宁 沈阳110159;中国科学院沈阳自动化研究所2,辽宁 沈阳110016 )
摘要:针对六履带四摆臂履带式移动机器人的机构特点,采用EtherCAT总线技术和QNX多任务实时操作系统设计机器人控制系统。着重介绍机器人控制系统的硬件集成与软件设计。考虑到控制程序的可扩展性与可移植性需求,采用共享内存通信方式设计模块化控制软件。试验表明,该机器人可在远程遥控状态下实现行走及越障功能,验证了控制系统的可靠性与稳定性,达到设计要求。
关键词:移动机器人控制系统EtherCAT总线实时控制遥控模块化设计防灾减灾
Disasterpreventionandmitigation
0引言
随着科技、经济水平的提高,城市中高层建筑物的数量不断增加。当火灾、危化品泄漏、恐怖袭击等突发事件发生之后,大型救援设备无法迅速进入灾害现场,这时就需要体积小、灵活且能适应非结构环境的移动机器人参与救援。移动机器人可协助救援人员实施救援,有效减少救援人员的伤亡,提高救援效率。本课题旨在设计一种质量小且能实时控制的移动机器人,用于执行公共安全事件的勘探、救援等任务。
本文在研究六履带四摆臂履带式移动机器人结构的基础上,设计机器人控制系统。根据工业现场总线EtheCAT的优越运行原理、多种拓扑结构、通信快速性等特点,在实时操作系统QNX上搭建机器人控制系统,实现对六履带四摆臂履带式移动机器人的远程控制。
1机器人本体结构
履带式移动机器人性能优越[1],能适应复杂的非结构化地形环境[2],可广泛用于灾难救援、反恐防暴、极地科考等重要领域。本文采用的六履带四摆臂履带式移动机器人机械结构长690mm、宽520mm、小臂臂长360mm,机器人质心在对称线上,自重25kg,最大载重15kg,如图1所示。
图1 机器人本体结构图
机器人共有6个自由度,即平面内的移动、转动和4个摆臂的自由转动。机器人内侧的2条主履带分别由2个直流有刷电机驱动,通过等速控制主履带电机实现机器人的前进、后退,通过差速控制实现机器人任意半径转弯;机器人2侧的4个摆臂分别由4个直流无刷电机驱动,摆臂可以绕驱动轮轴线360°旋转,通过对电机正反转动控制,实现机器人质心位置的变化,使机器人在复杂的地面环境下保持稳定。当机器人遇到一定高度的障碍物时,通过协调控制主履带与摆臂的运动,可以使机器人顺利通过障碍物。
2控制系统硬件设计
控制系统有两个上层控制站:其中一个控制站通过路由器连接机器人本体上的控制器,主要用于研制阶段机器人的调试;另一个控制站通过图传、数传设备连接,主要用于对机器人的远程控制。机器人通过携带的图传、数传设备,将图像、姿态信息传给远端的控制站。远端控制人员根据实时状态信息对机器人进行实时控制。机器人控制硬件系统如图2所示。
图2 硬件系统结构图
由质量轻、储能高、寿命长、绿色环保的锂电池为整个系统供电,其最高电压可达30V;由ATXM3宽压直插式电压转换模块为系统设备提供合适的电压。
机器人本体控制器选用研华公司生产的PCM3362板卡,该主板采用PC104总线技术,板载2GBFLASH,标准尺寸为90mm×90mm。板卡间通过堆栈的形式可靠地连续连接,抗震能力强。机器人控制器接收上层控制站发送的控制指令进行运动控制,并将机器人当前的运动状态信息发送给上层控制站。
无线模块选用RTD公司的WLAN17202模块,采用PC/104PLUS总线架构,以堆叠的方式与PCM3362连接,用于调试计算机与机器人本体控制器通信。
采用赫优讯(Hilscher)公司的CIFX104板卡搭建EtherCAT网络。其硬件连接如图3所示。
图3 EtherCAT网络拓扑结构图
本文EtherCAT网络采用总线型网络扩展。CIFX板卡的Channel0端口连接从站1的EtherCAT输入端,从站1的输出端连接从站2的EtherCAT输入端,依次类推,连接所有的从站设备;主站的Channel1和最后一个从站的输出端连接,从而搭建起整个硬件EtherCAT网络。该连接方法能够快捷地进行网络搭建,网络结构简单,易于网络扩展。特别是当其中某两个设备之间的连线出现问题时,不会影响其他设备间的通信,最大限度地保证了系统的稳定性。
电机驱动器采用ELMO公司的GOLDSOLOWHISTLE直流电机驱动器,该驱动器输入电压为12~95VDC,可控制直流无刷、直流有刷电机。通过ELMO公司提供的ESA软件,可配置电机的电流环、速度环、位置环的PID参数,控制系统无需对电机进行速度、位置、力矩等进行闭环控制,简化了上层编程控制程序。
3控制系统系统软件平台
3.1QNX实时操作系统
本文所设计机器人本体控制器采用QNXNeutrino[3]实时操作系统,其系统模块能够灵活地增减,以满足实时嵌入式系统资源有限的要求。QNX系统支持x86、PowerPC、ARM、MIPS和SH-4等平台[4]。QNX所有的驱动程序、应用程序、协议栈和文件系统都在受保护的用户空间内安全运行。几乎所有组件都能在运行失败时自动重启,不会影响其他组件或内核。
在调试地面站上安装由QNX提供的集成开发环境(integrateddevelopmentenvironment,IDE),用C语言编写控制程序,并通过路由器将控制指令发送到机器人的QNX系统中。机器人本体控制器接收控制指令并解析,将电机的速度、位置等指令通过EtherCAT网络发送到对应驱动器中,最终实现对机器人的运动控制。
mmap函数内存映射图如图4所示。
图4 mmap函数内存映射图
在QNX系统中,进程间的通信方式有文件、管道、信号、套接字、消息队列、共享内存、信号量等[5]。QNX中每个进程都有自己的虚拟地址空间,可通过mmap函数来分配和释放虚拟内存。该函数的主要功能是将文件或设备映射到调用进程的地址空间中,从而直接操作这段虚拟地址对文件进行读、写等,不必再进行read、write等系统调用。本文采用共享内存通信方式设计机器人模块化控制软件。
3.2工业现场总线EtherCAT特点
工业现场总线EtherCAT是一个以以太网为基础的开放架构的现场总线[6],最初是由德国倍福研发的[7]。不同于传统以太网,EtherCAT网络无需在每个网络节点处接收数据。当网络数据传输到从站设备时,从站控制器读取主站发来的数据;当从站需要输入数据时,可在报文通过时将数据插入报文。该过程由从站硬件实现,通信速度与协议堆栈软件的实时运行系统或处理器性能无关。网段中的最后一个EtherCAT从站将经过充分处理的报文传回主站。EtherCAT几乎支持所有的拓扑结构,最多可容纳65 535个设备,因此对网络规模几乎没有限制。
EtherCAT自问世以来,已经成为多种相关的国际标准,如IEC61158(国际电工委员会)中Type12、IEC61784的CPF12等。EtherCAT支持CANopenDSP402协议,这为实现机器人控制提供了技术支持。
通过Hilscher提供的SYCON软件搭建主站网络及配置从站数据,包括主站驱动板卡配置、从站设备识别、从站驱动配置、从站网络协议配置等。
4控制系统软件设计
本文的机器人主要用于遥控操作,采用模块化的思想[8]进行软件设计,选用共享内存的形式实现进程间通信。控制程序被划分为7个模块,工作流程如图5所示。
图5 控制流程图
①串口通信模块(Communicator)的功能包括接收、识别一包完整的控制指令,并将控制指令存储到串口接收共享内存中;将串口发送共享内存中的机器人实时状态数据发送到远程地面站。
②协议解析模块(Protocol)的功能包括将串口接收共享内存的数据解析成机器人控制指令,并将控制指令写入协议解析接收共享内存中;将机器人状态共享内存中的机器人当前状态信息数据进行编码,并写入串口发送共享内存中。
③算法模块(Controller)的功能包括将协议解析接收共享内存中的数据经算法运算成电机驱动器控制指令,运用IMU数据以及驱动器返回的数据进行闭环控制,并将控制指令写入对应驱动器发送共享内存中;将驱动器接收共享内存中的电机状态数据以及IMU共享内存中的数据转化成机器人本体状态信息,并将机器人状态信息写入机器人状态共享内存中[9]。
④驱动器模块(Drivercommunication)的功能包括将驱动器发送共享内存中的电机控制指令发送给对应电机驱动器,实现电机控;将电机实时数据(如速度、电流、位置等信息)存入驱动器接收共享内存中。
⑤姿态位置数据模块(IMU)的功能是读取机器人实时姿态信息、位置信息,并将数据保存到IMU共享内存。
⑥共享内存数据输出模块(SHMprint)的功能是在调试时,将共享内存中的数据输出到终端中,便于查看共享内存中的数据以及调试。
⑦键盘控制模块(keycontroller)用于调试地面站对整个系统进行调试。
相互独立的模块之间周期性地发送与接收共享内存中的数据,通过读写保护机制保护共享内存中的数据,以保证在同一时间内可以有多个线程读取共享内存中的数据。在写数据时,只有一个线程向共享内存中写数据,其他线程处于等待状态。
本文在QNX实时系统上实现EtherCAT网络通信,通过发送CANopenDSP402协议指令到ELMO电机驱动器进行运动控制。CANopen协议有SDO与PDO两种通信方法[10]。SDO通信方法面向服务数据的发送与接收,实时性不高,主要用于从站配置;PDO通信方法面向过程数据,实时性高、速度快,适用于实时性控制。驱动器通信模块采用PDO通信方式。
5试验
在QNX实时操作系统上测试EtherCAT网络通信,设备驱动号为1270100,串行接口为20403,固件类型为EtherCAT主站。基于CANopenDSP402通信协议的ELMO电机驱动器反馈数据237,表示电机启动。
由履带机器人搭载可以构建三维场景模型的激光传感器,在国家地震救援训练中心进行实地测试。经测试,该机器人能够在模拟地震废墟中顺利通过可变波浪路面、穿插式可变障碍、可变坡度、复杂可变路面、攀爬30°斜坡和45°楼梯等环境。机器人的最大越障垂直高度为320mm,最大跨越沟道宽度为500mm;在不打滑的情况下,最大爬坡能力为45°。
6结束语
经试验测试,本文设计的控制系统能够在复杂的非结构环境下稳定运行,连续工作时间为2h,达到了设计要求。该控制系统不仅适用于六履带四摆臂履带式移动机器人,还适用于其他多自由度的机械系统,如机械臂等。本文设计的六履带四摆臂履带式移动机器人可与可见光/红外相机、激光传感器、温度传感器、气体传感器、机械臂等设备集成,构成机器人化的应用系统,用于灾难救援、公共安全应急响应等领域。
参考文献
[1] 陈淑艳,陈文家.履带式移动机器人研究综述[J].机电工程,2007(12):109-112.
[2] 李允旺,葛世荣,朱华,等.四履带双摆臂机器人越障机理及越障能力[J].机器人, 2010(2):157-165.
[3] 赵磊.QNX实时操作系统及其应用分析[J].软件导刊,2009(5):22-24.
[4] 邢葆轶.基于QNX的七自由度机械臂控制系统设计[D].沈阳:沈阳理工大学,2013.
[5] 李存.QNXNeutrino实时操作系统性能分析[J].微型电脑应用,2014(3):35-37.
[6] 张群.一种实时以太网EtherCAT介绍[J].电子世界,2012(22):15-16.
[7] 成继勋,朱红萍.工业以太网技术的新进展[J].自动化仪表,2004(12):4-7+11.
[8] 赵新刚,顾爽,吴成东,等.基于QNX实时系统的行为辅助机器人控制系统[C]//2009全国虚拟仪器大会论文集(二),2009:4.
[9] 刘建.矿用救援机器人关键技术研究[D].北京:中国矿业大学,2014.
[10]李玉杰.基于EtherCAT的从站微处理器的设计与实现[D].武汉:武汉理工大学,2012.
DesignandImplementationoftheControlSystemforCompoundTrackedMobileRobot
Abstract:According to the mechanism characteristics of six tracked mobile robot with four swing arms, a robot control system is designed using technology of EtherCAT bus and QNX multi-task real-time operating system.Hardware integration and software design of the control system are introduced emphatically.To realize the scalability and portability of control software, the modular control software is designed by using shared memory communication mode.The experimental results show that the walking and obstacle surmounting functions of robot can be implemented under remote control; the reliability and stability of the control system are verified, which are met the design requirements.
Keywords:Mobile robotControl systemEtherCAT busReal-time controlRemote controlModular design
中图分类号:TH-3;TP242
文献标志码:A
DOI:10.16086/j.cnki.issn 1000-0380.201606009
国家科技支撑基金资助项目(编号:2013BAK03B02)。
修改稿收到日期:2015-01-01。
第一作者张化龙(1988-),男,现为沈阳理工大学机械电子工程专业在读硕士研究生;主要从事机器人控制系统集成方向的研究。