zm0612 / eskf-gps-imu-fusion

误差状态卡尔曼ESKF滤波器融合GPS和IMU,实现更高精度的定位
624 stars 149 forks source link

R_nm_nm_1的计算问题 #29

Open hjwang1 opened 9 months ago

hjwang1 commented 9 months ago

eskf.cpp(当前主分支150行),计算R_nm_nm_1时,用angle_axisd对应的旋转矩阵的transpose,210行在使用R_nm_nm_1时,又transpose了一下,这是误操作?还是姿态解算方程使然?

zm0612 commented 9 months ago

我看了一下,第二个转置应该要去掉。 也就是这个转置保留:https://github.com/zm0612/eskf-gps-imu-fusion/blob/da93afa7864e3fde7c5241f2babc8cab5ab13fc0/src/eskf.cpp#L150 这个转置去掉: https://github.com/zm0612/eskf-gps-imu-fusion/blob/da93afa7864e3fde7c5241f2babc8cab5ab13fc0/src/eskf.cpp#L210

你看一下这样改之后,是不是就是对的了。这一块内容时间有点儿久了,公式我记得不是很清晰,得翻书重新推导验证一遍。

pren1 commented 1 month ago

我看了一下,第二个转置应该要去掉。 也就是这个转置保留:

https://github.com/zm0612/eskf-gps-imu-fusion/blob/da93afa7864e3fde7c5241f2babc8cab5ab13fc0/src/eskf.cpp#L150

这个转置去掉: https://github.com/zm0612/eskf-gps-imu-fusion/blob/da93afa7864e3fde7c5241f2babc8cab5ab13fc0/src/eskf.cpp#L210

你看一下这样改之后,是不是就是对的了。这一块内容时间有点儿久了,公式我记得不是很清晰,得翻书重新推导验证一遍。

感觉你这样改是对的,w_in是时刻 m-1 -> m 地球转动引起的导航系转动角速度,而姿态更新公式如果写成: CodeCogsEqn 那么右侧第一项是地球从m->m-1的旋转矩阵,那么应该只有一个转置🤔 (我纯新手,有高手的话欢迎改正!)