ubuntu18.04运行ORB_SLAM2

news/2025/3/30 4:15:50/

1、基础工具安装

        安装cmake、git、gcc、g++。

sudo apt-get install cmake git gcc g++

2、安装Eigen库

        在终端输入以下代码。

sudo apt-get install libeigen3-dev

3、安装Pangolin0.5

        版本过高会导致错误,安装依赖项。

sudo apt-get install libglew-dev libpython2.7-dev sudo apt-get install libxkbcommon-x11-dev

        下载0.5版本:GitHub - stevenlovegrove/Pangolin at v0.5。

        

wget https://github.com/stevenlovegrove/Pangolin/tree/v0.5 
unzip Pangolin_v0.5.zip 
cd Pangolin 
mkdir build 
cd build 
cmake .. 
make 
sudo make install

4、安装Opencv3.4.9

        参考:ubuntu18.04下opencv3.4编译_alex1801的博客-CSDN博客_ubuntu18 编译opencv。

5、安装ORB_SLAM2

        下载地址:https://github.com/raulmur/ORB_SLAM2/archive/refs/heads/master.zip

step1、修改build.sh

        cd ORB_SLAM2

        chmod +x build.sh

        将build.sh文件和build_ros.sh中的make -j改为make

step2、头文件增加unistd.h引用

        打开下列文件加入头文件代码:#include

Examples/Monocular/mono_euroc.cc 
Examples/Monocular/mono_kitti.cc 
Examples/Monocular/mono_tum.cc 
Examples/RGB-D/rgbd_tum.cc 
Examples/Stereo/stereo_euroc.cc 
Examples/Stereo/stereo_kitti.cc 
src/LocalMapping.cc 
src/LoopClosing.cc 
src/System.cc 
src/Tracking.cc 
src/Viewer.cc

        完成以上步骤后,进入ORB_SLAM2文件夹进行编译:

./build.sh 
mkdir build 
cd build 
cmake .. 
make

        完成ORB_SLAM2的安装。

6、运行数据集

首先执行下面的语句:

sudo apt-get install libcanberra-gtk-module

下载数据集,网址:Computer Vision Group - Dataset Download

按照图示点击下载第一个文件。

        下载完成后解压缩到主目录(其他位置也可),进入ORB_SLAM2文件夹进行编译。注意代码最后一部分是数据集的存储路径,需要按照自己的存储路径进行更改。

7、测试

        在ORB_SLAM2文件夹内新建data(名字随意)文件夹,用于存放数据集,将刚刚解压缩后的文件夹拷贝至data文件夹内。

        由于是RGBD数据集,还有深度信息,所以需要再另外下载一个associate.py文件,链接如下:

cvpr-ros-pkg - Revision 232: /trunk/rgbd_benchmark/rgbd_benchmark_tools/src/rgbd_benchmark_tools

        下载好以后拷贝associate.py至ORB_SLAM2主文件夹内。在associate.py所在的目录执行:(将RGB信息和深度信息链接到一起)

        python associate.py data/rgbd_dataset_freiburg1_xyz/rgb.txt data/rgbd_dataset_freiburg1_xyz/depth.txt > data/rgbd_dataset_freiburg1_xyz/associations.txt

然后执行:

RGBD相机:

./Examples/RGB-D/rgbd_tum ./Vocabulary/ORBvoc.txt ./Examples/RGB-D/TUM1.yaml data/rgbd_dataset_freiburg1_xyz data/rgbd_dataset_freiburg1_xyz/associations.txt

出现运行结果:

单目:

        ./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml data/rgbd_dataset_freiburg1_xyz

文章来源:https://blog.csdn.net/weixin_34910922/article/details/128502640
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ppmy.cn/news/8217.html

相关文章

Redis 命令

文章目录Redis定义特点五种数据结构stringlistsethashzset事务定义multiexecdiscardredis事务只能保证部分原子性使用Java连接redis进行操作redis常用指令关闭虚拟机启动redis后台服务启动redis客户端启动指定IP和端口的:redis服务关闭指定IP和端口的:re…

Java八股文——泛型(二)

泛型泛型的多态基本类型不能作为泛型类型泛型类型不能实例化泛型数组静态方法和静态变量异常获取泛型的参数类型泛型的多态 我们的本意是进行重写,实现多态。可是类型擦除后,只能变为了重载。这样,类型擦除就和多态有了冲突。 桥方法的参数…

MPS | 简单易用的工业电源模块

工业与医疗应用中,在较高输入电压条件下,输出正压和负压的应用需求越来越多。 在应对输出负压条件时,传统解决方案电路复杂且体积庞大,研发周期较长。以半导体测试为例,新一代的测试机通常需要具备以下特点&#xff1…

第二十五讲:OSPF路由协议邻居认证配置

在相同OSPF区域的路由器上启用身份验证的功能,只有经过身份验证的同一区域的路由器才能互相通告路由信息。这样做不但可以增加网络安全性,对OSPF重新配置时,不同口令可以配置在新口令和旧口令的路由器上,防止它们在一个共享的公共…

二氧化碳捕获和电化学转化(Python代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Spring之IOC入门案例

目录 一:IOC入门案例实现思路分析 1.IOC容器管理什么? 2. 如何将被管理的对象告知 IOC 容器 ? 3.被管理的对象交给 IOC 容器,要想从容器中获取对象,就先得思考如何获取到 IOC 容器 ? 4.IOC 容器得到后,如何从容…

Python笔记 | 卡布列克常数

0x00 前言 任意一个不是由完全相同数字组成的四位数,如果对它们的每位数字重新排序,组成一个较大的数和一个较小的数,然后用较大数减去较小数,差不够四位数时补零,类推下去,最后将变成一个固定的数&#xf…

【ROS-melodic Learning】——机器人导航(古月居代码报错与解决方案)

文章目录遇见的问题及解决方案1. cannot launch node of type [arbotix_python/arbotix_driver]: arbotix_python2. Couldnt find executable named XXX.py3. Joint state with name: "base_l_wheel_joint" was received but not found in URDF4. The ‘state_publis…