其实一直以来都感觉纯视觉SLAM很难落地产品,所以一直在找机会学习激光slam,之前也在深蓝学院上买了一个激光salm的课程,惭愧,至今也没开始学呢,年底之前,我想工作之余研究一下激光slam和ros,我感觉这两个东西对我来说很重要,所以这两天先抽时间把google的cartographer工程配置了一下,期间也遇到了一些问题,不过我逐一解决,最终配置成功。接下来就开始研究激光slam技术,以及cartographer的代码。希望能帮上和我一起想开始学习cartographer的小伙伴,如果有什么问题,可以随时想我提问,大家一起学习。

更新:注意:我之前安装了conda,conda里面的python版本是3.7的,我在安装cartographer_ros的时候没有关闭conda所以出现了错误,因为ros只能在python2.7版本下才能正常工作,所以我就conda deactivate base.这样就恢复到了原来的python2.7的版本。

参考文献如下

https://google-cartographer.readthedocs.io/en/latest/

https://blog.csdn.net/xmy306538517/article/details/81455625

https://www.cnblogs.com/hitcm/p/5939507.html

step1:安装一些依赖库

# Install the required libraries that are available as debs.
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# Install Ceres Solver and Protocol Buffers support if available.
# No need to build it ourselves.
if [[ "$(lsb_release -sc)" = "focal" || "$(lsb_release -sc)" = "buster" ]]
thensudo apt-get install -y python3-sphinx libgmock-dev libceres-dev protobuf-compiler
elsesudo apt-get install -y python-sphinxif [[ "$(lsb_release -sc)" = "bionic" ]]thensudo apt-get install -y libceres-devfi
fi

step2: 安装abseil, 注意,在最后一步执行sudo stow absl之前要先执行sudo apt-get install stow安装stow

git clone https://github.com/abseil/abseil-cpp.git
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

step3: 这个下载链接是google的资源,如果你没有设置全局翻墙,在terminal不可翻墙,就不能下载成功,解决方法是在github里搜索ceres-solver,然后采用git clone的方式下载,如果在网页上直接Download下载下来的工程中灭有.git文件,无法完成git checkout tags/${VERSION}

VERSION="1.13.0"# Build and install Ceres.
git clone https://ceres-solver.googlesource.com/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

step4: 安装protobuf.使用下面的下载链接下载时如果一直出现early EOF的超时错误时,就使用

git clone --depth=1 https://github.com/google/protobuf.git 进行下载,--depth=1是约束了只下载最新git log的版本。

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

step5: 安装cartographer

# Build and install Cartographer.git clone git@github.com:cartographer-project/cartographer.git
cd cartographer
mkdir build
cd build
cmake .. -G Ninja
ninja
CTEST_OUTPUT_ON_FAILURE=1 ninja test
sudo ninja install

step6:安装cartographer_ros

注意:创建ros工程的workspace时,根据你自己的路径来就可以,还有在将工程的devel中的setup.bash的路径写入到.bashrc中时也要注意你的路径。这样做的好处你,你新打开一个窗口进行操作时,不需要重新执行source YOUR_PATH/devel/setup.bash了就。

sudo apt-get install -y python-wstool python-rosdep ninja-buildmkdir -p /code/ROS/catkin_ws_cartographer/src
cd /code/ROS/catkin_ws_cartographer/src
git clone --recursive https://github.com/googlecartographer/cartographer_ros.gitcd /code/ROS/catkin_ws_cartographer
catkin_make_isolated --install --use-ninja -Dcartographer_DIR="/usr/local/share/cartographer/"
source /code/ROS/catkin_ws_cartographer/devel_isolated/setup.bash
echo "source /code/ROS/catkin_ws_cartographer/devel_isolated/setup.bash" >> ~/.bashrc

step7:下载数据集

2d数据集:

https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag

3d数据集:

https://storage.googleapis.com/cartographer-public-data/bags/backpack_3d/b3-2016-04-05-14-14-00.bag

step8: 运行程序

注意:修改成你自己的存放数据集的路径。

roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag
roslaunch cartographer_ros demo_backpack_3d.launch bag_filename:=${HOME}/Downloads/cartographer_3d_deutsches_museum.bag

step9: 测试结果展示

