ORB_SLAM3在ubuntu18.04下的环境搭建及测试
sudo
目录
一,安装对应的第三方依赖库
1.1,编译opencv
切记在安装ros前就将opencv安装好,否则会出问题
刚开始安装的opencv的版本是3.4版本的
但是到编译到后面的时候,编译发生错误,原来需要版本是大于4.4 版本的
可以修改编译文件,将opencv的版本更改为虚拟机上安装的opencvd的版本
ORB-SLAM3的作者使用的是以下的版本
1.2、Pangolin安装
首先下载该软件依赖的一
- sudo apt-get install libglew-dev
- sudo apt-get install cmake
- sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev
Pangolin安装包的下载地址为:
执行后的文件夹中的内容为:
- cd Pangolin
- mkdir build
- cd build
- cmake ..
- make
- sudo make install
最后一定加上一句话:
sudo ldconfig
测试是否安装成功
1.3、Eigen 3安装
直接使用命令安装的方法:
安装完成后,需要将eigen3中的文件夹Eigen放在include中,整个linux系统才能使用
linux 下面如何进行安装 Eigen .
调整,默认安装路径是:/usr/include/eigen3
cd /usr/include/eigen3
需要执行复制命令,将Eigen文件夹放在/usr/include 下面
sudo cp Eigen/ .. –R
1.4、boost安装
sudo apt-get update
sudo apt-get install libboost-all-dev
1.5 DBoW2 and g2o and Sophus
DBoW2 and g2o (这两个不需要单独安装,ORB-SLAM3的作者将这两个放在总工程的第三方依赖目录中。编译的时候会自动编译)
DBow2算法主要用于重定位或者称作闭环检测,英文叫loop closure或者place recognition。
DBOW2算法的全称为Bags of binary words for fast place recognition in image sequence,使用的特征检测算法为Fast,描述子使用的是brief描述子
1.6,下载ORB_SLAM3
下载完后,一定要检测下面这个文件夹是否是具有三个文件夹,分别是用来配置三个环境的。
使用命令下载为:
git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git ORB_SLAM3
1.7、Python
1. 8、ros环境的搭建
ROS环境,和作者环境保持一致,搭建melodic环境。
二、ORB_SLAM3的工程编译
官网上的编译方法
按照上面的环境的搭建,在编译过程中主要遇到了两个问题
1)问题1
编译过程中出现internal computer error,即内存不足的问题。
解决方法有两个方法
1.将虚拟机的内存扩容
2)问题2
OpenCV版本的问题,解决方法在opencv环境安装部分已经阐述
如下图所示,编译的接管显示为这样,表示编译环节已经完成
三、使用数据集跑例程
3.1 数据集下载
EuRoC数据集由两个针孔摄像头(pinhole)和一个惯性传感器(IMU)记录得到的数据EuRoC 数据集http://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets
进入主页,进行链接的复制,然后新开浏览器粘贴链接进行下载
3.2 数据集测试例程
3.2.1 V101数据集测试
1,创建一个新的文件夹Dtasets,将下载好的数据的压缩包解压,
2)将解压后的文件夹mav0移动到文件夹Dtasets目录下
3)在ORB_SLAM3文件夹下,打开终端,输入命令
./Examples/Stereo/stereo_euroc ./Vocabulary/ORBvoc.txt ./Examples/Stereo/EuRoC.yaml ./Datasets ./Examples/Stereo/EuRoC_TimeStamps/V101.txt
程序运行后的结果,如图所示:
3.2.2 单目测试
euroc_examples.sh脚本中提供了各种大同小异测试指令,读者可以很容易根据本文给出的指令做出相应修改。以下给出的是单目的测试指令。
./Examples/Monocular/mono_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular/EuRoC.yaml /你喜欢的位置/MH_01_easy ./Examples/Monocular/EuRoC_TimeStamps/MH01.txt dataset-MH01_mono
单目的测试脚本有个坑,能够成功运行,但不显示图像。其原因是/Examples/Monocular/mono_euroc.cc 中不知道为什么禁用了UI,将如下代码中false改为true即可。
注意:修改结束后需要回到主目录ORB-SLAM3中 ,打开终端,重新进行编译,编译后运行上面的命令,就可以显示出来图像。
测试结果如下图所示:
四、在主板nano上编译ORBSLAM3
编译的方法和上面的流程是一样的,只是NANOd的内存会小一些,编译速度没有在PC上面快。遇到了下面两个问题,解决方法为:
问题1:
分区的解决方法
C++ 错误解决 —— internal compiler error - Cyril_Wu - 博客园
2.缺库的解决方法
Ubuntu系统:sudo apt-get install libssl-dev
五、移植到其他未编译环境的方法
第一步安装依赖包:
sudo apt-get install libglew-dev
第二步梁所有ORB-SLAM3编译后依赖的动态库放置在lib文件中,并添加到环境变量文件bashrc中
添加如下的语句:
执行
source ~/.bashrc
第三步将缩减后的编译好的包进行拷贝
对应的ORB-SLAM3的lib中的动态库有,下图中的exampples中,是可执行文件,在部署的时候也可以进行删除不必要的使用的内容:
第四步:运行,还是拿钱买你的第一个例子为准:
./Examples/Stereo/stereo_euroc ./Vocabulary/ORBvoc.txt ./Examples/Stereo/EuRoC.yaml ./Datasets ./Examples/Stereo/EuRoC_TimeStamps/V101.txt
相关文章
- 微服务环境搭建-注册中心、配置中心、网关、远程调用测试
- Spring Data 测试时的 Repository 提示为空对象
- 如何建立云环境下的性能测试策略
- Sqoop集群环境搭建 | MySQL数据导出HDFS测试
- 性能测试工程师,面试都问什么?
- 自动化测试:Selenium自动化环境搭建
- 【安全测试】渗透测试神器BurpSuite环境搭建
- Locust性能测试 —— 环境搭建及使用
- 接口性能测试:web service接口测试
- web自动化测试 -- 文件上传与弹框处理
- Web自动化测试Python+Selenium环境搭建
- python+selenium自动化测试-Windows环境搭建
- testmysqltoelasticsearch75.json 未测试,仅参考
- 转:如何面试一个测试工程师
- 几个常用Json组件的性能测试
- 支付宝沙箱环境测试
- 开发和测试在同一个环境下怎么测试的,怎么控制的
- windows环境下的socket nc 测试小工具nc -L -p 9999
- 灵活运用Appium+Python实现iOS自动化测试~环境搭建
- 如何建立云环境下的性能测试策略
- 156-161.网络安全渗透测试—[Cobalt Strike系列]—[内网渗透之Windos域环境的搭建]
- 150.网络安全渗透测试—[Cobalt Strike系列]—[DNS Beacon原理/实战测试]
- stm8开发环境配置及测试
- Eclipse+Java+OpenCV246环境搭建和代码测试
- Maven的聚合 继承 属性 版本管理 多环境资源配置 跳过测试
- 高时延带宽的网络环境下使用Iperf测试网络性能
- stm8开发环境配置及测试