1、从 安装网站中下载以下四个安装包到本地并安装
分别点击进去下载 如果没有相同的就下载相似的
(1) ros-melodic-cartographer-ros_1.0.0-1bionic.20220413.182356_amd64.deb
(2) ros-melodic-cartographer-ros-msgs_1.0.0-1bionic.20210505.011559_amd64.deb
(3) ros-melodic-cartographer-rviz-dbgsym_1.0.0-1bionic.20220413.184040_amd64.deb
(4) ros-melodic-cartographer-dbgsym_1.0.0-0bionic.20200801.034034_amd64.deb
安装
dpkg -i *.deb
2.修改配置文件
- 给文件操作权限
cd /opt/ros/melodic/share
sudo chmod -R 777 cartographer_ros
- 打开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="/fcbot/laser/scan" />
</node>
<node name="cartographer_occupancy_grid_node" pkg="cartographer_ros"
type="cartographer_occupancy_grid_node" args="-resolution 0.05" />
<node name="rviz" pkg="rviz" type="rviz" required="true"
args="-d $(find cartographer_ros)/configuration_files/demo_2d.rviz" />
</launch>
- 修改 revo_lds.lua 文件
只需修改以下3个参数,若要融合imu 看第3步。
tracking_frame = "base_footprint",
published_frame = "base_footprint",
odom_frame = "odom",
use_odometry = true
3. 设置启动文件
将demo_revo_lds.launch的内容 复制到一个新的launch文件中,里面需要包含雷达的启动文件。
在实际车上还要启动车辆,在gazebo 需要启动gazebo的urdf等文件提供odom 这里不在赘述 (如果要使用imu 和odom融合后的数据需要需要将lua文件修改为 TRAJECTORY_BUILDER_2D.use_imu_data = true,并在launch文件加上)frame id和话题要根据实际修改
可以看到/odom, /laser, /imu话题都指向了cartographer_node 这就是融合了odom和imu
4.保存地图
为简化保存地图步骤可先编写一个sh文件如下
#!/bin/bash
rosservice call /finish_trajectory 0
sleep 1
rosservice call /write_state "{filename: '${HOME}/maps/mymap.pbstream'}"
sleep 2
rosrun cartographer_ros cartographer_pbstream_to_ros_map -map_filestem=${HOME}/maps/mymap -pbstream_filename=${HOME}/maps/mymap.pbstream -resolution=0.05