一、操作步骤
-
建图功能包:
- gmapping
- hector_slam
- cartographer
- ORB_SLAM
-
建图指令:
-
gmapping
roslaunch mbot_gazebo mbot_laser_nav_gazebo.launch # 启动Gazebo并加载三维地图 roslaunch mbot_navigation gmapping_demo.launch # 启动gmapping导航包,并打开rviz进行建图 roslaunch mbot_teleop mbot_teleop.launch # 打开移动机器人键盘控制节点 rosrun map_server map_saver -f cloister_gmapping # 保存地图,并命名为 cloister_gmapping- 保存地图后得到
.pgm和.yaml文件:.pgm文件为地图图片(可用ps更改该图以修改地图);.yaml包含要加载的图片名称、地图分辨率(单位:m)、起始坐标(表示pgm图片左下角在rviz坐标系中的坐标)等等信息; - 三维地图(.world)在
mbot_laser_nav_gazebo.launch内更改(如果使用雷达信息建图的话)
- 保存地图后得到
-
-
导航指令:

roslaunch mbot_gazebo mbot_laser_nav_gazebo.launch # 启动Gazebo仿真,并加载地图 roslaunch mbot_navigation nav_cloister_demo.launch # 启动导航节点,并打开rviz可视化 python cal_dist.py # 计算实际导航距离-
操作细节:
- 通过rviz中的
2D Pose Estimate选定移动机器人初始的大致位姿 - 通过rviz中的
2D Nav Goal选定导航目标点的位姿
- 通过rviz中的
-
导航框架:move_base
-
定位方法:
-
里程计定位:只通过里程计数据处理/base和/odom之间的的TF变换
注:/map与/odom坐标系均为全局坐标系,但/map系的原点为建图时原点(起点),/odom系的原点为导航时移动机器人放置的起点
-
AMCL定位:可以估算机器人在地图坐标系/map下的位姿信息,可以提供/base、/odom、/map之间的TF变换
-
-
节点配置:
- move_base:
mbot_navigation/launch/move_base.launch - amcl:
mbot_navigation/launch/amcl.launch
- move_base:
-
轨迹绘制:
- 每次需要重新绘制轨迹时,需先停掉
cal_dist.py,然后刷新(关闭再打开)rviz中的path消息。
- 每次需要重新绘制轨迹时,需先停掉
-
本文详细记录了使用ROS进行机器人建图(SLAM)和自主导航的操作步骤,包括gmapping、hector_slam、cartographer等工具的运用,以及如何解决Cartographer在建图过程中可能遇到的问题,提供了实用的踩坑指南。

5827

被折叠的 条评论
为什么被折叠?



