ROS技术空间

ROS SLAM 3 | SLAM – 使用karto建图

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取消即可