IMU數據積分獲得當前位姿


從兩幀IMU數據中獲得當前位姿的預測思路非常簡單,無非是求出當前時刻\(t\)與下一時刻\(t+1\)加速度的均值, 把它作為\(\Delta t\)時間內的平均加速度,有了這個平均加速度及當前時刻的初始速度和初始位置,就可以近似的求出\(t+1\)時刻的速度和位置。求出當前時刻\(t\)與下一時刻\(t+1\)角速度的均值, 把它作為\(\Delta t\)時間內的平均角速度,有了這個平均角速度及當前時刻的姿態,就可以近似的求出\(t+1\)時刻的姿態。
但是由於IMU的數據存在着坐標系、bias和重力加速度的問題需要額外的一些處理。
首先對於加速度,因為imu的加速度數據是在Body坐標系下表示的,所以要利用對應時刻的姿態將其轉換到世界坐標系下,轉換之前要減去bias,轉化之后要減去重力加速度(世界坐標系下的重力加速度恆等於9.8):

\[a_{t,w}=Q_t(a_{t,b}-B_a)-g\\ a_{t+1,w}=Q_{t+1}(a_{t+1,b}-B_a)-g \]

\(Q_{t+1}\)\(t+1\)時刻的姿態,需要用角速度的數據來近似計算:

\[\omega_t^{'} = \frac{1}{2}(\omega_t+\omega_{t+1})-B_g\\ Q_{t+1}=Q_t(\omega_t^{'}\Delta t) \]

有了\(t,t+1\)時刻的加速度,就可以求出\(t+1\)時刻的速度和位置:

\[a_{t,w}^{'}=\frac{1}{2}(a_{t,w}+a_{t+1,w})\\ V_{t+1}=V_t+a_{t,w}^{'}\Delta t\\ P_{t+1}=P_t+ V_t\Delta t + \frac{1}{2}a_{t,w}^{'}\Delta t ^2 \]

按照計算的順序整理一下整個積分的流程:

\[a_{t,w}=Q_t(a_{t,b}-B_a)-g\\ \omega_t^{'} = \frac{1}{2}(\omega_t+\omega_{t+1})-B_g\\ Q_{t+1}=Q_t(\omega_t^{'}\Delta t)\\ a_{t+1,w}=Q_{t+1}(a_{t+1,b}-B_a)-g\\ a_{t,w}^{'}=\frac{1}{2}(a_{t,w}+a_{t+1,w})\\ V_{t+1}=V_t+a_{t,w}^{'}\Delta t\\ P_{t+1}=P_t+ V_t\Delta t + \frac{1}{2}a_{t,w}^{'}\Delta t ^2 \]

具體代碼見VINS_MONO的predict()函數。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM