摘 要:随着智能技术的发展,自主移动机器人逐步进入生产生活当中,其中路径规划是实现机器人导航功能的重要环节。基于机器人操作系统平台,对导航机器人的整体架构和路径规划进行研究,在Dijkstra算法基础上,加入启发式搜索思想,提出A*算法规划全局路径,并进行两种算法的对比分析,同时提出一种基于动态窗口的局部路径规划算法。经实验验证,该方法可实现机器人导航过程中的路径规划和实时动态避障功能,且具有一定的路径寻优能力和较高的执行效率。
关键词:ROS;移动机器人;自主导航;路径规划;动态避障
Abstract:With the development of intelligent technology,autonomous mobile robot has gradually entered the production and life,among which path planning technology is an important link to realize the navigation function of the robot. Based on the ROS platform,the overall architecture and path planning technology of navigation robots are studied. On the basis of Dijkstra algorithm,the idea of heuristic search was added to propose A* algorithm for global path planning,and a comparative analysis was conducted between the two algorithms. At the same time,a local path planning algorithm based on dynamic window is proposed. The experimental results show that this method can satisfy the functions of path planning and real-time dynamic obstacle avoidance in the process of robot navigation,and has certain path optimization ability and high execution efficiency.
Keywords:ROS;mobile robot;autonomous navigation;path planning;obstacle avoidance
0 引 言
随着当今机器人技术的发展,自主移动机器人凭借其智能化和实用性,被广泛地应用于服务行业、工业制造、医疗看护等多种场景。该类机器人拥有强大的移动能力,通过目标点的设定,可实现自主导航功能,以替代人类完成部分复杂、危险的工作[1]。其中路径规划作为实现机器人自主导航功能的关键性技术之一,成为当下研究的热点。国外对于路径规划研究起步较早,较为经典的有Dijkstra提出的用于解决最短路径问题的Dijkstra算法、Khatib提出的人工势场法、Lavalle提出的快速随机树算法。国内的Zhang提出了一种基于混沌人工势场法的路径规划新方法[2],即在传统的人工势场方法中,结合了混沌优化算法。但是现阶段部分的路径规划算法仍处于理论研究,可实际应用于导航机器人的路径规划算法,仍然存在寻优能力差、效率低、算法鲁棒性差等问题。
本文基于作者所就读的吉林大学仪器科学与电气工程学院的大学生创新训练项目,为完成该项目中导航机器人的系统设计与实现,满足移动机器人在导航过程中,对于全局路徑的搜寻以及实时动态避障的实现要求[3],介绍了一种基于ROS(Robot Operating System)平台的机器人导航路径规划方法,通过建立仿真的二维栅格地图对比不同算法的优势与不足,利用搭建的ROS机器人实物平台,完成导航功能中路径规划的验证。机器人可以通过本文提出的路径规划方法,完成导航功能,具有较高的路径搜索效率和避障成功率。
1 系统总体架构
系统选用上下位机的架构进行设计,其中上位机选用Intel酷睿i3处理器,连接激光雷达和姿态传感器,分别完成机器人距离信息和位姿信息的采集,下位机为STM32F103C8T6单片机,通过单片机输出的PWM(Pulse Width Modulation,脉冲宽度调制)控制舵机和电机,完成机器人转角和速度的底层驱动控制。上位机搭载ROS,ROS是一个专门用于机器人开发的框架,提供适当的操作系统服务,不仅包含一系列的工具、库和约定等,而且其分布式管理的特点极大程度地提高了开发效率。系统利用上位机主控电脑强大的计算处理能力,完成算法的运行与计算。机器人搭载的传感器不断采集数据,上位机进行数据处理,将采集到的环境信息最终计算转换为机器人移动的角速度与线速度,通过串口传输与下位机进行通讯,最终下位机接收到速度信息后,完成机器人的移动控制。系统总体架构图如图1所示。
2 全局路径规划方法
全局路径规划是一种基于地图的静态路径规划方法,利用已建立的环境地图信息和位置信息,机器人在开始移动前完成路径的搜寻[4]。基于该路径在环境无动态障碍增加的条件下,应满足所搜寻路径无限接近理想的最短路径,且具有较高的搜索效率。
A*算法作为一种全局路径规划算法,其继承了Dijkstra算法遍历点集的思想,并在此基础上加入了启发式搜索的思想。由于Dijkstra算法需要遍历全部点集,在实际应用过程中虽然可以得到较优的路径,但是搜索效率有所欠缺,于是A*算法引入评估函数,不仅评估搜索点到目标点的评分估值,而且增加起始点到搜索点的评分估值,通过为两者评分估值赋予不同权重,将最终评分作为启发式搜索的代价,可极大地提高算法运行效率。评价函数如式(1)所示:
H(s)函数的选取决定着A*算法的成败,在评估当前节点到目标节点的代价值即H(s)时,应综合考虑搜索效率、是否有最优解等因素。可选用式(2)中的欧几里得距离作为评估,使用此方法可得到的路径较短,但是会增加计算量,使得搜索效率有所下降,在应用于对搜索效率要求较高的场景时,可选用式(3)中的曼哈顿距离作为评估。定义(xi,yi)和(xj,yj)分别表示当前和目标点坐标,评价公式如式(2)、式(3)所示:
使用A*算法进行路径规划时,以当前搜索点为父节点,通过评价函数确定下一个与父节点连通的子节点并记录下来,通过不断更新子节点,直至子节点更新为目标点时算法完成遍历,通过记录的子节点回溯父节点,构成完整的点集,即为获得的规划路径。
3 局部路径规划方法
局部实时路径规划采用DWA算法,即动态窗口算法,在机器人完成全局路径规划后[5],每次做出移动动作前调用此算法,以判断在该固定窗口范围内全局规划的路径是否安全,计算出最优的实时路径完成机器人的控制[6,7]。该算法原理为通过对机器人移动的速度不断采样[8],同时用当前采样速度来模拟机器人在固定时间内的移动轨迹,并进行综合评价,选用最优路径完成对机器人的实时控制。DWA算法具体流程如下。
3.1 运动建模
系统的机械结构通过舵机进行转向,通过电机提供前进动力[9]。根据机器人运动原理,可以得到机器人的运动速度(vt,ωt),其中,vt为机器人的线速度,ωt为机器人的角速度,设定机器人航向角为θ,则在t+1时刻机器人的运动位姿方程如下:
3.2 速度采样
通过对机器人速度的不断采样,完成机器人在该运动速度下的运动轨迹模拟,在进行速度采样的过程中,可根据机器人传感器的性能、电机的性能、驱动的性能等因素,对运动速度进行限制,以保证机器人具有最佳的运动性能。
3.3 综合评价
选用式(7)的指定评价函数对移动机器人的轨迹进行综合评价,通过对不同路径的结果分析,得到最为合适的局部路径,可以有效地躲避障碍并且极大程度地贴近原始全局路径。
其中,vn表示机器人实时速度,Gn表示移动到目标点的代价,ΔGn表示当前路径的距离和全局规划路径距离的代价值差值,Hn表示移动到达目标点的代价。通过调整式(7)中四个常数α、β、γ、δ,进而调整不同代价所占权值,从而求解局部路径中的最优规划,最终将最优规划信息转换为移动机器人的速度指令进行发布。
4 实验
4.1 仿真与分析
使用MATLAB建立带障碍物的栅格地图,假设0代表无障碍可通过处即白色部分,1代表有障碍物即黑色部分,设置起始点与目标点,分别使用Dijkstra算法和A*算法进行路径规划,所得规划路径如图2、图3所示。
在保证起始点坐标与目标点坐标不发生改变的情况下,进行10次重复实验,记录实验数据如表1所示。
通过仿真所得规划路径可以看出,两种路径规划算法均可避开障碍物,顺利到达终点,得到较优的路径。根据实验数据可知,A*算法所得路径与Dijkstra算法所得路径长度几乎一致,但是搜索时间明显缩短,搜索效率较Dijkstra算法更高。
4.2 实物环境实验
利用搭建的基于ROS的导航机器人平台,在实物环境下进行路径规划技术的实验。分别选择矩形环境、环形环境、不同角度的U形环境进行实验,利用机器人构建环境地图后,设置目标点导航,进行路径规划实验。全局路径规划算法选择A*算法,局部路径规划使用DWA算法。如图4所示是机器人导航过程中起始点与目标点间完成的路径规划。
保证每次机器人的出发点与目标点相同的条件下,在不同环境中分别在静态条件和设置动态障碍物条件下进行实验,重复20次实验,分别将实验结果记录在表2中。
通过实验结果统计可知,使用本文提出的方法,可满足移动机器人导航过程中对于路径规划的要求。不仅可以规划出较优的全局路径,使得机器人获得较短的行进路线,而且对于设置的动态障碍物,有着较高的避障成功率。
5 结 论
对于全局路径规划,经典的Dijkstra算法与本文介绍的A*算法相比,虽然可规划出更优的路线,但是耗时较长,A*算法拥有更高的效率,更适用于对实时性要求较高的导航机器人。经过实验验证,本文提出的基于ROS的导航机器人路径规划方法,在实际应用中有着良好的效果,不仅可在较短时间内完成全局路径规划,且可以得到较短的路线,而且对于动态的障碍躲避,局部路径规划也有着较高的成功率。
参考文献:
[1] 彭晓燕,谢浩,黄晶.无人驾驶汽车局部路径规划算法研究 [J].汽车工程,2020,42(1):1-10.
[2] ZHANG C. Path Planning for Robot Based on Chaotic Artificial Potential Field Method [J]. IOP Conference Series:Materials Science and Engineering,2018,317(1):12-56.
[3] ZHANG Y,CHEN H Y,WASLANDER S L,et al. Hybrid Trajectory Planning for Autonomous Driving in Highly Constrained Environments [J].IEEE Access,2018,6:32800-32819.
[4] VOISAN E I,PAULIS B,PRECUP R E,et al. ROS-based robot navigation and human interaction in indoor environment [C]//IEEE Jubilee International Symposium on Applied Computational Intelligence and Informatics. IEEE,2015:31-36.
[5] 鮑庆勇,李舜酩,沈峘,等.自主移动机器人局部路径规划综述 [J].传感器与微系统,2009,28(9):1-4+11.
[6] 张琳,章新杰,郭孔辉,等.未知环境下智能汽车轨迹规划滚动窗口优化 [J].吉林大学学报(工学版),2018,48(3):652-660.
[7] AFANASYEV I,SAGITOV A,MAGID E. ROS-Based SLAM for a Gazebo-Simulated Mobile Robot in Image-Based 3D Model of Indoor Environment [C]//International Conference on Advanced Concepts for Intelligent Vision Systems,ACIVS 2015. Switzerland:Springer,Cham,2015:273-283.
[8] 胡思旺,李春杰.基于ROS的自主导航系统仿真设计 [J].自动化与仪表,2019,34(07):80-83+108.
[9] 孙小霞,石长华.基于PIC16F873单片机的汽车自适应巡航控制系统的研究 [J].现代信息科技,2019,3(17):42-44.
作者简介:李峥(1997—),男,汉族,吉林汪清人,本科,研究方向:测控技术与仪器。