当前位置:   article > 正文

orbslam2+kitti数据序列图像

orbslam2+kitti数据序列图像

目录

一、下载ORB Slam2依赖

1、安装Pangolin

 2、安装Eigen

3、安装 Sophus

4、 Ceres安装

5、g2o安装

6、 DBoW3安装

二、安装编译ORB_SLAM2

 三、运行Kitee数据集

1、数据集准备

 2、单目模式运行演示案例

参考链接


一、下载ORB Slam2依赖

1、安装Pangolin

参考链接

注意:选择0.5版本,否则会出现错误

(1)下载Pangolin

链接:https://pan.baidu.com/s/1_rhfvx5rW7LteLXig8J8sg?pwd=3lzi 
提取码:3lzi

(2)安装Pangolin

下载完成后在Pangolin_v0.5目录下打开终端,执行以下命令:

  1. cd Pangolin
  2. mkdir build
  3. cd build

 

  1. cmake ..

 

cmake --build . 

 

 编译成功后,可以通过以下代码进行测试。

  1. cd examples/HelloPangolin
  2. ./HelloPangolin

 

 

 2、安装Eigen

注意:千万不要使用 sudo apt-get install libeigen3-dev 因为这个命令下载的是3.2版本的eigen,从而无法与模板类的sophus相匹配(1)在官网(Eigen)下载安装包:eigen-3.3.7.tar.bz2 ,然后提取到此处

(1)下载Eigen3.3.7:https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.tar.gz

(2)安装Eigen

解压后,在eigen-3.3.7目录下打开终端

  1. mkdir build
  2. cd build
  3. cmake ..
  4. sudo make install

(3)测试是否安装完成

建立一个test.cpp文件用以测试

touch test.cpp

用gedit 打开测试文件,添加c++代码用于测试

gedit test.cpp

test.cpp

  1. #include <iostream>
  2. //需要将头文件从 /usr/local/include/eigen3/ 复制到 /usr/local/include
  3. #include <Eigen/Dense>
  4. //using Eigen::MatrixXd;
  5. using namespace Eigen;
  6. using namespace Eigen::internal;
  7. using namespace Eigen::Architecture;
  8. using namespace std;
  9. int main()
  10. {
  11. cout<<"*******************1D-object****************"<<endl;
  12. Vector4d v1;
  13. v1<< 1,2,3,4;
  14. cout<<"v1=\n"<<v1<<endl;
  15. VectorXd v2(3);
  16. v2<<1,2,3;
  17. cout<<"v2=\n"<<v2<<endl;
  18. Array4i v3;
  19. v3<<1,2,3,4;
  20. cout<<"v3=\n"<<v3<<endl;
  21. ArrayXf v4(3);
  22. v4<<1,2,3;
  23. cout<<"v4=\n"<<v4<<endl;
  24. }

 运行:

./test.cpp

出现错误Eigen/Dense:没有那个文件或目录

解决办法:

安装完成后,编译器会去 /usr/local/include 或者 /usr/include 目录找头文件,但找到的是eigen3,并没有Eigen和unsupported,因此需要建立一个软连接,链接到这两个文件夹即可

如果eigen3文件在/usr/local/include 目录下

  1. cd /usr/local/include
  2. sudo ln -sf eigen3/Eigen Eigen
  3. sudo ln -sf eigen3/unsupported unsupported

 

3、安装 Sophus

参考链接

(1)fmt安装

①下载fmt

官方下载链接:

 https://fmt.dev/8.1.1/

②解压后,在fmt-8.1.1目录下打开终端

  1. mkdir build
  2. cd build
  3. cmake ..
  4. make
  5. sudo make install

 (2)sophus安装

建立一个文件夹,右键在终端中打开后:

  1. git clone https://github.com/strasdat/Sophus.git
  2. cd Sophus/
  3. mkdir build
  4. cd build
  5. cmake ..
  6. make
  7. sudo make install

