文献标识码: A
DOI:10.16157/j.issn.0258-7998.181058
中文引用格式: 任工昌,吴梦珂,朱爱斌,等. 带单节拖车的机器人控制系统的设计与实现[J].电子技术应用,2018,44(11):41-44,49.
英文引用格式: Ren Gongchang,Wu Mengke,Zhu Aibin,et al. Design and implementation of robot control system with single trailer[J]. Application of Electronic Technique,2018,44(11):41-44,49.
0 引言
室内服务型移动机器人作为机器人中一个重要的分支,使人们的生活变得更加便捷。目前,已有一些机器人应用到现实生活中,例如美国TRC公司研制的Helpmate医用机器人、IROBOT公司的扫地机器人Roomba等[1]。
当前,室内服务型机器人多采用两轮差速驱动,其主要原因是控制系统较为成熟,但是对于带有配送功能的机器人来说,带拖车的结构能够在驱动电机扭矩不变的情况下,运输更多的货物,并且转向更加灵活。带拖车的移动机器人主要由一节牵引车头与若干节拖车组成,牵引车主要完成驱动与转向作用,拖车随着牵引车进行运动。这类自主运行的配送机器人可用于工厂车间的材料运输,医院内部的药品运输,大型码头的货物运输等。
单车体移动机器人的路径规划方法通常采用姿态空间法,即以机器人外接圆半径扩张障碍物,同时将单车体机器人缩为一个控制点,于是路径规划可转化为在扩张后的姿态空间中一个点的规划路径[2]。对于带拖车的移动机器人,它的外接圆时刻是变化的,采用包含所有车体的外接圆来拓展障碍物和建立环境模型的方法往往人为地减少了运行空间,使得系统找不到最优或可行路径[3]。
本设计中将牵引车部分设计在拖车前端的车底部,因此该机器人在运行过程中仍可看成是一个单车体。针对该结构建立运动学模型,以搭载着ROS的MiniPC作为上位机,接收底层编码器与激光雷达反馈的信息,完成自主定位与路径规划的相关计算,并向下位机发送机器人控制点的速度与角速度信息。以STM32F103作为下位机,接收上位机传来的运动信息并最终换算成驱动轮电机的转速,驱动底层电机转动,完成机器人控制系统的搭建,并在机器人实体上进行实验。
1 带单节拖车的配送机器人运动学模型建立
1.1 机器人结构介绍
如图1、图2所示,整个机器人结构可以分为两大部分,一部分为牵引车车头转向部分,另一部分为拖车部分。牵引车转向部分通过转盘与拖车部分连接,牵引车部分的两个轮为驱动轮,驱动电机尾部安装有编码器,可以得到驱动电机的转速信息;牵引车部分与拖车部分安装有陀螺仪,可以测得车头与拖车部分的相对转动角度信息。拖车前部上方安装有激光雷达,可以为上位机反馈周边环境信息。
1.2 运动学模型建立
将以上机器人结构进行简化,得到如图3所示的运动简图。其中,k0点为机器人车头牵引车部分的旋转中心,k1点为机器人拖车部分后轮中心部位。V0、W0为k0点运动的速度与角速度,V1、W1为k1点运动的速度与角速度,L为k0到k1长度,α为车头驱动轮与拖车车轴的夹角,X-Y为k1点的坐标系,θ是k1点运动方向与X轴的夹角。假设:整个系统是在平面上运动;车轮是无滑动的;车体关于其纵向轴线对称;车轮与地面是点接触,且是纯滚动运动;车体是刚体;用于牵引车车头与车体连接的转盘是无摩擦的。
对于自主运动的带拖车配送机器人,选取拖车部分后轴中心为控制点,即k1点。上位机通过控制k1点的速度与角速度来实现机器人的自主运行。
V1、W1与V0、W0的关系如下:
2 ROS简介
在2007年,斯坦福大学与机器人技术公司Willow Garage进行了一次项目合作,ROS系统便诞生于这次的项目合作[4],由于其分布式的控制机制使得机器人系统的开发大大简化,在这之后ROS便被机器人领域的众多研究人员所熟知[5]。
ROS运行时是由多个松耦合的进程组成的,这些进程被称之为节点(Node),每个节点独立运行,又与其他相关节点进行通信。在实际使用时,这种模块化的设计可以大大提高开发效率[6]。
ROS支持多种开发语言,不同的节点可以采用不同的语言进行编写。由于各个节点模块的独立性与开源性,使得所有ROS使用者都可以将自己编写的功能包进行共享[7]。
3 控制系统硬件设计
从该机器人工作角度考虑,控制系统设计整体分为两部分:上位机设计与下位机设计。上位机由PC主机与车载MiniPC机组成,两者之间通过无线局域网进行通信。下位机由车体、车轮、带编码器的直流减速电机、电机驱动器、STM32F103开发板、电源、陀螺仪以及激光雷达组成。STM32F103RCT6作为下位机的主要控制单元,其作用是将上位机发出的控制指令转换成各个电机对应的速度,并将其输出给电机驱动器,实现机器人不同形式的运动;与此同时,STM32将编码器反馈的速度信号进行计算和转换,得到对应车轮的速度信息并将这些信息反馈给上位机。在拖车部分和牵引车车头部分分别安装有一个陀螺仪,陀螺仪的型号为TransducerM,通过计算两个陀螺仪的偏航角之差,可得到牵引车相对于拖车部分的旋转角度,即图3中的角α。激光雷达采用的是HOKUYO公司的URG-04LX-UG01二维激光雷达,用于反馈周围环境信息给上位机。
上位机的车载MiniPC以拖车尾部车轴中点为控制点,向下位机发送移动指令。本设计中上位机向下位机发送的是该点的速度与角速度信息。同时接受下位机反馈的里程信息。车载MiniPC采用的是占美微型电脑,电源采用12 V-5 A适配器,具有体积小、价格低、性能高、接口丰富等特点。控制系统硬件框图如图4所示。
4 控制系统软件设计
控制系统软件设计在移动机器人的整体设计中占有绝对的核心地位,这直接关系到机器人运行的鲁棒性与稳定性。本设计中的控制系统软件是基于ROS平台。在车载MiniPC中装有ROS系统,车载MiniPC与下位机通过串口进行通信,主控电脑通过无线局域网采用ssh远程登录方式对车载MiniPC进行控制。下位机通过解算由上位机发送的速度与角速度等信息最终得到驱动电机的PWM波值,从而实现对电机的控制。
4.1 下位机软件设计
下位机的主要作用是接收上位机传来的运动信息,并解算成最终的驱动信号,与此同时,向上位机反馈里程计信息,供上位机做位姿定位使用。图5为下位机的工作流程图。
下位机上电后首先对整个系统进行初始化,这里由于整个配送机器人是在室内环境下使用的,因此陀螺仪初始化时就失去了使用GPS的校准功能,但是初始化完成后,陀螺仪偏航角的相对精度还是可以保证的。
当下位机接收到上位机传来的控制点的角速度W1与速度V1信息时,通过式(3)将其解算成牵引车部分运动的速度V0与航向角度α。为了减少下位机运算量和防止角速度的突变,直接给定车头部分一个恒定的角速度量W0=0.4 rad/s,当V1=0时,W0=0。W0的正负由W1决定,当W1为正时,W0=0.4 rad/s;当W1为负时,W0=-0.4 rad/s。牵引车与拖车部分的陀螺仪通过串口反馈各自的偏航角,在系统初始化之后,以当前偏航角值为初始值,计算各自的变化量,再将两者相减,即可得到牵引车与拖车部分的相对转角α*。再将此转角与解算后的目标α做对比,直到α*=α时,车头部分的W0=0,只留下一个前进方向的速度V0,在这里为了防止牵引车在目标α角周围来回抖动,所以将目标α角范围扩大±0.2。
接下来将牵引车部分的速度与角速度进行换算得到最终驱动电机的PWM波值。与此同时,下位机还将读取到的编码器信息通过式(1)换算成控制点的速度与角速度信息,再由串口回传至上位机做处理。
4.2 上位机软件的设计
上位机的主要作用是对下位机反馈的里程计信息以及激光雷达捕捉到的周围环境的信息进行计算,得到当前整车的位姿信息,并且对下一步的运动路线进行规划,换算成速度与角速度信息,发送给下位机。
在建好地图的情况下,ROS导航主要需要使用到两个程序包,一个是move_base,另一个是amcl。move_base包可以根据各个传感器反馈的信息进行路径规划,使机器人移动到指定位置,amcl包主要是根据已有的地图进行自主定位与导航[8]。图6为导航包的整体格局。
move_base包主要提供了对于自主导航的相关参数配置、系统与各种传感器的接口等,主要包括两个部分。第一部分为全局路径规划(global planner):使用者给定目标位置后,系统根据给定的目标位置进行整体路径规划;第二部分为本地实施规划(local planner):在导航过程中,系统根据自身传感器所反馈的周围环境信息,对附近的障碍物进行避障路线规划。
除此之外ROS还提供了一种可视化工具——rviz。使用这种插件机制可以扩展丰富的功能,便于进行二次开发[9]。在这里,可以通过设置footprint的大小来规定机器人的最大边界,由于该移动机器人的牵引车驱动部分处于拖车车体前端的下方,因此拖车部分的最大边界即为整车的最大边界。通过rviz,还可以实时观测到机器人在地图中的位置、激光雷达反馈的信息、每一时刻的速度方向以及上位机对导航路径的规划情况等。
5 配送机器人实验与分析
带单节拖车的配送机器人样机如图7所示。在实验开始之前,需要将车载MiniPC与远程控制PC都连接上同一个WiFi,在远程控制PC上打开一个终端,通过ssh命令登录上车载MiniPC,启动控制机器人的所有相关节点。在远程控制PC端打开rviz界面,输入机器人起始点信息,给定目标点,机器人即可开始自主导航。
图8是机器人在直线走廊的导航情况,图9是机器人在直线走廊导航的rviz结果,图10是机器人在“T”字形走廊拐角处的导航情况,图11是机器人在“T”字形走廊拐角处的导航的rviz结果。
由图可见,该机器人在直线走廊中可以顺利地避开遇到的障碍物,在“T”字形走廊拐角处也可以兼顾到拖车部分的转向情况,实现了带单节拖车的自主导航。
6 结论
本文研究了带单节拖车的配送机器人控制系统,并在物理样机上实现了相关的功能。针对带单节拖车的配送机器人,提出了一种采用单车体运动学模型控制带单节拖车的配送机器人的控制方案,建立了运动学模型,以及下位机接收到上位机信息之后的决策方案,从而有效地解决了带单节拖车的室内配送机器人遇到障碍物的避障问题与在“T”字形走廊的转向问题。
参考文献
[1] 罗振华.医院服务机器人室内导航算法与自主充电系统研究[D].哈尔滨:哈尔滨工业大学,2016.
[2] 刘作军,孔鑫,杨鹏,等.带拖车移动机器人的运动学分析与仿真[C].2006中国控制与决策学术年会论文集,2006.
[3] 李宏超,黄亚楼,夏毅,等.带拖车的移动机器人包络路径分析与描述[J].机器人,2001(4):334-337.
[4] QUIGLEY M,BERGER E,NG A Y.Stair:hardware and software architecture[C].AAAI Robotics Workshop,2007.
[5] QUIGLEY M,GERKEY B P,CONLEY K,et al.ROS:an open-source robot operating system[C].Proceeding of IEEE ICRA Workshop on Open Source Robotics,2009.
[6] 路飞,田国会,刘国良,等.智能空间下基于WiFi指纹定位与粒子滤波的服务机器人复合全局定位系统设计[J].机器人,2016(2):178-184.
[7] 张建伟,张立伟,胡颖.开源机器人操作系统-ROS[M].北京:科学出版社,2012.
[8] 白亮亮,平雪良,陈盛龙,等.分布式移动机器人控制系统设计与实现[J].机械设计与制造,2015(10):180-183.
[9] 刘维惠,陈殿生,张立志.人机协作下的机械臂轨迹生成与修正方法[J].机器人,2016,38(4):504-512.
作者信息:
任工昌1,吴梦珂1,朱爱斌2,刘 朋1,宋纪元2
(1.陕西科技大学 机电工程学院,陕西 西安710021;2.陕西省智能机器人重点实验室,陕西 西安710049)