Open antithing opened 1 year ago
Does the version on datasets (e.g. on TUM-VI corridor 1) work properly or does it also crash?
It looks like it tries to save the calibration and results in the root directory of your drive, I'm not sure if it has write access on Windows for this directory.
Otherwise the best way to debug this error would be to run it with the debugger and check the stacktrace when the error happens.
Hi @lukasvst thank you for getting back to me. Running in Debug gives me:
NO PHOTOMETRIC Calibration!
Reading Photometric Calibration from file
PhotometricUndistorter: Could not open file!
using pyramid levels 0 to 4. coarsest resolution: 53 x 50!
Using factory IMU calibration!
START PANGOLIN!
Switching to initializer state: RealtimeCoarseIMUInitState
'rm' is not recognized as an internal or external command,
operable program or batch file.
A subdirectory or file logs already exists.
'rm' is not recognized as an internal or external command,
operable program or batch file.
A subdirectory or file mats already exists.
PixelSelector: Using block sizes: 16, 16
SKIPPING 4 FRAMES! frames remaining in queue: 0
PixelSelector: Using block sizes: 16, 16
SKIPPING 0 FRAMES! frames remaining in queue: 4
In: D:\thirdParty\Pangolin-master\include\pangolin/gl/gl.hpp, line 214
InitTimeBetweenFrames: 0.0333335
SKIPPING 0 FRAMES! frames remaining in queue: 5
InitTimeBetweenFrames: 0.0666668
SKIPPING 0 FRAMES! frames remaining in queue: 6
InitTimeBetweenFrames: 0.1
SKIPPING 0 FRAMES! frames remaining in queue: 8
InitTimeBetweenFrames: 0.133334
SKIPPING 0 FRAMES! frames remaining in queue: 9
InitTimeBetweenFrames: 0.166667
SKIPPING 0 FRAMES! frames remaining in queue: 11
InitTimeBetweenFrames: 0.200001
SKIPPING 0 FRAMES! frames remaining in queue: 13
InitTimeBetweenFrames: 0.233334
SKIPPING 0 FRAMES! frames remaining in queue: 15
InitTimeBetweenFrames: 0.266667
SKIPPING 0 FRAMES! frames remaining in queue: 16
InitTimeBetweenFrames: 0.300001
SKIPPING 0 FRAMES! frames remaining in queue: 17
InitTimeBetweenFrames: 0.333334
SKIPPING 0 FRAMES! frames remaining in queue: 21
InitTimeBetweenFrames: 0.366668
SKIPPING 0 FRAMES! frames remaining in queue: 23
InitTimeBetweenFrames: 0.400001
SKIPPING 0 FRAMES! frames remaining in queue: 24
InitTimeBetweenFrames: 0.433334
SKIPPING 0 FRAMES! frames remaining in queue: 26
InitTimeBetweenFrames: 0.466668
SKIPPING 0 FRAMES! frames remaining in queue: 28
InitTimeBetweenFrames: 0.500001
SKIPPING 0 FRAMES! frames remaining in queue: 30
InitTimeBetweenFrames: 0.533334
SKIPPING 0 FRAMES! frames remaining in queue: 31
InitTimeBetweenFrames: 0.566668
SKIPPING 0 FRAMES! frames remaining in queue: 32
InitTimeBetweenFrames: 0.600001
SKIPPING 0 FRAMES! frames remaining in queue: 35
InitTimeBetweenFrames: 0.633334
SKIPPING 0 FRAMES! frames remaining in queue: 38
InitTimeBetweenFrames: 0.666668
SKIPPING 0 FRAMES! frames remaining in queue: 38
InitTimeBetweenFrames: 0.700001
SKIPPING 0 FRAMES! frames remaining in queue: 39
InitTimeBetweenFrames: 0.733335
SKIPPING 0 FRAMES! frames remaining in queue: 42
InitTimeBetweenFrames: 0.766668
SKIPPING 0 FRAMES! frames remaining in queue: 45
InitTimeBetweenFrames: 0.800001
SKIPPING 0 FRAMES! frames remaining in queue: 46
InitTimeBetweenFrames: 0.833335
SKIPPING 0 FRAMES! frames remaining in queue: 48
InitTimeBetweenFrames: 0.866668
SKIPPING 0 FRAMES! frames remaining in queue: 51
InitTimeBetweenFrames: 0.900002
SKIPPING 0 FRAMES! frames remaining in queue: 53
InitTimeBetweenFrames: 0.933161
SKIPPING 0 FRAMES! frames remaining in queue: 55
InitTimeBetweenFrames: 0.966494
SKIPPING 0 FRAMES! frames remaining in queue: 57
InitTimeBetweenFrames: 0.999828
SKIPPING 0 FRAMES! frames remaining in queue: 59
InitTimeBetweenFrames: 1.03316
SKIPPING 0 FRAMES! frames remaining in queue: 61
InitTimeBetweenFrames: 1.06649
SKIPPING 0 FRAMES! frames remaining in queue: 62
InitTimeBetweenFrames: 1.09983
SKIPPING 0 FRAMES! frames remaining in queue: 63
InitTimeBetweenFrames: 1.13316
SKIPPING 0 FRAMES! frames remaining in queue: 66
InitTimeBetweenFrames: 1.16649
SKIPPING 0 FRAMES! frames remaining in queue: 69
InitTimeBetweenFrames: 1.19983
SKIPPING 0 FRAMES! frames remaining in queue: 70
InitTimeBetweenFrames: 1.23316
SKIPPING 0 FRAMES! frames remaining in queue: 71
InitTimeBetweenFrames: 1.26649
SKIPPING 0 FRAMES! frames remaining in queue: 74
InitTimeBetweenFrames: 1.29983
SKIPPING 0 FRAMES! frames remaining in queue: 76
InitTimeBetweenFrames: 1.33316
SKIPPING 0 FRAMES! frames remaining in queue: 77
InitTimeBetweenFrames: 1.3665
SKIPPING 0 FRAMES! frames remaining in queue: 79
InitTimeBetweenFrames: 1.39983
SKIPPING 0 FRAMES! frames remaining in queue: 81
InitTimeBetweenFrames: 1.43316
SKIPPING 0 FRAMES! frames remaining in queue: 84
InitTimeBetweenFrames: 1.4665
SKIPPING 0 FRAMES! frames remaining in queue: 85
InitTimeBetweenFrames: 1.49983
SKIPPING 0 FRAMES! frames remaining in queue: 86
InitTimeBetweenFrames: 1.53316
SKIPPING 0 FRAMES! frames remaining in queue: 88
InitTimeBetweenFrames: 1.5665
SKIPPING 0 FRAMES! frames remaining in queue: 91
InitTimeBetweenFrames: 1.59983
SKIPPING 0 FRAMES! frames remaining in queue: 92
InitTimeBetweenFrames: 1.63316
SKIPPING 0 FRAMES! frames remaining in queue: 94
InitTimeBetweenFrames: 1.6665
SKIPPING 0 FRAMES! frames remaining in queue: 96
InitTimeBetweenFrames: 1.69983
SKIPPING 0 FRAMES! frames remaining in queue: 99
InitTimeBetweenFrames: 1.73316
SKIPPING 0 FRAMES! frames remaining in queue: 101
InitTimeBetweenFrames: 1.7665
SKIPPING 0 FRAMES! frames remaining in queue: 103
InitTimeBetweenFrames: 1.79983
SKIPPING 0 FRAMES! frames remaining in queue: 106
InitTimeBetweenFrames: 1.83316
SKIPPING 0 FRAMES! frames remaining in queue: 109
InitTimeBetweenFrames: 1.8665
SKIPPING 0 FRAMES! frames remaining in queue: 111
InitTimeBetweenFrames: 1.89983
SKIPPING 0 FRAMES! frames remaining in queue: 114
InitTimeBetweenFrames: 1.93316
SKIPPING 0 FRAMES! frames remaining in queue: 115
InitTimeBetweenFrames: 1.9665
SKIPPING 0 FRAMES! frames remaining in queue: 118
InitTimeBetweenFrames: 1.99983
SKIPPING 0 FRAMES! frames remaining in queue: 121
InitTimeBetweenFrames: 2.03316
SKIPPING 0 FRAMES! frames remaining in queue: 124
InitTimeBetweenFrames: 2.0665
SKIPPING 0 FRAMES! frames remaining in queue: 126
InitTimeBetweenFrames: 2.09983
SKIPPING 0 FRAMES! frames remaining in queue: 128
InitTimeBetweenFrames: 2.13316
SKIPPING 0 FRAMES! frames remaining in queue: 131
InitTimeBetweenFrames: 2.1665
SKIPPING 0 FRAMES! frames remaining in queue: 133
InitTimeBetweenFrames: 2.19983
SKIPPING 0 FRAMES! frames remaining in queue: 136
InitTimeBetweenFrames: 2.23316
SKIPPING 0 FRAMES! frames remaining in queue: 137
InitTimeBetweenFrames: 2.2665
SKIPPING 0 FRAMES! frames remaining in queue: 139
InitTimeBetweenFrames: 2.29983
SKIPPING 0 FRAMES! frames remaining in queue: 142
InitTimeBetweenFrames: 2.33316
SKIPPING 0 FRAMES! frames remaining in queue: 144
InitTimeBetweenFrames: 2.3665
SKIPPING 0 FRAMES! frames remaining in queue: 147
InitTimeBetweenFrames: 2.38983
SKIPPING 0 FRAMES! frames remaining in queue: 156
InitTimeBetweenFrames: 2.43316
SKIPPING 0 FRAMES! frames remaining in queue: 168
InitTimeBetweenFrames: 2.4665
SKIPPING 0 FRAMES! frames remaining in queue: 179
InitTimeBetweenFrames: 2.49983
SKIPPING 0 FRAMES! frames remaining in queue: 193
InitTimeBetweenFrames: 2.52316
SKIPPING 0 FRAMES! frames remaining in queue: 201
InitTimeBetweenFrames: 2.5665
SKIPPING 0 FRAMES! frames remaining in queue: 210
Scaling with rescaleFactor: 7.5105
Initialization: keep 9.8% (need 2000, have 20335)!
INITIALIZE FROM INITIALIZER (1971 pts)!
Frame history size: 79
Preparing keyframe: 78
Current mapping id: 78 create KF after: 78
Frames between KFs: 77
SPARSITY: MinActDist 1.900000 (need 2000 points, have 1971 points)!
OPTIMIZE 1971 pts, 1971 active res, 0 lin res!
Initial Error A(724061.624264)=(AV inf). Num: A('d) + M('d); ab 0.000000 0.000000!
Dynamic weight: 0
STEPS: A 0.0; B 0.0; R 0.0; T 0.0. REJECT 0 (L -5.00, dir nan, ss 1.0): A(2635841.448650)=(AV 20.332). Num: A('d) + M('d); ab 0.000000 0.000000!
Dynamic weight: 0.152984
STEPS: A 0.0; B 17.5; R 1.2; T 8.4. ACCEPT 1 (L -3.00, dir 0.38, ss 1.0): A(2621030.705718)=(AV 20.275). Num: A('d) + M('d); ab 0.000000 0.000000!
Dynamic weight: 0.155688
STEPS: A 0.0; B 1.4; R 0.7; T 0.2. ACCEPT 2 (L -3.60, dir 0.78, ss 1.0): A(2493161.072132)=(AV 15.377). Num: A('d) + M('d); ab 0.000000 0.000000!
Dynamic weight: 0.270667
STEPS: A 0.0; B 1.3; R 0.4; T 0.8. ACCEPT 3 (L -4.20, dir 0.71, ss 1.0): A(2464679.303179)=(AV 15.341). Num: A('d) + M('d); ab 0.000000 0.000000!
Dynamic weight: 0.271925
STEPS: A 0.0; B 1.6; R 0.6; T 0.3. ACCEPT 4 (L -4.81, dir 0.92, ss 1.0): A(2450703.405770)=(AV 15.304). Num: A('d) + M('d); ab 0.000000 0.000000!
Dynamic weight: 0.273267
STEPS: A 0.0; B 0.1; R 0.1; T 0.3. REJECT 5 (L -5.00, dir 0.57, ss 1.0): A(2451175.456030)=(AV 15.311). Num: A('d) + M('d); ab 0.000000 0.000000!
Num BA Iterations done: 6
LOG 78: 15.335 fine. Res: 1307 A, 0 L, 0 M; ('d / 'd) forceDrop. a=0.000000, b=0.000000. Window -883086680 (-309730729)
SKIPPING 0 FRAMES! frames remaining in queue: 225
And it crashes at "Pangolin-master\include\pangolin\gl\gl.hpp"
on GlBufferData::Reinitialise(buffer_type, size_bytes, gluse, data);
Stepping back through the stack leads to:
If I set:
bool disableAllDisplay = true;
It seems to run, and prints this:
Current mapping id: 795 create KF after: 597
SKIPPING 1 FRAMES! frames remaining in queue: 1124
lvl4, it -1 (l=0.010000 / 1.000000) INITIA: 0.000->52.568 (0 -> 293) (|inc| = 0.000000)! 0.00285573 -1.31823e-05 0.00260694 0.00733675 0.0349193 -0.00731295 AFF -0.0696036 -21.3145 (rel 0.932796 2.496)
lvl 4, it 0 (l=0.010000 / 1.000000) ACCEPT: 52.568->45.632 (293 -> 293) (|inc| = 0.010617)! -0.00535996 0.00270789 0.00516661 0.00694484 0.0385329 -0.00598132 AFF -0.0870911 -17.6893 (rel 0.916626 5.70842)
lvl 4, it 1 (l=0.005000 / 1.000000) ACCEPT: 45.632->45.447 (293 -> 295) (|inc| = 0.002700)! -0.00551905 0.00298596 0.0075905 0.0066162 0.038631 -0.0055161 AFF -0.0936622 -16.9519 (rel 0.910622 6.29255)
lvl 4, it 2 (l=0.002500 / 1.000000) ACCEPT: 45.447->44.646 (295 -> 299) (|inc| = 0.004170)! -0.00880916 0.00414628 0.00959426 0.00624058 0.0396082 -0.00530238 AFF -0.0955588 -16.8275 (rel 0.908897 6.37298)
lvl 4, it 3 (l=0.001250 / 1.000000) ACCEPT: 44.646->44.455 (299 -> 299) (|inc| = 0.002194)! -0.0107272 0.00500734
0.00990702 0.00614703 0.0399294 -0.00511979 AFF -0.0932735 -17.1362 (rel 0.910976 6.11728)
lvl 4, it 4 (l=0.000625 / 1.124683) ACCEPT: 44.455->44.248 (299 -> 299) (|inc| = 0.001463)! -0.0113372 0.00488776 0.0111308 0.00604992 0.0403728 -0.00530828 AFF -0.0922948 -17.2196 (rel 0.911868 6.05666)
lvl 4, it 5 (l=0.000312 / 1.337481) ACCEPT: 44.248->44.057 (299 -> 299) (|inc| = 0.002398)! -0.0128475 0.00559371 0.0127964 0.00594494 0.0408012 -0.00528112 AFF -0.0925453 -17.1953 (rel 0.91164 6.07514)
lvl 4, it 6 (l=0.000156 / 1.590541) REJECT: 44.057->44.137 (299 -> 299) (|inc| = 0.002032)! -0.0116611 0.00456846 0.0116854 0.00549699 0.0406654 -0.00555329 AFF -0.0952043 -16.9333 (rel 0.909219 6.27537)
lvl 4, it 7 (l=0.001000 / 1.000000) REJECT: 44.057->44.063 (299 -> 299) (|inc| = 0.001272)! -0.0121042 0.00495188 0.0121016 0.00566451 0.0407167 -0.00545228 AFF -0.0942036 -17.0321 (rel 0.910129 6.1998)
lvl 4, it 8 (l=0.004000 / 1.000000) REJECT: 44.057->44.063 (299 -> 299) (|inc| = 0.001252)! -0.0121135 0.00496145 0.0121143 0.00566873 0.0407198 -0.00545237 AFF -0.0941578 -17.0373 (rel 0.910171 6.19566)
lvl 4, it 9 (l=0.016000 / 1.000000) REJECT: 44.057->44.064 (299 -> 299) (|inc| = 0.001181)! -0.0121473 0.00499659 0.0121611 0.00568454 0.0407311 -0.00545194 AFF -0.0939995 -17.0554 (rel 0.910315 6.18127)
lvl 4, it 10 (l=0.064000 / 1.000000) REJECT: 44.057->44.068 (299 -> 299) (|inc| = 0.000971)! -0.0122487 0.00510065 0.0122994 0.00573444 0.0407614 -0.00544348 AFF -0.0936067 -17.101 (rel 0.910673 6.14478)
inc too small, break!
Is this a normal output?
Thank you!
The output with disableAllDisplay = turn;
looks normal, if it's running like that for some time (until the dataset is finished).
Thanks for debugging that the error lies in the GUI. Unfortunately I'm not sure how much I will be able to help you with it, as I haven't run DM-VIO on Windows yet and don't plan to officially support it for now. But maybe you can get some information from this PR: https://github.com/lukasvst/dm-vio/pull/29
Thank you @lukasvst ! Using that PR has a TUM dataset (dataset-corridor1_512_16) running on Windows. However it is running very slowly (around 10Hz) on a high spec desktop machine.
I see that there is an option to use a realtime preset :
preset=0 # use 1 for realtime
But when i do that, i see:
Skipping comment line in IMU data.
IMU Id: 1520531829221612058
using pyramid levels 0 to 3. coarsest resolution: 64 x 64!
START PANGOLIN!
Switching to initializer state: RealtimeCoarseIMUInitState
PixelSelector: Using block sizes: 16, 16
LOADING ALL IMAGES!
OpenGL Error 502: GL_INVALID_OPERATION: The specified operation is not allowed in the current state.
In: D:\Testing\DM-VIO\dm-vio\thirdparty\Pangolin\include\pangolin/gl/gl.hpp, line 214
What can i do to solve this?
Thank you
More on speed.... Using:
preset=2 nogui=1
Runs, and gives me:
5987 Frames (20.0 fps)
65.91ms per frame (single core);
infms per frame (multi core);
0.759x (single core);
0.000x (multi core);
Is that an expected speed? I am looking to hit 50 fps if I can.
Thanks!
Good to hear that is running with that PR, but it should definitely be running a lot faster. On a high-end machine I would expect at least 40fps (if your disk loads the images fast enough).
Can you upload the timings.txt
here, which is generated in the results folder?
In general, running it through a profiler might help to figure out why it's slow.
As to presets:
preload=0
timings.txt usedSettingsdso.txt Thank you! I have run the sequnece using:
dmvio_dataset.exe files=D:/dataSet/dataset-corridor1_512_16/dso/cam0/images vignette=D:/dataSet/dataset-corridor1_512_16/dso/cam0/vignette.png imuFile=D:/dataSet/dataset-corridor1_512_16/dso/imu.txt gtFile=D:/dataSet/dataset-corridor1_512_16/dso/gt_imu.csv calib=D:/Testing/DM-VIO/dm-vio/configs/tumvi_calib/camera02.txt gamma=D:/Testing/DM-VIO/dm-vio/configs/tumvi_calib/pcalib.txt imuCalib=D:/Testing/DM-VIO/dm-vio/configs/tumvi_calib/camchain.yaml mode=0 use16Bit=1 preset=0 nogui=0 resultsPrefix=results/ settingsFile=D:/Testing/DM-VIO/dm-vio/configs/tumvi.yaml start=2 useimu=1
and I see:
======================
5987 Frames (20.0 fps)
126.60ms per frame (single core);
infms per frame (multi core);
0.395x (single core);
0.000x (multi core);
======================
[timings.txt](https://github.com/lukasvst/dm-vio/files/12159663/timings.txt)
[usedSettingsdso.txt](https://github.com/lukasvst/dm-vio/files/12159664/usedSettingsdso.txt)
Timings data attached. Thanks!
Thanks for sending the timings. It seems to be quite slow overall (i.e. not only in a particular part of the code). For reference: On my machine addActiveFrame takes 0.021s on average compared to your 0.11s and fullCoarseTracking takes 0.0028s, where your results show 0.068s.
Are you sure that you are building in RelWithDebInfo
mode (and not in Debug)?
Hi, I am porting this to Windows, and I have everything compiling and launching (live with a T265) however, I see the following error, and the system crashes when it tries to run.
dmvio.exe useimu=1 mode=0 preset=1 nogui=0 quiet=1 start=2 settingsFile=configs/t265_noise_tumvi.yaml resultsPrefix=/results/ calibSavePath=/calib.txt vignette=configs/realsense/vignette_t265.png gamma=configs/pcalib_linear_8bit.txt
gives me:
And then the application crashes. What can i look at to solve this?
Thanks!