在Ubantu22.04中运行ORB_SLAM3
一、概述
ORB-SLAM3是一个支持视觉、视觉加惯导、混合地图的SLAM系统,可以在单目,双目和RGB-D相机上利用针孔或者鱼眼模型运行。从第一版的单目相机系统,到第二版加入了对stereo以及RGBD camera的支持,再到目前最新版本的orb-slam整合了visual,以及visual-inertial的融合方案,使得整个算法系统可以非常快速地应用于不同的硬件平台上。从这样的进化史来看,他们组的研究者们非常致力于将orb-slam打造成一个通用性很高的系统。这样的观点在论文原文中其实也得到了证实,而orb-slam最优秀,贡献最大的地方就在于这是一个完备,且精度很高的系统。
二、环境配置
1. 安装cv_bridge库:
1) sudo apt-get install libopencv-dev
之前已经安装过,所以此处并不需要继续安装。
- sudo apt-get install ros-noekit-cv-bridge
之前已经安装过,所以此处并不需要继续安装。
2.安装openCV
1)安装依赖项目:
sudo apt-get install build-essential libgtk2.0-dev libgtk-3-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
sudo apt install python3-dev python3-numpy
sudo apt install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
sudo apt install libpng-dev libopenexr-dev libtiff-dev libwebp-dev
2)下载openCV源文件:
官网下载source文件:
安装engen库
sudo apt-get install libeigen3-dev
- 安装Pangolin库
git clone https://github.com/stevenlovegrove/Pangolin.git
安装依赖:
sudo apt-get install libglew-dev libboost-dev libboost-thread-dev libboost-filesystem-dev
sudo apt-get install ffmpeg libavcodec-dev libavutil-dev libavformat-dev libswscale-dev libpng-dev
创建build:
执行:cmake -DCPP11_NO_BOOST=1 ..
之后执行:make
再执行:sudo make install
安装boost库
进入官网:http://www.boost.org/users/download/
下载后,解压:tar -xvf boost_1_77_0.tar.gz
依次执行: cd ./boost_1_77_0
./bootstrap.sh
sudo ./b2 install
下载ORB-SLAM3
执行:git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git
修改ORB-SLAM3/CMakelist.txt文件中第20行:
第41行:
修改ORB_SLAM3/Examples_old/ROS/ORB_SLAM3/CMakeLists.txt文件中:
修改ORB_SLAM3/Thirdparty/DBoW2 /CMakeLists.txt文件中:
修改ORB_SLAM3/Thirdparty/g2o/CMakeLists.txt文件中:
安装python
sudo apt install libpython2.7-dev
编译ORB-SLAM3
依次执行: cd ORB_SLAM3
chmod +x build.sh
./build.sh
三、ORB-SLAM3运行
1. 创建工作空间:
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ~/catkin_ws/
catkin_make
source ~/catkin_ws/devel/setup.bash
2.先启动roscore,然后运行驱动节点usb_cam_node
roscore
rosrun usb_cam usb_cam_node
摄像头启动后启用rqt工具查看图像
rqt_image_view
接收话题名称更改
在运行程序之前,需要将ORB_SLAM3/Examples_Old/ROS/ORB_SLAM3/src/ros_mono.cc和ORB_SLAM3/Examples_Old/ROS/ORB_SLAM3/src/AR/ros_mono_ar.cc的接收话题名称更改
4.执行单目实时usb_cam效果
rosrun ORB_SLAM3 Mono Vocabulary/ORBvoc.txt Examples/Monocular/EuRoC.yaml
四、结论
目前能够编译运行诸如此类的特征法SLAM开源项目了,虽然初学经历了各种尝试,但是熟悉了Linux系统和ROS系统的操作、cmake、shell、OpenCV等等,为了能够自己进行开发,还需要更深入的学习。
从开源项目入手,学习其理论和工程实现,是入门的捷径,只有看懂的代码才改的动代码,深入之后在其基础上做一定的改进。
工程实现只是科研的一部分,作为研究生,更重要的是抓住SLAM中的一个小问题,看看能否对现有的算法进行改进或者比较。所以还是要从论文出发,寻找灵感,去实现,并验证效果。
标签:Ubantu22.04,sudo,dev,SLAM3,apt,install,ORB From: https://www.cnblogs.com/SSmonkey/p/18285662