ubuntu16.04下ROS操作系统学习笔记(八)机器人SLAM与 Gmapping-Hector_slam-Cartographer--ORB_SLAM(下)

简介: ubuntu16.04下ROS操作系统学习笔记(八)机器人SLAM与 Gmapping-Hector_slam-Cartographer--ORB_SLAM(下)

接下来我们来启动演示一下:

roslaunch mbot_gazebo mbot_laser_nav_gazebo.launch

roslaunch mbot_navigation hector_demo.launch

roslaunch mbot_teleop mbot_teleop.launch

效果如下:

但是这种方法如果机器人运动的速度过大的话就会使得建图出现偏差。建图过程中特征点比较多的话,建图效果会比较好。

Cartographer功能包:

这个功能包是2016年10月5日谷歌开源的基于图网络的优化方法,是一种二维或三维条件下的定位及建图功能,设计的目的是在计算资源有限的情况下,实时获取相对较高精度的2D地图,主要是基于激光雷达,后面会支持更多传感器和机器人平台,同时不断增加新的功能。

安装

安装工具:

sudo apt-get update

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

创建一个名字为google_ws的文件夹作为我们的工作空间:

 wstool init src
 wstool merge -t src https://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall
 wstool update -t src

上面第二步可能会有网络问题,我们可以到src目录下面ctrl+h打开隐藏文件夹,修改里面第三个包的下载地址: https://github.com/ceres-solver/ceres-solver.git

下载功能包:

src/cartographer/scripts/install_proto3.sh

 

lsb_release -a

查看自己的ubuntu版本号:

 rosdep update
 rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y --os=ubuntu:xenial

这里我之前由于没有加后面这个os报错如下,加了之后就没有了:

ERROR: the following packages/stacks could not have their rosdep keys resolved

to system dependencies:

cartographer: No definition of [eigen] for OS version []

ceres-solver: No definition of [eigen] for OS version []

编译功能包:

 catkin_make_isolated --install --use-ninja
 source install_isolated/setup.bash #当前终端有效

接下来我们可以演示一下效果:

下载 2D SLAM Demo:

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

启动 2D SLAM Demo:

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

下载 3D SLAM Demo:

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

启动 3D SLAM Demo:

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

下载PR2 Demo:

wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/pr2/2011-09-15-08-32-46.bag

启动PR2 :

roslaunch cartographer_ros demo_pr2.launch bag_filename:=~/Downloads/2011-09-15-08-32-46.bag

ORB_SLAM功能包

基于特征点的实时单目SLAM系统,实时解算摄像机的移动轨迹,构建三维点云地图,不仅适用与手持设备获取的一组连续图像,也可以应用于汽车行驶过程中获取的连续图像。

安装:

安装工具&下载源码:

sudo apt-get install libboost-all-dev libblas-dev liblapack-dev

git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2

安装eigen3.2

去官网下载:http://eigen.tuxfamily.org/index.php?title=Main_Page

解压源码包,并进入目录:

mkdir build

cd build

cmake ..

make

sudo make install

编译安装Pangolin

sudo apt-get install libglew-dev

sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev  

git clone https://github.com/stevenlovegrove/Pangolin.git

cd Pangolin

mkdir build

cd build

cmake ..

cmake --build .

编译g2o:

cd ~/ORB_SLAM2/Thirdparty/g2o/

mkdir build

cd build

cmake .. -DCMAKE_BUILD_TYPE=Release

make

编译DBoW2:

cd ~/ORB_SLAM2/Thirdparty/DBoW2/

mkdir build

cd build

cmake .. -DCMAKE_BUILD_TYPE=Release

make

编译ORM_SLAM:

cd ~/ORB_SLAM2

chmod +x build.sh

./build.sh

在make -j4这一步的时候,如果你遇到了error: ‘usleep’ was not declared in this scope,这种问题的话,你需要找到出错的文件,添加头文件:

#include

 Examples/Monocular/mono_euroc.cc
 Examples/Monocular/mono_kitti.cc
 Examples/Monocular/mono_tum.cc
 Examples/RGB-D/rgbd_tum.cc
 Examples/Stereo/stereo_euroc.cc
 Examples/Stereo/stereo_kitti.cc
 src/LocalMapping.cc
 src/LoopClosing.cc
 src/System.cc
 src/Tracking.cc
 src/Viewer.cc

爆炸,我之前装的是opencv3,装不上去,不想卸载,也不想装两个版本opencv,以后再说。

https://github.com/raulmur/ORB_SLAM2

 

我的微信公众号名称:深度学习与先进智能决策

微信公众号ID:MultiAgent1024

公众号介绍:主要研究强化学习、计算机视觉、深度学习、机器学习等相关内容,分享学习过程中的学习笔记和心得!期待您的关注,欢迎一起学习交流进步!

