Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The compilation succeeds, but the visualization window crashes when the dataset is run #41

Open
Lijingbohere opened this issue Apr 18, 2023 · 5 comments

Comments

@Lijingbohere
Copy link

Why does the visualization window crash when I run the EuRoC dataset and report a segment error in the terminal

@Lijingbohere
Copy link
Author

linsanity@linsanity-Legion-Y7000P-IAH7:~/dm-vio-ros/src/dm-vio-ros$ rosrun dmvio_ros node calib=/home/linsanity/dm-vio-ros/src/dm-vio-ros/camConfigs/euroc.txt settingsFile=/home/linsanity/DM-VIO/src/dm-vio/configs/euroc.yaml mode=1 nogui=0 preset=0 useimu=1 quiet=1 start=2 init_requestFullResetNormalizedErrorThreshold=0.8 init_pgba_skipFirstKFs=1
Loading settings from yaml file: /home/linsanity/DM-VIO/src/dm-vio/configs/euroc.yaml!
PHOTOMETRIC MODE WITHOUT CALIBRATION!

=============== PRESET Settings: ===============
DEFAULT settings:

  • no real-time enforcing
  • 2000 active points
  • 5-7 active frames
  • 1-6 LM iteration each KF
  • original image resolution
    ==============================================
    Enabling IMU integration!
    QUIET MODE, I'll shut up!
    Settings:
    accelerometer_noise_density: 0.2
    accelerometer_random_walk: 0.003
    addVisualToCoarseGraphIfTrackingBad: 0
    alwaysCanBreakIMU: 0
    baToCoarseAccBiasVariance: 1000
    baToCoarseGyrBiasVariance: 0.05
    baToCoarsePoseVariance: 0.1
    baToCoarseRotVariance: 1
    baToCoarseVelVariance: 0.1
    calib: /home/linsanity/dm-vio-ros/src/dm-vio-ros/camConfigs/euroc.txt
    dynamicWeightRMSEThresh: 8
    fixKeyframeDuringCoarseTracking: 1
    gamma:
    generalScaleIntervalSize: 60
    gravityDirectionFixZ: 1
    gyroscope_noise_density: 0.016968
    gyroscope_random_walk: 1.9393e-05
    imuCalib:
    init_coarseScaleUncertaintyThresh: 1
    init_conversionType: 0
    init_disableVIOUntilFirstInit: 1
    init_fixPoses: 1
    init_initDSOParams: 1
    init_lambdaLowerBound: 1e-16
    init_maxNumPoses: 100
    init_multipleBiases: 0
    init_multithreadedInitDespiteNonRT: 0
    init_onlyKFs: 1
    init_pgba_conversionType: 0
    init_pgba_delay: 100
    init_pgba_prepareGraphAddDelValues: 0
    init_pgba_prepareGraphAddFactors: 0
    init_pgba_priorExtrinsicsRot: 0.01
    init_pgba_priorExtrinsicsTrans: 0.1
    init_pgba_priorGravityDirection: 0.4
    init_pgba_priorGravityDirectionZ: 0.0001
    init_pgba_reinitScaleUncertaintyThresh: 0.5
    init_pgba_scaleUncertaintyThresh: 1
    init_pgba_skipFirstKFs: 1
    init_priorExtrinsicsRot: 0.01
    init_priorExtrinsicsTrans: 0.1
    init_priorGravityDirection: 0.4
    init_priorGravityDirectionZ: 0.0001
    init_priorRotSigma: 1e-05
    init_priorTransSigma: 1e-05
    init_requestFullResetErrorThreshold: -1
    init_requestFullResetNormalizedErrorThreshold: 0.8
    init_scalePriorAfterInit: 0
    init_secondthreshGravdir: 1000
    init_secondthreshScale: 1e+07
    init_threshGravdir: 1000
    init_threshScale: 1.02
    init_transitionModel: 2
    init_updatePoses: 1
    integration_sigma: 0.316227
    maxFrameEnergyThreshold: 5000
    maxSkipFramesFullReset: -1
    maxSkipFramesVisualInertial: 2
    maxSkipFramesVisualInit: 0
    maxSkipFramesVisualOnlyMode: 1
    maxTimeBetweenInitFrames: 100000
    minQueueSizeForSkipping: 2
    normalizeCamSize: 0
    numMeasurementsGravityInit: 40
    preload: 0
    priorExtrinsicsRot: 0.01
    priorExtrinsicsTrans: 0.1
    priorGravityDirection: 0.4
    priorGravityDirectionZ: 0.0001
    resultsPrefix:
    setting_forceNoKFTranslationThresh: 0
    setting_maxOptIterations: 6
    setting_minFramesBetweenKeyframes: -0.5
    setting_minIdepth: 0.02
    setting_minOptIterations: 1
    setting_optGravity: 1
    setting_optIMUExtrinsics: 0
    setting_optScaleBA: 1
    setting_prior_bias: 0
    setting_prior_velocity: 0
    setting_scaleFixTH: 0
    setting_solverMode: 2048
    setting_transferCovToCoarse: 1
    setting_visualOnlyAfterScaleFixing: 0
    setting_weightDSOCoarse: 0.001
    setting_weightDSOToGTSAM: 1.66667e-05
    setting_weightZeroPriorDSOInitX: 0
    setting_weightZeroPriorDSOInitY: 0
    skipFirstKeyframe: 0
    skipFramesVisualOnlyDelay: 30
    speed: 0
    start: 2
    transferCovToCoarseMultiplier: 1
    updateDynamicWeightDuringOptimization: 1
    useScaleDiagonalHack: 0
    vignette:
    Reading Calibration from file /home/linsanity/dm-vio-ros/src/dm-vio-ros/camConfigs/euroc.txt ... found!
    found RadTan (OpenCV) camera model, building rectifier.
    Creating RadTan undistorter
    Input resolution: 752 480
    In: 458.654000 457.296000 367.215000 248.375000 -0.283408 0.073959 0.000194 0.000018
    Out: Rectify Crop
    Output resolution: 640 480
    finding CROP optimal new model!
    initial range: x: -1.0297 - 1.1007; y: -0.6043 - 0.5523!
    iteration 00001: range: x: -1.0245 - 1.0952; y: -0.6043 - 0.5523!
    iteration 00002: range: x: -1.0194 - 1.0897; y: -0.6043 - 0.5523!
    iteration 00003: range: x: -1.0194 - 1.0897; y: -0.6013 - 0.5495!
    iteration 00004: range: x: -1.0194 - 1.0897; y: -0.5983 - 0.5468!
    iteration 00005: range: x: -1.0194 - 1.0897; y: -0.5983 - 0.5468!

