Field-Robotics-Japan / UnitySensors

ROS/ROS2 enabled Sensor models (Assets) on Unity
Apache License 2.0
191 stars 28 forks source link

[IMU]2nπ回転した際、角速度の値がおかしくなる #155

Open o-tatchan opened 2 months ago

o-tatchan commented 2 months ago

岡本と申します。

IMUの不具合報告になります。

IMUをアタッチした物体をY軸周りに一回転させた際、IMUが出力する角速度の値が一瞬おかしくなりました。

おそらく、角速度の計算の際に2nπと2(n+1)πの境界が判別できていないのではないかと思われます。

ご確認お願いいたします。

o-tatchan commented 2 months ago

具体的な再現方法と動画を追記します。

再現方法: ①Unity 標準のCubeオブジェクトを準備し、その中心部にIMUシミュレーターを組み込む。(動画ではCubeの方向が分かるように、正面方向に小型のCubeオブジェクトを合体させました。 ) ②IMUのFrequencyパラメーターの値を20Hz以下に設定する。(Hzを小さくすることで、角速度の外れ値が分かりやすくなります。) ③Cubeに、Y軸回り一定角速度で回転するようなスクリプトをアタッチする。

https://github.com/Field-Robotics-Japan/UnitySensors/assets/140692141/97e4a64c-49db-4424-9a12-58d9d4c45a26

上の動画は、Cubeの回転速度をFrequencyを20Hz、Cubeの回転速度を3.14[rad/s]としたものです。 基本的にはIMUの出力は本来の値3.14[rad/s]に近いですが、一回転した際に、-120[rad/s]と明らかにおかしな値になっている様子が分かります。