APP下载

室内移动机器人自主定位导航系统设计

2020-12-02周旭龙赵言正杨玥旻

中国民航大学学报 2020年5期
关键词:移动机器人障碍物全局

周旭龙,赵言正,杨玥旻

(上海交通大学机械与动力工程学院,上海 200240)

随着社会进步与发展,室内移动智能机器人成为目前机器人的热门研究方向[1]。自主定位与导航系统设计是实现室内移动机器人自动化的关键技术。定位精度及导航效率决定了机器人的推广应用程度。但室内环境普遍存在物体布局复杂、动态因素多、部分环境纹理缺失、光照强度易随动态物体移动发生变化等问题,限制了移动机器人在家庭、车间等室内环境中的应用。针对以上问题,近些年出现了多种机器人定位导航技术,主要包括:视觉SLAM(simultaneously localization and mapping)以及激光SLAM。基于视觉SLAM的定位导航技术按照图像特征提取方式分为: 特征点法和直接法。特征点法[2-3]稳定性高,对光照、动态物体不敏感,但需提取图像特征点,其在纹理缺失的环境中容易跟丢,此外,提取图像特征点需耗费大量时间。直接法[4-5]可省去提取特征点的时间,但要求有像素梯度,且直接法对单个像素没有区分度,容易受到光照影响从而导致定位失败[6]。

基于激光SLAM 的定位导航技术通过激光雷达感知环境信息,受光照影响小、不受纹理缺失影响、稳定性高,在室内复杂环境中表现优于视觉SLAM。激光SLAM 技术主要通过扩展卡尔曼滤波算法[7-8]或粒子滤波算法[9]进行定位。卡尔曼滤波算法虽可以处理非线性模型的状态估计问题,但只适用于高斯噪声模型,对多峰分布的系统表现较差。粒子滤波算法适用于任意噪声模型,可很好地处理多峰分布[10]。移动机器人路径规划主要分为:全局路径规划和局部路径规划,其中局部路径规划反映机器人在移动过程中处理动态障碍物的能力。寿佳鑫等[11]和Cheng 等[12]在设计的激光SLAM 系统中使用动态窗口法[13](DWA,dynamic window approach)规划局部路径,该方法通过将有效轨迹可行集限制为具有恒定速度段的子集来提高效率,但机器人移动时间可能不是最优[14]。按照运动方式划分,轮式移动机器人主要包括差分和全方位两类。全方位轮式移动机器人可实现各方向运动,比差分轮式移动机器人更灵活,但控制复杂度更高。目前已提出的自主定位导航系统主要适用于差分运动机器人,且普遍存在定位不够准确及遇到动态障碍物不能及时躲避等问题[11-12,15]。

针对以上问题,设计了一套基于激光雷达的全方位移动机器人自主定位和导航系统。通过融合粒子滤波算法和里程计信息对机器人进行定位,加快粒子滤波收敛速度,缩短定位时间。采用A*和紧绷带(TEB,timed elastic band)算法规划全局和局部最优路径,机器人可快速绕过动态障碍物并抵达导航终点。该系统适用于全方位移动机器人,可更好地满足各种情况下室内移动机器人自主定位和导航需求。

1 研究设计与方法

1.1 硬件平台设计

以大疆创新公司生产的轮式机器人作为基础硬件平台,进行室内移动机器人自主定位和导航系统开发,如图1所示。机器人采用麦克纳姆轮,支持全方位移动。动力系统由无刷直流减速电机和电子调速器组成,控制板为STM32。上位机计算平台选用Nvidia Jetson TX2,激光雷达选用SlamTec 公司的A3 激光雷达,并搭建6 m×8 m 的室内实验场地。

图1 移动机器人机械结构Fig.1 Mechanical structure of mobile robot

1.2 软件框架设计

机器人操作系统(ROS,robot operating system)是编写机器人软件的灵活框架,其集成了大量的工具、库、协议,提供了类似操作系统的功能,包括:硬件抽象描述、底层驱动程序管理、共用功能执行、程序间消息传递、程序发行包管理。针对系统中节点的通讯,ROS 提供了一种基于话题发布/订阅的灵活通讯机制,该机制可方便快捷地建立多机器人通信网络,极大地简化了机器人平台下的复杂任务创建与稳定行为控制[16]。

机器人定位导航系统以传感器数据采集→定位→路径规划→下位机的环路进行架构,不同模块以ROS 功能包的形式进行开发和维护,数据流如图2所示。

图2 系统数据流Fig.2 System data flow

系统基于ROS 分布式架构,各功能模块集成在不同的功能包中,分别为:①中心模块,集成传感器信息(陀螺仪、轮式里程计等)、嵌入式控制平台(执行实时任务,如闭环PID 控制、数据采集等),通过嵌入式通信接口进行传感器信息采集和机器人控制,同时发布机器人位姿;②激光雷达模块,负责发布激光雷达采集到的环境信息;③机器人定位模块,负责机器人定位,同时发布准确的机器人位姿信息,用于地图构建和机器人导航;④地图模块,用于建造环境二维栅格地图;⑤代价地图模块,负责维护代价地图,集成了静态地图层、障碍物层和膨胀层,用于运动规划模块;⑥路径规划模块,负责机器人的全局路径规划和局部路径规划,该模块依赖实时更新的代价地图、里程计信息及定位信息,最终输出速度和加速度控制量至底层控制板。

1.3 定位功能实现

定位功能是移动机器人导航系统中的关键性节点。机器人在特定环境中,通过获取激光雷达、单轴惯性测量单元、轮式里程计等传感器采集到的自身信息及周围环境信息,经过特定算法处理,最终得到机器人坐标系到地图坐标系的变换关系,即机器人在地图中的位姿。

