ORB-SLAM2在Ubuntu20上配合ROS编译运行


前言

ORB-SLAM2的源码在编译过程中会出现各种问题,现将修改后的源码以及安装说明记录于此。


一、安装ROS

直接使用鱼香ros一行命令安装,非常方便。

wget http://fishros.com/install -O fishros && bash fishros

在这里插入图片描述
输入1后回车
在这里插入图片描述
继续选择1
在这里插入图片描述
然后选择2等待换源,过程中会打印一些信息,大部分是绿色的,如果出现如下图所示的报错,可以按CTRL+C退出该指令,然后重复以上步骤,直到换源成功(打印的都是绿色字样)。
在这里插入图片描述
后面会让你选择ROS版本,我们选择1
在这里插入图片描述
继续选择1
在这里插入图片描述
等待10分钟左右,出现以下信息说明ros安装成功了。
在这里插入图片描述

二、相关依赖包的安装

1.安装编译器

sudo apt-get update
sudo apt-get install  cmake gcc g++ git

第二行命令过程中需要输入y确认安装。

2.安装Pangolin和Eigen3

点击链接下载,将该压缩包解压到主目录下

sudo apt-get install libxkbcommon-dev
sudo apt-get install wayland-protocols
sudo apt install libglew-dev
cd Pangolin
mkdir build
cd build
cmake ..
make
sudo make install

安装完成后,可以测试是否安装成功

cd Pangolin
cd examples/HelloPangolin
mkdir build && cd build
cmake ..
make
./HelloPangolin

若出现以下图片,则说明Pangolin安装成功
在这里插入图片描述

下面安装Eigen3

sudo apt-get install libeigen3-dev

参考链接:https://blog.csdn.net/weixin_56566649/article/details/124355140

3.opencv版本的相关说明

源码作者使用的是opencv3,但是ros-noetic自带的是opencv4,如果用opencv3来编译orb-slam2,在运行作者给的ros节点例程时会出错,所以这里直接使用opencv4来编译orb-slam2。在安装ros时,就已经帮我们安装好了opencv4,所以无需额外安装。由于兼容性问题,源码中需要修改一些函数名,并在cmakelist文件中指明使用opencv4。
参考链接https://blog.csdn.net/K4762/article/details/105270600
我将修改后的源码放在该链接,提取码1111。

三、编译ORB-SLAM2

在工作目录创建catkin_ws工作空间

mkdir catkin_ws
cd catkin_ws
mkdir src
catkin_make

将下载的包解压到~/catkin_ws/src目录中,并改名为ORB_SLAM2,接着编辑.bashrc文件

sudo nano ~/.bashrc

在该文件底下键入

source ~/catkin_ws/devel/setup.bash
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/catkin_ws/src/ORB_SLAM2/Examples/ROS

按ctrl加s保存,再按ctrl加x退出
然后进入ORB_SLAM2文件夹中打开终端

chmod +x build.sh
./build.sh

编译orb-slam2,成功后继续编译orb-slam2的ros例程

chmod +x build_ros.sh
./build_ros.sh

成功之后可以测试一下,因为需要数据集,下载起来比较麻烦,想测试的可以下载,第一个是不用ros的测试集,第二个是用ros的测试集。
将第一个数据集解压到ORB_SLAM2/data文件夹,并在ORB_SLAM2文件夹中运行如下命令

./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml data/rgbd_dataset_freiburg1_xyz

不带ros的整体效果图如下
在这里插入图片描述

接下来演示配合ros运行的例程,打开三个终端,分别运行

roscore
rosrun ORB_SLAM2 Stereo Vocabulary/ORBvoc.txt Examples/Stereo/EuRoC.yaml true
rosbag play --pause V1_01_easy.bag /cam0/image_raw:=/camera/left/image_raw /cam1/image_raw:=/camera/right/image_raw

注意该测试要将第二个下载链接中的V1_01_easy.bag文件放在ORB_SLAM2文件夹,第二行和第三行命令要在ORB_SLAM2文件夹目录下运行
第三行命令运行后在你没有任何操作时会是暂停状态,只需在该终端下键入空格键即可运行。
带ros的整体效果图如下
在这里插入图片描述


参考链接

http://t.csdn.cn/hjJZM
http://t.csdn.cn/a7IlE
http://t.csdn.cn/9DXZ3

  • 6
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值