m0_60501409 2022-02-16 21:22 采纳率: 0%
浏览 1923

ORBSLAM3以单目(Monocular)运行数据集时出错,ros用摄像头运行ORBSLAM3出错,如何解决?

虚拟机使用ubuntu20.04
2022年2月初下载并安装最新ORBSLAM3(与网上教程对照,我的版本特点是无euroc_examples,且有Examples与Examples_old两个文件夹)
数据集放在文件夹Datasets中,结构为/home/sbr/ORB_SLAM3/Datasets/MH01/mav0

问题一
在尝试运行MH01时,发现用双目(Stereo)可顺利运行,代码为

./Examples/Stereo/stereo_euroc ./Vocabulary/ORBvoc.txt ./Examples/Stereo/EuRoC.yaml ./Datasets/MH01 ./Examples/Stereo/EuRoC_TimeStamps/MH01.txt

可顺利出现如图两个界面

img


但是当我尝试单目(Monocular),即用如下代码运行时总是出错

./Examples/Monocular/mono_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular/EuRoC.yaml ./Datasets/MH01 ./Examples/Monocular/EuRoC_TimeStamps/MH01.txt

运行结果主要为

Loading ORB Vocabulary. This could take a while...
Vocabulary loaded!

Initialization of Atlas from scratch 
Creation of new map with id: 0
Creation of new map with last KF id: 0
Seq. Name: 
There are 1 cameras in the atlas
Camera 0 is pinhole
First KF:0; Map init KF:0
New Map created with 271 points 


virtual int g2o::SparseOptimizer::optimize(int, bool): 0 vertices to optimize, maybe forgot to call initializeOptimization()
virtual int g2o::SparseOptimizer::optimize(int, bool): 0 vertices to optimize, maybe forgot to call initializeOptimization()
virtual int g2o::SparseOptimizer::optimize(int, bool): 0 vertices to optimize, maybe forgot to call initializeOptimization()
Fail to track local map!
Fail to track local map!
Fail to track local map!
Fail to track local map!
Relocalized!!
Fail to track local map!
Fail to track local map!
Fail to track local map!
Fail to track local map!
Fail to track local map!
Fail to track local map!
Fail to track local map!
Fail to track local map!
Fail to track local map!
Fail to track local map!
Fail to track local map!
Fail to track local map!
Fail to track local map!
Shutdown

Saving trajectory to f_dataset-MH01_mono.txt ...
There are 1 maps in the atlas
  Map 0 has 288 KFs

End of saving trajectory to f_dataset-MH01_mono.txt ...

当运行到New Map created with 271 points 处时 我的笔记本开始轰鸣并长时间卡死 但不会有任何新界面弹出 等待很久便会出现之后的Fail to track local map!之类的报错

我尝试了各种办法 比如用数据集MH02来替代 将Examples换成Examples_old 重新运行build.sh 但没用 单目总是卡死 按网上说 顺利的话应该会出现类似上图所示的两个窗口 但我实在不知道怎么办了

问题二
我还遇到了个可能有关的错误 我安装ros并成功编译orbslam3中的build_ros.sh 按教程更改路径 启动roscore 打开usb_cam并运行如下代码

rosrun ORB_SLAM3 Mono /home/sbr/ORB_SLAM3/Vocabulary/ORBvoc.txt /home/sbr/ORB_SLAM3/Examples_old/ROS/ORB_SLAM3/Asus.yaml

报错结果如下

Loading ORB Vocabulary. This could take a while...
Vocabulary loaded!

Initialization of Atlas from scratch 
Creation of new map with id: 0
Creation of new map with last KF id: 0
Seq. Name: 

Camera Parameters: 
- Camera: Pinhole
- Image scale: 1
- fx: 535.4
- fy: 539.2
- cx: 320.1
- cy: 247.6
- k1: 0
- k2: 0
- p1: 0
- p2: 0
- fps: 30
- color order: RGB (ignored if grayscale)

ORB Extractor Parameters: 
- Number of Features: 1000
- Scale Levels: 8
- Scale Factor: 1.2
- Initial Fast Threshold: 20
- Minimum Fast Threshold: 7
There are 1 cameras in the atlas
Camera 0 is pinhole
Starting the Viewer
段错误 (核心已转储)

会在Loading ORB Vocabulary. This could take a while短暂停顿 后闪烁一次弹窗 并出现段错误 (核心已转储)等报错 我按教程删去一些cmakelist中的-march=native 但是没用 依教程 顺利的话应该出现类似下图结果

img


求帮忙!万谢

  • 写回答

11条回答 默认 最新

  • 赵4老师 2022-02-18 10:40
    关注

    ORB-SLAM3 细读单目初始化过程(上)
    https://www.cnblogs.com/yongqivisionimax/p/14248309.html

    ORB-SLAM3 单目地图初始化(终结篇,超详细)
    https://zhuanlan.zhihu.com/p/337979973

    评论

报告相同问题?

问题事件

  • 创建了问题 2月16日

悬赏问题

  • ¥15 算能的sail库的运用
  • ¥15 'Content-Type': 'application/x-www-form-urlencoded' 请教 这种post请求参数,该如何填写??重点是下面那个冒号啊
  • ¥15 找代写python里的jango设计在线书店
  • ¥15 请教如何关于Msg文件解析
  • ¥200 sqlite3数据库设置用户名和密码
  • ¥15 AutoDL无法使用docker install吗?
  • ¥15 cups交叉编译后移植到tina sdk的t113,只需要实现usb驱动打印机,打印pdf文件
  • ¥30 关于#wireshark#的问题:需要网络应用流量数据集需要做长度序列的实验,需要与应用产生的会话的数据包的长度,如视频类或者聊天类软件
  • ¥15 根据上述描述表示泥浆密度沿着管路的长度方向在不断变化,如何来表示泥浆密度随管路的变化(标签-matlab|关键词-流计算)
  • ¥21 matlab可以把图像数据转换为小波分析吗