Precision of the Inertial Sensor for robot positioning

Has anyone tested integrating the acceleration readings from the Inertial Sensor using Euler’s method to measure displacement? Is it possible to supplement or replace a 3-wheel tracking odometry system?

Currently, I’ve only been able to get the heading reading to within +/- 0.5 degrees (after 60 seconds of driving) with a combination of dead wheels on quadrature encoders corroborating with two sensors’ heading values. Acceleration for me has not been terribly accurate. Are there any tips that anyone could share?

Edit: I’m looking to make a very accurate positioning here so that every shot can land into the high goals without fail. If you guys have tips on making a more reliable 3-wheel tracking algorithm, I’d love to hear that too.

Some specs:
Left-right tracking wheel distance: 7 inch
Strafe tracking wheel distance: 4 inch
Wheels: 2.75-inch omni wheels (they’re quite old, from back when cortex was used for VRC, but we don’t have newer ones)
Encoders: Quadrature shaft encoders
Attachment: Wheels are attached between a single 5x1 c channel, which has an encoder inset inside it, and a 5x7 plate. The two plates are attached together using standoffs at the corners.

Odometry update frequency: 200 Hz
The algorithm is the arc-tracking method used by 5225A, with a weighted average of 50% odometry, 25% Inertial 1, and 25% Inertial 2.

Try each one on their own and graph results. Try driving around and seeing how accurate it is. Then put these results in the notebook and compare. Most likely, 3 wheel odom will be the most accurate. If you have any rotation sensors, they are probably more accurate.

I have a suggestion for your tracking setup. Don’t use the tracking wheels for heading measurement at all. Use one inertial sensor that you’ve determined to be in working order, and if it doesn’t scale properly after many turns, apply a slight scale factor.

See how that works for you.

1 Like