今天开始试试karto进行建图。karto是一个项目,后端是SPA(Sparse Pose Adjustment),前端是Scan Matcher。
ros-perceptioin Git仓库中有关的repo有3个。其中open_karto是主要实现,包括scan matching和spa优化;slam_karto是ROS封装(Warper)版本;而sparse_bundle_adjustment用于slam_karto。
open_karto也被catkinize了,可用catkin进行编译,它不会生成可执行文件,只生成一个库。
slam_karto运行:
rqt_graph:
tf_tree:
tf细节:
base_link到base_laser_link之间是固定的,应该是指激光雷达到底盘之间的变换。IntelLab的数据中它们之间变换为" 0 0 0 0 0 0 1 "。
odom到base_link之间是里程计提供的相对位姿,一般通过IMU或轮式里程计得到。
map到odom之间就是slam_karto算法计算出来的odom坐标系到map坐标系之间的变换,可以视为一个修正量,这个修正量使得base与map(world)之间的位置更准确。
IntelResearchLab数据集测试:

本文介绍了使用Karto_SLAM进行建图的过程,包括slam_karto的运行、IntelResearchLab数据集测试以及如何适配velodyne-VLP16激光雷达。在适配过程中遇到点数不匹配和Karto异常的问题,通过修改源代码解决了这些问题。实验结果显示,0.5倍速的建图效果优于1.0倍速。
最低0.47元/天 解锁文章
3168