ubuntu16.04 + ros-kinetic 配置cartographer相关推荐

  1. Ubuntu16.04 + ROS kinetic + 激光slam-cartographer ROS + 数据仿真 + Turtlebot3仿真

    一.Ubuntu16.04 +ROS kinetic的安装及问题解决 https://blog.csdn.net/GGY1102/article/details/107877937 二.Cartogr ...

  2. 在Ubuntu16.04 + ROS kinetic环境下安装TurtleBot3

    简介 ROS社区中丰富的功能包和机器人案例为我们的学习和研究提供了绝好的平台.TurtleBot系列是ROS社区中最流行的高性价比机器人平台,前后一共发布了三代. TurtleBot是ROS中最为重要 ...

  3. Ubuntu16.04+ROS kinetic +Basler_camera环境配置以及相机标定

    本人相机:Basler AG ace acA1920-155uc(usb3.0) 目录: 1.安装ROS kinetic 2.安装pylon6 3.安装pylon-ROS-camera 驱动包 4.下 ...

  4. Ubuntu16.04+ROS Kinetic环境下svo编译运行

    准备工作: 安装Sophus(这个库是维护的比较好的一个李群和李代数的库) 注: 其实你在运行其他版本的slam系统的时候大概率已经安装过,不过这里面执行一下,无伤大雅,也不会搞乱你的系统. #cat ...

  5. ubuntu16.04安装kinetic ROS记录

    ubuntu16.04安装kinetic ROS记录 文章目录 ubuntu16.04安装kinetic ROS记录 1.正常安装流程 2.遇到的问题以及总结 1.正常安装流程 参考网址:Ubuntu ...

  6. 【环境配置】使用 docker 制作一个ubuntu16.04 + ROS + pytorch-gpu 的镜像

    文章目录 使用 docker 制作一个ubuntu16.04 + ROS + pytorch-gpu 镜像的过程 1. 我的笔记本环境: 2. 环境配置过程 2.1. 在 ubuntu 16.04 中 ...

  7. ubuntu16.04 ROS安装

    ros安装官方链接:cn/kinetic/Installation/Ubuntu - ROS Wiki 建议参考链接:Ubuntu16.04 安装ROS Kinetic 究级详细教程_IU知恩于心的博 ...

  8. 阿里云服务器ECS Ubuntu16.04 初次使用配置教程(图形界面安装)

    阿里云服务器ECS Ubuntu16.04 初次使用配置教程(图形界面安装) 2019-01-23 22:55:50 laugh12321 阅读数 851更多 分类专栏: ECS Ubuntu 版权声 ...

  9. Linux热点无网络,Linux网络配置:手提在连接WIFI热点情况下,Ubuntu16.04中怎样配置网络?...

    Linux网络配置:手提在连接WIFI热点情况下,Ubuntu16.04中怎样配置网络?,范佩西致敬温格:你是我的足球父亲,是你塑造了我,磷菩屹倨竿,布加迪推出Chiron Sport特别版,百公里加 ...

  10. 4.Ubuntu16.04中SNMP配置

    Ubuntu16.04中SNMP配置 SNMP服务配置 zabbix在监控网络设备或者打印机等设备时,需要用到SNMP,单独在被监控的客户端配置SNMP即可 端口:161 1.安装SNMP 服务端:s ...

最新文章

  1. 2021年大数据Spark(五):大环境搭建本地模式 Local
  2. 终于有人把云计算、物联网和大数据讲明白了
  3. 进程管理程序java,运维经验分享(四)--关于 java进程管理的服务控制脚本编程思路分析...
  4. 关于Go语言,你可能会讨厌的五件事
  5. win10计算机扫描,win10系统测试一体机扫描仪功能的解决教程
  6. 100% 的程序员都想挑战的算法趣题!
  7. 【Objective-C】Objective-C语言的动态性
  8. SpringBoot 中解决跨域请求
  9. scoope导入数据_scoop导入数据从mysql到hive
  10. springboot整合quartz进行数据库存储
  11. ajax批量上传数据,Ajax上传数据和上传文件(三种方式)
  12. 关键词词云怎么做_关键词云图生成器
  13. java web 自己开发NAS个人网盘、视频网站视频播放服务端大视频文件处理逻辑解决方案和思路
  14. 报错vs2019 初始值设定项值太多
  15. 华硕路由搭建php网站,华硕路由器操作模式
  16. 看大品牌如何玩转小程序
  17. 取名算法之用JAVA实现姓名测试
  18. Collections.sort对List排序的两种方法
  19. pcf8563 C语言编程
  20. 手把手教你如何给视频快速消音并添加背景音乐

热门文章

  1. 【XSY1594】棋盘控制 概率DP
  2. UWP_小说在线阅读器:功能要求与技术要求
  3. FileReader/FileWriter复制文件
  4. 使用CodeFirst创建并更新数据库
  5. iOS AVAudioPlayer和AVAudioPlayerDelegate-音频播放处理中断
  6. 主流浏览器和内核及Web标准
  7. ironic如何支持部署时按需RAID?
  8. View Controller Programming Guide for iOS---(七)---Resizing the View Controller’s Views
  9. NH3.X与2.X使用上的一些区别
  10. HDU 2095 find your present (2)