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目录下打开终端,执行以下命令:

cd Pangolin
mkdir build
cd build

 


cmake ..

 

cmake --build . 

 

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

cd examples/HelloPangolin
./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目录下打开终端

mkdir build
cd build
cmake ..
sudo make install

(3)测试是否安装完成

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

touch test.cpp

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

gedit test.cpp

test.cpp

#include <iostream>
//需要将头文件从 /usr/local/include/eigen3/ 复制到 /usr/local/include
#include <Eigen/Dense>
//using Eigen::MatrixXd;
using namespace Eigen;
using namespace Eigen::internal;
using namespace Eigen::Architecture;
using namespace std;
int main()
{
        cout<<"*******************1D-object****************"<<endl;
        Vector4d v1;
        v1<< 1,2,3,4;
        cout<<"v1=\n"<<v1<<endl;
 
        VectorXd v2(3);
        v2<<1,2,3;
        cout<<"v2=\n"<<v2<<endl;
 
        Array4i v3;
        v3<<1,2,3,4;
        cout<<"v3=\n"<<v3<<endl;
 
        ArrayXf v4(3);
        v4<<1,2,3;
        cout<<"v4=\n"<<v4<<endl;
}

 运行:

./test.cpp

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

解决办法:

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

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

cd /usr/local/include
sudo ln -sf eigen3/Eigen Eigen
sudo ln -sf eigen3/unsupported unsupported

 

3、安装 Sophus

参考链接

(1)fmt安装

①下载fmt

官方下载链接:

 https://fmt.dev/8.1.1/

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


mkdir build
cd build
cmake ..
make
sudo make install

 (2)sophus安装

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

git clone https://github.com/strasdat/Sophus.git
cd Sophus/

mkdir build
cd build
cmake ..
make
sudo make install

4、 Ceres安装

先安装依赖项:sudo apt-get install  liblapack-dev libsuitesparse-dev libcxsparse3 libgflags-dev libgoogle-glog-dev libgtest-dev

git下来

编译:
cd ceres-solver
mkdir build && cd build
cmake ..
sudo make -j8
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安装

安装依赖:sudo apt-get install qt5-qmake qt5-default libqglviewer-dev-qt5 libsuitesparse-dev libcxsparse3 libcholmod3

git下来
git clone https://github.com/RainerKuemmerle/g2o.git
编译:
cd g2o
mkdir build && cd build
cmake ..
sudo make -j8
sudo make install

6、 DBoW3安装

git下来
git clone https://github.com/rmsalinas/DBow3.git

mkdir build
cd build/
cmake ..
make
sudo make install

二、安装编译ORB_SLAM2

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

  • 9
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ORB-SLAM3是一种在计算机视觉领域中广泛应用的视觉里程计算法,它利用ORB特征点提取与匹配、三角化和位姿估计等算法来进行实时的SLAM(同时定位与地图构建)。Kitti数据集是一个用于自动驾驶研究的包含图像、点云和激光雷达数据数据集。 为了在ORB-SLAM3中运行Kitti数据集,需要进行一些步骤。首先,需要下载Kitti数据集的图像序列和对应的地面真值位姿数据。然后,需要安装ORB-SLAM3的依赖库和编译源代码。 在运行时,首先需要将Kitti数据集的图像序列输入到ORB-SLAM3中。ORB-SLAM3将使用ORB特征点提取与匹配算法来对每个图像进行特征提取,并将其与之前的图像进行匹配来计算相机的运动。 接下来,ORB-SLAM3将使用三角化算法来计算相机的位姿。通过观察多个相机视角下的特征点,并使用三角化算法,可以将它们的三维位置恢复出来,从而构建场景的稀疏地图。 最后,ORB-SLAM3将利用位姿估计算法来不断迭代优化相机的位姿估计,以提高定位的精度。同时,ORB-SLAM3还可以将所有观测到的特征点和地图点存储在一张稠密地图中,以便后续的地图构建与利用。 通过在ORB-SLAM3中运行Kitti数据集,可以评估SLAM算法在自动驾驶场景下的定位性能。此外,还可以通过可视化地图和轨迹来分析ORB-SLAM3的定位结果,以及对应的相机运动和场景结构信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值