UZ-SLAMLab / ORB_SLAM3

ORB-SLAM3: An Accurate Open-Source Library for Visual, Visual-Inertial and Multi-Map SLAM

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Segmentation fault (Framebuffer with requested attributes not available.)

hlin863 opened this issue · comments

When running the instruction on running the monotum program with configurations from the file "TUM${fr_code}.yaml", to produce visual estimations of the camera's pose and reconstruct the environment using a single camera:

./Install/bin/mono_tum TUM${fr_code}.yaml ${your_tum_dataset_folder} ${result_file_name}

I encountered a segmentation fault error as following:
ORB-SLAM2 Copyright (C) 2014-2016 Raul Mur-Artal, University of Zaragoza.
(modifications carried out at UCL, 2022)
This program comes with ABSOLUTELY NO WARRANTY;
This is free software, and you are welcome to redistribute it
under certain conditions. See LICENSE.txt.

Input sensor was set to: Monocular

Loading ORB Vocabulary. This could take a while...
Using the binary cache file
Vocabulary loaded in 0.08s

Camera Parameters:

  • fx: 517.306
  • fy: 516.469
  • cx: 318.643
  • cy: 255.314
  • k1: 0.262383
  • k2: -0.953104
  • k3: 1.16331
  • p1: -0.005358
  • p2: 0.002628
  • 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

Start processing sequence ...
Images in the sequence: 798

InitializerLogger
Initializer::~Initializer
Initializer::~Initializer
Initializer::~Initializer
Framebuffer with requested attributes not available. Using available framebuffer. You may see visual artifacts.New Map created with 84 points
Wrong initialization, reseting...
System Reseting
Segmentation fault

Which steps should I take to fix the segmentation error?

Thank you!

commented

try to run it with sudo

./Install/bin/mono_tum TUM${fr_code}.yaml ${your_tum_dataset_folder} ${result_file_name}

When running sudo, the command is not found with the message "sudo: ./Install/bin/mono_tum: command not found" for the instruction "sudo ./Install/bin/mono_tum TUM123.yaml /path/to/your/tum/dataset/folder results.txt"

try to run it with sudo

The same segmentation error occurs after running with "sudo".

I believe the segfault is being caused by the map being reset in CreateMapMonocular() by:

  if (medianDepth < 0 || pKFcur->TrackedMapPoints(1) < 50) {
    Verbose::PrintMess("Wrong initialization, reseting...", Verbose::VERBOSITY_QUIET);
    RequestResetActiveMap();
    return;
  }

I've found that the system resets are very unstable, and I don't know entirely what caused this one to segfault.

The main issue in your case is that when SLAM functions properly, you should never be entering that if statement. Try to figure out which of the two conditions is true, and see if you can fix that.