Open minghanz opened 5 years ago
Hi
HM_change_half
shouldn't be zero theoretically. In my test, dynamic margin dosen't perform well so I set HM_change_half
to zero and put off dynamic magrin. Actually HM_imu_half
has no effect
Thanks for your reply.
But I noticed that use_Dmargin
is set to true
in main_dso_pangolin.cpp. So actually dynamic marginalization is running, but the HM_imu
and bM_imu
is reset to zeros when dynamic marginalization happens (because the HM_imu_half
and bM_imu_half
are zeros)? Can I turn on the dynamic marginalization by simply assigning value to HM_change_half
as I mentioned above?
Yes, you can try. I set use_Dmargin
to False
at here
https://github.com/RonaldSun/VI-Stereo-DSO/blob/master/src/OptimizationBackend/EnergyFunctional.cpp#L1330-L1335
You can modify it yourself.
So you turn off use_Dmargin
after M_num2>25
, but before that dynamic marginalization could still happen. In that case HM_imu
and bM_imu
are reset to zeros when it happens (essentially removing previous marginalization information)? Does that affect the stability of the system?
Thank you!
It shouldn't have much impact. In my test M_num2
will exceed 25 very soon.
Hi,
I read through your code and I have a question in the
EnergyFunctional::marginalizeFrame_imu
function (in EnergyFunctional.cpp).J_all_half
is not added to any matrix after calculation. Theoretically it should be added toHM_change_half
like howJ_all
is processed. Maybe it should be something like:HM_change_half += (J_all_half.transpose()*Weight*J_all_half);
In current implementation
HM_change_half
is always zero matrix at the end. Is it a mistake or it should actually work this way?Thank you!