kinetic安装测试cartographer教程
[2022/1/23]本实验环境为ubuntu16.04+[ROS]kinetic1.12.17
参考链接:https://blog.csdn.net/qq_45839415/article/details/120444971
安装使用cartographer属于一个难题,会遇到各种奇葩问题,本人学习安装cartographer遇到种种问题,诸如缺少absl
库、protobuf
版本不对, gmock
、缺少c++支持
等等数不胜数的问题,鏖战4天,查阅各种资料,终于摸索出正确的安装方法。因为参照上方参考链接的方法安装的cartographer
相关功能包后,因为版本不匹配问题导致无法编译古月老师教程键盘控制机器人建图的仿真测试代码,于是将古月老师有关教程代码上传至github,附在下面,便于后期安装和使用。
cartographer安装包:https://github.com/serapann/ros-kinetic-cartographer.git
仿真测试代码:https://github.com/serapann/guyue-cartographer-test.git
下面是安装和测试的具体步骤。
一、考虑后期有编译自己的代码的需求的安装方法(推荐)
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.初始化工作空间
##需要提前新建目录
mkdir -p ~/google_ws/src
##
cd ~/google_ws/src
catkin_init_workspace
3.下载功能包
cd ~
git clone https://github.com/serapann/ros-kinetic-cartographer.git
cd ros-kinetic-cartographer
cp -R * ~/google_ws/src
4.安装和编译功能包
对于上面下载的安装包,这里介绍两种安装方式,各有特点,一键安装便于偷懒,分步安装便于了解每一步的安装位置和安装过程:
4.1一键安装并编译
cd ~/google_ws
catkin_make_isolated --install --use-ninja
是一段漫长的等待(看窗口提示:共有5轮),本人觉得一键安装编译虽说为了 偷懒,其实比分布安装甚至还慢好多:
跑完了:
添加环境变量
sudo echo "source ~/google_ws/install_isolated/setup.bash" >> ~/.bashrc
source ~/.bashrc
4.2分步安装
4.2.1安装ceres-solver
cd cd ~/google_ws/src/ceres-solver
mkdir build
cd build
cmake ..
make -j4
sudo make install
4.2.2安装cartographer
cd ~/google_ws/src/cartographer
mkdir build
cd build
cmake .. -G Ninja
ninja
ninja test
sudo ninja install
4.2.3编译安装cartographer_ros
为了区分catkin_make
和catkin_make_isolated
之间的区别,这里展示两种编译过程:
catkin_make编译
cd ~/google_ws
catkin_make
考虑src
文件夹下各个文件的依赖关系,全部编译,不能编的也编
,因为上面操作将cartographer
、ceres-solver
、cartographer_ros
都放进来了,报如下错误:
说前两者不能cmake
,没有可以catkin编译的功能包,请使用catkin_ catkin_make_isolated
因为已经安装完前两者了,可以删掉
cd ~/google_ws/src
rm -rf ceres-solver cartographer
然后再使用catkin_make
进行编译:
cd ~/google_ws
catkin_make
添加环境变量
sudo echo "source ~/google_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
catkin_make_isolated编译
cd ~/google_ws
catkin_make_isolated
相比catkin_make在根目录生成build
和devel
两个文件夹,catkin_make_isolated则在根目录生成build_isolated
和devel_isolated
两个文件夹
添加环境变量
sudo echo "source ~/google_ws/devel_isolated/setup.bash" >> ~/.bashrc
source ~/.bashrc
而且你会发现使用catkin_make_isolated
编译的时间会明显更长,是一轮一轮编译的,catkin_make则不是,这里共有5轮,执行中上方有提示:
执行完是这样的,下方提示编译完5个包,catkin_make则没有:
二、不考虑后期有编译自己的代码的需求只求测试样例的安装方法
下载安装功能包
由于ros在19年7月份已经将cartographer集成在软件源里,所以可以直接执行下句代替原来方法安装cartographer功能包及其所有依赖。
sudo apt-get install ros-kinetic-cartographer*
看看安装了哪些内容:
安装成功截图
可以开始使用cartographer启动仿真测试了。
三、cartographer仿真测试
注意:只有按照推荐的方式安装cartographer的后面的例子才能全部可以测试成功,直接sudo apt-get install ros-kinetic-cartographer*
的不敢保证所有能测试成功,但第一个2D slam demo都是可以的
1.启动2D slam demo演示
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag
roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag
第一句执行完成截图
第二句执行成功截图
2.启动3D slam demo演示
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_3d/b3-2016-04-05-14-14-00.bag
roslaunch cartographer_ros demo_backpack_3d.launch bag_filename:=${HOME}/Downloads/b3-2016-04-05-14-14-00.bag
启动成功:
3.启动Revo LDS demo演示
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/revo_lds/cartographer_paper_revo_lds.bag
roslaunch cartographer_ros demo_revo_lds.launch bag_filename:=${HOME}/Downloads/cartographer_paper_revo_lds.bag
启动成功:
4.启动自己定义的cartographer_ros节点仿真演示
文件都已经包含在测试代码和cartographer安装包里,按照上面安装步骤安装并且下载测试代码编译到自己的工作空间就可以使用了。
下面是通常我们自己编写launch文件编译到cartographer_ros中的具体流程:
1.配置launch节点
添加自己的cartographer_demo_rplidar.launch
文件到~/google_ws/src/cartographer_ros/cartographer_ros/launch
2.添加lua参数配置
添加和launch
需要用到的rplidar.lua
参数配置文件到~/google_ws/src/cartographer_ros/cartographer_ros/configuration_files
下
(测试文件已经包含在我发的安装包里,不用再去添加了)
回到google_ws
工作空间根目录
下执行编译:
cd ~/google_ws
#下列3个,根据安装方式来选
#1.一键安装并编译的编译命令
catkin_make_isolated --install --use-ninja
#2.分步安装catkin_make编译的命令
catkin_make
#3.分步安装catkin_make_isolated编译的命令
catkin_make_isolated
启动自己定义的cartographer节点仿真测试
roslaunch mbot_gazebo mbot_laser_nav_gazebo.launch
roslaunch cartographer_ros cartographer_demo_rplidar.launch
roslaunch mbot_teleop mbot_teleop.launch
键盘控制机器人建图没有任何问题
四、附上各种安装方法的cartographer相关库和功能包安装位置对比
一键安装并编译:
分步安装:
catkin_make:
catkin_make_isolated:
sudo apt-get install ros-kinetic-cartographer*安装:
[22/1/23/6:20]
写到这里,不知不觉就通了一宵o(╥﹏╥)o,终于算是圆满结束了!
第一次写这么长的文章,很累但是收获很大,希望能帮到大家!祝大家新年快乐!万事顺遂!