Boston Linux & Unix (BLU) Home | Calendar | Mail Lists | List Archives | Desktop SIG | Hardware Hacking SIG
Wiki | Flickr | PicasaWeb | Video | Maps & Directions | Installfests | Keysignings
Linux Cafe | Meeting Notes | Blog | Linux Links | Bling | About BLU

BLU Discuss list archive


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Linux robots



> On Tue, Feb 22, 2005 at 12:05:46PM -0600, Jack Coats wrote:
>> I suggest using it for 'interum' position information rather than
>> absolute, due to wheel slippage.

I've actually don't a bit of this 20 years ago at Denning Mobile Robotics
in Woburn. I got the bug then and have not shaken it.

In a diametrically opposed motor system, wheel slippage is only one
problem. The play in the gear boxes also adds to position innaccuracy.
Wheel diameter difference creates accumulated innacuracy as well.

Actual position is one of the things I really want to work on. The robot
is just the platform. I have to climb the mountain before I can look at
the stars. I'm thinking that I can use cheap USB cameras and pulse coded
IR LEDS to calculate exact position. The pulses will be a subdivision of
the camera frame rate and be encoded to map-coordinate location. I should
be able to read the stream of images from the camera, detect the code, and
calculate its relative location based on the X/Y position in the image,
and the known camera height and angle.

Maybe not "exact" position, but close enough to navigate a map, one hopes.
I can't wait until I am at that stage, but job, kid, wife, money, etc.
makes it slow.

>
> A Grey Code (http://en.wikipedia.org/wiki/Grey_code) is a cool way to
> measure wheel position.  Read frequently for precise timing
> information, but if you miss a pulse you can still read absolute
> position.  I you want precise info without too many bits of code
> repeat the code multiple times around the wheel--just don't go to
> sleep longer than it takes to turn beyond the reach of one copy of the
> code.

Yea, I've seen that technique before. As long as you do not miss more than
one segment and as long as you can assume rotation does not change
direction between reads it works.

I am reasonably certain that a computer doing nothing should be able to
keep up, but depending on the I/O system used to do the data acquisition
and programs running at the time, my fear is that I'll miss a read here
and there.







BLU is a member of BostonUserGroups
BLU is a member of BostonUserGroups
We also thank MIT for the use of their facilities.

Valid HTML 4.01! Valid CSS!



Boston Linux & Unix / webmaster@blu.org