Odometry or Inertial Sensor?

Hey everyone. I am the programmer on my team, and I was wondering what is better for auton, using Odometry or the inertial sensor. From what I have seen from both, odometry helps you determine where the robot is on the field, and inertial sensor allows you to make extremely accurate movements. I have been doing a lot of research, and I really can’t see how odometry will help with an auton. I am most likely just being dumb and missing something, so if someone could tell me, why do people use it, and should I use it over the inertial sensor?


Hi, as a fellow programmer, the inertial sensor is mainly used for getting the direction that the robot is facing, which can be used to make extremely accurate turns. Odometry is not a sensor like the inertial sensor though, as it is an algorithm that you create yourself. Odometry is a general term for the combination of a position tracking algorithm, and a movement algorithm, both of which are extremely high level programming. I would highly recommend trying to get your team an inertial sensor as they can be easy to implement, and are in my opinion is the most useful sensor.


I see. Thank you very much! What would odometry be good for?

Tracking position. Normally done with three non-powered wheels, tensioned to the ground with shaft encoders.


The inertial sensors are not entirely accurate. We had two of them on our robot and averaged the results. Then we added two tracking wheels. With two tracking wheel, you can easily trackk rotation (with radians and such.) We did a test to compare results; the Inertial sensors were off by 18° while the tracking wheels were only off by 0.4°. I will let the numbers speak for themself.

Side note: It is a whole lot easy to rotation track (some call this theta) than to position track (APS/Odometry).


Well, if you know the robot’s position, you can drive it to other exact positions with much less error.

As for the original question, odometry is the most ideal, but I would recommend an inertial sensor for now.


Thank you very much! Do you have any resources I could use to learn odometry, for future reference?

Here’s the link: http://thepilons.ca/wp-content/uploads/2018/10/Tracking.pdf
This is pretty much the go-to resource for odom, 5225A was the first team to popularize it.


Very helpful video explanation (part 1 of 2): https://youtu.be/_T6KHywSP58


Thank you very much. I watched the video and I have one question. In the video it says the starting angle of the robot, or theta. How exactly would I find that?

This is an arbitrary variable that you set yourself, along with the initial position. You have to choose a point on the field to be the origin for your calculations (usually one of the corners so you only have positive X and Y). Then just measure your robot’s initial position and angle on your field when you set it up for auton and skills and set the variables accordingly.


Alright cool, thanks!

Something you may want to consider is that, with odometry varying friction (driving straight, turns, etc.) does impact. With the gyro, it can drift and is not hyper accurate. It would be great if VEX would adapt the VEX AI GPS to IQ.

What we end up doing is setting up specific known reference points on the board and, using bumper switches, we locate the robot. From here, we can zero the sensor error and proceed with the run.

Going across the board, etc., we use a combination of sensors to determine location (including both of what you mention and more). A P, PI or PID controller (depending on what your doing) is very helpful. See: PID Controller - BLRS Wiki.