钟海兴,许伦辉,郭雅婷
(华南理工大学 土木与交通学院,广州 510641)
目前,我国市场已连续2年成为世界第一大机器人市场,伴随着“十三五”《机器人产业发展规划(2016—2020 年)》《中国制造 2025》的相继发布,我国机器人领域正在蓬勃发展。在满目琳琅的机器人种类中,其中工业机器人和服务机器人被普遍认为是实现创新发展、推动我国经济转型的重点对象。但随着技术需求的不断提高,移动机器人领域的不足之处显现的越发明显。
经过调研,在实际工厂环境中,大多数搬运机器人采用电磁导航、磁带导航和惯性导航等方式,这些导航系统都存在着灵活性差,易受干扰等缺点。而激光导航作为近几年新兴的移动机器人导航技术,其因其高度灵活性,精度高,移动速度快等优点而成为工业移动机器人领域的重要研究方向[1-3]。
当前国内在激光导航下控制系统研究相对不多。在此,基于Firefly的RK-3399六核64位高性能开源平台,开发基于机器人操作系统ROS的激光导航移动机器人控制系统,以实现移动机器人的无线通讯、激光无轨导航等功能。
激光导航移动机器人控制系统的硬件总体框图如图1所示。
该控制系统采用Firefly-RK3399开发板作为核心控制板。RK3299核心为六核64位“服务器级”Cortex-A72处理器,该芯片使用了双“服务器级”核Cortex-A72+四核Cortex-A53的大小核架构,频率高达2.0 GHz,新的内核相比以前的Cortex-A15/A17/A57核心设计可以提供高达100%的性能提升。该开发板还支持 2.4 GHz/5 GHz双频 Wi-Fi,Bluetooth 4.1和千兆以太网,为机器人网络通讯提供通讯基础。
图1 硬件总体框图Fig.1 Hardware block diagram
机器人平台利用现有的自动导引运输车AGV(automated guided vehicle)平台作为移动机器人的基础。该AGV具有2个驱动轮,电机为驱动一体式电机,通过给定模拟信号可以驱动电机运转,读取电机返回的脉冲信号,可以计算出电机的转速和里程。AGV配备STM32驱动控制板驱动电机、红外障碍物传感器等装置。AGV通过STM32驱动控制板的233串口接口与RK3399开发板进行通讯。AGV搬运机器人平台如图2所示。
图2 AGV搬运机器人平台实物Fig.2 AGV transport robot platform
所用激光雷达选用上海思岚的RPLIDAR A2激光雷达(如图3所示)。该雷达可以实时对周围环境360°全方位扫描测距检测,获取周围环境的环境信息;测量半径为18 m,最大测量频率为8000 Hz。该雷达通过232串口通讯与RK3399开发板进行通讯,接收来自开发板的启动信号,以及采集激光信号转换成数据信息传输到RK3399开发板上。
图3 RPLIDAR A2激光雷达实物Fig.3 RPLIDAR A2 laser radar
采用ROS构建软件系统,如图4所示。所构建的软件系统根据功能划分,包括底盘驱动、远程控制、局部导航以及全局导航等4个部分。
图4 软件系统Fig.4 Software system
1.2.1 底盘驱动
底盘驱动控制节点是机器人软件系统的底层驱动部分,也是机器人移动的基础。
在此,由于机器人的结构为前驱式结构,机器人接收导航控制节点下发的速度命令,然后把速度分解为左右电机的速度,STM32电机驱动控制器,接收到给定左右电机的速度信息后,经过信号的线性变换得到给定电机的DA信号,从而控制电机的速度。而机器人的行进方向则由电机的差速给定进行控制。电机转动返回电机运转的脉冲信号,由于电机旋转一周所得到的脉冲数固定,并且可以测量底盘车轮直径,则机器人前进1 m的脉冲数数学表达式为
式中:Ne为机器人前进1 m所得的电机脉冲数;n为电机旋转一周的固定脉冲数;d为车轮直径。
通过检测信号帧之间的脉冲差Δi,信号帧之间的时间为Δt,Δt时间内机器人行进的距离为Δi/Ne,则t时间内机器人行进的距离为
计算出的里程计数据通过ROS发布后,rviz可视化界面上可以观察到机器人的移动。
1.2.2 局部导航
此机器人的局部导航控制主要采用DWA(dynamic window approach)算法实现平面上移动机器人的局部导航,WA算法原理是:在速度空间(v,w)中采样多组速度,并模拟这些速度在一定时间内的运动轨迹,再通过一个评价函数对这些轨迹打分,最优的速度被选择出来发送到底盘驱动节点。
导航的模块流程如下:①初始化 为DWA算法做准备,加载参数和实例化对象等;②采样速度样本 计算出需要评价的速度样本;③样本评分对计算出的速度样本进行逐一评分,记录下评价最高的样本;④发布路径 发布得到的最佳路径策略。
1.2.3 全局导航
ROS系统平台得到广泛应用的一个重要原因,是它的代码复用性高,对很多驱动代码都具有良好的支持,并且统一了机器人数据传输的格式,可以让开发者复用官方或者他人的代码或者修改他人代码进行自身的调试。因此,在驱动激光雷达运行的时候,无需开发者自身重新开发或者移植驱动,只需复用驱动代码即可,使得开发者能够在短时间内搭建出可用的并且性能良好的激光雷达检测模块。
全局导航是实现机器人自主导航的重要组成部分,通过激光雷达实时检测周围环境的数据,结合已生成的室内激光地图,采用A*算法规划出全局通行规划路径。A*算法是一种启发式全局规划算法,根据估价函数来搜寻较优路径,既参考了从起点到当前节点的代价值,又参考了当前节点到目标节点的启发值[1]。
A*算法的核心在于选择合适的估价函数,估价函数为
式中:f(k)为节点 k 的估价函数;g(k)为从初始节点到k节点的实际代价;h(k)为启发函数,为节点k到目标节点最短路径的估计代价。
在机器人学中,常使用曼哈顿距离、欧几里得距离和切比雪夫距离来估计启发函。经过试验对
A*算法的运算流程如下:
A*算法首先定义2个链表,OPEN表 (简称O表)和CLOSE表(简称C表)。O表内存放等待考察的节点;C表内存放已评估过的节点。在算法开始时,O表内只包含起点一个节点;C表只包含障碍物的节点。
步骤1 读取移动机器人的起始点以及地图内障碍点,设定机器人运动的目标点;
步骤2 初始化O表和C表,并定义为空;
步骤3 将起始点赋值给O表,障碍点赋值给C表;
步骤4 寻找父节点(刚开始为起始点)周围可以到达的点,将它们放入O表,并链接父节点(如起始点);
步骤5 把父节点从O表中删除后放入C表;
步骤6 计算O表中各点估价函数的值,选取f(k)值最小的点,将该点作为路径规划的下一个点,从O表中删除并放入C表中;
步骤7 计算该点周围可以到达的点,如这些点不在O表内,则将它们加入O表,并链接父节点;如果某点已经在O表内,检查用新路径到达该点,是否g(k)的值更低,更低则更换路径,否则不做改动;
步骤8 算法重复运行步骤6和步骤7,直至找到目标点或O表为空,算法结束运算。
使用A*算法进行路径规划的示例,如图5所示。比,在此选取欧几里得距离作为启发函数h(k)。欧几里得距离为
图5 A*算法全局导航规划示例Fig.5 Example of A*global navigation planning algorithm
在AGV平台上采用该系统并进行试验。试验平台整体如图6所示。
图6 AGV试验平台实物Fig.6 AGV experimental platform
该移动机器人放置于室内,并利用激光雷达事先对室内环境进行激光扫描,构建室内的激光扫描地图,上位机通过局域网通讯,实时观测移动机器人的地图构建过程,并且向AGV机器人发送控制命令控制AGV机器人的移动,以便扫描整个室内场地。扫描所得的室内激光扫描地图如图7所示。
图7 室内环境总体激光扫描地图Fig.7 Indoor environment overall laser scanning map
场景与扫描地图进行对比。试验场景和相对应的激光扫描地图如图8所示。
图8 试验场景以及相对应的激光扫描地图Fig.8 Experimental scene and corresponding laser scanning map
试验场地为70 m×10 m的室内环境,通过脚本设定多个目标点,使移动机器人按既定计划到规定目标点打卡,到达目标点时停止1 min记录数据后,继续前进至下一目标点,直到到达最终目的地。在移动机器人行走过程中,记录下到达每个目标点的位置偏差和航向角偏差,测量数据见表1。
表1 室内行驶试验的测量数据Tab.1 Measurement data of indoor running experiment
由表可知,目标点1~6分布在左侧的直线走廊上,但是由于走廊路口场景的相似性,移动机器人的定位算法适应性较差,在走廊场景下只利用了里程计进行定位和行驶,但由于里程计存在的客观误差,导致位置偏差不断累积,但是航向角基本上没有太大的偏差;目标点7~9分布在转弯过道处,此时由于移动机器人移动时可利用的环境特征增多,定位算法工作良好,位置误差在不断修正,但由于行驶时转弯角度的关系,航向角偏差增大;目标点10~12的数据结果也与1~6的试验数据结果相似,由于走廊路口场景的相似,地图定位特征减少,定位算法工作不佳,里程计的客观误差导致位置偏差不断累积,航向角无太大偏差。
文中提出并设计了一种激光导航移动机器人控制系统,并进行了室内大范围场景下的试验。试验结果表明,该系统可以实现室内场景下的激光无轨导航,并通过局域网连接上位机实时监控AGV搬运机器人的实时位置,可通过设定任务脚本提前设定搬运机器人的搬运任务,以达到自动搬运的目的。该系统可以适用于工厂内搬运AGV机器人系统改造和移植,有较好的实用性和经济价值。