Skip to content

Orientation convergence after hard hits is very slow #398

Description

@peci1

Describe the bug
When the IMU gets a hard(er) hit (e.g. slapping it against a table), orientation accumulates some error which is then very slowly converging to the correct values. The convergence time is on the order of 30 seconds, and all the time in between, the reported orientation is wrong.

This was tested with a 3DM-CV7-AHRS running this ROS 2 driver (ROS Kilted). I tested it on two independent units, one table-top, and one integrated inside a robot.

To Reproduce
Steps to reproduce the behavior:

  1. Launch the node, i.e. in launch file with <include file="$(find-pkg-share microstrain_inertial_driver)/launch/microstrain_launch.py"><arg name="params_file" value="...imu.yaml" /></include>
  2. The config file is listed below.
  3. Make slow changes of orientation -> everything is okay
  4. Make fast changes of orientation -> everything is okay
  5. Slap the IMU against a table several times in succession - there is some error accumulated in both roll and pitch, and this error shows extremely slow convergence.

Expected behavior
Hard hits should only have very time-limited effect on the absolute orientation.

Environment (please complete the following information):

  • OS: Ubuntu 24.04
  • Architecture: amd64
  • ROS Version: kilted
  • Version: 4.8.1
  • Sensor(s): 3DM-CV7-AHRS

Modifications
No

Launch Parameters

imu.yaml

Additional context
A normal imu_filter_madgwick shows a much saner solution.

I've recorded a video of the problem and also a bag file, both are available at https://drive.google.com/drive/folders/1XHkVMp7_PIkJYf4jnwnpnZ8hjyirxryN?usp=drive_link . The video shows plotjuggler with 3 rows of roll/pitch angles: top row is /imu/data, medium us /ekf/imu/data, the bottom one is /imu/data_madg (i.e. the madgwick filter).

Metadata

Metadata

Assignees

No one assigned

    Labels

    NewThis issue is new, and should not be marked as stalebugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions