SLAM – 使用karto建图
KartoSLAM是基于图优化的方法,用高度优化和非迭代 cholesky矩阵进行稀疏系统解耦作为解,图优化方法利用图的均值表示地图,每个节点表示机器人轨迹的一个位置点和传感器测量数据集,箭头的指向的连接表示连续机器人位置点的运动,每个新节点加入,地图就会依据空间中的节点箭头的约束进行计算更新.
启动底盘通讯与雷达
在主控节点启动与底盘余雷达的通讯,同时程序会将IMU姿态与位置融合发布odom位置信息
roslaunch lingao_bringup robot.launch
等待IMU校准后出现First IMU message received
并且没有错误基本上就是启动成功
启动Karto SLAM建图
启动Karto节点。
roslaunch lingao_slam slam.launch slam_methods:=karto
通过图片可看到下图无错误,既是启动成功
启动本地可视化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
保存地图后可看到map.pgm和map.yaml文件就是本次建的地图
结束建图在开启建图的终端下ctrl+c
取消即可