草庐IT

安装ORB-SLAM3教程

陌柠>-\x3C 2023-04-20 原文

安装ORB-SLAM3教程

一、ROS一键安装(首次学ROS的话)

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

输入1,就根据提示一步一步来

二、ORB_SLAM3所依赖的包有pangolin,EIGEN3,OPENCV,DBoW2 和 g2o

1、安装工具

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

2、安装EIGEN3.3.4

直接源码安装

sudo apt-get install libeigen3-dev

3.安装pangolin0.6

(1)安装依赖

sudo apt install libglew-dev libpython2.7-dev

(2)获得pangolin的稳定版本安装包

(pangolin0.6版本下载) (0.6版本下载)选择Source code(tar.gz)
(安装出错参考) pangolin安装出错解决

(3)编译安装

mkdir build
cd build
cmake ..
make
sudo make install	
//安装后pangolin将在  /usr/local/include/中找到

(4)报错

可能会是缺少依赖:

sudo apt install libgl1-mesa-dev
sudo apt install libglew-dev
sudo apt install libpython2.7-dev
sudo apt install pkg-config
sudo apt install libegl1-mesa-dev libwayland-dev libxkbcommon-dev wayland-protocols

(5)测试

在你所放置的Pangolin文件下

cd build/examples/HelloPangolin
./HelloPangolin

运行此示例,效果显示是一个红绿蓝立方体,表示即为安装成功

4.安装opencv3.4.2

教程一: ubuntu16.04+Opencv3.4.3+opencv_contrib3.4.3安装编译全过程
教程二:ubuntu18.04中安装opencv3.2

5.DBoW2 和 g2o

DBoW2 和 g2o 在源码的第三方库中,无需下载,后面直接编译即可。

三、(非ROS)编译ORB_slam3

1.下载源码

ORB_SLAM3官网下载

git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git

2.编译

打开ORB_SLAM3中build.sh可以看到5个需要编译的第三方库
直接执行以下命令,可一次性编译这5个文档,一次成功是最省事了,但报错不易查找问题

cd ORB_SLAM3
chmod +x build.sh
./build.sh

故建议单独进行编译

(1)编译Thirdparty/DBoW2

在ORB_SLAM3文件夹下打开终端

cd Thirdparty/DBoW2
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j4

(2)编译Thirdparty/g2o

在/ORB_SLAM3下开终端

cd Thirdparty/g2o
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j4

(3)编译Thirdparty/Sophus

在/ORB_SLAM3下开终端

cd Thirdparty/ Sophus
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j4

(4)解压/ORB_SLAM3/Vocabulary/ORBvoc.txt.tar.gz

在/ORB_SLAM3下开终端

cd Vocabulary
tar -xf ORBvoc.txt.tar.gz
cd ..

(5)编译ORB_SLAM3

mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j4

(6)报错

报错1:Could not find a configuration file for package “OpenCV” that is compatible
with requested version “4.4”.
原因:此处我安装的是opencv3.4.2
解决:将/ORB_SLAM3/CMakeLists.txt中第33行
find_package(OpenCV 4.4)
此处的4.4改为3.4.2即可,即
find_package(OpenCV 3.4.2)
再次编译
报错2:realsense2config.cmake
解决:sudo apt-get install ros-melodic-realsense2-camera

四、数据集下载及运行,评估

1.下载:EuRoC 数据集下载序列(ASL 格式)

EuRoC 数据集下载
如图,Downloads下的ASL Dataset Format,点击任意link下载即可
/ORB_SLAM3下新建Datasets,将下载好的文件MH_01_easy(就是图中第一个Machine Hall 01)放入Datasets,并改名为MH01
ROS bag也下载一个

2.运行:以下网址中ORB_SLAM3/euroc_examples.sh 脚本内有各个数据集执行命令

