Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)

本人小白,寒假期间学习了一些ROS知识,试着在虚拟机搭建ORB_SLAM3环境并跑通数据集和摄像头,作本文以记录学习过程。所有用到的资源(软件安装包,镜像文件,库的源码文件都会放在最后百度网盘链接里)

目录

0.something you should know

1.安装VMware Workstation Pro和Ubuntu18.04

2.安装ROS

3.安装ORB_SLAM3所需的各种库和依赖

4.编译ORB_SLAM3并在非ROS环境下跑通数据集&跑自己录制的Video

5.编译ORB_SLAM3ROS接口实时跑USB单目摄像头


0.something you should know

#你需要知道什么是终端,怎么唤起终端
CTRL+ALT+T #唤起一个终端
#当需要在特定的文件夹里输入指令,进入文件夹后右键打开终端即可

cd xxx  #进入xxx文件夹
cd ..   #返回上一层
./XXXX  运行当前终端目录里的XXXX文件

#当运行 sudo ..................之类的指令时,自己输入的密码不会显示出来,但实际上
已经输入了,输完按下回车即可

#暂停正在运行的任务CTRL+C

在文件夹打开的终端里sudo gedit 文件名 #修改有读取权限的文件

TAB键可以智能自动补全,如打开857qwsa文件
输入 sudo gedit 85后按下TAB即可补全名称,在运行某个节点时也同理

1.安装VMware Workstation Pro和Ubuntu18.04

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第1张图片

先安装第二个软件,然后根据网上的教程,选用第一个文件作为镜像,创建虚拟机。

进入虚拟机,完成基本配置。

静心等待安装过程。。。。。。。。。。。。。。。。

完成后你会发现不是全屏,也不能在win和虚拟机之间拖拽文件和复制代码。

换成aliyun的源(根据自身选择)

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第2张图片

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第3张图片

 创建共享文件夹(选做)

选择一个win的文件夹作为共享文件夹,如图操作。

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第4张图片

然后在虚拟机里/mnt/hgfs/能找到win对应的文件夹,为了方便可以把文件夹拖到左侧创建便捷书签。 

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第5张图片

然后就能在win和虚拟机之间复制粘贴(没下面的VMware Tools方便,但也能作为一个小知识)

安装VMware Tools(全屏,在win和虚拟机之间直接拖拽文件和复制代码等等。。。)

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'   #换源
sudo apt-get autoremove open-vm-tools	#卸载已有的工具
sudo apt-get install open-vm-tools		#安装工具open-vm-tools
sudo apt-get install open-vm-tools-desktop  #安装open-vm-tools-desktop

然后关机重启虚拟机,就可以在win和虚拟机里直接拖拽文件和复制代码了!!(舒服嘿嘿)


2.安装ROS

终端

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654  #导入密匙

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第6张图片

接着依次执行

sudo apt-get update  #更新软件库

sudo apt-get install ros-melodic-desktop-full  #ROS桌面完整版

sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential   #安装一些软件

软件更新完,如果有网址忽略啥的可以多刷几遍,跟网络状况有关

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第7张图片

  安装软件可能有点慢,一路yes+回车就行

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第8张图片

接下来到了第一个难点(建议按照本文操作,亲自尝试可以搞定的。)

第一步,sudo apt-get install python3-pip;第二步,sudo pip3 install rosdepc;然后
sudo rosdepc init;最后rosdepc update,完美解决再次感谢。

成功的话跳到

-----------------------here--------------------------------------------------------

终端输入并执行

sudo rosdep init
###会提醒你rosdep update

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第9张图片

然后执行

rosdep update

成功的话长这样,90%概率不成功多试几次,多试几次,多试几次,不成功会提示(右图)。死活不行的话依照下方解决方法轻松搞定

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第10张图片Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第11张图片

解决方法(如上左图的可以跳过)


首先确定 sudo rosdep init 是否成功,是否在如下目录下生成此文件:/etc/ros/rosdep/sources.list.d/20-default.list,若没有,可从其他配置成功的电脑上拷贝过来;

修改/etc/ros/rosdep/sources.list.d/20-default.list文件在所https://raw.githubusercontent.com前加上
https://ghproxy.com/

只读模式的话在该文件夹内打开终端,输入如下即可改写内容  学会该方法!!!!!!!

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第12张图片

改完之后如图,直接保存关闭即可。

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第13张图片

修改/usr/lib/python2.7/dist-packages/rosdistro/__init__.py文件:
在DEFAULT_INDEX_URL前面加上https://ghproxy.com/

 修改完成如下所示:

 接下来

