SLAM – 使用hector建图
Hector slam利用高斯牛顿方法解决scan-matching问题,需要雷达 (LRS) 的更新频率较高(40HZ),测量噪声小。所以在制图过程中,需要robot速度控制在比较低的情况下,建图效果才会比较理想,这也是它没有回环 (loop close) 的一个后遗症;不需要使用里程计,所以使得空中无人机及地面小车在不平坦区域建图存在运用的可行性.
启动底盘通讯与雷达
在主控节点启动与底盘余雷达的通讯,同时程序会将IMU姿态与位置融合发布odom位置信息
roslaunch lingao_bringup robot.launch
等待IMU校准后出现First IMU message received
并且没有错误基本上就是启动成功
启动hector建图
启动hector节点。
roslaunch lingao_slam slam.launch slam_methods:=hector
通过图片可看到下图无错误,既是启动成功
启动本地可视化rviz
在本地PC主机启动rviz在窗口内可看到机器人tf位姿数据、激光节点、地图数据
roscd lingao_slam/rviz/
rviz -d slam.rviz
现在开始建图,使用航模手柄或者键盘控制小车走进行建图。
结束建图和保存地图
保存地图使用以下命令(在主控节点输入)
roslaunch lingao_slam save_map.launch
或者直接使用map_server服务保存在目录下:
roscd lingao_navigation/maps/
rosrun map_server map_saver -f map
保存地图后可看到house.pgm和house.yaml文件就是本次建的地图
结束建图在开启建图的终端下ctrl+c
取消即可