Distance measurement on DiddyBorg?

Hi,

I have a DiddyBorg (Red) and would like to use it as part of a robotics project using ROS. Part of that involves having some way of measuring the distance traveled by the robot. Does anybody have any good solution for this?

Things I have considered:

1. A USB GPS module plugged into the Raspberry (workable outdoors but very coarse, not useful for indoors)

2. Using XLoBorg acceleration measurements and getting distance through integration (while the XLoBorg works well for direction measurement, the acceleration measurements don't seem very accurate and small errors would quickly add up)

3. Some form of wheel encoder, either optical or magnetic, connected either to the PicoBorgRev or Raspberry. The main problem I have with that is the limited space between motor & wheel, I haven't seen any optical sensor that would fit. Also I saw the below that indicates a hall effect sensor might get thrown off by the motor itself:

https://www.piborg.org/node/1976

4. Of course there is also simple dead reckoning based on PWM inputs as the link above suggests.

Right now I am thinking of a combination of 1. and 4. but I am curious if anybody else had found any better solution.

piborg's picture

I would agree with all of your thoughts above, and a combination of dead reckoning with GPS corrections does seem like a good option.

We have actually had some experience with distance from integrating accelerometer readings over time and I can tell you that even with accurate readings it quickly starts to wander away from the true distance. Very fast readings help, but even they drift over time.

One thing that will help is that you can get precision GPS modules which improve the accuracy of the GPS position data by augmenting the standard GPS information with additional signals or analysis. From memory these can get down to an accuracy within a few centimeters. The only real trouble is how accurate they will be inside a building...

Since you are doing this indoors I wonder if something like Pozyx might be a better fit. It should be much more accurate than GPS or accelerometer readings, the only real downside is needing to setup fixed beacons for the sensor to work from. Basically it works like a miniature GPS system within the beacons.

I have a simple setup with two rotary encoders, one running on each side of Diddy. They are mouse scroll wheels (from Poundland mice) friction driven from the tyres. A simple bit of arithmetic works as a differential to compensate for the tank turns. Not millimeter accuracy but reasonable.

Subscribe to Comments for "Distance measurement on DiddyBorg?"