IMU functional testing?

How much drift, and how quickly?

1 Like

I never set up a structured test. Carl would reset heading to 0 when he docked each time and then dismount 4 hours later, spend 8 hours motionless, then perform two 180 turns, and back 214mm onto the dock. The heading was typically 5 degrees off 0 if my memory serves. I’ll check the last imu log from before Carl donated the IMU to Dave.

Update:

2021-06-11 02:14|[imulog.py.logCurrentIMU]heading:   359.9  rotation:     0.0 motion:     0.0 sec errors: 1681  imu reset
2021-06-11 02:14|[imulog.py.logMotionStop]heading:   359.9  rotation:     2.6 motion:     2.0 sec errors: 1681
2021-06-11 06:17|[imulog.py.logMotionStop]heading:     2.6  rotation:     2.8 motion:     3.6 sec errors: 1732
2021-06-11 13:47|[imulog.py.logMotionStop]heading:   177.2  rotation:   175.8 motion:     2.4 sec errors: 1821
2021-06-11 13:47|[imulog.py.logMotionStop]heading:   353.2  rotation:   176.1 motion:     2.4 sec errors: 1821
2021-06-11 13:48|[imulog.py.logMotionStop]heading:   358.1  rotation:     4.8 motion:     3.5 sec errors: 1821
2021-06-11 13:48|[imulog.py.logMotionStop]heading:   357.1  rotation:    -0.9 motion:     0.4 sec errors: 1821
2021-06-11 13:48|[imulog.py.logMotionStop]heading:   357.0  rotation:     0.1 motion:     0.4 sec errors: 1821
2021-06-11 13:48|[imulog.py.logCurrentIMU]heading:   359.9  rotation:     0.0 motion:     0.0 sec errors: 1821  imu reset
2021-06-11 13:56|[imulog.py.logMotionStop]heading:   359.7  rotation:     0.0 motion:     0.1 sec errors: 1822
2021-06-11 17:48|[imulog.py.logMotionStop]heading:     3.0  rotation:     3.1 motion:     3.7 sec errors: 1866
2021-06-12 01:19|[imulog.py.logMotionStop]heading:   179.8  rotation:   176.8 motion:     2.3 sec errors: 1928
2021-06-12 01:20|[imulog.py.logMotionStop]heading:   358.2  rotation:   178.4 motion:     2.4 sec errors: 1928
2021-06-12 01:20|[imulog.py.logMotionStop]heading:   357.8  rotation:    -0.4 motion:     3.6 sec errors: 1928
2021-06-12 01:20|[imulog.py.logMotionStop]heading:   357.8  rotation:     0.1 motion:     0.3 sec errors: 1928
2021-06-12 01:20|[imulog.py.logMotionStop]heading:   357.9  rotation:     0.2 motion:     0.3 sec errors: 1928
2021-06-12 01:20|[imulog.py.logCurrentIMU]heading:   359.9  rotation:     0.0 motion:     0.0 sec errors: 1928  imu reset
2021-06-12 01:21|[imulog.py.logMotionStop]heading:   359.9  rotation:     0.0 motion:     0.1 sec errors: 1928
2021-06-12 02:35|[imulog.py.logMotionStop]heading:   359.9  rotation:     0.0 motion:     0.1 sec errors: 1944
2021-06-12 05:20|[imulog.py.logMotionStop]heading:     1.7  rotation:     1.8 motion:     3.6 sec errors: 1978
2021-06-12 12:51|[imulog.py.logMotionStop]heading:   178.0  rotation:   176.1 motion:     2.3 sec errors: 2066
2021-06-12 12:51|[imulog.py.logMotionStop]heading:   356.4  rotation:   178.3 motion:     2.3 sec errors: 2066
2021-06-12 12:52|[imulog.py.logMotionStop]heading:   357.6  rotation:     1.2 motion:     3.5 sec errors: 2066
2021-06-12 12:52|[imulog.py.logMotionStop]heading:   356.8  rotation:    -0.8 motion:     0.4 sec errors: 2066
2021-06-12 12:52|[imulog.py.logMotionStop]heading:   356.9  rotation:     0.1 motion:     0.3 sec errors: 2066
2021-06-12 12:52|[imulog.py.logCurrentIMU]heading:   359.9  rotation:     0.0 motion:     0.0 sec errors: 2066  imu reset
2021-06-12 12:53|[imulog.py.logMotionStop]heading:     0.0  rotation:     0.1 motion:     0.2 sec errors: 2066
2021-06-12 16:52|[imulog.py.logMotionStop]heading:     2.6  rotation:     2.6 motion:     3.6 sec errors: 2110
2021-06-13 00:36|[imulog.py.logMotionStop]heading:   174.8  rotation:   175.8 motion:     2.4 sec errors: 2209
2021-06-13 00:36|[imulog.py.logMotionStop]heading:   352.3  rotation:   177.7 motion:     2.4 sec errors: 2209
2021-06-13 00:36|[imulog.py.logMotionStop]heading:   358.8  rotation:     6.5 motion:     3.5 sec errors: 2209
2021-06-13 00:36|[imulog.py.logMotionStop]heading:   357.3  rotation:    -1.4 motion:     0.4 sec errors: 2209
2021-06-13 00:36|[imulog.py.logCurrentIMU]heading:   359.9  rotation:     0.0 motion:     0.0 sec errors: 2209  imu reset
2021-06-13 00:36|[imulog.py.logMotionStop]heading:   359.9  rotation:     2.6 motion:     1.9 sec errors: 2209
2021-06-13 00:37|[imulog.py.logMotionStop]heading:   359.9  rotation:     0.0 motion:     0.1 sec errors: 2209
2021-06-13 00:37|[imulog.py.logMotionStop]heading:   359.9  rotation:     0.0 motion:     0.1 sec errors: 2209
2021-06-13 04:37|[imulog.py.logMotionStop]heading:     2.3  rotation:     2.4 motion:     3.5 sec errors: 2249
2021-06-13 12:07|[imulog.py.logMotionStop]heading:   176.7  rotation:   176.1 motion:     2.3 sec errors: 2343
2021-06-13 12:07|[imulog.py.logMotionStop]heading:   354.3  rotation:   177.7 motion:     2.4 sec errors: 2343
2021-06-13 12:07|[imulog.py.logMotionStop]heading:   357.9  rotation:     3.4 motion:     3.3 sec errors: 2343
2021-06-13 12:08|[imulog.py.logMotionStop]heading:   357.6  rotation:    -0.3 motion:     0.4 sec errors: 2343
2021-06-13 12:08|[imulog.py.logMotionStop]heading:   357.6  rotation:     0.1 motion:     0.3 sec errors: 2343
2021-06-13 12:08|[imulog.py.logCurrentIMU]heading:   359.9  rotation:     0.0 motion:     0.0 sec errors: 2343  imu reset
2021-06-13 12:10|[imulog.py.logMotionStop]heading:   359.9  rotation:     0.0 motion:     0.1 sec errors: 2343
2021-06-13 16:01|[imulog.py.logMotionStop]heading:     2.1  rotation:     2.2 motion:     3.6 sec errors: 2389
2021-06-13 23:32|[imulog.py.logMotionStop]heading:   178.4  rotation:   177.1 motion:     2.4 sec errors: 2473
2021-06-13 23:32|[imulog.py.logMotionStop]heading:   357.4  rotation:   179.1 motion:     2.4 sec errors: 2473
2021-06-13 23:33|[imulog.py.logMotionStop]heading:   356.2  rotation:    -1.3 motion:     3.6 sec errors: 2473
2021-06-13 23:33|[imulog.py.logMotionStop]heading:   356.2  rotation:     0.1 motion:     0.3 sec errors: 2473
2021-06-13 23:33|[imulog.py.logMotionStop]heading:   356.3  rotation:     0.2 motion:     0.4 sec errors: 2473
2021-06-13 23:33|[imulog.py.logCurrentIMU]heading:   359.9  rotation:     0.0 motion:     0.0 sec errors: 2473  imu reset
2021-06-13 23:33|[imulog.py.logMotionStop]heading:   359.9  rotation:     0.0 motion:     0.1 sec errors: 2473
2021-06-14 03:33|[imulog.py.logMotionStop]heading:     1.5  rotation:     1.6 motion:     3.7 sec errors: 2530
2021-06-14 11:02|[imulog.py.logMotionStop]heading:   177.9  rotation:   176.6 motion:     2.4 sec errors: 2622
2021-06-14 11:03|[imulog.py.logMotionStop]heading:   356.4  rotation:   178.4 motion:     2.4 sec errors: 2622
2021-06-14 11:03|[imulog.py.logMotionStop]heading:   359.2  rotation:     2.9 motion:     3.5 sec errors: 2622
2021-06-14 11:03|[imulog.py.logMotionStop]heading:   358.0  rotation:    -1.1 motion:     0.5 sec errors: 2622
2021-06-14 11:03|[imulog.py.logMotionStop]heading:   358.1  rotation:     0.1 motion:     0.3 sec errors: 2622
2021-06-14 11:03|[imulog.py.logCurrentIMU]heading:   359.9  rotation:     0.0 motion:     0.0 sec errors: 2622  imu reset

Drift (or Docking alignment variability???):

  • -2.9
  • -2.0
  • -3.0
  • +0.4
  • -2.3
  • -3.6
  • -1.8

Average: -2.2 degrees
Max: -3.6
Min: +0.4

It would seem my memory is wrong.

The heading from odometry for the same period:

Average -6.3
Min: -5.1
Max: -7.6
1 Like