Understanding Odometry
An introduction to odometry concepts and the hardware required for advanced autonomous navigation.
By the end you can
- Understand what odometry is and why it's necessary.
- Learn the difference between drive encoders, dead-wheels, and odometry computers.
- Learn how to physically install odometry hardware.
In the Beginner section, we used simple WaitCommands or basic motor encoders to move during Autonomous. But if your robot's wheels slip on the foam mat, or if another robot bumps into you, your robot gets completely lost.
To solve this, advanced FTC teams use Odometry.
What is Odometry?
Odometry is the use of sensors to determine the robot's exact position (X, Y) and heading (rotation) on the field at all times. By knowing exactly where you are, you can use advanced math (like PedroPathing) to draw curves and splines, and the robot will perfectly follow them even if it gets bumped!
There are three main ways to achieve odometry in FTC:
1. Drive Encoders (Mecanum Odometry)
You can use the encoders built into your four drive motors to calculate your position.
- Pros: Free! Requires no extra hardware.
- Cons: If your wheels slip on the field (which mecanum wheels do constantly), your robot thinks it moved but it actually didn't. This is highly inaccurate.
2. Dead-Wheel Odometry
This is the standard for competitive FTC teams. Instead of tracking the drive wheels, you mount unpowered, omni-directional wheels on spring-loaded pods that drag along the ground. Because they aren't powered, they never slip!
- Two-Wheel Odometry: Uses one wheel tracking forward/backward, and one wheel tracking left/right. It relies on the Control Hub's internal IMU (gyroscope) to determine the robot's heading.
- Three-Wheel Odometry: Uses two wheels tracking forward/backward, and one tracking left/right. By comparing the difference between the two forward wheels, it calculates the heading mathematically, which is often faster and more accurate than the IMU.
3. Odometry Computers (e.g., goBILDA Pinpoint)
Calculating odometry requires a lot of math to run hundreds of times per second. This can slow down your Control Hub.
New devices like the goBILDA Pinpoint Odometry Computer solve this. The Pinpoint is a tiny external computer. You plug your two dead-wheels directly into it. It handles all the intense math internally and simply feeds the final X, Y, and Heading coordinates back to the Control Hub via an I2C cable.
Hardware Setup & Installation
If your team is using the goBILDA Pinpoint (which is highly recommended and used by many top teams), you will need to install it correctly.
- Mounting the Pods: Mount your two odometry pods (e.g., goBILDA Swingarm Odometry Pods) to the chassis. One must face forward (the X pod) and one must face sideways (the Y pod).
- Spring Tension: Ensure the springs push the pods firmly into the ground. If you lift the robot slightly, the pods should stay touching the mat.
- Wiring: Plug the encoder cables from the pods into the
XandYports on the Pinpoint computer. - I2C Connection: Use a 4-pin JST PH cable to connect the Pinpoint to one of the I2C ports on your Control Hub.
- Mounting the Pinpoint: The Pinpoint has an internal IMU, so it MUST be mounted perfectly flat and square to the robot chassis!
[!WARNING] Do not plug Odometry pods directly into the Control Hub's motor encoder ports if you are using a Pinpoint! The Pinpoint needs to read the encoders directly.
Check Your Understanding
Check yourself