本文详细介绍了乌班图安装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-devsudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-devsudo 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博客

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

  1. 乌班图安装出现无法获取锁解决

    乌班图安装出现无法获取前端锁解决 出现原因:更新系统,更新一半后突然断电死机,那么这个锁没有解除,下次安装软件,就会出现"无法获得锁 /var/lib/dpkg/XXX - open&quo ...

  2. 乌班图安装docker

    乌班图安装docker 文章目录 乌班图安装docker 前言 安装 设置仓库 安装 Docker Engine 安装特定版本的 Docker Engine: 测试 配置非 root 用户运行 Doc ...

  3. 乌班图 安装 nginx rtmp服务器

    乌班图 安装 nginx rtmp服务器 安装所需要的库 $sudo apt install build-essential libpcre3 libpcre3-dev libssl-dev zlib ...

  4. Linux:乌班图安装jdk

    乌班图安装jdk: 1.在官网下载对应的jdk版本(注册一个甲骨文账号),链接如下:https://www.oracle.com/java/technologies/javase/upgrade.ht ...

  5. 乌班图安装python_乌班图中怎么安装python

    Ubuntu16.04默认安装了Python2.7和3.5 请注意,系统自带的python千万不能卸载! 输入命令python 按Ctrl+D退出python命令行 输入命令sudo add-apt- ...

  6. 乌班图安装及环境配置

     1.安装ubuntu16.04乌班图操作系统. 将ubuntu-16.04.2-desktop-amd64.iso刻到U盘,通过工具Universal-USB-Installer-1.9.7.8 ...

  7. 乌班图安装pycharm

    首先在jetbrain下载pycharm压缩包 在downloads解压 然后打开终端 进入bin运行pycharm.sh ./pycharm.sh 然后还需要创建桌面快捷方式(乌班图是绿色安装包需要 ...

  8. 乌班图安装mysql 目录_Ubuntu 安装mysql 自定义数据存储目录

    一.安装 apt-get install mysql-server 执行过程如下: root@duke:~# apt-get install mysql-server 正在读取软件包列表... 完成 ...

  9. 乌班图安装nginx

    sudo apt search nginx | grep ^nginx 查询仓库里面是否有nginx 之后详细见:nginx: Linux packages 跟着步骤安装 安装完后输入 sudo sy ...

最新文章

  1. 20 个 Pandas 数据实战案例,干货多多
  2. mariadb-10实现半同步复制及SSL安全复制
  3. soap php 分开类,将请求处理到同一PHP SOAP服务器中的多个类
  4. ASP.NET 4 和 Visual Studio 2010 Web 开发概述
  5. Android Shell命令dumpsys
  6. 单片机位寻址举例_单片机的寻址方式
  7. linux一些好用的命令和快捷键
  8. 对一个简单汇编程序分析
  9. vm客户机隔离不能选_开汽车美容店,这些位置绝对不能选,会让你门可罗雀,生意惨淡...
  10. 【hackerrank】Week of Code 26
  11. 在Mac系统下架设WiFi热点,对比Win7
  12. [cocos2d-x]深入--几个代表性的类
  13. FileZilla:425 Can't open data connection for transfer of解决办法
  14. Openssl crl2pkcs7命令
  15. hdu--1077--Catching Fish
  16. Blog访问量提升秘笈
  17. Linux软件包安装之yum的使用
  18. Python中,如何使用ImageDraw在Image上绘制粗线?
  19. 微信小程序前端微信支付功能 支付流程
  20. 计算机视觉研究新方向:自监督表示学习总结(建议收藏)

热门文章

  1. 实现北京114挂号平台自动挂号功能
  2. 你知道在Java 中常被提的 SPI 到底是什么吗?
  3. 【第三步】了解关于CSDN开通VIP后的权益说明
  4. android4.2.2系统投屏,一学就会!手机投屏电视完整攻略
  5. Leetcode_Alog.136- Single Number
  6. 3名中学生脚踹流浪老人还发视频炫耀:没教养的人,有多可怕?
  7. 计算机软件安装方法,计算机软件安装方法与流程
  8. 钛媒体对话友盟+朋新宇:数据服务商该如何应对云时代?
  9. 编写一个android计算器,android编写的计算器,
  10. vue 电子表格Excel的上传导入、导出下载、读取本地Excel、json转Excel