Two wheel odometry without IMU

Hi, I’m currently making a testing base for odometry with two encoders, and an IMU. I’m wondering whether I can use only two encoders without an IMU because the IMU sometimes has a really slow reading rate.

1 Like

just make them parallel to each other
are you the programmer on your team?

1 Like

Assuming you’re not using the IMU solely to collect data on the robots heading. Then go ahead, otherwise you need to calculate the robot heading based on the encoder data.

Yes I am the programmer of my team and the test base is a x-drive.

Generally, for skid steer drive (regular tank bases), you are able to do odometry with only 2 tracking wheels if you place them parallel to each other and to the wheel track. This is possible under the assumption that it doesn’t strafe.

However, for x drives, since it has the ability to strafe, at least 2 encoder wheels are needed to track the forward and strafe distance. This means that there are no way to account for the angular change with only 2 encoders for an x drive. Therefore, an imu is required. Conversely, adding a third tracking and obtaining the angular displacement from there is also possible.

Seeing that imu has the same refresh rate as encoders (constant rate of 10 ms), it probably won’t be that much of a deal to use them in the first place.


As is the norm, it’s probably best to use a third tracking wheel or combination of both. In my experience the IMU can accumulate a lot of drift, and especially if mounted in a bad spot.


I would definitely recommend combining both if possible, because you can average the values out and make them even more accurate. Also, the inertial sensor only accumulates a lot of drift if you turn a lot; which theoretically shouldn’t occur as much because OP has an X-drive base. A tank drive would most definitely struggle with inertial sensor drift, though, since it constantly has to turn. Also, if you align your robot with the field perimeter (which would straighten it) then tare your heading, it eliminates the rotational error you’ve accumulated.


this is good advice, but I found that not making jerky movements was enough to keep my IMU from drifting. In my skills routine I was able to score 6 goals without ever accumulating more than a degree of drift.


That seems intuitive, because the inertial sensor gets affected a ton by any vibrations, so maybe accelerating instead of starting at full speed may also make your inertial sensor readings more accurate.


only 2 trackers with imu seems risky, but should be fine for any 15s auto route. skills might be harder


This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.