cartographer安装_cartographer安装

24b05e32056fd22315acbc5f95a47e40.png

官方推荐使用wstool和rosdep构建其ROS运行环境,为了提高构建速度,推荐使用Ninja系统:

$ sudo apt-get update
$ sudo apt-get install -y python-wstool python-rosdep ninja-build

此外,再安装一些依赖:

$ sudo apt-get update
$ sudo apt-get install -y clang cmake g++ git google-mock libboost-all-dev libcairo2-dev libcurl4-openssl-dev libeigen3-dev 
                          libgflags-dev libgoogle-glog-dev liblua5.2-dev libsuitesparse-dev lsb-release ninja-build stow

构建新的工作空间:

$ cd ~
$ mkdir catkin_ws
$ cd catkin_ws
$ wstool init src
$ wstool merge -t src https://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall
$ wstool update -t src

以上倒数第二条指令会创建一个文件,写进去cartographer涉及到的三个repo地址,最后一条指令其实就是执行各自的git clone操作。

执行倒数第二条操作,有时候会报错,提示信息如下:

content.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall
ERROR in config: Unable to download URL [https://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall]: 
                 <urlopen error [Errno 111] Connection refused>

查了一下,有的说可能是某些证书问题导致的,解决办法就是执行这个操作时连自己手机热点,试了,有效;另外,连公司网络怎么都过不去,但是连家里无线就可以。

执行完最后一条指令,发现src目录下只有cartographer和cartographer_ros两个文件夹,其实需要的东西还少一个ceres-solver,被墙的原因,科学上网应该可以,我自己是在github上直接搜的,然后拉到本地编译安装。

接下来会说一下这个库以及其它依赖的安装,但在这之前,先大概说一个下载下来的这三个packet的基本功能。

1. cartographer

主要的slam算法在这个里面,主要包括前端的slam会产生submap列表,基于短时间比较稳定这一特性;优化部分会做回环,现在还不确定只在回环的时候做优化还是说所有的node和submap之间都可以做优化,像landmark这种有绝对位姿的观测也是放在优化这里面。

2. cartographer_ros

这个模块相当于一个接口,基于ros的通信机制把传感器和算法模块建立连接,所以主要是做一些话题的订阅发布,没有这个模块的话算法也能运行,但是要自己实现通信。

3. ceres-solver

google开源的一个优化框架,我现在看到的是拿一些约束构造最小二乘模型,然后调用非线性的求解方法进行优化,像L-M这些。

框架的事大概提一下,后面会详细说,现在继续依赖的安装。

先是Ceres-solver:

VERSION="1.13.0"

$ git clone ceres-solver/ceres-solver
$ cd ceres-solver
$ git checkout tags/${VERSION}
$ mkdir build
$ cd build
$ cmake .. -G Ninja -DCXX11=ON
$ ninja
$ CTEST_OUTPUT_ON_FAILURE=1 ninja test
$ sudo ninja install

这里把远程repo的地址换成了git上可以直接pull下来的,可以不用翻墙,比较重要的就是一定要切换到指定的分支或者tag,可以避免不必要的冲突。

然后是abseil-cpp:

$ git clone abseil/abseil-cpp
$ cd abseil-cpp
$ git checkout d902eb869bcfacc1bad14933ed9af4bed006d481
$ mkdir build
$ cd build
$ cmake -G Ninja 
    -DCMAKE_BUILD_TYPE=Release 
    -DCMAKE_POSITION_INDEPENDENT_CODE=ON 
    -DCMAKE_INSTALL_PREFIX=/usr/local/stow/absl 
    ..
$ ninja
$ sudo ninja install
$ cd /usr/local/stow
$ sudo stow absl

这个最早看过,但是现在忘了它能用来做什么,后面再看,重要的就是一定要切换分支。

还有就是protoc:

VERSION="v3.4.1"

$ git clone protocolbuffers/protobuf
$ cd protobuf
$ git checkout tags/${VERSION}
$ mkdir build
$ cd build
$ cmake -G Ninja 
    -DCMAKE_POSITION_INDEPENDENT_CODE=ON 
    -DCMAKE_BUILD_TYPE=Release 
    -Dprotobuf_BUILD_TESTS=OFF 
    ../cmake
$ ninja
$ sudo ninja install

这个比较重要,网上一堆跟这个有关的错误,大概原因就是因为版本有冲突,ros自带一个protoc,2.6.1好像,然后要求的3.4.1,看网上用3.6.1,有的人能过,有的过不了。

然后有的解决方案是把ros自带的那个版本卸载了,应该是有些人可以解决问题,但是操作了一遍,那个电脑到现在还进不了图形界面,在一个新装的电脑上试的,只要选对了版本,自带的那个不用卸载也是可以的。

该装的基本就装完了,接下来参考官方指令继续:

$ src/cartographer/scripts/install_proto3.sh

这个可以不用了,上面已经确定过版本,手动安装了,接下来:

$ sudo rosdep init
$ rosdep update
$ rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y

这里的第一步可能会有些问题:

ERROR: default sources list file already exists: /etc/ros/rosdep/sources.list.d/20-default.list
Please delete if you wish to re-initialize
Then you can execute

按照提示删了就可以:

$ sudo rm /etc/ros/rosdep/sources.list.d/20-default.list

接下来就是构建和运行:

$ catkin_make_isolated --install --use-ninja

如果protoc版本不对,这里通常会出现问题,提示信息如下:

collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
<== Failed to process package 'cartographer':
  Command '['/home/lifeiqi/catkin_ws/install_isolated/env.sh', 'ninja', '-j8', '-l8']' returned non-zero exit status 1

Reproduce this error by running:
==> cd /home/lifeiqi/catkin_ws/build_isolated/cartographer && /home/lifeiqi/catkin_ws/install_isolated/env.sh ninja -j8 -l8

在新电脑上安装还算顺利,关于之前安装中出现的其它问题,需要等那个电脑进入图形界面才能再看到了,到时候再汇总。

然后尝试跑一些离线数据:

$ source/install_isolated/setup.bash
$ roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${DATA_PATH}/cartographer_paper_deutsches_museum.bag

奉上安装过程的参考链接,主要还是参考官方文档:

1. https:// google-cartographer-ros.readthedocs.io /en/latest/compilation.html#building-installation
2. Cartographer - Cartographer documentation
3. cartographer超详尽安装教程!_qq_26482237的博客-CSDN博客
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值