相关实践学习
使用ROS创建VPC和VSwitch
本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
ROS入门实践
本课程将基于基础设施即代码 IaC 的理念,介绍阿里云自动化编排服务ROS的概念、功能和使用方式,并通过实际应用场景介绍如何借助ROS实现云资源的自动化部署,使得云上资源部署和运维工作更为高效。
相关文章
|
Ubuntu 机器人 Linux
|
4月前
|
Ubuntu 开发工具
Ubuntu 22.04 aarch64版本操作系统下编译ZLMediaKit教程
通过上述步骤,你可以在Ubuntu 22.04 aarch64版本上成功编译ZLMediaKit,这是一个相对简单而直接的过程,但可能会遇到一些需要根据具体系统环境和要求调整的地方。
650 0
|
7月前
|
Ubuntu 定位技术 开发工具
在Ubuntu 20.04系统中安装SLAM库的具体操作步骤
以上是在Ubuntu 20.04系统中安装SLAM库的具体操作步骤。就像积木游戏,需要按照正确的步骤,适时地添加正确的部件,才能够构建出我们想要的积木模型。在现实操作中可能会遇到各种问题,就像积木构建中的各种困难,我们要有耐心和决心去解决它们,最后得到我们想要的结果。希望这个有趣的积木游戏比方能帮助你更好地理解SLAM库的安装过程,并在实际操作中得到应用。
180 34
|
7月前
|
Ubuntu 机器人 Shell
在Jetson TX2的Ubuntu18.04系统中安装ROS的教程
所有这些步骤并不复杂,但确实需要仔细一点。如果遇到问题,不要灰心,问题是解决问题的开始。保持耐心,细心阅读错误信息,通常情况下,问题的答案就藏在其中。祝ROS旅程顺利!
236 18
|
10月前
|
传感器 算法 机器人
机器人SLAM建图与自主导航:从基础到实践
通过Gazebo平台和gmapping算法成功生成并保存了一张二维仿真环境地图,为后续的机器人自主导航实验奠定了基础。完整代码及更多细节可参考[GitHub仓库](https://github.com/Jieshoudaxue/ros_senior/tree/main/mbot_navigation/config/move_base)。
1855 23
|
传感器 算法 机器人
机器人SLAM建图与自主导航
前言 这篇文章我开始和大家一起探讨机器人SLAM建图与自主导航 ,在前面的内容中,我们介绍了差速轮式机器人的概念及应用,谈到了使用Gazebo平台搭建仿真环境的教程,主要是利用gmapping slam算法,生成一张二维的仿真环境地图 。我们也会在这篇文章中继续介绍并使用这片二维的仿真环境地图,用于我们的演示。 教程 SLAM算法的引入 (1)SLAM:Simultaneous Localization and Mapping,中文是即时定位与地图构建,所谓的SLAM算法准确说是能实现SLAM功能的算法,而不是某一个具体算法。 (2)现在各种机器人研发和商用化非常火 ,所有的自主机器
680 9
|
自动驾驶 安全 机器人
ROS2:从初识到深入,探索机器人操作系统的进化之路
前言 最近开始接触到基于DDS的这个系统,是在稚晖君的机器人项目中了解和认识到。于是便开始自己买书学习起来,感觉挺有意思的,但是只是单纯的看书籍,总会显得枯燥无味,于是自己又开始在网上找了一些视频教程结合书籍一起来看,便让我对ROS系统有了更深的认识和理解。 ROS的发展历程 ROS诞生于2007年的斯坦福大学,这是早期PR2机器人的原型,这个项目很快被一家商业公司Willow Garage看中,类似现在的风险投资一样,他们投了一大笔钱给这群年轻人,PR2机器人在资本的助推下成功诞生。 2010年,随着PR2机器人的发布,其中的软件正式确定了名称,就叫做机器人操作系统,Robot Op
501 14
|
XML 算法 自动驾驶
ROS进阶:使用URDF和Xacro构建差速轮式机器人模型
【11月更文挑战第7天】本篇文章介绍的是ROS高效进阶内容,使用URDF 语言(xml格式)做一个差速轮式机器人模型,并使用URDF的增强版xacro,对机器人模型文件进行二次优化。
556 6
|
自动驾驶 安全 机器人
ROS2:从初识到深入,探索机器人操作系统的进化之路
【11月更文挑战第4天】ROS2的学习过程和应用,介绍DDS系统的框架和知识。
840 1
|
Ubuntu
Ubuntu学习笔记(七):ubuntu下jupyter指定虚拟环境
本文介绍了如何在Ubuntu系统下使用Anaconda和Jupyter Notebook指定并切换不同的虚拟环境。
382 0
Ubuntu学习笔记(七):ubuntu下jupyter指定虚拟环境