另一个ORB_SLAM3
找到MH01对应sensor的命令运行即可,如:

 ./Examples/Stereo/stereo_euroc ./Vocabulary/ORBvoc.txt ./Examples/Stereo/EuRoC.yaml /home/nj/ORB_SLAM3/Datasets/MH01 ./Examples/Stereo/EuRoC_TimeStamps/MH01.txt dataset-MH01_stereo

3.评估:评估脚本euroc_eval_examples.sh,也在第五点的网址https://github.com/j4mf/ORB_SLAM3中可以得到

./euroc_examples.sh

五、运行相机(我用的是 Intel D455)

1.相机安装

sudo apt-get install ros-melodic-realsense2-camera

(先硬件连接好后,测试摄像头能否正常打开,启动)

roslaunch realsense_camera rs_rgbd.launch

2.修改参数文件

修改相机启动文件路径:/opt/ros/melodic/share/realsense2_camera/launch/rs_rgbd.launch
在此路径下/opt/ros/melodic/share/realsense2_camera/launch/打开终端

sudo gedit rs_rgbd.launch

改1:第78行,第79行改false为true


改2:图像大小改为640*480


保存
在路径/ORB_SLAM3/Examples/Stereo-Inertial下RealSense_D435i.yaml文件内参等配置按需要进行修改
运行脚本开始运行ORB-SLAM3:

./Examples/Stereo-Inertial/stereo_inertial_realsense_D435i Vocabulary/ORBvoc.txt ./Examples/Stereo-Inertial/RealSense_D435i.yaml

这是连接相机进行实际环境的显示情况

六、ROS部分编译

原作者将ROS部分放到了/ORB_SLAM3/Examples_old位置,后续编译是进入old中

1.添加环境变量

打开bashrc,执行

sudo gedit ~/.bashrc

在~/.bashrc中添加环境变量,将以下复制粘贴到最后一行:

export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:PATH/ORB_SLAM3/Examples_old/ROS

(绿色PATH改为自己的路径,如我的是:/home/nj/ORB_SLAM3/Examples_old/ROS)

2.ROS下编译

cd Examples_old/ROS/ORB_SLAM3
mkdir build
cd build
cmake .. -DROS_BUILD_TYPE=Release
make -j4

3.报错

报错1:/home/nj/ORB_SLAM3/Examples_old/ROS/ORB_SLAM3/…/…/…/include/ImuTypes.h:29:10: fatal error: sophus/se3.hpp: 没有那个文件或目录
#include <sophus/se3.hpp>
解决1:找到ORB_SLAM3/Examples_old/ROS/ORB_SLAM3下的CMakeLists.txt 修改它,include_directories中添加

 ${PROJECT_SOURCE_DIR}/../../../Thirdparty/Sophus 

再次编译
报错2:
(1)

(2)

(3)

解决:
(1)找到ORB_SLAM3/Examples_old/ROS/ORB_SLAM3/src/AR下的ros_mono_ar.cc文件:
将第151行的 cv::Mat Tcw = mpSLAM→TrackMonocular(cv_ptr→image,cv_ptr→header.stamp.toSec());
替换为:

 cv::Mat Tcw;
 Sophus::SE3f  Tcw_SE3f = mpSLAM->TrackMonocular(cv_ptr->image,cv_ptr->header.stamp.toSec());
 Eigen::Matrix4f Tcw_Matrix = Tcw_SE3f.matrix();
 cv::eigen2cv(Tcw_Matrix, Tcw);

(2)找到ORB_SLAM3/Examples_old/ROS/ORB_SLAM3/src/AR下的ViewerAR.cc文件:
将第405行的vPoints.push_back(pMP→GetWorldPos());
替换为:

cv::Mat WorldPos;
cv::eigen2cv(pMP->GetWorldPos(), WorldPos);
vPoints.push_back(WorldPos);

(3)还是ViewerAR.cc文件:
将532行的cv::Mat Xw = pMP→GetWorldPos();
替换为:

cv::Mat Xw;
cv::eigen2cv(pMP->GetWorldPos(), Xw);

重新编译
报错3:

解决:加头文件
在/ORB_SLAM3/Examples_old/ROS/ORB_SLAM3/src/AR/ViewerAR.h中加入如下:

