ROS学习(18)机器人SLAM功能包——cartographer的安装与测试
文章目录
- 前言
- 一、安装
- 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的安装与测试相关推荐
- ROS中阶笔记(七):机器人SLAM与自主导航—SLAM功能包的使用
ROS中阶笔记(七):机器人SLAM与自主导航-SLAM功能包的使用 文章目录 1 机器人必备条件 1.1 硬件要求 1.2 深度信息 1.2.1 激光雷达 1.2.2 kinect 1.3 里程计信 ...
- 机器人SLAM与自主导航(三)——SLAM功能包
机器人SLAM与自主导航(三)--SLAM功能包 目录 一.gmapping 1.gmapping功能包 2.栅格地图取值原理 3.gmapping安装 4.配置gmapping节点 5.启动gmap ...
- ROS不同工作空间下同名功能包下同名launch文件启动顺序问题(neither a launch file in package...)
ROS开发这么久了,想必大家都知道怎么可以在每次打开终端时不用source环境了,如若还有不知道的小伙伴可以点击这里. 传送门: https://blog.csdn.net/qq_45152498/a ...
- ROS学习心得——机器人篇——同一局域网下机器人与主机的通信
ROS学习心得--机器人篇--同一局域网下机器人与主机的通信 FOR THE SIGMA FOR THE GTINDER FOR THE ROBOMASTER 简介: 关于这一章我将详细的介绍如何利用 ...
- ROS Noetic入门笔记(二)ROS Noetic创建工作空间和功能包
ROS Noetic入门笔记(一)在ubuntu20.04中安装ROS Noetic并简单测试 ROS Noetic入门笔记(二)ROS Noetic创建工作空间和功能包 ROS Noetic入门笔记 ...
- ROS2学习和使用SLAM算法(gmapping/cartographer/orb-slam等)
ROS2经过6年的快速发展,在充分优化和大幅改进ROS1的基础上(点击了解2014年ROS2规划),功能已经非常完善了. orb-slam2 目前(2019年10月9日)官方功能包已达687. ros ...
- ROS系统 创建工作空间与功能包
ROS 学习目标: 学习内容: 使用环境 操作步骤: 基本命令 二.使用步骤 创建工作空间 编译工作空间 创建功能包 使用C++执行程序 编写源文件 编辑功能包下的 Cmakelist.txt文件 修 ...
- ROS(四)——创建工作空间与功能包 Catkin编译系统
catkin编译系统 ROS 的 Catkin 编译系统的一个特点是将程序做成 package (称为 catkin package 或者 ROS package) 的形式,可以理解成模块化. 典型的 ...
- ROS中键盘控制节点功能包下载(下载过程中git时出现拒绝连接的最终处理办法)
在ros中运行sudo teleop_twist_keyboard teleop_twist_keyboard.py时,出现找不到功能包错误,如下 解决问题过程: 1.首先,我现在文件中搜一下这个功能 ...
最新文章
- 2011年100佳精美的WordPress免费博客模板
- [转载]明天的数字营销分析工具2
- Java 反射 不定参数bug
- 跨链(5)“蚂蚁区块链”之预言机
- js富文本编辑器_自制富文本编辑器
- Elasticsearch master节点的作用以及脑裂现象
- wince驱动异常调试方法(作者:wogoyixikexie@gliet)
- MyBatis 实际使用案例-mappers
- cmd长ping记录日志和时间_四个网络命令ping、arp、tracert、route的详细用法
- 净值:测试编码器/解码器
- 前端学习(2590):前端权限的菜单控制
- Java消息服务~消息属性
- 计算机组装与维护思考问题,计算机组装与维护中的常见问题及解决方法
- fastboot no permission
- 255.0.0.0子网掩码相应的cidr前缀表示法是?_六十四、前缀,后缀,中缀表达式转化求值问题...
- asp无组件上传图片 动态保存文件名 upload.inc逐句翻译
- 微软企业库4.1学习笔记(十六)缓存模块4 服务器场中的缓存使用
- 什么是网络爬虫?爬虫有什么好处?
- IPv6网络流量监控解决方案
- pycharm使用清华镜像源提高下载速度 只需要五步完成
热门文章
- 我的10年计算机之路
- PowerBI Server端管理数据网关
- 9大方法快速美化文字成堆的PPT!
- 文件上传与下载----上传
- react+antd解决报错:Module not found: Can't resolve 'antd/es/affix'
- GPRS连接阿里云物联网平台二
- HTML5期末大作业:个人主页网站设计(6页)代码质量高 学生简单个人静态HTML网页设计作品 DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载
- MATLAB中出现NAN
- BZOJ 3162: 独钓寒江雪 树的同构 + 组合 + 计数
- 说说VB中的语法规则