品牌  【直播】  50强   整机  ​【联盟】  机构  【视界】  展会  招聘  云服务          微博   公众号AIrobot518 
【​今日焦点
【行业动态】
NEWS / 新闻中心
基于ROS系统移动机器人SLAM算法的研究与实现
来源: agv吧 | 作者: agv吧 | 发布时间: 1633天前 | 4551 次浏览 | 分享到:
近年来,随着我国机器人产业的快速发展,机器人已广泛应用于日常生活中的多个领域,移动机器人拥有对外部环境的动态感知、实时定位、自主导航、路径规划等能力,具有重要的理论意义和实际应用价值。基于ROS开源机器人开发平台,研究移动机器人SLAM算法及其实现。首先使用了ROS平台自带的仿真器Gazebo进行了仿真场景的搭建,然后利用turtlebot机器人对于自建场景进行建图测试,实现了机器人在仿真环境的定位与建图,完成了SLAM算法实现

摘要

近年来,随着我国机器人产业的快速发展,机器人已广泛应用于日常生活中的多个领域,移动机器人拥有对外部环境的动态感知、实时定位、自主导航、路径规划等能力,具有重要的理论意义和实际应用价值。基于ROS开源机器人开发平台,研究移动机器人SLAM算法及其实现。首先使用了ROS平台自带的仿真器Gazebo进行了仿真场景的搭建,然后利用turtlebot机器人对于自建场景进行建图测试,实现了机器人在仿真环境的定位与建图,完成了SLAM算法实现。

0 引言

从 20 世纪机器人诞生以来,经过多年的技术革新与发展,机器人技术由传统的只能在预设的熟悉环境中进行机械性重复运动的工业机器人,转变为具有自主定位、自主建图、自动导航的智能机器人。在未来,无人驾驶汽车、巡检机器人等设备的发展都需要用到机器人的路径规划与自主导航功能。因此,移动机器人的自主导航能力至关重要。本文利用 SLAM 技术实现移动中的不断自主定位,同时把对环境的感知建立起全局的地图,移动机器人便可以通过算法制定最优的路径。

1 ROS系统与 SLAM技术简介

Robot Operating System 简称 ROS,是一个机器人软件平台。ROS 在机器人项目开发的过程中提供了大量的实用工具和 package,凭借开源优势,除了 ROS 官方发布的功能包之外,在多个互联网平台上有全球的机器人软件开发者发布的特殊功能的包,为其他机器人开发者节约了大量的时间和精力,大大提高了机器人开发效率[1]。
SLAM( Simultaneous Localization and Mapping) 其意为即时定位与建图技术。将一个机器人放置于完全陌生的环境中,可以通过 SLAM 技术将环境中的地图在移动的过程中建立出来,同时定位自身所处位置。目前,有以下几种主流的 SLAM 算法: Hector SLAM、Gmapping、Karto SLAM、Cartographer[2]。

2 SLAM算法的选择与分析

Gmapping 是基于滤波 SLAM 框架的开源算法,也是目前应用最多的 2D SLAM 方法,利用激光点云数据结合机器人的位姿进行定位建图。建立精确栅格地图的过程中会使用到RBPF( Rao-Blackwellised Particle Filter) 粒子滤波算法[3],将定位和建图过程分离,先定位再建图。Hector-SLAM 算法在建图过程中会因移动机器人的运行速度过快或者环境中特征点较少等因素,出现定位不准确,建图过程中产生“打滑”现象[4]。而 Gmapping 与 Hector SLAM 的重要区别是 Gmapping 加入了里程计数据,避免了“打滑”现象,并且对激光雷达频率要求低。因此 Gmapping 算法比 Hector SLAM 算法稳定、建图效果好。
综合考虑实际情况,本项目采用了 Gmapping 方法作为移动机器人的定位建图的策略。主要考虑两个方面:

①机器人安装的是低成本激光传感器,Gmapping 算法对激光传感器频率要求低,并且机器装有里程计传感器可以辅助 Gmapping 算法定位建图。
②仿真和应用场景面积相对较小,依据 Gmapping建图的基本原理,在构建小场景地图时所需计算量小并且精度高,因此使用 Gmapping 算法是比较适合的。

3 Gazebo下的模型搭建与仿真实现

3. 1 仿真模型搭建

