-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
カルマンフィルタでIMUのシステムの計算が間違っている #29
Comments
まだ調べ途中ですが,angular velocityからquaternionに変換するについて,dtが十分小さないなら,2で割って近似するやり方が一般的らしいです. ここで 参考:https://gamedev.stackexchange.com/questions/108920/applying-angular-velocity-to-quaternion hdl_localization/include/hdl_localization/pose_system.hpp Lines 79 to 81 in 62a8828
上記の場合は differential quaternion |
私は以下の記事でのQuaternionの定義に基づいて考えています 上記の定義式 これを で近似すると dtで微分すると θ = 0とすると |
クォータニオンの微分についても記事がいくつかありました Quaterniont dq = Quaterniont(0, gyro[0] * dt_ / 2.0, gyro[1] * dt_ / 2.0, gyro[2] * dt_ / 2.0) * qt;
Quaterniont qt_next = Quaterniont(qt.w() + dq.w(), qt.x() + dq.x(), qt.y() + dq.y(), qt.z() + dq.z()).normalized(); 計算順序を考慮しないで良いのでオイラー角で計算するより良い気がします |
概要
下記2で割っている作業が誤りのはずです
この状態でサンプルがうまく動いているということはパラメータ調整し直す必要があります
hdl_localization/include/hdl_localization/pose_system.hpp
Line 79 in 62a8828
再現手順
修正しないとどう困るか
原因
修正案
The text was updated successfully, but these errors were encountered: