基于ROS 的室内移动机器人多目标点导航研究与实现
2024-04-20邹看看张军王栋
邹看看,张军,王栋
(安徽理工大学 人工智能学院,安徽淮南,232001)
0 引言
近年来,机器人技术日新月异[1],移动机器人在未知环境中的自主导航问题导航机器人的研究已引起科研工作者的极大兴趣,特别是随着智能机器人在工业生产、物流仓储搬运、灾害救援等领域的广泛应用[2]。移动机器人自主导航的关键技术包括两个方面。一方面,同时定位与地图构建(SLAM)技术[3]是实现机器人自主导航的前提。SLAM 技术通常与激光雷达或深度相机搭配使用,机器人通过搭载的传感器获得未知环境的点云数据以及深度数据,随着机器人不断感知周围环境,机器人利用得到的数据完成对周围环境二维栅格地图的构建。另一方面,机器人定位与路径规划是实现机器人自主导航的关键。路径规划使机器人在复杂的环境中规划出一条合适的路线到达目标点,并且在移动过程中避开临时出现的障碍物。机器人定位确定机器人当前所在位置,帮助机器人按照设定的路线行驶。
文中基于自行搭建的机器人平台,构建一整套自主导航系统,使机器人能够在未知环境下进行栅格地图构建,并且在构建的环境地图中实现多个目标区域的巡检任务。
1 机器人移动平台
移动机器人平台采用差速底盘结构,机器人平台如图1所示,前轮的作用是支撑底盘,两个后轮为驱动轮。可以实现复杂环境中灵活移动,相比于全向移动机器人成本更低,适合大规模生产。同时差速移动机器人运动学解算简单,计算量小,开发效率高[4]。移动机器人采用模块化设计思想,建立基于移动机器人平台的建图和导航的系统框架。根据硬件功能不同,下面分别对两大系统做详细介绍。器人移动平台可分为两大部分:上位机系统和下位机系统。
图1 移动机器人平台
1.1 上位机系统设计
上位机系统主要负责复杂算法的实现,总体框架图如图2 所示。上位机系统由两部分组成树莓派主机和在PC 从机,两者通过WiFi 进行通信。树莓派相较于PC 具有体积小,易搭载的优点,更适合装载在室内小型机器人。然而树莓派计算能力有限且没有显示器,为了实现人机交互和远程控制,通过WiFi 分布式通信将树莓派与PC 端连接[5]。树莓派作为上位机系统的主机,主要负责建图算法的数据处理,主要包括基于激光雷达的Gmapping 算法、局部路径规划算法、全局路径规划算法、多传感器融合算法和同下位机系统实时数据交互。PC 端作为上位机系统的从机,主要负责人机交互、远程控制以及一些组件的使用。ROS 系统下主机与从机的配合使用大大提高了机器人系统的开发效率。
图2 上位机系统框架图
1.2 下位机系统设计
移动机器人平台采用STM32VET6作为控制核心,下位机系统设计框图如图3所示。下位机系统以模块化设计思想将整个系统分为四个部分:电机控制、IMU 数据读取、里程计数据读取、ROS 数据通信以及LCD 屏信息显示。下位机系统根据里程计数据以及上位机系统下发的目标转速进行PID 控制[6]。里程计数据与IMU数据也将通过USART 通信上传到ROS 系统,并进行算法融合,推算机器人的位姿信息。
图3 下位机系统框架图
2 二维栅格地图创建
ROS 支持多种SLAM 算法,主流的是Hector SLAM 和Gmapping,其中Hector SLAM 仅依靠激光雷达就可以正常工作;Gmapping 算法则在激光雷达的基础上,融合了电机编码器里程计等信息,其建图稳定性高于Hector SLAM。本文使用的是Gmapping。Gmapping 包含了粒子滤波算法,为开发者免去内部复杂实现,提高开发效率。二维栅格地图构建流程如图4 所示,主要完成对周围环境二维栅格地图的构建,为后续的机器人定位与多点导航提供基础。
图4 地图创建流程图
使用Gmapping 功能包构建地图时最重要的一步是Gmapping 功能包参数设计,以下是部分参数设计:
每一个参数都影响建图效果[7]。其中,map_update_interval 是地图刷新频率,若数据设置过大会导致建图效率低。相反会占用过多的树莓派资源导致发热卡顿。maxUrang 是激光雷达能够探测的最大值,本文使用的激光雷达最大检测范围为25 m,此处设置为20.0 足够大部分室内场景使用。particles 是Gmapping 算法中的粒子数。合适的粒子数保证算法比较准确同时有较高的速度。
3 导航系统构建
导航系统中的关键技术是定位和路径规划两方面。机器人路径规划是指机器人在指定的区域内规划出一条合理的从起始点到目标点的路径。move_base 功能包提供了基于动作(action)的路径规划实现[8],主要由全局路径规划和局部路径规划组成。机器人定位通过判断机器人的当前位置是否符合预期结果,确保机器人按照规划的路线前进。AMCL 功能包提供了定位功能,可实现机器人的准确定位。AMCL 功能包根据已有的地图使用粒子录波器推算机器人的具体位置。导航系统构建流程如图5 所示,实现多点导航功能。
图5 导航系统构建流程图
3.1 AMCL 功能包
AMCL 是一种自适应蒙特卡洛定位算法[9],利用使用激光雷达数据和地图信息来估计机器人在地图上的位置。在导航过程中会因为外界环境导致里程计出现误差,误差累计,从而引发到达目标点失败的问题。AMCL 功能包可以根据机器人的激光雷达数据,对机器人的位置进行估计[10]。AMCL 的估计流程如下:
(1)初始化粒子群:根据机器人所在大致位置,初始化一定数量的粒子。
(2)运动模型更新:根据机器人里程计数据,计算每个粒子的权重。
(3)传感器模型更新:根据激光雷达数据计算每个粒子的权重。
(4)重采样:根据粒子的权重,使具有较低权重的粒子被删除,较高权重的粒子被复制,并更加密集的表示机器人的位置。
AMCL 功能包基本参数设计如下:
其中Odom_model_type 为里程计模型选择,本文为差速机器人设置为diff,全向轮可设置为omni。Odom_frame_id 设置里程计坐标系。Base_frame_id 设置机器人极坐标系。Global_frame_id 设置地图坐标系。
3.2 move_base 功能包
move_base 功能包是由多个节点及其参数配置组成的复杂系统。其中,主要的节点包括了全局路径规划器和局部路径规划器,当机器人运动时,全局路径规划器会根据机器人目前位置坐标和目标点位置坐标,在地图上规划出一条可行的全局路径;而局部路径规划器则会根据机器人传感器数据实时地更新局部路径,避免机器人发生碰撞等意外事件[11]。同样,move_base 功能包也配置参数,以下是几份相关的文件。
3.2.1 通用参数配置
其中:robot_radius 为机器人半径,机器人底盘为圆形半径为0.13。obstacle_range 是将机器人周围2m 范围内的新的障碍物添加到地图中,raytrance_range 则是将不存在的障碍物从地图中删除。Information_radius 是障碍物的扩展半径,防止机器人发生碰撞。coservation_sources 是导航中需要的传感器,本文使用的是激光雷达。
3.2.2 全局代价地图参数设置
其中:update_frequency 的作用是确定代价地图更新频率,而publish_frequency[12]是确定代价地图发布的频率,这两个参数都被设定为1Hz。此外,transform_tolerance 的作用是确定等待坐标转换发布的最大延误时间,这个数值设定为0.5 秒。最后,static_map 的作用则是用于确定是否使用已有的地图来初始化全局代价地图,为了使用之前创建的二维栅格地图,这里设置为true。
3.2.3 局部代价地图参数设置
其中,局部代价地图与全局代价地图参数含义大致相同。但是因为室内环境的复杂性,局部代价地图static_map 设置为false,使用动态窗口。width 和height 局部地图的高度和宽度,这里都设置为2m。resolution 设置局部地图的分辨率为0.05,与静态地图分辨率保持一致。
4 建图和导航实验
为了验证软硬件设计的可行性,根据前文的地图构建方案以及导航系统方案,完成移动机器人平台的搭建,并对机器人平台二维栅格地图构建与多点导航功能进行测试。
4.1 二维栅格地图构建测试
试验场地选择宿舍楼茶水间和楼梯间两间房,如图6 所示。通过键盘控制节点远程控制机器人移动,机器人最大角速度设置为0.2rad/s,最大线速度设置为0.1m/s,低速行驶建图更加准确。机器人遍历整个环境后,地图效果如图7 所示。对比图6 和图7可以看出,构建的地图可以准确体现真实的环境特征。
图6 实验场地现场图
图7 实验场地地图创建效果图
4.2 导航实验
导航实验是在上节构建的地图的基础上进行的,机器人需要满足合理的路径规划,避免与障碍物发生碰撞,并且能够进行多点导航,到达各个设置的目标点。
在本次测试中,在地图上设置了0~16 共17 个目标点,机器人依次到达17 个点位,当到达目标点16 点后机器人又重新规划到0 点的路线进行下一次的循环,当然在机器人运行过程中也可以新增目标点。效果图如图8 所示。图8分别是9 点到10 点以及15 到16 点的导航效果图,可以看出路径规划平滑合理,与墙壁或其他障碍物保持一定距离,没有发生碰撞。机器人导航系统构建成功,成功到达各个目标点,实现多点导航功能。
图8 多点导航实验效果图
5 结论
论文以室内移动机器人多目标点导航系统研究与实现为目的,设计了移动机器人平台,该机器人平台上位机采用树莓派作为控制中心实现相关算法,下位机采用STM32 作为控制中心驱动电机与相关数据采集。基于搭建的实验平台完成了相关的实验。实验结果表明:该机器人移动平台能够完成室内复杂环境的栅格地图构建,且建图效果良好;并且基于构建的地图实现了多点导航功能。该项技术对于各种巡检机器人的导航定位系统的开发具有较高的参考价值。