Closed wangyuanbiubiubiu closed 3 years ago
Hi, we use an Extended Kalman Filter since these are non-linear measurements. The docs provide an example for how to do it with a linear measurement. https://docs.openvins.com/update.html
I recommend you read up on EKFs or just take a look a wikipedia: https://en.wikipedia.org/wiki/Extended_Kalman_filter
TLDR: We can calculate a perfect residual without linearization errors, so we might as well to avoid the taylor series errors.
res = z_meas - h(state)
May I ask why the measurement Jacobian H is derivatived with measurement z w.s.t to error-state, but not residual r w.s.t. to error-state? Thanks for the help.
Once you linearize the system through a taylor series expansion (which requires the derivative of z in respect to the state), you have a linear measurement. A linear measurement you can directly read out the derivative (and thus the two derivatives you mention will be exactly equal to each other).
Dear sir, im interested in research on the field of visual inertial slam. Recently we are seeing lots of commercialization of slam products like arcore, arkit,slamcore,magic leap , hololens and on the research side we have lots of opensource solutions but my question is what is the main difference between visual inertial slam algorithm developed by companies that makes them robust and efficient whereas opensource code is not. Which aspect of the algorithm we need to work on if we want to make in run on raspberry pi type devices and jetson nano. Thank you
Answered via issue #200.
Openvins uses the error-state Kalman Filter method,I find that in the error status update , you don't subtract Hdeltax.(StateHelper::EKFUpdate) `Eigen::VectorXd dx = K res;` I think it should be K(res-H *delta_x), why is there no part about delta_x in the code?