sudo gedit /etc/hosts
在底部添加:
151.101.84.133 raw.githubusercontent.com
185.199.111.133 raw.github.com

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第14张图片

最后

/usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py中

将15改成115

 这样找文件路径

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第15张图片

 改完后

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第16张图片

保存关闭后,问题已经解决。重新执行

rosdep update

 如图Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第17张图片即可问题解决

-----------------------here--------------------------------------------------------

打开一个终端,依次执行以下

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc

source ~/.bashrc

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第18张图片安装完成!!!

检测

检测ROS是否安装成功,依次  1输指令,运行。。 2输指令,运行。。  3输指令,运行。。 把鼠标放在第三个终端里,通过键盘↑↓←→能控制小乌龟运动即可,表明完成了第二大步ROS的安装!!!!!(每次打开第二个节点生成的乌龟都是随机的,QWQ)

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第19张图片


3.安装ORB_SLAM3所需的各种库和依赖

Pangolin安装:

压缩包解压到本地,然后直接将文件夹拖进虚拟机

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第20张图片

终端

# 安装依赖项 #一路yes
sudo apt-get install libglew-dev
sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev
sudo apt-get install ffmpeg libavcodec-dev libavutil-dev libavformat-dev libswscale-dev
sudo apt-get install libpng-dev

# 配置并编译
cd Pangolin-0.6
mkdir build && cd build
cmake -DCPP11_NO_BOOST=1 ..
make -j
sudo make install

# 验证
cd ..
cd examples/HelloPangolin
mkdir build && cd build
cmake ..
make
./HelloPangolin

 配置的前三步完成后,warning不用管,只要没报错就行

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第21张图片

 (对于大型项目,在使用cmake控制编译时,仅仅执行make指令效率较低,使用make -j后面跟一个数字,比如make -j4 make -j6 make -j14等。)

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第22张图片别忘了 sudo make install

验证按照步骤来,若安装成功,则会出现以下图片

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第23张图片

OpenCV安装:

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第24张图片

# 安装依赖项
sudo add-apt-repository "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe"   #一遍即可

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"   #一遍即可

sudo apt update

sudo apt install libjasper1 libjasper-dev

sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff5.dev libswscale-dev libjasper-dev 

sudo apt install libcanberra-gtk-module libcanberra-gtk3-module 
# 配置并编译
# OpenCV文件夹内打开终端
mkdir build && cd build 

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

make -j

sudo make install #别忘了
#添加库路径
sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
#更新系统库
sudo ldconfig
#配置bash
sudo gedit /etc/bash.bashrc
在末端添加以下代码
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
export PKG_CONFIG_PATH 
#保存,执行如下命令使得配置生效:
source /etc/bash.bashrc 
sudo apt-get install mlocate
#更新
sudo updatedb  
#opencv版本检测
pkg-config --modversion opencv

 成功

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第25张图片

Eigen3安装:

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第26张图片

#安装
cd eigen-git-mirror
mkdir build
cd build
cmake ..
sudo make install
 

DBoW2 and g2o 安装:


sudo apt-get install cmake libeigen3-dev libsuitesparse-dev qtdeclarative5-dev qt5-qmake libqglviewer-dev     #g2o的依赖项
------
!E: 软件包 libqglviewer-dev 没有可安装候选

解决方法:

apt-cache search libqglviewer-dev
执行命令出现:

libqglviewer-dev-qt4 - OpenGL 3D viewer library based on Qt4 - development files
libqglviewer-dev-qt5 - OpenGL 3D viewer library based on Qt5 - development files
选择下面你要安装的软件包即可,我安装了第二个
sudo apt-get install libqglviewer-dev-qt5
------

sudo apt-get install libboost-dev     #DBoW2的依赖项

Libpython2.7-dev安装:

sudo apt install libpython2.7-dev

安装boost库:

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第27张图片

进入解压出来的文件夹,打开终端

sudo ./bootstrap.sh

sudo ./b2 install

sudo apt-get install libssl-dev

 fmt安装:

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第28张图片

cd fmt

mkdir build

cd build

cmake ..

make

sudo make install

 Sophus 安装:

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第29张图片

cd Sophus/

mkdir build

cd build

cmake ..

make

sudo make install



在这里强调!不要回滚git checkout a621ff,否则会装成老版本的非模板sophus(网上大多教程都有回滚)
千万不要回滚!!!!!且强调sudo make install一定要有


4.编译ORB_SLAM3并在非ROS环境下跑通数据集&跑自己录制的Video

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第30张图片

