Thank you so much for sharing this wondering project. I have a question of marginalizing IMU bias:
When marginalizing a frame, DSO updates HM and bM, and this project updates HM_imu, bM_imu, HM_bias, and bM_bias. bM is calculated at linearized point (i.e., res_toZeroF) and we use bM_top = (bM + HM * getStitchedDeltaF()) during optimization to get the newest error. And you did the same thing for bM_imu, removing the delta terms for marginalization and adding delta terms back during optimization. However, your bM_bias is calculated with delta_bias and it does not get updated during optimization. The marginalized frame won't update its imu bias, which serves as a bias prior for its nearby frames. As the bias of the nearby frames get updated, should bM_bias get updated as well? I was wondering if I miss anything? if not, will it be a problem?
Hi Ronald,
Thank you so much for sharing this wondering project. I have a question of marginalizing IMU bias: When marginalizing a frame, DSO updates
HM
andbM
, and this project updatesHM_imu
,bM_imu
,HM_bias
, andbM_bias
.bM
is calculated at linearized point (i.e.,res_toZeroF
) and we usebM_top = (bM + HM * getStitchedDeltaF())
during optimization to get the newest error. And you did the same thing forbM_imu
, removing the delta terms for marginalization and adding delta terms back during optimization. However, yourbM_bias
is calculated with delta_bias and it does not get updated during optimization. The marginalized frame won't update its imu bias, which serves as a bias prior for its nearby frames. As the bias of the nearby frames get updated, shouldbM_bias
get updated as well? I was wondering if I miss anything? if not, will it be a problem?Thanks, Jiawei