简介

场景:在 7.2.1 导航实现01_SLAM建图中,我们是通过键盘控制机器人移动实现建图的,而后续又介绍了机器人的自主移动实现,那么可不可以将二者结合,实现机器人自主移动的SLAM建图呢?

上述需求是可行的。虽然可能会有疑问,导航时需要地图信息,之前导航实现时,是通过 map_server 包的 map_server 节点来发布地图信息的,如果不先通过SLAM建图,那么如何发布地图信息呢?SLAM建图过程中本身就会时时发布地图信息,所以无需再使用map_server,SLAM已经发布了话题为 /map 的地图消息了,且导航需要定位模块,SLAM本身也是可以实现定位的。

该过程实现比较简单,步骤如下:

编写launch文件,集成SLAM与move_base相关节点

执行launch文件并测试

实现步骤

编写launc文件

<launch>

<!-- 包含slam文件 -->
<include file ="$(find nav_demo)/launch/nav_slam_01.launch" />
<!-- 包含movebase文件 -->
<include file ="$(find nav_demo)/launch/nav_movebase_test.launch" />

</launch>

运行gazebo仿真环境

然后执行launch文件

在rviz中通过2D Nav Goal设置目标点,机器人开始自主移动并建图

使用 map_server 保存地图

最终现象

move_bas111e00.gif

最后修改:2023 年 11 月 10 日
如果觉得我的文章对你有用,请随意赞赏