文生平,黄培辉
(华南理工大学 聚合物新型成型装备国家工程研究中心 聚合物成型加工工程教育部重点实验室,广州 510640)
随着“中国制造2025”的开展,移动机器人渐渐活跃在物流业、服务业、军事、医疗等多个领域中[1]。伴随着半导体技术、计算机技术、传感技术等相关技术的日趋成熟,移动机器人也得以蓬勃发展。
移动机器人传统的导航方式主要是电磁导航、磁带导航和惯性导航等,其存在着灵活性差,易受干扰等不足。激光导航作为新型的移动机器人导航方式,具有高度灵活性,而且得益于激光信号精度高,速度快的特点,激光导航的抗干扰能力较强[2-3]。
移动机器人要实现各项功能都离不开控制系统,许多学者对移动机器人的控制系统进行了研究[4-5]。目前,国内对激光导航移动机器人的嵌入式控制系统研究相对不多,本文基于ARM开发了一种激光导航移动机器人的嵌入式控制系统,用于实现移动机器人的无线通讯、激光数据采集和处理、运动控制等功能。
激光导航移动机器人嵌入式控制系统的总体框图如图1所示。
图1 嵌入式总体系统框图Fig.1 Block diagram of embedded system
该控制系统采用“Raspberry Pi基金会”开发的Raspberry Pi 3 Model B作为核心控制器。Raspberry Pi 3是基于ARM Cortex-A 53的64位微处理器,具有体积小,运算速度快,接口丰富等优点。Raspberry Pi 3 Model B开发板带有BCM43438芯片,可实现无线收发功能,从而能够通过无线WiFi与电脑上位机进行数据交互。
机器人平台选用Yujin公司开发的Kobuki移动机器人。该款机器人底部装有左、右两侧驱动轮,机器人的左右轮带有编码器。Kobuki的接口控制板,可通过串口通讯的方式与核心控制器进行通讯。
选用上海思岚公司开发的RPLIDAR A1激光雷达作为外部激光传感器。该激光雷达可通过串口通讯的方式与核心控制器进行通讯,接收来自控制器的启动信息,并将采集到的激光信号转换为电信号通过串口反馈到控制器。
激光导航移动机器人的嵌入式控制系统是基于Linux操作系统开发的。Linux操作系统支持ARM架构,而且具有多任务操作的特性,实现多个任务程序同时而独立运行。Linux操作系统还能具备图形界面,操作方便,实现良好的人机交互。Linux系统作为一种开源、免费的操作系统,对于嵌入式控制系统开发而言,不但节约成本而且便于使用。
激光雷达扫描周围的环境信息并通过串口将数据以极坐标形式反馈到核心控制器,串口波特率设置为115200 b/s。
基于粒子滤波的实时定位及地图构建算法是目前主流的激光导航算法之一。如图2所示,粒子滤波算法利用激光扫描周围环境特征λ,并将激光扫描数据作为t时刻机器人的位姿观测数据zt;以里程计数据作为t时刻机器人的内部传感器输入ut,结合zt和ut来估算机器人在t时刻的位姿st,并更新环境地图m[6]。
联合后验概率分布可表示为
根据Rao-Blackwellized思想,实时定位及地图构建可以被分解为2部分,即:利用粒子滤波进行定位的非高斯后验部分和利用卡尔曼滤波器进行全局地图更新的条件高斯部分。因此概率分布(1)可以做进一步的因式分解,即
进行因式分解[7]的意义在于,实时定位及地图构建可以完全划分成机器人位姿估计和地图更新2个步骤,从而简化了算法的计算量。首先利用激光扫描数据和里程计数据估算机器人位姿后验概率,然后结合位姿和激光扫描数据完成对地图的更新。粒子滤波算法位姿估计及地图更新如图2所示。
图2 粒子滤波算法位姿估计及地图更新Fig.2 Particle filter algorithm pose estimation and map updating
粒子滤波器估算后验概率的原理,是利用地图中随机分布多个粒子,每个粒子表示机器人的一种潜在的轨迹。移动机器人在行驶过程中,粒子集合不断通过迭代收敛,权重高的粒子得以保留而权重低者则被舍弃,最终保留与机器人轨迹基本吻合的粒子集。重采样过程中,自适应阈值Neff用于表示粒子群与机器人轨迹的吻合程度,其计算公式为
核心控制器通过串口与Kobuki移动机器人平台的接口控制板进行数据交互,从而达到控制Kobuki移动机器人的目的,串口波特率设置为115200 b/s。
Kobuki移动机器人的运动控制指令由起始位、有效长度、有效信息和检验位,共4部分组成。其中:①起始位共有2字节,由2个十六进制数0xAA和0x55组成。②有效长度是指有效信息所包含的字节数,其为1个十六进制数。③有效信息是具体的控制命令,由标识符和具体数据组成。以移动机器人的运动控制为例,需要标识符为0x01,具体数据包括速度(2字节,单位为mm/s),转弯半径(2字节,单位为mm)。④检验位为单字节,用于校验数据有效性。以运动控制为例,控制指令报文见表1。
表1 运动控制指令报文Tab.1 Motion control instruction message
利用所提出的嵌入式控制系统,在Kobuki移动机器人平台上进行应用试验,实物如图3所示。
图3 嵌入式控制系统实物照片Fig.3 Embedded control system object
移动机器人放置于室内环境中,并利用激光雷达对室内环境进行扫描,并且构建地图,电脑上位机[9]可以通过无线WiFi实时观测移动机器人的地图构建过程,并向嵌入式控制系统发送控制指令,从而控制移动机器人的运动。在1.75 m×10 m的室内走廊和4.5 m×6 m的室内房间分别进行试验。
在1.75 m×10 m的室内走廊中测试移动机器人的直线行走准确度。在走廊中轴线上,移动机器人共行走8.5 m,测量机器人的最终位置与中轴线的位置偏差和偏向角(偏向左记为正,偏向右记为负),测量数据见表2。
表2 直线行驶试验的测量数据Tab.2 Straight-line driving experimental data
由表可知,平均位置偏差为9.5 mm,算术平均偏向角为2.71°。同时嵌入式系统通过激光雷达构建出走廊的环境地图。
在4.5 m×6 m的室内房间中,上位机通过无线WiFi向嵌入式控制系统发送数据,再由核心处理器通过RS232串口向Kobuki移动机器人发送运动控制指令,实现运动控制功能。移动机器人按照给定的矩形路线循环行驶,矩形顶点坐标为(0,0),(0,3000),(4000,3000),(4000,0),单位为 mm。 移动机器人在运动过程中,激光雷达不断扫描获取室内房间的环境特性,并构建出扫描地图。
图4 试验场景及相应的激光扫描地图Fig.4 Experimental scene and corresponding laser scanning map
试验的场景以及相应的激光扫描地图如图4所示。由地图构建结果可见,嵌入式控制系统接收并处理激光雷达所反馈的数据,构建出室内环境地图,反应出室内环境的二维情况,嵌入式控制系统的激光导航定位功能得以实现。
提出了一种激光导航移动机器人的嵌入式控制系统架构,并进行了不同现实场景下的试验。试验结果表明,该控制系统能够实现激光导航移动机器人的激光导航定位,运动控制等功能,且上位机可以通过无线WiFi与嵌入式控制系统进行信息交互,实时监控,操作方便。该嵌入式控制系统采用串口通讯,适用面广,可移植性强,具有较好的实用价值。
[1]宋春林.基于激光测距仪的移动机器人SLAM研究与实现[D].哈尔滨:哈尔滨工业大学,2014.
[2]满增光.基于激光雷达的室内AGV地图创建与定位方法研究[D].南京:南京航空航天大学,2014.
[3]肖鹏,栾贻青,郭锐,等.变电站智能巡检机器人激光导航系统研究[J].自动化与仪表,2012,27(5):5-9.
[4]徐艾,谭宝成,廉春原,等.智能轮式移动机器人嵌入式控制系统设计[J].国外电子元器件,2008,10(11):30-32.
[5]戚树腾,聂森,陈军,等.基于激光导航的果园移动机器人自动控制系统[J].农机化研究,2015,37(10):8-12.
[6]李昀泽.基于激光雷达的室内机器人SLAM研究[D].广州:华南理工大学,2016.
[7]武二永,项志宇,沈敏一,等.大规模环境下基于激光雷达的机器人 SLAM 算法[J].浙江大学学报:工学版,2007,41(12):1982-1986.
[8]王权,胡越黎,张贺.基于ROS与Kinect的移动机器人同时定位与地图构建[J].计算机应用研究,2017,34(10):1-6.
[9]文生平,陈端平,刘其信.基于Qt的激光导引移动机器人监控系统设计[J].自动化与仪表,2016,31(8):6-9.