首先通过终端打开 Gazebo 软件,在指令中执行 roslaunch命令打开 Gazebo 并非直接打开,这样的区别在于用 roslaunch命令打开后 Gazebo 的运行就包含了一个通信节点,而当 Gazebo 的启动信息放置在 launch 文件中作为节点时,可以把后续的运行与之结合起来,避免其脱离整个工程而单独存在,在后续的执行过程中可以把多个节点置于同一个 launch 文件中,这样就可以通过单一 launch 文件的运行指令启动多个节点,此方式极大地简化了整个项目各个部分。结合 Gazebo 的强大仿真能力,我们根据项目实际情况,自 建 仿 真 环 境,预 了 仿 真场景。
模型的创建有两种方法: 第一种是直接用代码写一个URDF 的模型文件,以此来描述模型的特征。URDF 文件是一种特殊的 xml 文件格式,是一种描述型文件,通常用于机器人模型的创建。通过 URDF 文件建立机器人模型要对各部分概念有一定的认识,首先是 link 和 joint,link 之间的连接通过joint 实现,其类似与机器人的关节的存在,而 link 的放置还需要设置位置信息和形状信息,这样看来 link 并非是质点的存在,所以对于 link 的描述不仅需要 3 个维度的坐标信息,还要有其各个维度的旋转信息,也即绕 x 轴的偏转( yaw) 、绕 y 轴的俯仰( pitch) 、绕 z 轴的滚动( roll) ,同时此处的偏转信息使用的是弧度进行的描述。在 link 的放置中要避免产生重合,所以又引入了 collision 标签对其进行约束。第二种是通过 3D 建图软件 solideworks 作出机器人模型的形状,然后导出成 URDF 文件。综合考虑后,选用代码实现了机器人模型的创建。

3. 2 仿真环境 SLAM 实现

前文中成功完成了 Gazebo 中场景模型的搭建,以下将在自建的环境中进行 SLAM 算法的实现,在程序的运行中为了清楚地了解各个节点的话题订阅以及发布情况,使用 ROS 系统指令 rqt_graph 可以查看各个节点之间的通信联系。软件会自动生成节点间关系图。
节点关系图可以辅助解决调试过程中的问题,在图中可以清楚地看到各个节点的运行情况和各个节点之间的话题订阅关系,在调试中出现问题可以快速定位是否有节点订阅信息出错以及是否有节点缺失。
通过键盘控制指令让 turtlebot 在场景中行进,在键盘控制时需要注意让键盘控制指令运行的所在终端始终浮于 rviz 的上方,否则无法激活键盘控制。确保控制机器人在预设场景中得到充分的运动,否则建图将不完整,影响建图效果。最终形成仿真中机器人在场景充分运动后生成的 2D 平面地图,成功完成了机器人在仿真环境中 Gmapping 方法的建图与定位。

4 结语

本文对 ROS 以及 SLAM 技术作了简单的阐述,深入介绍了Gmapping 方法的基本特征、适应场景; 运用 Gazebo 工具进行了仿真实现,介绍了仿真模型的搭建过程、仿真模型的 URDF 文件编写、运行 turtlebot 在自建的场景中完成了建图与定位工作,即 SLAM 算法的仿真实现。对于不同功能的智能移动机器人,自主导航都是其根本所在,在载体平台依据需求加上不同的传感器则可实现所需要求。在未来,移动机器人的 SLAM 技术将进一步优化并将更加广泛应用到人们的日常生活中,更好地服务于人类社会。

参考文献:

[1] 程新景. 煤矿救援机器人地图构建与路径规划研究[D].北京: 中国矿业大学,2016.
[2] 李阳. 基于 ROS 系统移动机器人 SLAM 算法研究与实现[D]. 西安: 西安工程大学,2018.
[3] 王焕钦. 新型光电测距与三维成像技术研究[D]. 合肥:中国科学技术大学,2009.
[4] 廖方波. 基于传感器融合的移动机器人定位及地图构建技术的研究[D]. 北京: 北京交通大学,2014.
基金项目:
江苏省大学生创新创业训练计划( 201913579013H) 。
江苏高校“青蓝工程( SB1703) ”。
通信作者:
杜边境( 1985 - ) ,男,江苏徐州人,硕士研究生,助教,研究方向: 智能控制机器人视觉。


​​​​第六期“全国移动机器人行业巡回调研活动”合作商招募中

​报名热线:400-0756-518​​​​

活动时间:2023-09-01至11-30

  • 旷视接待21国驻华使节 共探智慧城市新机遇
  • 优必选与东风柳汽签订人形机器人采购合同,已收到预付款
  • 受邀参加央视《赢在AI+》,九曜智能亮相2050大会
  • 破解具身智能"数据困局"!松灵发布具身数据服务方案
  • 亮相LogiMAT China!磅旗科技携医药全场景AI无人化方案圈粉无数!
  • 安森美:AMR移动机器人一站式解决方案供应商,站在“巨人的肩膀上”平地高楼起
  • 大模型技术助力交管智能升级,海康威视亮相第十五届交博会
  • 天链机器人亮相成都工博会 以创新科技驱动产业升级