Rectified Kamera Matrix:
302.967 0 308.852
0 418.335 250.271
0 0 1

NO PHOTOMETRIC Calibration!
Reading Photometric Calibration from file
PhotometricUndistorter: Could not open file!
using pyramid levels 0 to 3. coarsest resolution: 80 x 60!
START PANGOLIN!
Switching to initializer state: RealtimeCoarseIMUInitState
PixelSelector: Using block sizes: 16, 16
OpenGL Error: GL_INVALID_OPERATION: The specified operation is not allowed in the current state. (1282)
In: /usr/local/include/pangolin/gl/gl.hpp, line 201
PixelSelector: Using block sizes: 16, 16
InitTimeBetweenFrames: 0.05
InitTimeBetweenFrames: 0.1
InitTimeBetweenFrames: 0.15
InitTimeBetweenFrames: 0.2
InitTimeBetweenFrames: 0.25
InitTimeBetweenFrames: 0.3
Scaling with rescaleFactor: 1.19942
INITIALIZE FROM INITIALIZER (972 pts)!
段错误 (核心已转储)

@lukasvst
Copy link
Owner

This might be a duplicate of lukasvst/dm-vio-ros#6
Do you have multiple boost versions installed on your machine?

Other possibilities:
Does the system work with useimu=0?

Does running DM-VIO on a dataset (without the ROS driver) work?

Otherwise you can run the code with gdb and print the backtrace to find the cause of the issue.

@Lijingbohere
Copy link
Author

Thank you very much for taking the time to reply to me, I have successfully reproduced your project with dm-vio-ros, and have conducted experiments on the EuRoC dataset and evaluated the results. Now I want to run your project on the Field Environment Dataset (ROOAD), which provides monocular data streams and IMU data streams, but I can't successfully estimate pose after setting up the camera.txt and corresponding yaml files. I'm guessing it might be somewhere where the configuration is imperfect.

image
2023-05-01 17-08-56 的屏幕截图

@Lijingbohere
Copy link
Author

I've evaluated the ROOAD dataset on VINSFusion and I think your project is definitely better than VINSFusion, but I've had some issues and would like your guidance.

@lukasvst
Copy link
Owner

From your screenshots it looks like it doesn't get past the "visual-init" stage. This would suggest that the camera calibration is not good enough (or maybe the motion is too fast for it to initialize?). Can you confirm that it can successfully track easy (slow) sequences with this camera calibration?

Another trick might be to use the following settings if you are on a vehicle which only moves forward:

setting_weightZeroPriorDSOInitY: 5e09
setting_weightZeroPriorDSOInitX: 5e09

(Maybe you need also to want to increase maxTimeBetweenInitFrames: 1.0, e.g to 2.0)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants