史小露 郑友胜 张磊
摘 要:针对目前智能代步车运动控制系统功耗高、体积大和开发成本高和工作量大等不足,提出一种基于机器人操作系统(Robot Operating System,ROS)的智能代步车嵌入式运动控制系统。该运动控制系统将ROS移植到arm嵌入式板卡,将arm作为中央处理器,运用ROS中的导航功能包实现智能代步车的地图建立、路径规划、室内外自主导航、运动控制等功能,最后通过仿真实验验证了该运动控制系统的可行性。
关键词:机器人操作系统;智能代步车;嵌入式运功控制系统
中图分类号:TP311 文献标识码:A
文章编号:2096-1472(2016)-06-48-03
Abstract:In view of some outstanding problems of intelligent electronic scooters,such as the high power consumption,the huge size,the high development costs and heavy workload,the paper proposes an embedded motion control system based on the Robot Operating System(ROS)for intelligent electronic scooters the ROS was ported to the arm embedded board which is used as the central processor in the embedded motion control system.Functions like map building,route planning,indoor and outdoor autonomous navigation and motion control are implemented through the ROS navigation function package.At the end of the paper,the feasibility of the motion control system is verified through the simulation experiments.
Keywords:ROS;intelligent electronic scooters;embedded motion control systems
1 引言(Introduction)
随着社会的发展和人类文明程度的提高,人们特别是残疾人愈来愈需要运用现代高新技术来改善他们的生活质量和生活自由度。智能代步车的出现提高了老年人和残障人士的行动自由度,受到了社会的普遍关注,将机器人技术[1-4]应用于智能代步车提高智能代步车的智能化、安全化、实用化程度具有广泛的应用前景。然而,机器人技术的复杂性和多任务性给智能代步车运动控制系统程序的编写带来很大的困难。传统的智能代步车运动控制系统都是开发者单独设计,在不同的平台间移植需要很大的工作量。机器人操作系统[5,6](Robot Operating System,ROS)起源于2007年斯坦福大学人工智能实验室与机器人技术公司的项目合作,ROS是一种分布式处理架构,为机器人系统的开发提供了一个很好的框架,拥有用于机器人的各种功能包,这些功能包单独设计,在运行时松散耦合,提高了代码复用率。
控制系统作为智能代步车的核心部分,其性能好坏和开发周期直接决定着智能代步车的智能化程度、安全性能和使用成本,如何简单快速地为智能代步车构建运动控制系统是一个值得深入研究的问题。本文针对智能代步车提出了一种基于ROS的嵌入式运动控制系统,应用ROS提供的功能包实现智能代步车的定位、导航与控制。
2 运动控制系统硬件设计(Hardware design of motion control system)
智能代步车本体为电动轮椅车,在此基础上进行改装,增加必要的传感器和嵌入式arm开发板,针对不同的任务需求,在智能代步车本体上安装相应的传感器,如图1所示。
智能代步车的底盘为两轮驱动结构,两个驱动轮安装于车体后方,采用两轮差速驱动的方式实现智能代步车的运动。驱动轮连接的电机配有两个采集驱动轮滚动的圈数的光电编码器,可实现对智能代步车运行里程的计算。车体前方装有万向轮用来控制智能代步车的运动方向,装有hokuyo激光测距仪检测障碍物与智能代步车的距离。智能代步车选用的定位传感器为Stargazer和gps,选用的CPU模块为飞思卡尔imx6q,选用的底层操作系统为ubuntu armhf系统和ROS。
3 运动控制系统软件设计(Software design of motion control system)
在构建运动控制系统软件构架时,既要确保控制系统的高性能,还要保证控制系统易于扩展和维护,更要与ROS系统软件体系结构相融合。智能代步车软件系统按程序实现流程划分,主要分为人机交互层、决策层、控制层、感知层,各层间相互关系如图2所示。
智能代步车任务实现流程主要分为三个环节:
(1)用户通过人机交互层将任务传达给智能代步车。
(2)决策层通过感知层传达的数据信息确定机器人所处的外部环境状态和代步车的运动状态,并据此做出决策。
(3)依据决策结果,由驱动层选择合适的控制策略,实现预定的工作任务。
任务执行过程中,内传感器实现对智能代步车运动状态的描述,外传感器感知外部工作环境信息。感知层将所获取的智能代步车运动状态及工作环境状态反馈给系统决策层并作为决策依据。从图2中可知,人机交互系统与决策系统之间存在双向信息传播。一方面,操作者通过人机交互层向智能代步车传送任务命令;另一方面,决策层实时向人机交互层传送智能代步车运行状态及外部工作环境状态,并通过可视化技术在人机交互界面上显示。在决策层与驱动层之间同样存在双向信息传递:决策层把决策结果传递给驱动层,作为驱动层运行的依据;同时,驱动层将把执行的结果反馈给决策层,供决策系统参考并做出相应调整。
3.1 人机交互层
人机交互层与决策层通过以太网连接,可显示决策层建立的室内地图和规划的路径。人机交互层的操作界面为一台平板电脑,可实时监控显示智能代步车的运行位置和运行状态,用户可通过触屏的方式向智能代步车发送运动控制指令和导航指令,比如用户可以通过人机交互层设定智能代步车的起始点、目标点位置,系统会将该指令通过以太网传输给决策层,决策层经过计算处理后得出路径导航规划方案,以实现对智能代步车的控制。当出现紧急情况时,用户可通过人机交互层及时介入系统导航决策过程,以避免危险事故的发生。图3为导航过程在人机交互层的显示。
3.2 决策层
决策层为飞思卡尔imx6q开发板,软件开发系统环境为ubuntu armhf系统、ROS系统,主要实现功能包括建立地图、自主导航和运动控制[7-9]。当智能代步车处于地图创建模式时,决策层调用ROS中的gmapping功能包,通过手动控制模式控制智能代步车在未知环境中移动,在移动过程中根据位置估计和地图进行自身定位,在自身定位的基础上创建SLAM栅格地图,并将地图信息发布给人机交互层显示;当智能代步车处于运动控制模式时,决策层从人机交互层读取运动控制指令,并通过话题“cmd_vel”发布出去;当智能代步车处于自主导航模式时,决策层调用ROS中navigation功能包,并接收感知层采集到的传感器信息,经过一系列计算,输出智能代步车的速度并通过cmd_vel”发布出去[9]。
决策层中的运动学模块订阅到“cmd_vel”发布的线速度和角速度后,根据运动学模型可计算出左右轮速度,如图4所示。O1、O2分别是左、右驱动轮的轮心,轮间距O1O2为l,C为O1O2的中心,、、分别为左、右驱动轮及智能代步车中心的速度。
智能代步车做圆弧运动。
3.3 驱动层
驱动层主要由控制部分和被控制部分组成,如图5所示。控制部分即控制器,被控部分即电机。图中带叉号的圆圈为比较环节,用来将输入与输出相减,给出偏差信号。控制器通过接收决策层输出的控制指令和智能代步车的实际速度计算偏差,再由偏差产生作用去消除偏差,对电机发出控制信号。电机在控制信号的作用下实现被控运动,从而驱动智能代步车以预定的速度运行。
3.4 感知层
感知层主要包括外部激光传感器、stargazer、gps和内部的光电编码器。激光传感器用来获取智能代步车周围障碍物的距离信息,为建立地图和自主避障提供信息。stargazer通过对标签的识别实现室内定位功能。室外多属于公共场所,相比室内环境复杂,因此采用GPS获取自身所在的位置和航向角信息。光电编码器可以检测电机的转过的圈数,通过公式(5)—(7)实现里程计和速度的计算。
在车体不发生侧滑的情况下,车体方位与左右轮运动速度和具有如下关系:
根据编码器的采样信息,将公式(5)—(7)两边积分,可实时计算出智能代步车车体方位。
4 仿真实验(Simulation experiment)
为了验证运动控制系统的有效性,在rviz仿真平台上结合ROS对建立的运动控制系统进行了仿真实验,对其运动性能进行了分析。实验首先运行核心节点roscore,然后启动已经创建好的智能代步车自主导航节点,并在rviz中导入已有的环境地图,通过rviz窗口最顶端“2D Pose Estimate”和“2D Nav Goal”设置智能代步车的初始位置和目标位置。通过图6可以看出,在地图中任意选择一个目标点,智能代步车都能够规划出一条最优路径完成并到达指定位置。图6中黄色的箭头表示智能代步车前进的方向,绿色的实线代表ROS规划的路径。
5 结论(Conclusion)
本文提出的基于ROS的智能代步车嵌入式运动控制系统具备室内外定位导航功能,体积小、功耗低,运用ROS中基于扩展卡尔曼滤波器同时定位与地图创建方法构建定位系统和SLAM地图,依靠ROS中已有的Dijkstra最优路径算法计算出智能代步车到达目标位置的最优路径,通过两轮差速的驱动方式实现从当前位置安全到达地图中其它指定位置。
本文提出的嵌入式运控制系统利用了ROS的软件架构和导航功能包,开发人员只需要少量的编程工作即可构建一套较为完整的运动控制系统,使得软件搭建工作更方便,效率更高。
参考文献(References)
[1] Liangwen Wang,et al.A geometric approach to solving the stable workspace of quadruped bionic robot with hand foot-integrated function[J].Robotics and Computer Integrated Manufacturing,2016:13.
[2] Hong Zhang,et al.Adaptive incremental learning of image semantics with application to social robot[J].Neurocomputing,2016:173.
[3] Rai-Wung Park.Nonlinearity Estimation and Compensation for Robust Paths and Forces Control of Robot[J].British Journal of Applied Science & Technology,2015,7(2):224-236.
[4] Maciej Petko,Grzegorz Karpiel,Konrad Gac,Grzegorz Góra,Konrad kobus,Janusz Ochoński.Trajectory tracking controller of the hybrid robot for milling[J].Mechatronics,2016,8:100-111.
[5] 张建伟,等.开源机器人操作系统ROS[M].北京科学出版社,2012:9-24.
[6] 马丁内斯.刘品杰,译.ROS机器人程序设计[M].北京:机械工业出版社,2014.
[7] http://wiki.ros.org/navigation/Tutorials/RobotSetup.
[8] http://wiki.ros.org/gmapping.
[9] 高雅,李晓娟,关永.运用定理证明器ACL2验证机器人操作系统ROS节点间通信[J].小型微型计算机系统,2014,35(9):2126-2130.
作者简介:
史小露(1987-),女,硕士,设计师.研究领域:机器人操作系统,嵌入式开发.
郑友胜(1982-),男,博士,高级工程师.研究领域:机器人操作系统,智能控制系统.
张 磊(1986-),男,硕士,工程师.研究领域:飞机航空电子总体设计.