#include <Eigen/Dense>
#include <opencv2/core/eigen.hpp>
#include <opencv2/opencv.hpp>

再次重新编译,可算ok了

七、ROS运行

1.开启三个终端

roscore

2.在ORB_SLAM3下打开终端(每开一次都要source)

source /home/nj/ORB_SLAM3/Examples_old/ROS/ORB_SLAM3/build/devel/setup.bash
rosrun ORB_SLAM3 Stereo Vocabulary/ORBvoc.txt Examples_old/Stereo/EuRoC.yaml /home/nj/下载/MH_01_easy.bag

(第一个参数为系统的主程序执行文件 Stereo

第二个参数为特征词典 Vocabulary/ORBvoc.txt

第三个参数为相机参数 Examples_old/Stereo/EuRoC.yaml
后续如果要使用自己的数据集,是需要修改这个文件的。而这个地方,也需要注意你下载的数据集和相机参数文件对应

第四个参数为数据集路径 /home/nj/下载/MH_01_easy.bag)
3.跑包

 rosbag play --pause –clock MH_01_easy.bag /cam0/image_raw:=/camera/left/image_raw /cam1/image_raw:=/camera/right/image_raw /imu0:=/imu

出现问题:
运行显示如下,无法跟踪上,是话题没同步还是哪里对应上

原因:上面的命令是启动双目的配置,但文件中缺少左右摄像头标定的内参,所以无法跟踪,需要的话就标了放进去编译启动,下面是以现有参数,启动单目,表明能运行成功就好
解决:
路径/home/nj/ORB_SLAM3/Examples_old/ROS/ORB_SLAM3/src/ros_mono_inertial.cc源码中查看订阅话题/camera/image_raw,100

开启三个终端
1.

roscore

2.在ORB_SLAM3下打开终端(每开一次都要source)

source /home/nj/ORB_SLAM3/Examples_old/ROS/ORB_SLAM3/build/devel/setup.bash

rosrun ORB_SLAM3 Mono Vocabulary/ORBvoc.txt Examples_old/Monocular-Inertial/EuRoC.yaml
 rosbag play --pause MH_01_easy.bag /cam0/image_raw:=/camera/image_raw /imu0:=/imu

结束

有关安装ORB-SLAM3教程的更多相关文章

  1. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

  2. ruby - 完全离线安装RVM - 2

    我打算为ruby​​脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn

  3. ruby-on-rails - rails 目前在重启后没有安装 - 2

    我有一个奇怪的问题:我在rvm上安装了ruby​​onrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(

  4. ruby - 如何为 emacs 安装 ruby​​-mode - 2

    我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby​​提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs

  5. ruby-on-rails - 无法在centos上安装therubyracer(V8和GCC出错) - 2

    我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e

  6. ruby - 通过 RVM (OSX Mountain Lion) 安装 Ruby 2.0.0-p247 时遇到问题 - 2

    我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search

  7. ruby - 如何在 Lion 上安装 Xcode 4.6,需要用 RVM 升级 ruby - 2

    我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121

  8. ruby - Fast-stemmer 安装问题 - 2

    由于fast-stemmer的问题,我很难安装我想要的任何ruby​​gem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=

  9. ruby - 安装 Ruby 时遇到问题(无法下载资源 "readline--patch") - 2

    当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub

  10. ruby - 通过 RVM 安装 Ruby 1.9.2 永远行不通! - 2

    当我执行>rvminstall1.9.2时一切顺利。然后我做>rvmuse1.9.2也很顺利。但是当涉及到ruby​​-v时..sam@sjones:~$rvminstall1.9.2/home/sam/.rvm/rubies/ruby-1.9.2-p136,thismaytakeawhiledependingonyourcpu(s)...ruby-1.9.2-p136-#fetchingruby-1.9.2-p136-#downloadingruby-1.9.2-p136,thismaytakeawhiledependingonyourconnection...%Total%Rece

随机推荐