4、 Ceres安装

  1. 先安装依赖项:sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3 libgflags-dev libgoogle-glog-dev libgtest-dev
  2. git下来
  3. 编译:
  4. cd ceres-solver
  5. mkdir build && cd build
  6. cmake ..
  7. sudo make -j8
  8. sudo make install

 问题: CMake 3.16...3.27 or higher is required.  You are running version 3.5.1

解决参考链接:https://blog.csdn.net/qq_37425813/article/details/120436670

5、g2o安装

  1. 安装依赖:sudo apt-get install qt5-qmake qt5-default libqglviewer-dev-qt5 libsuitesparse-dev libcxsparse3 libcholmod3
  2. git下来
  3. git clone https://github.com/RainerKuemmerle/g2o.git
  4. 编译:
  5. cd g2o
  6. mkdir build && cd build
  7. cmake ..
  8. sudo make -j8
  9. sudo make install

6、 DBoW3安装

  1. git下来
  2. git clone https://github.com/rmsalinas/DBow3.git
  3. mkdir build
  4. cd build/
  5. cmake ..
  6. make
  7. sudo make install

二、安装编译ORB_SLAM2

  1. # 通过git下载ORB_SLAM2源码,需要科学上网
  2. git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
  3. cd ORB_SLAM2
  4. # 赋予shell文件运行权限
  5. chmod +x build.sh
  6. # 需要科学上网
  7. # 博主根据个人电脑性能将build.sh里的make -j 修改为 make -j8
  8. ./build.sh

 出现错误

 解决:在 ORB_SLAM2/include/System.h 中加上 #include <unistd.h>

安装完成:

 三、运行Kitee数据集

1、数据集准备

链接:The KITTI Vision Benchmark Suite

 2、单目模式运行演示案例

运行命令格式为:
./mono_kitti path_to_vocabulary path_to_settings path_to_sequence
该命令共有4个参数:

mono_kitti:为ORB-SLAM2编译生成的针对MONO_KITTI数据集的可执行文件,一般路径为ORB-SLAM2工程目录下Examples/Monocular/mono_kitti;

path_to_vocabulary为所选词典的路径,路径为ORB_SLAM2/Vocabulary/ORBvoc.txt;

path_to_settings为配置文件,存放在ORB-SLAM2/Examples/Monocular下,运行时选择了KITTI00-02.yaml(可选择别的),该配置文件中存放的相机的内参和外参,提取特征时候图像金字塔相关参数,可视化过程中用到的参数;

path_to_sequence为数据集路径,这个根据自己下载的kitti数据集路径来指定。这里在Examples/Monocular目录下存放数据集文件01,故目录为 ./Example/Monocular/01 (…/表示上层目录,./表示当前目录)
我的执行,如下:在ORB_Slam2目录下,开启终端,输入:

./Examples/Monocular/mono_kitti Vocabulary/ORBvoc.txt Examples/Monocular/KITTI00-02.yaml ./Example/Monocular/01

 结果如下:


参考链接

orbslam2+kitti数据集序列图像-CSDN博客

致命错误:Eigen/Dense:没有那个文件或目录-CSDN博客

ORB-SLAM2详细安装教程(ubuntu18.04)_orbslam2安装-CSDN博客

ORB_SLAM2编译及试运行(含ROS)_/usr/local/include/pangolin/gl/opengl_render_state-CSDN博客编译orbslam2出现的error: ‘usleep’ was not declared in this scope usleep(3000);_orb_slam2/src/tracking.cc:1512:13: error: ‘usleep’-CSDN博客ORB SLAM2 编译报错 /usr/bin/ld:找不到 -lEigen3::Eigen - Weighting - 博客园 (cnblogs.com)从零开始构建ORB-SLAM2 (一)Pangolin v0.5的安装_pangolin 0.5-CSDN博客ubuntu20.04 安装 Sophus库 slambook2_ubuntu安装fmt8.1.1-CSDN博客ubuntu安装eigen3.3.7_ubuntu20.04编译安装eigen3.3.7-CSDN博客

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/522589
推荐阅读
相关标签
  

闽ICP备14008679号