I’m looking to do some more coding for my team in preparation for next season. Messing around with sensors, I discovered Odometry. Why should I use it? What is it specifically and why would it be more effective than a simple inertial sensor?
Odometry is position tracking, it’s used to calculate your robot’s (x, y) position on the field. It’s super helpful for programming because it allows you to increase accuracy/reliability by adjusting all your movements on the fly. Without odom, if a movement early in the program ends half an inch early, now the entire rest of the program is half an inch off, and this can build up very quickly. With odom, it doesn’t matter if the robot is a little off because the program knows it’s a little off, so it can adjust to save the run. You can kind of think of it like the improvement from no inertial sensor to using an inertial sensor, but it applies to everything instead of just turning.
Odom also makes it possible to use more advanced movement algorithms, like a move to point, pure pursuit, or RAMSETE algorthm. These algorithms are how teams do fancy curvy movements in their programs, which can save time and make it easier to get the robot around the field. Odom also makes programming easier in general, for example instead of having to guess and check an angle multiple times to line up with something, you can just use math to calculate the exact right angle for you. Overall odom is definitely worth it if you can handle the math and programming skill required to make/use it.
On top of this it becomes even more plausible when you consider the possible templates you can use like JAR, or Lemlib. As these remove some of the difficulty with understanding and creating the odometry instead focusing on learning how to use it.