文章目录

  • 前言
  • 一、安装
    • 1、编译安装
      • 1.1 安装依赖
      • 1.2 初始化工作空间
      • 1.3 下载功能包
      • 1.4 编译安装
        • 1.4.1 一键安装编译
        • 1.4.2 分布安装
          • 1.4.2.1 安装ceres-solver
          • 1.4.2.2 安装cartographer
          • 1.4.2.3 编译安装cartographer_ros
            • 方法1:catkin_make编译
            • 方法2:catkin_make_isolated编译
    • 2、二进制文件安装
  • 二、仿真测试
    • 1、启动2D slam demo
    • 2、启动3D slam demo

前言

  本篇主要介绍常用的slam功能包——cartographer,为谷歌开发,在计算资源有限的情况下,可以实现机器人在二维和三维条件下的定位及建图功能。目前该算法采用基于图网络的优化方法,主要基于激光雷达来实现SLAM。

一、安装

两种安装方式,编译安装和二进制文件安装。如果后期,有编译自己代码的需要,建议编译安装。编译安装,又有两种方法,即一键安装和分步安装。

1、编译安装

1.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

1.2 初始化工作空间

为了不与现有功能包冲突,最好为cartographer专门创建一个工作空间catkin_google_ws,执行如下命令:

mkdir -p ~/catkin_google_ws/src
cd ~/catkin_google_ws/src
catkin_init_workspace

1.3 下载功能包

执行如下命令:

cd ~
git clone https://github.com/serapann/ros-kinetic-cartographer.git
cd ros-kinetic-cartographer
cp -R * ~/catkin_google_ws/src

1.4 编译安装

1.4.1 一键安装编译

依次执行如下命令:

cd ~/catkin_google_ws
catkin_make_isolated --install --use-ninja

等待一段时间,一键编译完成,效果如下:

添加环境变量,命令如下:

sudo echo "source ~/catkin_google_ws/install_isolated/setup.bash" >> ~/.bashrc
source ~/.bashrc

1.4.2 分布安装

1.4.2.1 安装ceres-solver

依次执行如下命令:

git clone https://github.com/hitcm/ceres-solver-1.11.0.git
cd ceres-solver-1.11.0
mkdir build
cd build
cmake ..
make -j4
sudo make install
1.4.2.2 安装cartographer
git clone https://github.com/hitcm/cartographer.git
cd cartographer
mkdir build
cd build
cmake .. -G Ninja
ninja
ninja test
sudo ninja install
1.4.2.3 编译安装cartographer_ros
#安装cartographer_ros
cd ~/catkin_google_ws/src
git clone https://github.com/hitcm/cartographer_ros.git

为了区分catkin_make和catkin_make_isolated之间的区别,这里两种编译过程都记录下。

方法1:catkin_make编译
cd ~/catkin_google_ws
catkin_make

因为上面操作将cartographer、ceres-solver、cartographer_ros都放进来了,报如下错误:

说前两者不能cmake,没有可以catkin编译的功能包,请使用catkin_ catkin_make_isolated编译。因为已经安装完前两者了,可以执行如下命令删掉:

cd ~/catkin_google_ws/src
rm -rf ceres-solver cartographer

然后再进行catkin_make编译:

cd ~/catkin_google_ws
catkin_make

编译完成后,效果如下:

添加环境变量,执行如下命令:

sudo echo "source ~/catkin_google_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

或者打开该文件,在文件尾添加如下一行:

gedit ~/.bashrc
source /home/zt/catkin_google_ws/devel/setup.bash
方法2:catkin_make_isolated编译

执行如下命令:

cd ~/catkin_google_ws
catkin_make_isolated

你会发现使用catkin_make_isolated编译的时间会明显更长,是一轮一轮编译的,catkin_make则不是。
catkin_make编译,在根目录生成build和devel 两个文件夹,而catkin_make_isolated编译,则在根目录生成build_isolated和devel_isolated两个文件夹。
编译完成后,效果如下:

添加环境变量,执行如下命令:

sudo echo "source ~/catkin_google_ws/devel_isolated/setup.bash" >> ~/.bashrc
source ~/.bashrc

2、二进制文件安装

ros在2019年7月份已经将cartographer集成在软件源里,可以使用如下命令直接安装:

sudo apt-get install ros-kinetic-cartographer*

我是使用的编译安装,二进制文件安装,没有尝试。

二、仿真测试

1、启动2D slam demo

执行如下命令,下载2D数据集:

wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag

效果如下:

将下载好的数据集文件cartographer_paper_deutsches_museum.bag,移动到catkin_google_ws/src目录下,执行命令:

roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/catkin_google_ws/src/cartographer_paper_deutsches_museum.bag

效果如下:

2、启动3D slam demo

执行如下命令,下载3D数据集(文件较大):

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

效果如下:

将下载好的数据集文件b3-2016-04-05-14-14-00.bag,移动到catkin_google_ws/src目录下,执行命令:

roslaunch cartographer_ros demo_backpack_3d.launch bag_filename:=${HOME}/catkin_google_ws/src/b3-2016-04-05-14-14-00.bag

