ORB_SLAM2在Ubuntu22.04上运行

电脑配置

1.电脑联想Y7000,显卡1050Ti
2.预先装有ros2-humble版本
(一键安装ros2可以到小鱼社区那安装) link

ORB_SLAM2的源码下载

git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2

需要安装的一些库(有些的好像不用装)

如果安装了ros2,只需要下面两个依赖(Eigen3有了):
1.Pangolin
2.opencv-4.5.4

(这个CSDN上有很多教程)link

源码需要修改的地方

1.在下列源码中加入#include<unistd.h>


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

2.按照源码readme中的要求编译(在ORB_SLAM2目录下,可以将build.sh中的make -j改为make -j4编译快一些),建议逐条编译,可以查找问题.

cd ORB_SLAM2
chmod +x build.sh
./build.sh

3.相关报错
针对opencv,原文链接link

但是我这还是有问题,又添加了下列代码

set(OpenCV_DIR /home/aidn/opencv-4.5.4/build)#自己安装opencv文件夹的目录
find_package(OpenCV REQUIRED)

 #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")改为
 set(CMAKE_CXX_STANDARD 14)

针对Eigen出现的问题,继续修改为如下代码,

find_package(Eigen3 3.4.0 REQUIRED NO_MODULE)

针对运行代码一会出现,核心已转存link

New Map created with 118 points
段错误(核心已转储)

修改如下(每个txt文件里的都要改):

# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}  -Wall  -O3 -march=native ")
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall   -O3 -march=native")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}  -Wall  -O3")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall   -O3")

最后,重新运行代码,大概率是可以通过的

./build.sh

TUMX改为TUM1,这里PATH_TO_SEQUENCE_FOLDER之的是数据集所的位置

./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUMX.yaml PATH_TO_SEQUENCE_FOLDER

我自己运行的为例
./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml ./Data/rgbd_dataset_freiburg1_xyz


  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值