my robot model was quite similar to this one:
Using odometry from driven wheels is always a risky thing to do as they are likely to suffer from slip etc...
driving with rubber wheels on parquet or carpet there will be no slip at all.
if you want to test odometric data vs. compass data you'll have to switch off motor control (by Lejos or NXC or RobotC motor synchronization or what ever).
I guess you've done this. And you'll have to take compass data (vs. encoder data) simultaneosly when driving, not only at the end of the 1m edges.
You'll have to make your heading correction by your own, otherwise you don't know how the motor control interferes with your compass or odometric navigation data.
None of these tests use anything other than the standard leJOS motor control to perform the movement. Neither the compass or the gyro is used to correct the movement at all..... As to the odemetry results being more accurate, not really, all they show is the accuracy of the motor control. As I said if the robot is not on the ground (so 100% slip) you will still get the same odometry results even though the robot does not move at all.
if this really happens, this is obviously the wrong test approach.
I still haven't read the answers to my questions above:
referring to the compass acuracy: do you tell the robot to go ahead by evaluating simulateously the current stream of compass data?
Or how do you tell him to go straight regardless of odometry (or motor synchronization which actually is the same)?
And how do you let him turn 90° and then stop rotation? Do you measure compass headings simulateously while turning until it's 90° more than at the start of turning?
I'm not sure what the 2nd table really shows, but it seems to me that Odometry is about 6-7 times more accurate than compass or gyro. Or am I wrong?
Code: Select all
Odom Comp Meas
1.19 7.00 6.00
2.08 13,00 11.00
3.20 19.00 18.00
4.32 27.00 25.00