zoukankan      html  css  js  c++  java
  • 【萌新向】cartographer_ros最新安装指南 2019-12

    首先说明,这篇文章于2019年12月写下,cartographer现在还在不断更新,也许这篇文档内容会失效,但是大体是一样的安装流程。

    一、硬件条件

    使用平台

    • x86_64平台

    ROS发行版

    • Indigo
    • Kinetic
    • Lunar
    • Melodic

    二、编译安装

    1. 先安装一些必要的安装工具:python-wstool、python-rosdep和ninja;

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

    2. 创建一个cartographer_ros的工作空间,命名为"catkin_ws",并初始化。

    mkdir catkin_ws
    cd catkin_ws
    wstool init src
    # 这里先增加一个.rosinstall文件,修改内容如下一段
    wstool merge -t src https://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall
    wstool update -t src
    
    • 这里得提一下, 个别地区没方法访问googlesource.com,即谷歌的源代码仓库,上面第四句执行之后,修改 .rosinstall 文件到src目录:
    - git: {local-name: cartographer, uri: 'https://github.com/googlecartographer/cartographer.git', version: '1.0.0'}
    - git: {local-name: cartographer_ros, uri: 'https://github.com/googlecartographer/cartographer_ros.git', version: '1.0.0'}
    - git: {local-name: ceres-solver, uri: 'https://github.com/ceres-solver/ceres-solver.git', version: '1.13.0'}
    
    • !注:也可以直接复制上面的git源码地址uri,下载对应版本的源码到对应的工作空间src里面,就不需要wstool部分命令了。
    • 顺便也提供了蓝奏云链接https://www.lanzous.com/b0akgy6uh 密码:cmvf

    3. 安装cartographer_ros的依赖项(proto3和deb软件包)。如果自安装ROS以来已经执行过初始化rosdep的命令,则命令'sudo rosdep init'将显示错误,该错误可以忽略。

    # 脚本内容是配置了一些环境变量,然后用git下载proto3(肯定比较慢,可以手动下载),如果手动下载了proto3,里面需要改内容,内容在下一段。
    src/cartographer/scripts/install_proto3.sh
    
    # 这句初始化rosdep,一般正常安装ros都执行过,可以不用管。
    sudo rosdep init 
    
    # 下面这两句,是常用来一键安装该工作空间下所有依赖包的,务必熟练使用
    rosdep update
    rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y
    
    • !注意如果手动下载了3.4.1版本的proto3,建议还是用install_proto3.sh安装,不过需要修改内容为:
    # 只是注释掉了git下载和切换的内容。
    set -o errexit
    set -o verbose
    
    # VERSION="v3.4.1"
    
    # Build and install proto3.
    # git clone https://github.com/google/protobuf.git
    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
    

    4. 构建并安装。

    # 用ninja工具进行catkin的编译
    catkin_make_isolated --install --use-ninja
    

    注意:

    • 到这里,执行完上面的步骤,没报错的话就安装成功了。
    • 有些萌新因为git的配置问题报错下载失败,就按照报错提示百度一下解决;不想折腾git的话,也可以直接打开.rosinstall的那三个源码链接,下载对应版本的源码(version标注的内容)

    • git下载速度慢,基本上也是因为DNS污染的原因,这里修改一下hosts文件:
    sudo gedit /etc/hosts
    

    增加以下内容(给dns指定了github的服务器地址):

    # 建议在http://ip.tool.chinaz.com/github.com查询以下三个网址对应的ip,这里是2019-12月的数据,可能会改变
    github.com  13.250.177.223
    assets-cdn.github.com 185.199.108.153
    github.global.ssl.fastly.net 75.126.215.88
    

    重启networking
    sudo /etc/init.d/networking restart

    三、跑数据集安装测试

    1. 测试数据集

    • 现在已经安装了Cartographer和Cartographer的ROS集成,可以下载封装成bag包形式的数据集。这里提供了德国博物馆的数据集。这个数据集是人类背着激光雷达录制的,效果也是不错。
    • 首先,下载数据集,然后运行demo,会自动打开rviz。
    # 这句命令把数据集下载到了Downloads文件夹,如果没有wget工具,可以自己安装
    wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag
    
    # 记得先配置工作空间到环境变量
    echo  "source ~/catkin_ws/install_isolated/setup.bash" >> ~/.bashrc
    
    # 这句用roslaunch启动了放在对应目录的数据集
    roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag
    

    随便找了张图:
    image

    2. 其他bag数据集


    参考文献:

    1. 官方手册 https://google-cartographer-ros.readthedocs.io/en/latest/compilation.html
  • 相关阅读:
    简述JavaScript中 同步与异步,阻塞与非阻塞
    浅谈 JavaScript 中 (for循环) 的几种写法及其性能问题
    简述vue下高德地图的一些简单功能的使用(定位,添加marker)
    vuex中mutations与actions的使用及区别
    项目中 vue与高德地图一起使用 (一)
    css3动画,requestAnimationFrame动画与canvas图形
    setTimeout 在 js 加载前的问题探究
    面试答案
    css实现垂直居中的几种常见方法
    align-conten和align-items之间的区别
  • 原文地址:https://www.cnblogs.com/futurelei/p/12118557.html
Copyright © 2011-2022 走看看