We did some additional testing of our odometry code for our robot (with the four Omni Wheels). The odometry code computes X, Y, and Rotational robot motion based on encoder counts, and converts this to changes in field coordinates. It assumes that the Robot Forward Motion will exceed the Wheel Distance by a factor of sqrt(2) for X and Y modes. We compared the Forward Robot Motion predicted by the odometry code (for pure Y motion and pure X motion) with actual forward robot motion measured with a tape measure. We did find that the forward robot motion is greater than wheel distance, but not quite by sqrt(2). It fell short of this prediction by about 11-12 %. So, instead of a factor of 1.41, we got a factor of about 1.25. This was true for both X-mode and Y-mode motion.
I attribute the 11-12% distance loss to wheel skidding. This could be adjusted for by inserting a "fudge factor" of 0.89 into the odometry equations for X motion and Y motion. That should work for pure X motion or pure Y motion, but I think it would be a problem for diagonal motion.
For example, diagonal motion using an X mode component of +1 and a Y mode component of +1 would result in wheels 2 and 4 rotating at the same positive speed, and wheels 1 and 3 not rotating at all (just drifting with their rollers). In that setting I suspect there would be very little skidding of wheels 2 and 4 (because they aren't being forced to drift at all), so the fudge factor needed for pure X or pure Y motion wouldn't work for diagonal motion. Haven't had a chance to test this with measurements.
We also compared the odometry code with MR gyro readings in the Rotation mode and found agreement within about 3 %.
I attribute the 11-12% distance loss to wheel skidding. This could be adjusted for by inserting a "fudge factor" of 0.89 into the odometry equations for X motion and Y motion. That should work for pure X motion or pure Y motion, but I think it would be a problem for diagonal motion.
For example, diagonal motion using an X mode component of +1 and a Y mode component of +1 would result in wheels 2 and 4 rotating at the same positive speed, and wheels 1 and 3 not rotating at all (just drifting with their rollers). In that setting I suspect there would be very little skidding of wheels 2 and 4 (because they aren't being forced to drift at all), so the fudge factor needed for pure X or pure Y motion wouldn't work for diagonal motion. Haven't had a chance to test this with measurements.
We also compared the odometry code with MR gyro readings in the Rotation mode and found agreement within about 3 %.
Comment