Cartographer安装请见我之前的博客
以下是建图步骤
一、修改代码
1.是catkin_ws/src/cartographer_ros/cartographer_ros/launch目录下的demo_revo_lds.launch文件
修改前:
<launch>
<param name="/use_sim_time" value="true" />
<node name="cartographer_node" pkg="cartographer_ros"
type="cartographer_node" args="
-configuration_directory $(find cartographer_ros)/configuration_files
-configuration_basename revo_lds.lua"
output="screen">
<remap from="scan" to="horizontal_laser_2d" /> //话题重命名
</node>
<node name="rviz" pkg="rviz" type="rviz" required="true"
args="-d $(find cartographer_ros)/configuration_files/demo_2d.rviz" />
<node name="playbag" pkg="rosbag" type="play" args="--clock $(arg bag_filename)" /> //使用演示数据
</launch>
修改后:
<launch>
<param name="/use_sim_time" value="true" />
<node name="cartographer_node" pkg="cartographer_ros"
type="cartographer_node" args="
-configuration_directory $(find cartographer_ros)/configuration_files
-configuration_basename revo_lds.lua"
output="screen">
<remap from="scan" to="scan" />
</node>
<node name="rviz" pkg="rviz" type="rviz" required="true"
args="-d $(find cartographer_ros)/configuration_files/demo_2d.rviz" />
</launch>
2./catkin_ws/src/cartographer_ros/cartographer_ros/configuration_files目录下的revo_lds.lua文件
将文件中的部分参数设置为下示
map_frame = "map",
tracking_frame = "laser",
published_frame = "laser",
odom_frame = "odom",
map_frame是地图坐标系名称
tracking_frame为IMU的坐标系
published_frame为机器人基底坐标系
odom_frame里程计坐标系名称
二、运行雷达和机器人
根据个人的雷达ROS包和机器人的包,这里的命令都不一样
机器人控制节点
roslaunch handsfree_hw handsfree_hw.launch
雷达节点
roslaunch rplidar_ros rplidar.launch
运行Cartographer算法
roslaunch cartographer_ros demo_revo_lds.launch
三、保存地图
命令:
rosrun map_server map_saver -f ~/my_map
参考博客:
https://blog.csdn.net/qq_34935373/article/details/111991920
https://blog.csdn.net/zhao_ke_xue/article/details/87875984