Question: testing VINS-Fusion with GVINS-Dataset
PabloETSI opened this issue · 6 comments
Thank you very much for sharing both GVINS and this dataset.
Evaluating VINS-Fusion as visual-inertial (1 camera + 1 IMU) and global optimization with GNSS processed with RTKLIB, for Sports Field bag, estimations beyond 600 meters start to oscillate severely, as if the transformation WGPS_T_WVIO returned suddenly to identity matrix and then it is inmediatly corrected.
I suspect this is due to not limiting the size of the optimization problem in the global optimization node, as the version I am using takes into account every available result from VIO and GNSS (i.e. optimize() in globalOpt.cpp includes the whole localPoseMap). I have checked this here https://github.com/HKUST-Aerial-Robotics/VINS-Fusion/blob/master/global_fusion/src/globalOpt.cpp.
The time spent in global optimization increases over time, leading to vins_node's death after the bag has been played for 18 minutes 20 secs.: feeding the global optimization node with the standalone version of VINS-Mono succeeds estimating the whole trayectory, yet the huge oscillations remain (figure above shows the global optimization time using VINS-Mono as VIO).
I am not completely sure I have not modified anything sensitive in the VINS-Fusion code, is this issue usual? I believe the problem resides in the global optimization not being limited.
Thank you for your time.
Hi, @PabloETSI. Sorry for the late response, just noticed this issue...
Yes, you're right that the optimization problem in the global node keeps increasing as the trajectory goes. I just checked the time consumed in the global node and the final value(also the largest one, at 1510-th second) is 529ms. Given that the global optimization runs every 2 seconds, the optimization time should not be a problem, at least for this sequence. However, during test I found that the memory usage grew a lot, mainly caused by VINS-Fusion odometry node. So I suggest you to check the memory of your platform first.
Hi, @PabloETSI. The memory issue of VINS-Fusion has been fixed. Please check out the latest version.