Cartographer(一):安装及运行流程学习

本文详细介绍了在Ubuntu环境下安装与配置Cartographer SLAM系统的步骤,包括依赖项安装、Abseil库的定制编译、ceres-solver安装、Cartographer编译与ROS集成,以及如何使用Cartographer进行SLAM建图,适用于机器人定位与地图构建的研究人员。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、环境安装

1、安装依赖项
sudo apt-get install -y google-mock libboost-all-dev  libeigen3-dev libgflags-dev libgoogle-glog-dev liblua5.2-dev libprotobuf-dev  libsuitesparse-dev libwebp-dev ninja-build protobuf-compiler python-sphinx  ros-kinetic-tf2-eigen libatlas-base-dev libsuitesparse-dev liblapack-dev
2、不在编译过程过程中下载Abseil的方法
a、下载abseil

github网址:https://github.com/abseil/abseil-cpp.

mkdir build && cd build
cmake … -DBUILD_SHARED_LIBS=ON
make
sudo make install
b、更改cartographer的CMakeList.txt文件(2处)和cartographer-config.cmake.in文件(1处)
CMakeList.txt 第1处:
find_package(Abseil REQUIRED) --> find_package(absl REQUIRED)

CMakeList.txt 第2处:#默认的库文件是 standalone_absl
target_link_libraries(${PROJECT_NAME} PUBLIC ${PROTOBUF_LIBRARY}
absl::base
absl::synchronization
absl::strings
absl::flat_hash_map
absl::numeric
absl::flags)
然后重新编译即可

cartographer-config.cmake.in 1处:
find_package(Abseil ${QUIET_OR_REQUIRED_OPTION}) Abseil 改为 absl
c、更改cartographer_ros的CMakeList.txt,2处
cartographer_ros 和 cartographer_rviz的改法均一致:
find_package(Abseil REQUIRED) --> find_package(absl REQUIRED)
然后重新编译即可。
3、安装ceres-solver

github网址:https://github.com/ceres-solver/ceres-solver

mkdir build && cd build
cmake ..
make
sudo make install
4、编译cartographer

github地址:https://github.com/cartographer-project/cartographer

cd cartographer
mkdir build
cd build
cmake .. -G Ninja
ninja
ninja test
sudo ninja install
5、安装cartographer_ros

github地址:https://github.com/cartographer-project/cartographer_ros

cd workspace
catkin_make

二、使用cartographer

(以下内容使用蓝鲸机器人论坛的bag文件及cartographer_ros在自己电脑上测试运行,链接http://community.bwbot.org/)

1、录制bag包
2、配置cartographer_ros
cartographer_ros/launch/demo_xiaoqiang_3d.launch 
#建图时启动的launch文件,负责启动xiaoqiang_3d.launch文件和rviz
cartographer_ros/launch/xiaoqiang_3d.launch 
#用来加载cartographer_ros主要的启动节点和参数文件,话题数据名字的remap也在这个文件设定。
cartographer_ros/launch/assets_writer_xiaoqiang_3d.launch 
#用来将demo_xiaoqiang_3d.launch输出的pbstreamfile转换成ply点云数据
cartographer_ros/urdf/rslidar_2d.urd 
#模型文件,用来发布3d激光雷达、小车里程计、IMU、小车本体之间的tf关系
cartographer_ros/configuration_files/xiaoqiang_3d.lua 
#cartographer_ros算法参数配置文件,优化建图效果需要调整的参数就是这个文件。
3、启动cartographer_ros,播放rosbag数据,开始建图
#启动roscore
roscore
#启动cartographer
roslaunch cartographer_ros demo_xiaoqiang_3d.launch
#播放bag数据
rosbag play  --clock  2018-08-11-13-20-34.bag
4、bag播放完成后,使用rosservice保存cartographer_ros建图结果
rosrun rqt_service_caller rqt_service_caller
#先调用/finish_trajectory服务结束建图
#接着调用/write_state服务,输入保存文件名称,将cartographer_ros建图结果保存为pbstream文件,test_3d.pbfile。保存成功后,文件可以在~/.ros/目录找到
5、用assets_writer_xiaoqiang_3d.launch将pbstream文件转换成ply点云文件
roslaunch cartographer_ros assets_writer_xiaoqiang_3d.launch bag_filenames:=/home/muyangren/opensource/cartographer_bag/2018-08-11-13-20-34.bag pose_graph_filename:=/home/muyangren/opensource/cartographer_bag/test_3d.pbfile
6、使用pcl工具将ply文件转换成pcd文件
#将ply文件转换为pcd文件
pcl_ply2pcd 2018-08-11-13-20-34.bag_points.ply test_3d.pcd
#使用pcl_viewer查看pcd文件
pcl_viewer test_3d.pcd

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值