-
Notifications
You must be signed in to change notification settings - Fork 12
Step Response
Place the sensor on a rotatable test fixture. Let the heading reading settle. Manually rotate the fixture quickly (< 1 second) to a new position and record the heading as it (hopefully) settles to the new position. Then rotate the fixture back to the approximate starting position (to observe the response in both directions).
The general behaviour is approximately as expected - the heading adapts to the new orientation after the move. However, there is often a lot of over- or under-shoot in the response, and it takes many (> 5) seconds to close onto the new heading.
This behaviour is not always seen in the same magnitude and it is not yet known why. Compare the following two tests - the first graph shows a large oscillation as the heading converges; the second converges much more rapidly. However the second graph exhibits another undesirable characteristic - i.e. the heading does not always remain constant once motion has stopped.
Overshoot and undershoot is observed in the filter's Heading output when the sensor is exposed to a quick rotation. In the following graph, the heading output computed by three different filter algorithms (Madgwick, Mahony, and NXP Fusion) is plotted while the test fixture's wheel was manually held stationary, then rotated quickly by about 100 degrees, held stationary, then rotated back to the approximate starting position.
This graph shows the sensor reading for heading, plus pitch and roll. The latter two parameters are plotted against the second Y-axis, and they can be seen to be of small magnitude and to settle quickly. It is expected that the pitch and roll change with rotation, as the sensor is attached to the spokes of the wheel, which are not orthogonal to the axis of rotation of the wheel.
The under/overshoot seems much greater in magnitude than expected. See for example the discussion by Kris on (https://github.com/kriswiner/EM7180_SENtral_sensor_hub/wiki/K.-Limits-of-Absolute-Heading-Accuracy-Using-Inexpensive-MEMS-Sensors). His apparatus does differ from the wheel used here: his sensor is mounted coaxial with the fixture and therefore would report very low accelerations while being rotated. Also, his method did not involve a quick step motion, rather he measured position at multiple stationary points with (presumably) the filter output settling after each motion. However, on a vessel it will be critical to respond correctly to abrupt surges/rolls/pitches etc. Regardless, Kris' results suggest that we should be able to achieve accuracy within 2 degrees and currently we see +/- 10 degrees or worse.