机器人自主导航的流程并不复杂,和我们日常使用地图App的导航功能非常相似。
首先,选择一个导航的目标点,如图1所示的Goal,可以在地图App里直接输入,也可以在机器人中人为给定,目的是明确机器人“去哪里”。 接下来,在进行路径规划前,机器人还得知道自己“在哪里”,地图App可以通过手机中的GPS获知定位,机器人在室外也可以用类似的方法。如果在室内,GPS的精度不够,那么可以使用SLAM技术进行定位,也可以使用后面将要介绍的AMCL——一种全局定位的算法进行定位。 回想一下地图App中的操作,接下来App会画出一条连接起点和终点的最优路径,这就是路径规划的过程。规划这条最优路径的模块被称为全局规划器,也就是站在全局地图的视角,分析如何让机器人以最优的路径抵达目的地。 规划出路径后,机器人就开始移动了,在理想状态下,机器人需要尽量沿着全局路径运动,这个过程中难免会遇到临时增加的障碍物等问题,需要机器人动态决策。此时,机器人会偏离全局路径,动态躲避障碍物,这个过程就需要机器人搭载一个局部规划器。 局部规划器除了会实时规划避障路径,还会努力让机器人沿着全局路径运动,也就是规划机器人每时每刻的运动速度,这个速度就是之前频繁用到的cmd_vel话题。将速度指令传输给机器人底盘,底盘中的驱动就会控制机器人的电机按照某一速度运动,从而带动机器人向目标前进。
|