rosbag来源:roswiki教程、Cartographer官方数据
basic_localization_stage.bag
德意志博物馆2d
依赖:ros、gmapping、map-server(如果你的ROS安装的是desktop-full版本,应该默认会带gmappinghe和map-server)
一、gmapping算法建图
输入:
/tf以及/tf_static: 坐标变换,类型为第一代的tf/tfMessage或第二代的tf2_msgs/TFMessage 其中一定得提供的有两个tf,一个是base_frame与laser_frame之间的tf,即机器人底盘和激光雷达之间的变换;一个是base_frame与odom_frame之间的tf,即底盘和里程计原点之间的坐标变换。odom_frame可以理解为里程计原点所在的坐标系。
/scan:激光雷达数据,类型为sensor_msgs/LaserScan
/scan很好理解,即Gmapping SLAM所必须的激光雷达数据,而/tf是一个比较容易忽视的细节。尽管/tf这个Topic听起来很简单,但它维护了整个ROS三维世界里的转换关系,而slam_gmapping要从中读取的数据是base_frame与laser_frame之间的tf,只有这样才能够把周围障碍物变换