在文件夹内打开终端(在一个终端里依次输入以下指令并运行)
.........................................................................................
echo "Configuring and building Thirdparty/DBoW2 ..."
 
cd Thirdparty/DBoW2
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j
cd ../../g2o
 


echo "Configuring and building Thirdparty/g2o ..."
 
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j
 cd ../../../
 


echo "Uncompress vocabulary ..."
 
cd Vocabulary
tar -xf ORBvoc.txt.tar.gz

关闭终端,打开Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第31张图片

修改Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第32张图片

保存退出

在ORB_SLAM3-master文件夹内打开终端,依次输入
echo "Configuring and building ORB_SLAM3 ..."
 
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j  #make -j4更快,根据自己给虚拟机的配置而定

在执行make-j若出现以下报错时,可以尝试make不使用-jx多核编译。

在这里插入图片描述 ---编译时可用的内存不足。

关闭虚拟机,然后直接增大虚拟机的内存即可。我的配置Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第33张图片

 回到build文件夹,终端make等待完成即可

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第34张图片

 ORB_SLAM3源码编译完成

接下来跑官方数据集kmavvisualinertialdatasets – ASL Datasets

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第35张图片

在主文件夹下新建一个名为SLAM_dates  的文件夹

创建对应压缩包的名字的文件夹,例如MH_01_easy

将压缩包里的mv0放入 MH_01_easy中

 Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第36张图片

打开ORB_SLAM3-master文件夹

建立一个名为  datasets 的文件夹,并进入,进入后打开终端

ln -s /home/你的用户名,我是chb/SLAM_dates SLAM_dates  #建立软连接

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第37张图片

在Examples文件夹下执行下述命令,跑数据集

./Monocular-Inertial/mono_inertial_euroc ../Vocabulary/ORBvoc.txt ./Monocular-Inertial/EuRoC.yaml ../datasets/SLAM_dates/MH_01_easy ./Monocular-Inertial/EuRoC_TimeStamps/MH01.txt dataset-MH01_monoi

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第38张图片

 运行其他ASL格式的数据集,只需修改命令行中的  MH_01_easy  、 MH01.txt   和 MH01_monoi

 关于跑自己录制的视频文件

将 视频文件(mp4即可) 名字.cc名字.yaml 放入Monocular文件夹

修改后两个文件的名字

修改.cc文件内容

修改Cmakelist.txt文件内容

删除Build文件夹重新编译ORB_SLAM3

在Monocular里出现可执行文件。

运行./xxxxxx即可

放进去 

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第39张图片

改名字

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第40张图片

修改xxxx.cc文件内容,改成自己视频的名字。

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第41张图片

修改CMakeLists.txt

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第42张图片

删除build文件夹(3个)并重新编译ORB_SLAM3 

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第43张图片Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第44张图片Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第45张图片

在文件夹内打开终端(在一个终端里依次输入以下指令并运行)
.........................................................................................
echo "Configuring and building Thirdparty/DBoW2 ..."
 
cd Thirdparty/DBoW2
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j
cd ../../g2o
 


echo "Configuring and building Thirdparty/g2o ..."
 
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j
cd ../../../
 


echo "Uncompress vocabulary ..."
 
cd Vocabulary
tar -xf ORBvoc.txt.tar.gz
cd ..

echo "Configuring and building ORB_SLAM3 ..."
 
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make     #make -j4更快,根据自己给虚拟机的配置而定,可能会出现内存报错

耐心等待----------

出现可执行文件,如图。没有的话把Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第46张图片

复制过去,如下图

./louti   #换成你的可执行文件名字

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第47张图片

 效果图

Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第48张图片


5.编译ORB_SLAM3ROS接口实时跑USB单目摄像头

1.创建一个工作空间,我的是catkin_ws

1.创建工作空间
mkdir catkin_ws		//创建文件夹
cd catkin_ws
mkdir src
cd src				
catkin_init_workspace			//初始化工作空间

2.编译工作空间
cd ~/catkin_ws/
catkin_make

3.设置环境变量
source devel/setup.bash

4.永久添加环境变量:
echo "source ~/catkin_ws/devel/setup.sh" >> ~/.bashrc

5.检验环境变量
echo $ROS_PACKAGE_PATH


Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第49张图片

2.将整个文件夹复制到工作空间的src文件夹里。

 Ubuntu18.04跑通ORB_SLAM3(实时USB单目摄像头&本地视频.mp4&官方数据集)_第50张图片

3.


本人Q1945626852,欢迎各位大佬在评论区留言!

未完待续。。。

你可能感兴趣的:(ORB_SLAM3,ubuntu,自动驾驶,linux,计算机视觉)