HKUST-Aerial-Robotics/GVINS-Dataset

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.

imagen

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.

imagen

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 @shaozu. Thank you very much for your answer, I will check the memory usage.

Indeed the memory usage of VINS-Fusion VIO node may be the cause:
imagen
imagen
I will try supressing data accumulation in paths (I suppose it can't be solved if the problem resides in the marginalization terms).

Hi, @PabloETSI. The memory issue of VINS-Fusion has been fixed. Please check out the latest version.

Thank you very much Shaozu @shaozu.