Ubuntu20.04配置ORB_SLAM3并简单运行

1.Pangolin v0.6(稳定版)的安装

官方下载地址:

https://github.com/stevenlovegrove/Pangolin/archive/refs/tags/v0.6.zip

也可以从我的资源中下载:

Pangolin-0.6.zip-Ubuntu文档类资源-CSDN下载

# 安装依赖项
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

若安装成功,则会出现以下图片:

Ubuntu20.04配置ORB_SLAM3并简单运行_第1张图片

 2.安装opencv-3.4.5

这里给出官方的地址

https://github.com/opencv/opencv/archive/3.4.5.zip

将文件解压到某个位置,在该文件下打开终端

# 安装依赖项
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
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 
# 配置并编译
mkdir build && cd build 
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -4j
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

Ubuntu20.04配置ORB_SLAM3并简单运行_第2张图片

  若安装成功则会显示你安装的版本,例如我安装的3.4.5版本

3.编译安装ORB_SLAM3


首先,修改一下文件

在报错的文件里,如KannalaBrandt8.cpp,LocalMapping.h

在include之后加上如下代码

namespace cv
{
template static inline
Matx<_Tp, m, n> operator / (const Matx<_Tp, m, n> &a, float alpha)
{
return Matx<_Tp, m, n>(a, 1.f / alpha, Matx_ScaleOp());
}
}

添加后:

Ubuntu20.04配置ORB_SLAM3并简单运行_第3张图片

Ubuntu20.04配置ORB_SLAM3并简单运行_第4张图片

 开始编译,进入ORB_SLAM3的文件夹

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

若仍然有报错,可尝试单线程编译,即在ORB_SLAM3的终端下依次输入命令行:

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 -j

编译成功后:

Ubuntu20.04配置ORB_SLAM3并简单运行_第5张图片

 4.运行数据集验证

下载数据集:

kmavvisualinertialdatasets – ASL Datasets

Ubuntu20.04配置ORB_SLAM3并简单运行_第6张图片

 要下载ASL格式的

在主文件夹下新建一个名为  SLAM_dates  的文件夹,并把所有数据集压缩包放入,并进行解压。

Ubuntu20.04配置ORB_SLAM3并简单运行_第7张图片

 打开ORB_SLAM3所在的文件夹

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

按Ctrl+L可查看数据文件夹当前路径,建立软连接

ln -s /home/leon/SLAM_dates SLAM_dates

这里的    leon   要改成你的用户名,完成得:

Ubuntu20.04配置ORB_SLAM3并简单运行_第8张图片

 在ORB_SLAM3中的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

即可运行  MH_01_easy  数据集

Ubuntu20.04配置ORB_SLAM3并简单运行_第9张图片

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

5.ROS接口的编译(前提是完成了ROS Noetic的安装)

环境变量添加

gedit ~/.bashrc

添加一行

export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/leon/catkin_ws_orbslam3/src/ORB_SLAM3/Examples/ROS

这里的  /home/leon/catkin_ws_orbslam3/src  需要换成你自己放ORB_SLAM3的路径

ROS接口编译

# 执行build_ros.sh 脚本
chmod +x build_ros.sh
./build_ros.sh

若会报错则进行单线程编译,即在ORB_SLAM3的终端下依次输入命令行

echo "Building ROS nodes"

cd Examples/ROS/ORB_SLAM3
mkdir build
cd build
cmake .. -DROS_BUILD_TYPE=Release
make -j

若无报错,则编译成功

Ubuntu20.04配置ORB_SLAM3并简单运行_第10张图片

到此ORB_SLAM3正式安装完成!

你可能感兴趣的:(自动驾驶,linux,slam)