效果如下:

该demo使用3D雷达建模,可以调整RVIZ中的视角,看到3D雷达的信息。

ROS学习(18)机器人SLAM功能包——cartographer的安装与测试相关推荐

  1. ROS中阶笔记(七):机器人SLAM与自主导航—SLAM功能包的使用

    ROS中阶笔记(七):机器人SLAM与自主导航-SLAM功能包的使用 文章目录 1 机器人必备条件 1.1 硬件要求 1.2 深度信息 1.2.1 激光雷达 1.2.2 kinect 1.3 里程计信 ...

  2. 机器人SLAM与自主导航(三)——SLAM功能包

    机器人SLAM与自主导航(三)--SLAM功能包 目录 一.gmapping 1.gmapping功能包 2.栅格地图取值原理 3.gmapping安装 4.配置gmapping节点 5.启动gmap ...

  3. ROS不同工作空间下同名功能包下同名launch文件启动顺序问题(neither a launch file in package...)

    ROS开发这么久了,想必大家都知道怎么可以在每次打开终端时不用source环境了,如若还有不知道的小伙伴可以点击这里. 传送门: https://blog.csdn.net/qq_45152498/a ...

  4. ROS学习心得——机器人篇——同一局域网下机器人与主机的通信

    ROS学习心得--机器人篇--同一局域网下机器人与主机的通信 FOR THE SIGMA FOR THE GTINDER FOR THE ROBOMASTER 简介: 关于这一章我将详细的介绍如何利用 ...

  5. ROS Noetic入门笔记(二)ROS Noetic创建工作空间和功能包

    ROS Noetic入门笔记(一)在ubuntu20.04中安装ROS Noetic并简单测试 ROS Noetic入门笔记(二)ROS Noetic创建工作空间和功能包 ROS Noetic入门笔记 ...

  6. ROS2学习和使用SLAM算法(gmapping/cartographer/orb-slam等)

    ROS2经过6年的快速发展,在充分优化和大幅改进ROS1的基础上(点击了解2014年ROS2规划),功能已经非常完善了. orb-slam2 目前(2019年10月9日)官方功能包已达687. ros ...

  7. ROS系统 创建工作空间与功能包

    ROS 学习目标: 学习内容: 使用环境 操作步骤: 基本命令 二.使用步骤 创建工作空间 编译工作空间 创建功能包 使用C++执行程序 编写源文件 编辑功能包下的 Cmakelist.txt文件 修 ...

  8. ROS(四)——创建工作空间与功能包 Catkin编译系统

    catkin编译系统 ROS 的 Catkin 编译系统的一个特点是将程序做成 package (称为 catkin package 或者 ROS package) 的形式,可以理解成模块化. 典型的 ...

  9. ROS中键盘控制节点功能包下载(下载过程中git时出现拒绝连接的最终处理办法)

    在ros中运行sudo teleop_twist_keyboard teleop_twist_keyboard.py时,出现找不到功能包错误,如下 解决问题过程: 1.首先,我现在文件中搜一下这个功能 ...

最新文章

  1. 2011年100佳精美的WordPress免费博客模板
  2. [转载]明天的数字营销分析工具2
  3. Java 反射 不定参数bug
  4. 跨链(5)“蚂蚁区块链”之预言机
  5. js富文本编辑器_自制富文本编辑器
  6. Elasticsearch master节点的作用以及脑裂现象
  7. wince驱动异常调试方法(作者:wogoyixikexie@gliet)
  8. MyBatis 实际使用案例-mappers
  9. cmd长ping记录日志和时间_四个网络命令ping、arp、tracert、route的详细用法
  10. 净值:测试编码器/解码器
  11. 前端学习(2590):前端权限的菜单控制
  12. Java消息服务~消息属性
  13. 计算机组装与维护思考问题,计算机组装与维护中的常见问题及解决方法
  14. fastboot no permission
  15. 255.0.0.0子网掩码相应的cidr前缀表示法是?_六十四、前缀,后缀,中缀表达式转化求值问题...
  16. asp无组件上传图片 动态保存文件名 upload.inc逐句翻译
  17. 微软企业库4.1学习笔记(十六)缓存模块4 服务器场中的缓存使用
  18. 什么是网络爬虫?爬虫有什么好处?
  19. IPv6网络流量监控解决方案
  20. pycharm使用清华镜像源提高下载速度 只需要五步完成

热门文章

  1. 我的10年计算机之路
  2. PowerBI Server端管理数据网关
  3. 9大方法快速美化文字成堆的PPT!
  4. 文件上传与下载----上传
  5. react+antd解决报错:Module not found: Can't resolve 'antd/es/affix'
  6. GPRS连接阿里云物联网平台二
  7. HTML5期末大作业:个人主页网站设计(6页)代码质量高 学生简单个人静态HTML网页设计作品 DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载
  8. MATLAB中出现NAN
  9. BZOJ 3162: 独钓寒江雪 树的同构 + 组合 + 计数
  10. 说说VB中的语法规则