IMU資料積分獲得當前位姿

2022-08-19 05:03:09 字數 1008 閱讀 8311

從兩幀imu資料中獲得當前位姿的**思路非常簡單,無非是求出當前時刻\(t\)與下一時刻\(t+1\)加速度的均值, 把它作為\(\delta t\)時間內的平均加速度,有了這個平均加速度及當前時刻的初始速度和初始位置,就可以近似的求出\(t+1\)時刻的速度和位置。求出當前時刻\(t\)與下一時刻\(t+1\)角速度的均值, 把它作為\(\delta t\)時間內的平均角速度,有了這個平均角速度及當前時刻的姿態,就可以近似的求出\(t+1\)時刻的姿態。

但是由於imu的資料存在著座標系、bias和重力加速度的問題需要額外的一些處理。

首先對於加速度,因為imu的加速度資料是在body座標系下表示的,所以要利用對應時刻的姿態將其轉換到世界座標系下,轉換之前要減去bias,轉化之後要減去重力加速度(世界座標系下的重力加速度恆等於9.8):

\[a_=q_t(a_-b_a)-g\\

a_=q_(a_-b_a)-g

\]\(q_\)是\(t+1\)時刻的姿態,需要用角速度的資料來近似計算:

\[\omega_t^ = \frac(\omega_t+\omega_)-b_g\\

q_=q_t(\omega_t^\delta t)

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

\[a_^=\frac(a_+a_)\\

v_=v_t+a_^\delta t\\

p_=p_t+ v_t\delta t + \fraca_^\delta t ^2

\]\[a_=q_t(a_-b_a)-g\\

\omega_t^ = \frac(\omega_t+\omega_)-b_g\\

q_=q_t(\omega_t^\delta t)\\

a_=q_(a_-b_a)-g\\

a_^=\frac(a_+a_)\\

v_=v_t+a_^\delta t\\

p_=p_t+ v_t\delta t + \fraca_^\delta t ^2

\]具體**見vins_mono的predict()函式。

IMU資料積分獲得當前位姿

ref 從兩幀imu資料中獲得當前位姿的 思路非常簡單,無非是求出當前時刻?與下一時刻?1加速度的均值,把它作為 時間內的平均加速度,有了這個平均加速度及當前時刻的初始速度和初始位置,就可以近似的求出?1時刻的速度和位置。求出當前時刻?與下一時刻?1角速度的均值,把它作為 時間內的平均角速度,有了這...

資料庫獲得當前時間getdate

convert nvarchar 10 count time,121 convert為日期轉換函式,一般就是在時間型別 datetime,smalldatetime 與字串型別 nchar,nvarchar,char,varchar 相互轉換的時候才用到的函式的3個引數,第1個引數為,轉換後的大小,...

使用資料庫SQL語句獲得當前月的天數

view plain copy to clipboard print?獲得當月天數 select day dateadd mm,1,getdate day getdate as 本月天數 select getdate as 當前日期 select day getdate as 目前第幾天 selec...