基于ROS的室内自主移动与导航机器人研究
2021-11-02张明岳
张明岳
(西安工程大学电子信息学院,西安710600)
1 引言
随着科学技术的迅猛发展,越来越多的机器人被应用到人们的生活中,机器人的智能化也逐渐成为科技发展主流之一[1]。目前,机器人应用种类繁多,诸如特种机器人、服务型机器人、工业机器人等。其中室内服务型机器人因其深入人们的日常生活而受到广泛关注。室内机器人由于周围环境相对复杂而且在移动时涉及到位姿实时变化,使其进行定位与导航的准确度大受限制[2]。对此,设计基于开源机器人操作系统(Robot Operating System,ROS)对室内机器人的自主移动与导航系统的关键技术进行研究,通过即时定位与地图建构(Simultaneous Localization and Mapping,SLAM)技术创建机器人所在未知环境下的地图;在创建好的地图下结合自适应蒙特卡洛定位(Adaptive Monte-Carlo Localization,AMCL)方法对机器人自身位置进行准确定位;最终利用全局路径规划算法进行机器人从起始点到目标点的最优路径决策。
2 系统总体设计方案
ROS作为开源的机器人软件操作系统平台,具有良好的可扩展性。与其他操作系统类似,ROS程序是基于图状架构,不同组件根据功能的不同被放作者简介:张明岳(1996—),男,陕西省西安市人,硕士研究生,主研方向:人工智能与机器视觉技术。收稿日期:2021-02-07在对应的文件下[3]。ROS文件统级如图1所示。
图1 ROS文件统级
系统的正常运转主要包括以下方面:
传感器数据采集:通过激光测距仪测量机器人在未知环境下的空间分布、障碍物大小以及与障碍物之间的距离等等特征;再通过里程计中的加速度传感器、电子罗盘传感器、陀螺仪传感器获取机器人的移速、方位变化和平衡状态的数据。结合两种传感器数据提供机器人运动控制完成路径导航。
SLAM模块:用于构建未知条件下的环境地图。
路径规划:通过路径规划算法,为机器人标记一条从起始点到目标点的最优路径。最优路径的定义可有多种标准,比如距离最近或障碍物最少等。
3 地图建模与定位
3.1 地图建模
要实现机器人的定位与路径规划,建立机器人在未知条件下的地图是不可或缺的前提,这也是机器人实现自主移动的核心技术之一[4]。
地图生成技术可描述为:机器人在一个未知的地区开始移动,在移动的过程中,传感器开始采集机器人四周的环境信息,机器人通过获取到的环境信息创建该地区的环境地图[5]。
SLAM算法通过结合脉冲式激光传感器来测量未知地区的地形、障碍物与机器人的距离等信息,测距原理如图2所示。首先传感器向未知区域四周发射脉冲信号,然后接收回波信号,通过计时电路来计算激光从发射到接收的往返时间,以此标准来计算机器人与障碍物之间的距离[6]。此处,SLAM算法是在gmapping功能包中实现的。
图2 激光测距传感器原理图
3.2 机器人定位
通过前一步地图建模将机器人所处环境m从未知变成了已知,接下来在已知环境的条件下机器人结合传感器采集到的环境信息和运动控制信息进行自身位置的定位。机器人定位可描述为图3所示的过程。图中灰色圆圈是已知的,Z和U分别代表上述的环境信息和控制信息。ROS中的AMCL算法功能包会对地图m使用粒子滤波器来推算位姿X。
图3 机器人定位模型
4 导航与路径规划
导航作为另一个实现机器人自主移动的核心技术之一,其过程可描述为:机器人在已知环境下,需要规划出一条从起始点到目标点的最优路径解,然后在机器人移动的过程中,通过传感器实时地采集周围环境深度信息,当从移动路径中发现障碍物需要机器人避让时,可以立即调节机器人的移动速度和航向[7](加速度传感器和电子罗盘传感器的作用就在于此),以确保机器人可以安全抵达目标点。
路径规划是导航的重要组成部分,可分为全局最优路径规划和本地实时最优路径规划两种模式[8]。
全局最优路径规划:在实际导航中,可通过使用Dijkstra算法或者A*算法在已知地图条件下计算机器人从起始点到目标点最优路线解。最优路线解的评判标准可以是距离最近或是耗费时间最短等等。此处将距离最短作为最优路线评判标准,将距离最短且避开障碍物的路线作为机器人移动的全局最优路线[9]。
本地实时最优路径规划:在实际导航中,机器人周围随时可能会出现新的障碍物,阻挡机器人向目标点移动。导致机器人会出现偏离最优路径规划算法标记的路线移动,因此需要机器人针对采集到的实时环境信息进行及时的调整,局部路径规划在此也有所体现。ROS系统中local_planner模块的DWA算法会辅助机器人尽量符合最优路径规划算法标记的路线[10],综合机器人移动的最优路线评判标准结合传感器实时采集到的周围环境深度信息对机器人移动路线进行及时的调整,以达到避免机器人与动态障碍物发生碰撞的情况出现,其原理简图如图4所示。
图4 机器人避障原理
路径规划部分的功能是通过ROS系统平台中的move_base功能包来实现的。
5 全局路径规划算法选取
以下用Dijkstra算法和A*算法两种方式计算全局最优路径解,并对两者特点进行对比。
Dijkstra算法基于贪心的思想,在计算机器人全局最优路径解时会从机器人所在位置的起始点向四周扩散寻找目标点,直到找到为止。如图5所示为Dijkstra算法规划全局路径的效果图。
图5 Dijkstra算法搜索区域
图中描述了使用Dijkstra算法从中间一个起始点开始计算,直到得到边缘位置上的一个目标点的最优路径解的过程。从图中可以清楚观察到Dijkstra算法向四周扩散寻找目标点的搜索范围。
A*算法在计算最优路径解时会根据已知的信息,估计从起始点到目标点的所需代价距离,将代价距离作为下一步移动的评判依据。A*算法规划全局路径的效果如图6所示。
图6 A*算法搜索区域
在此选用A*算法寻找从起点到终点的最优路径解。该算法在路径规划过程中会充分利用所有已知信息估算从当前位置到目标位置的所需代价来选择下一步路径。通过对比可发现两种全局最优路径规划算法标记的从起始点到目标点的最优路线是一致的,且A*算法还可有效地避免Dijkstra算法因搜索范围大而导致的收敛速度慢的缺点[11]。
6 自主导航实验
通过ROS中的可视化界面Rviz可以实时查看所生成的地图信息与各种传感器的采集信息。打开gmapping功能包里的SLAM地图生成文件,通过控制机器人移动,即可实时查看传感器采集到的四周环境信息,并结合激光雷达SLAM地图建模技术生成该地区的代价地图。
如图7所示为机器人进行自主导航实验的实际移动路径。图中右上方圆形标记为机器人起始位置,右下方三角形标记为机器人移动的目标点。浅色路线为A*算法标记路线,深色路线为机器人实际移动路线。可以看到机器人能够进行自主移动达到目标点,实际移动路线也与A*算法标记的最优路径有较高的吻合度,达到设计与实验任务总体要求。
图7 机器人在自主导航实验中的路径规划
7 结束语
自主移动机器人功能强大,应用前景广阔,在未来“互联网+”的发展趋势下,有望在生物医疗(康复、辅助等)、交通(监控、指挥等)、农业(任务调度等)等领域发挥重要作用。为验证开源机器人操作系统ROS实现室内机器人自主导航的现实可行性,设计利用激光雷达SLAM算法实现机器人在未知环境下的实时地图精确建模;利用AMCL算法实现机器人的自身定位;利用A*算法实现机器人最优路径规划,完成自主定位与导航的功能。通过编程各个模块并将各模块整合成一个完整的系统,在室内环境下对机器人自主移动与导航进行实验,机器人在实验中的表现良好,符合理论预期。