Cartographer安装 踩坑奉献

Cartographer安装断断续续弄了三天,理论上应该挺容易的,但还是踩了好多坑。当然,hitcm大神的方法可能100%成功,但是我没有试,因为大神把cartographer重新封装,没有办法根据自己项目的需求修改里边的内容。所以只能按照官网的方法来安装,还参照了这篇博文的内容——
问题解决方案2-------------ros的 Cartographer,ninja,ceres-solver,cartographer_ros安装及其问题,附上最好的安装方法

1、安装

sudo apt-get update
sudo apt-get install python-wstool python-rosdep ninja-build
# 创建工作空间
mkdir catkin_ws
cd catkin_ws
wstool init src
wstool merge -t src https://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall

因为国内无法上谷歌,所以需要修改链接地址,修改catkin_ws/src/.rosinstall

- git:
    local-name: cartographer
    uri: https://github.com/googlecartographer/cartographer.git
- git:
    local-name: cartographer_ros
    uri: https://github.com/googlecartographer/cartographer_ros.git
- git:
    local-name: ceres-solver
    uri: https://github.com/ceres-solver/ceres-solver.git
    version: 1.12.0rc4
- git:
    local-name: cartographer_turtlebot
    uri: https://github.com/googlecartographer/cartographer_turtlebot.git   
- git:
    local-name: cartographer_fetch
    uri: https://github.com/googlecartographer/cartographer_fetch.git  

继续指令:

wstool update -t src

这时会下载上面5个git的包。再修改catkin_ws/src/cartographter_ros/cartographter_ros.rosinstall 文件为:

- git: {local-name: cartographer, uri: 'https://github.com/googlecartographer/cartographer.git'}
- git: {local-name: cartographer_ros, uri: 'https://github.com/googlecartographer/cartographer_ros.git'}
- git: {local-name: ceres-solver, uri: 'https://ceres-solver.googlesource.com/ceres-solver.git', version: '1.12.0rc4'}
- git: {local-name: cartographer_turtlebot, uri: 'https://github.com/googlecartographer/cartographer_turtlebot.git'}
- git: {local-name: cartographer_fetch, uri: 'https://github.com/googlecartographer/cartographer_fetch.git'}

继续指令

src/cartographer/scripts/install_proto3.sh#安装符合要求的protobuf
sudo rosdep init
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO}
# Build and install.
catkin_make_isolated --install --use-ninja
source install_isolated/setup.bash

2、可能会遇到的问题

2.1、网络

安装cartographer对网络要求较高,如果出现网络问题,可切换几个手机热点尝试。有可能会出现网络问题的地方:

1、wstool update -t src

这里需要下载github的内容,如果下载很慢或者下载不成果,需要更换网络再试;

2、src/cartographer/scripts/install_proto3.sh

原因同1;

3、sudo rosdep init

ros的这个网站经常连不上,这里是需要安装rosdep。
如果网络正常,已有rosdep,再输入这个指令会提示:

Please delete if you wish to re-initialize

网络出问题会提示:

Website may be down.

更换网络,如果还不行,可以尝试参照这个文章——
rosdep init报错之网络不通解决办法

sudo gedit /etc/hosts

添加下面内容到hosts文件

199.232.28.133 raw.githubusercontent. com

4、rosdep update

网络正常时,最后会提示:

update cache in /home/xxx/.ros/rosdep/source.cache
5、catkin_make_isolated --install --use-ninja

同1.

2.2、依赖库

cartographer安装对glag、glog、ceres和protobuf的版本有要求,进入/usr/local/include/手动删除这些库,再重新安装。glog安装可以参考我另一篇文章——Ubuntu glog 0.3.5安装.
proto不用另外安装,上面安装cartographer时有一条指令就是安装proto:

src/cartographer/scripts/install_proto3.sh

3、验证

2D数据:
https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag

roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=/${bag的绝对路径}/cartographer_paper_deutsches_museum.bag

3D数据:
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:=/${bag的绝对路径}/b3-2016-04-05-14-14-00.bag
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章