乌班图安装ORB-SLAM2并使用USB摄像头运行

本文详细介绍了乌班图安装ORB-SLAM2的安装和配置,并使用USB摄像头生成特征点云图

目录

1 下载ORB_SLAM2源码

1.1源码下载

2 安装并编译pangolin

2.1 安装依赖项

2.2 从Github下载Pangolin

3 安装并编译Eigen

3.1 使用命令安装

3.2 从源码安装

3.3 编译

4 编译g2o

5 编译DBoW2

6 编译ORB_SLAM

7 使用自己的USB摄像头跑ORB_SLAM

7.1 安装并测试摄像头功能包usb_cam

7.2 将数据接入orb_slam

7.3 启用orb_slam2中的节点

参考链接


1 下载ORB_SLAM2源码

1.1源码下载

 https://github.com/raulmur/ORB_SLAM/ 进入官网下载源码

注:这里若使用乌班图下载速度较慢,可以先在windows下载,然后通过filezilla上传到乌班图

1.2 git安装

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

2 安装并编译pangolin

2.1 安装依赖项

 sudo apt-get install libglew-dev
 sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev
 sudo apt-get install libpython2.7-dev

2.2 从Github下载Pangolin

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

如果你这里下载好了,那恭喜你,pangolin可以正常编译,但如果你和笔者一样,一直显示仓库连接不上,那么请先在windows打开

https://github.com/stevenlovegrove/Pangolin  注意一定不能直接克隆选择左边的v0.6版本,0.7版本编译会出错,错误信息如下:  

pangolin could not be found because dependency eigen3 could not be found

如果你出现了这个错误信息,那么请按照如下步骤操作:

1、检查/usr/local/include,如果有pangolin相关文件,删除它(我遇到的情况是没有的)。

2、删除Pangolin文件,并克隆0.6版本代码。

3、重新编译安装Pangolin即可

如果是在windows下载好了,那打开filezilla,主机名字写sftp://ip ,然后输入乌班图用户名和密码,点击连接即可

连接好了后将文件直接拖拽到目录下,编译安装

cd Pangolin
mkdir build
cd build
cmake ..
make -j
sudo make install

笔者在编译时遇到了需要更高版本的cmake的错误,此时需要先卸载原来的cmake,然后再重装:

1.先卸载:

which cmake
cd /usr/bin/
sudo rm cmake

2.然后下载更高版本cmake,可在cmake官网 Download | CMake 下载,我下载的是cmake-3.12.4.tar.gz

3.编译

cd cmake-3.12.4
./configure
make
sudo make install
cmake --version(需要重新开一个终端)

3 安装并编译Eigen

3.1 使用命令安装

sudo apt-get install libeigen3-dev

3.2 从源码安装

Eigen 进入官网下载

3.3 编译

cd eigen-eigen-5a0156e40feb
mkdir build
Cd build
cmake ..&make
sudo make install

然后运行sudo cp -r /usr/local/include/eigen3 /usr/include

pangolin会在/usr/include 目录下进行搜索,导致pangolin安装失败,上面命令可以解决

搜索不到时,CMakeList里面添加头文件

#include_directories("/usr/include/eigen3")

4 编译g2o

cd  catkin_ws/src/ORB_SLAM2/Thirdparty/g2o
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make

5 编译DBoW2

cd catkin_ws/src/ORB_SLAM/Thirdparty/DBoW2    
mkdir build
cd build
cmake .. -DROS_BUILD_TYPE=Release
make

6 编译ORB_SLAM

cd ORB_SLAM2
chmod +x build.sh
./build.sh
chmod +x build_ros.sh
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/catkin_ws/src/ORB_SLAM2/Examples/ROS
./build_ros.sh

注意:如果你下载的ORB_SLAM2不在catkin_ws/src内,那你需要将整个文件夹全部移入catkin_ws/src内,然后再export

如果以上你没问题了,那么恭喜,你差不多可以使用了,笔者在./build_ros.sh时遇到了如下问题

问题1:

error: ‘usleep’ was not declared in this scope

解决方法:将ORB_SLAM2中的examples和src中所有后缀为.cc的都加上

#include <unistd.h>

问题2:

  File "/opt/ros/kinetic/share/ros/core/rosbuild/bin/check_same_directories.py", line 46, in <module>

    raise Exception

Exception

CMake Error at /opt/ros/kinetic/share/ros/core/rosbuild/private.cmake:102 (message):

  [rosbuild] rospack found package "ORB_SLAM2" at "", but the current

  directory is "/home/daiwj5/catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2".

  You should double-check your ROS_PACKAGE_PATH to ensure that packages are

  found in the correct precedence order.

Call Stack (most recent call first):

  /opt/ros/kinetic/share/ros/core/rosbuild/public.cmake:177 (_rosbuild_check_package_location)

  CMakeLists.txt:4 (rosbuild_init)

-- Configuring incomplete, errors occurred!

See also "/home/daiwj5/catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/build/CMakeFiles/CMakeOutput.log".

make: *** No targets specified and no makefile found.  Stop.

这个时候需要在~/.bashrc文件末尾添加一行路径,如下(如果放在主目录下的话):

export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/catkin_ws/src/ORB_SLAM2/Examples/ROS

保存后运行

source ~/.bashrc

若你还是不能编译,那么往下执行:

sudo rosdep fix-permissions
rosdep update

      若你在rosdep update时出现time out的情况时,有个快捷的解决方案是直接用别人编译好的rosdep文件夹。

成功执行./build_ros.sh后,进入ORB_SLAM2/Examples/ROS/ORB_SLAM2内,若出现mono文件,则说明编译orb_slam2成功

7 使用自己的USB摄像头跑ORB_SLAM

7.1 安装并测试摄像头功能包usb_cam

1.插上USB摄像头,检查usb摄像头是否正常连接:

cd /
cd dev
ls

2.下载摄像头功能包

​cd ~/catkin_ws/src
git clone https://github.com/bosch-ros-pkg/usb_cam.git
cd~/catkin_ws
catkin_make

3.编译好之后,添加编译好的文件到环境变量:

source devel/setup.bash

4.测试摄像头功能包usb_cam

roscore
roslaunch usb_cam usb_cam-test.launch

7.2 将数据接入orb_slam

cd catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/src
gedit ros_mono.cc

将subscribe的话题subscribe("/camera/image_raw",1)中的/camera/image_raw改为/usb_cam/image_raw

然后重新编译ROS的example 

cd build
cmake ..
make

7.3 启用orb_slam2中的节点

rosrun ORB_SLAM2 Mono /home/xx/catkin_ws/src/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/xx/catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/Asus.yaml

此时就可以正常运行了,效果如下:

参考链接

利用外接usb摄像头跑通ORB SLAM2的记录_点滴记录-CSDN博客

安装usb_cam ROS 功能包 - 简书

ORB-slam3 编译出现 Could not find a package configuration file provided by “Pangolin“ with any of the fo_恶搞大王的博客-CSDN博客

Ubuntu20.04安装Pangolin(视觉SLAM十四讲)_小二儿的饲养员的博客-CSDN博客

【003】cmake安装更新(解决cmake报错:CMake 3.8 or higher is required. You are running version 3.5.1)_mengyu_0317的博客-CSDN博客

error: ‘usleep‘ was not declared in this scope解决办法_出门两双鞋的博客-CSDN博客

ORB-SLAM2编译安装_陈建驱的博客-CSDN博客

安装usb_cam ROS 功能包 - 简书

Ubuntu20.04安装Pangolin(视觉SLAM十四讲)_小二儿的饲养员的博客-CSDN博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值