定位算法采用自适应蒙特卡洛定位(AMCL,adaptive Monte Carlo localization)算法,该算法是一种适应机器人二维运动的算法,基于已有地图,使用粒子滤波器估计机器人的后验[17]。定位过程如图3所示。

图3 AMCL 算法过程Fig.3 Process of AMCL algorithm

定位功能节点需要订阅静态地图、里程计定位信息、激光雷达数据、预估的机器人初始位姿,最后输出机器人在地图坐标系中的位姿、粒子滤波器中粒子的位姿及轮式里程计坐标系与地图坐标系的变换关系。定位节点数据流如图4所示。

图4 定位节点数据流Fig.4 Data flow of localization node

1.4 导航功能实现

1.4.1 全局路径规划

全局路径规划是导航过程首先需要实现的功能,在给定目标位置后,根据全局代价地图,通过搜索得到1 条最短的无碰撞的路径(一系列离散坐标点),然后作为输入传递给局部路径规划用以控制机器人的具体运动。

A*算法[11]是静态网路中求解最短路径最有效的方法。对于二维栅格地图,A*算法的数学描述可表示为

其中:f(n)为机器人经由节点n,从起点抵达目标点的代价估计函数;g(n)为在状态空间中从初始节点到节点n 的实际代价函数;h(n)为从节点n 到目标点最优路径的估计代价函数。机器人规划全局路径时,从全局代价地图获得静态网路。

全局路径规划节点需要订阅机器人在地图坐标系中的位姿、表述静态层和障碍物层的全局栅格代价地图及全局路径规划节点,最后输出全局路径规划结果、实时反馈的规划状态及规划的全局路径。全局路径规划节点数据流如图5所示。

图5 全局路径规划节点数据流Fig.5 Data flow of global planning node

1.4.2 局部路径规划

机器人在自主导航过程中,除了全局路径规划,还要具备躲避动态障碍物的能力,即局部路径规划。局部路径规划依赖全局路径规划模块输出的最优路径,计算出机器人避免与障碍物发生碰撞的最优速度。局部路径规划采用TEB 算法,算法建立了轨迹执行时间目标方程,根据设置的与障碍物需保持的安全距离及动力学约束,对机器人实际轨迹进行优化,最终得到机器人的速度信息[8]。

局部路径规划节点需要订阅地图坐标系和轮式里程计坐标系的变换关系、表述障碍物层的局部栅格代价地图、局部路径规划节点、规划的全局路径,输出局部路径、机器人加速度及实时规划状态。局部路径规划节点数据流如图6所示。

图6 局部路径规划节点数据流Fig.6 Data flow of local planning node

2 仿真与场地实验

针对定位和导航功能,首先在Stage 仿真器中进行地图构建及定位和导航功能仿真实验,然后在搭建的实验场地中进行定位和导航实验。

2.1 仿真实验

首先配置.world 文件,在Stage 仿真环境中加载实验场地和机器人,然后通过键盘控制机器人在仿真场地中移动,实现仿真环境地图构建。

在仿真环境中,移动机器人进行定位功能仿真。在机器人移动过程中观察激光雷达扫描数据与地图匹配程度。实验过程中激光雷达扫描数据与地图障碍物高度匹配,表明机器人定位精度较高。接下来测试全局和局部路径规划功能。在Rviz 中指定导航终点,让机器人自主移动,同时在机器人导航路线中放入障碍物,阻塞已经规划好的路径。在指定导航终点后,机器人能自主规划1 条最优的全局路径,躲避静态障碍物。当移动过程中遇到动态障碍物时,机器人会重新规划1 条绕过动态障碍物、抵达导航终点的路线。导航功能仿真过程如图7、图8所示。

图7 Stage 仿真环境Fig.7 Simulation environment in Stage

图8 仿真环境中导航过程Fig.8 Navigation process in Stage

2.2 实际场地实验

实际场地中,机器人快速移动会产生打滑现象。为验证此类情况下定位与导航功能的精度与稳定性,进行实际场地实验。在导航过程中,机器人的初始定位不够准确,主要是因为不能将机器人准确地放置到设定的初始位置,场地误差也会影响到定位精度。随着机器人移动,定位趋于准确,并能准确地移动至导航终点,如图9、图10 所示。

图9 机器人和实验场地Fig.9 Robot in experimental site

图10 实际场地中导航过程Fig.10 Navigation process in real site

接下来测试机器人能否准确躲避导航过程中的动态障碍物。在场地中放入另外1 台机器人作为动态障碍物,如图11 所示。在机器人导航过程中,移动另外1 台机器人,阻塞已经规划的全局路径。机器人检测到作为障碍物的机器人时会重新规划1 条绕过障碍物机器人并抵达终点的路径。

图11 躲避移动障碍物Fig.11 Moving obstacle avoidance

3 结语

提出一种基于激光SLAM 的全向移动机器人自主定位和导航系统。

1)通过激光雷达获取环境信息,融合单轴惯性测量单元和轮式里程计,通过AMCL 算法进行机器人定位,定位收敛速度快且精度较高。高精度的机器人位姿信息可以有效地应用于地图构建和导航功能。

2)基于A*算法规划机器人全局路径,为机器人规划出1 条最优的全局路径。

3)基于TEB 算法进行局部路径规划,当导航过程中遇到障碍物时,能准确、快速地躲避障碍物,并重新规划出时间最优路径,抵达导航终点。

猜你喜欢

移动机器人障碍物全局
基于改进空间通道信息的全局烟雾注意网络
移动机器人自主动态避障方法
移动机器人路径规划算法综述
高低翻越
室内环境下移动机器人地图构建与路径规划技术
赶飞机
月亮为什么会有圆缺
落子山东,意在全局
基于多传感器融合的机器人编队ADRC控制
记忆型非经典扩散方程在中的全局吸引子