Linux中Realsense i435做输入端运行ORB_SLAM3

Linux中Realsense i435做输入端运行ORB_SLAM3_第1张图片Linux中Realsense i435做输入端运行ORB_SLAM3_第2张图片

部门买了台深度摄像头Intel Realsense i435
双目IR Camera + IMU + 单目RGB + 3D点阵红外投射器

Realsense i435深度摄像头的意义当然是在于跑ORB_SLAM3,3D重建等

下面就捋一捋在Linux环境中,怎么使用Realsense i435跑ORB_SLAM3算法

*网上查找到的经验大多都需要先在Ubuntu中搭建ROS系统,然后再在ROS中编译、运行RealSense SDK和ORB_SLAM3
本文所要讲述的环境搭建过程并没有搭建ROS系统,最终也能将RealSense与ORB_SLAM3串起来运行

*过程并不复杂,但是需要先在Linux里搭建编译、运行ORB_SLAM3的环境基础
此处不再复述,可以参考前文《搭建ORB_SLAM3在Linux下的编译和运行环境》

废话不多说,开撸!

一.安装、编译、运行Realsense SDK

a.下载librealsense github存储库
git clone https://github.com/IntelRealSense/librealsense
cd librealsense

b.安装构建librealsense所需的核心软件包
sudo apt-get install git libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev
如果是18.04的ubuntu,这一步直接可以安装过,没有任何问题
如果是20.04的ubuntu,libgtk-3-dev的安装会出现如下报错:

Linux中Realsense i435做输入端运行ORB_SLAM3_第3张图片

看起来是因为 libgtk-3-dev 的某些依赖包在20.04版本的ubuntu上无法直接安装,只能在较低版本的18.04上安装
那么就得换个方式安装 libgtk-3-dev 

使用以下命令:
sudo apt-get install libgtk-3-dev
下载安装完毕之后,我们可以使用以下命令来校验安装是否成功,并且查看GTK+3.0所包含的所有头文件以及库的路径:
pkg-config --cflags --libs gtk+-3.0

如果安装时仍然出现问题的话,我们也可以直接安装GTK+3.0的库以及其依赖项:
sudo apt-get install libgtk3*
(我最终使用该命令安装成功)

安装特定于发行版的软件包
Ubuntu 18:
sudo apt-get install libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev
(Ubuntu20一样也能使用该命令)

c.安装权限脚本
cd librealsense
./scripts/setup_udev_rules.sh

d.构建和修补内核模块(非必要)
这一步运行较慢,实际过程中没有使用这一步也能够使用相机。
./scripts/patch-realsense-ubuntu-lts.sh
(本次调试没有执行这一步)

e.编译安装
mkdir build
cd build
cmake ../ -DBUILD_EXAMPLES=true
make
sudo make install

编译耗时有点长,需要耐心等待
编译完成之后就可以先运行下realsense-viewer看看摄像头在ubuntu中能否正常运行

realsense-viewer是intel调试realsense摄像头的工具
这个工具在windows和linux下都有,realsense的官网上链接的github地址可以下载

f.realsense-viewer
进入librealsense/build/examples/capture,测试效果:
./rs-capture  
(这次调试没有安装ROS,所以不必执行这一步)

直接执行命令调用realsense-viewer工具查看效果:
执行命令:realsense-viewer

Linux中Realsense i435做输入端运行ORB_SLAM3_第4张图片

realsense-viewer工具会被调用起来,i435显示的2D/3D效果如下:

Linux中Realsense i435做输入端运行ORB_SLAM3_第5张图片

Linux中Realsense i435做输入端运行ORB_SLAM3_第6张图片

二.运行RealSense i435 & ORB_SLAM3

接下来要做的就是让ORB_SLAM3跑起来,并且把Realsense的数据作为input输入给ORB_SLAM3进行解析
cd ORB_SLAM3/Examples/RGB-D 
可以看到开源ORB_SLAM3源码中本来就有RealSense_D453i的相关配置文件

执行如下命令:
./Examples/RGB-D/rgbd_realsense_D435i ./Vocabulary/ORBvoc.txt ./Examples/RGB-D/RealSense_D435i.yaml 
发现有如下报错:

Linux中Realsense i435做输入端运行ORB_SLAM3_第7张图片

原因就是 ORB_SLAM3 源码中虽然有RealSense_D453i的配置,但是在之前 ORB_SLAM3 的编译时环境中还没有安装RealSense的SDK,所以并没有编译出RealSense的相关文件

解决办法是,在当前已经安装了RealSense SDK的环境中,重新编译一下ORB_SLAM3
在ORB_SLAM3目录下,执行:
chmod +x build.sh
./build.sh

ORB_SLAM3重新编译完成之后,再次执行 
./Examples/RGB-D/rgbd_realsense_D435i ./Vocabulary/ORBvoc.txt ./Examples/RGB-D/RealSense_D435i.yaml 

Linux中Realsense i435做输入端运行ORB_SLAM3_第8张图片

Linux中Realsense i435做输入端运行ORB_SLAM3_第9张图片

运行成功
接下来就可以对realsense摄像头进行各种骚操作开发了

参考文档:

ROS下intel realsense D435i安装 | huazhe's blog

Ubuntu下安装GTK+3的方法_Linux教程_云网牛站

你可能感兴趣的:(linux,ubuntu,xr,算法,ai)