编译安装ORB-SLAM3


环境

联想台式机,配置很奇葩

  • CPU Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz
  • NVIDIA Corporation GK208B [GeForce GT 730]
  • 2 * 8G RAM

RK3399 SBC

  • 4G RAM

路径

顶层目录

准备依赖

Pangolin

这是一个轻量级的opengl 显示和交互开发库。demo code用到的。
然后apt 安装一些其它的依赖, 就可以编译安装Pangolin。

  • sudo apt install libgl1-mesa-dev libglew-dev

  • sudo apt install libegl1-mesa-dev libwayland-dev libxkbcommon-dev wayland-protocols

  • sudo apt install ffmpeg libavcodec-dev libavutil-dev libavformat-dev libswscale-dev libavdevice-dev

  • sudo pip –no-cache install pyopengl Pillow pybind11

  • git clone https://github.com/stevenlovegrove/Pangolin

  • cd Pangolin; mkdir build; cd build; cmake ../; cmake –build .; sudo make install

Opencv 3.2

在更新的发行版本里,自带的opencv 4.x不能通过编译。。所以只能使用老一些的版本,比如ubuntu18.04,或者自行编译一套老版本的opencv

  • sudo apt install libopencv-dev

DBoW2 / g2o

这里使用修改的版本,已经包含在源代码 的ORB_SLAM3/Thirdparty中,不需要额外下载。

编译

可以使用orb_slam3中自带的编译脚本“build.sh
build.sh 其实就是分别编译DBoW2/ g2o, 解压特征字典,最后编译ORB_Slam自身。

但在RK3399上,需要将脚本内的make -j 参数修改成2,否则。。。。

运行

Orb_slam自带了测试程序,需要额外下载配套的数据集。
可以从这里获取

如果是独立运行,选择ASL格式

部分数据集,仅压缩包就>10G,加钱警告,世界触手可及


下载好后,修改一下 euroc_examples.sh,将文件开头的数据集路径修改成刚刚解压的位置。

直接运行就可以。

euroc_examples.sh 会顺序的以不同方式运行各种数据集。当然也可以挑其中单独一个来运行。

比如,以单摄像头配合IMU运行, 就类似这样:

1
2
./Examples/Monocular-Inertial/mono_inertial_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular-Inertial/EuRoC.yaml "$pathDatasetEuroc"/V102 ./Examples/Monocul\
ar-Inertial/EuRoC_TimeStamps/V102.txt dataset-V102_monoi

首先会加载字典,需要等待一下下。。。

突然!

跳出两个激动人心的窗口


台式机加载字典时,单核100%,几秒钟,RK3399要久一点儿, 大概十几秒。 网上有针对ORB_SLAM2的优化,将字典binary,可以加速。

SLAM模式运行时,台式机双核工作(也可能是超线程), cpu 功耗13~15瓦左右,非常流畅。

但在RK3399上则卡顿很多, 两个大核已经很努力了, 但是四个小核心在吃瓜围观,目测5fps左右。 网上有针对ORB_SLAM2的 特殊优化,可以跑在CUDA上,以及使用优化的opencv库,据说有数倍的效能提升。


下一步:

  • 尝试真实硬件运行
  • 尝试整合程序
  • 尝试优化速度

to be continued..


文章作者: chopin1998@gmail.com
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 chopin1998@gmail.com !
评论
 本篇
编译安装ORB-SLAM3 编译安装ORB-SLAM3
环境联想台式机,配置很奇葩 CPU Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz NVIDIA Corporation GK208B [GeForce GT 730] 2 * 8G RAM RK3399
2020-12-08
下一篇 
关于ToF 番五 关于ToF 番五
一些照片和效果展示 字越少,事儿越大。 接下来还要捣鼓捣鼓,跑到ROS2上。 然后呢, 正式做adapter板。 结束了吗? 如今ToF步入主流技术三分天下的局面,好玩儿的事儿还在后面呢。 拭目以待 .end
2020-09-30
  目录