How to reliably turn a tracked robot?

Translate This Thread From English to

Threaded View
I'm building a laptop robot based on a RAD base (see [1], though I've
done more work since last updating that page).  It actually goes forward
and backward in a straight line quite nicely, thanks to a sort of clutch
connection (not sure of the right term) between the two treads.

However, turning seems rather unreliable.  Oh, it turns with enthusiasm,
but exactly how much is it turning?  I can never be quite sure.  It
turns by skidding, of course, and I think it's unlikely to skid exactly
the same way twice.  So, even adding encoders to the tracks wouldn't
really tell me how it's moving in relation to the ground.

I've thought about getting some cheap optical mice and mounting them (or
their guts) on the belly of the thing.  One at the front and one at the
back ought to do, giving me everything I need to measure linear motion
and rotation.  But mice seem to require very low clearance, which is
likely to make it rather fiddly.

I understand that optical mice work via image-processing... I'm
venturing into guess-land here, but I'd guess that the requirement to be
right on top of the surface is a focus issue.  Has anyone modified a
mouse to work at a farther distance by adding or changing lenses?

(Hey, you hobby-robotics shops: if you could make a gadget that would
provide X/Y speed data over nearly any surface from, 2-5 cm away,
roboticists would beat a path to your door!)

Are there other good ways for tracked robots to turn reliably?  Some
simple solution I'm neglecting?

Thanks,
- Joe

[1] http://www.strout.net/info/robotics/projects/rb1.html

Re: How to reliably turn a tracked robot?



Not sure how accurate, but an electronic compass might give a
general direction it is pointing.

Re: How to reliably turn a tracked robot?



better still .. how about on of those minature gyroscopes as used in RC
Helicopters? not sure how much drift they have.

Or ... is it permissible to have some sort of reference device in the
enviroment/ like an infrared LED? ... detector on top of bot, vertical tube
with a slit in it that rotates like a radar, wherever the peakiest pulse
IR is, thats north? for added immunity to noise, modulate the IR led with
some frequency ...

Re: How to reliably turn a tracked robot?



I don't have too much faith in these... I can't even get the electronic
compass in my car to give a reliable reading (and I've tried two
different brands).


That's an idea.  Drift might not matter to me too much as long as it's
*slow* drift -- if necessary, I could use it only during a turn, and
ignore it in between turns.

Anybody know of a low-cost electronic gyroscope/IMU?


I'm not opposed to that, but it's starting to sound more complex than I
would prefer.  If I'm going to add extra stuff to my house, I'd rather
go a little further and have it determine position as well as
orientation.

Another idea that occurred to me last night -- similar to Dan's idea
with the ring of light sensors -- is to put an omnidirectional camera on
top of the robot.  Then, when turning, I should see that image rotate by
a predictable amount.  This will be complicated a bit if there are
moving objects (people, cats, etc.) in the visual field, but it might be
worth a try.

Actually, come to think of it, the ceilings in my house are not
featureless -- nearly every room has either arches of some sort, or a
light fixture hanging down.  So instead of an omnidirectional camera,
maybe I could just use a regular camera pointed straight up.  It's
unlikely that anything up there would be moving, so this would simplify
the correlation problem.

...Interesting stuff!

Best,
- Joe

Re: How to reliably turn a tracked robot?



Well, how does under $250 sound?

You can get the 5-axis board from Spark-fun, add a 1-axis yaw gyro breakout
board, and then hook it up with a 12-channel 12 bit I2C A/D converter into
something like an ATMega128.

Once you've got the hardware, you can go here:

http://www.sparkfun.com/cgi-bin/phpbb/viewtopic.php?tB73&highlight=imu

To get an implementation of a kalman filter that runs (with slight mods) on
said ATMega128 board. You'd have to fix some of the scaling constants in
the code for the different resolution A/D.

Pitch and roll aren't going to be as good as they could, since the 2-axis
gyro chip on the 5-axis board isn't temperature compensated, but the yaw
axis would be.

All in all, a nice small package that you could fit into a 1" cube with
ease. If you wanted to get really tricky, add this:

http://www.sparkfun.com/commerce/product_info.php?products_idy15

That gets you an I2C 2-axis compass to go along with it, which would be
useful for periodically recalibrating the yaw gyro if you stop the vehicle
for a second.

Later,
Jon

--------------------------------------------------------------
   Jon Hylands      Jon@huv.com      http://www.huv.com/jon

  Project: Micro Raptor (Small Biped Velociraptor Robot)
           http://www.huv.com/blog

Re: How to reliably turn a tracked robot?



Sounds like about my next three years' robotics budget.  :)

However, for turn control I would need only a single axis.  Looks like
that can be found for $65 or so at Sparkfun.  That's cheap enough to be
interesting, though probably not cheap enough to actually buy in my
situation.

Cheers,
- Joe

Re: How to reliably turn a tracked robot?


: Actually, come to think of it, the ceilings in my house are not
: featureless -- nearly every room has either arches of some sort, or a
: light fixture hanging down.  So instead of an omnidirectional camera,
: maybe I could just use a regular camera pointed straight up.  It's
: unlikely that anything up there would be moving, so this would simplify
: the correlation problem.


There is a paper out there on a Robot that does exactly this. I believe it
was one of the projects to have a bot be a museum tour guide.

And -- google on    robot museum ceiling camera finds -- Minerva

http://www.cs.cmu.edu/~thrun/papers/thrun.icra_minerva.pdf

--
==========================================================
Chris Candreva  -- chris@westnet.com -- (914) 948-3162
WestNet Internet Services of Westchester
http://www.westnet.com/

Re: How to reliably turn a tracked robot?



With the RAD, when you're on carpet especially, it turns much better by
reversing the motor on one side, rather than stopping one and/or
running one side faster. For the latter 2 cases, the base tends to bog
down. Walkers [with 4 or 6 legs] also turn much better, BTW, by
reversing the stride on one side.

You might try playing with 2 optical mouses, one front and one rear.

Also, something I've thought about but never got to trying, is to have
light sensors pointing all around the base, and taking a 360-deg
"signature". Then, as the base turns that signature will precess [if
that's the correct word] exactly in sync with the turning.


Re: How to reliably turn a tracked robot?



That's a neat idea.  It seems that under most conditions, this signature
would be determined mainly by the shadow of the bot.  For a cylindrical
bot, that should be a pretty darn reliable indicator of direction, at
least in one spot.  For an odd-shaped bot like mine, it'd be more
complicated... but certainly worth exploring.  Thanks for the thought!

Best,
- Joe

Re: How to reliably turn a tracked robot?

One way that I've thought about but never really tried is to drop a post
from the bottom of the center of the robot to the ground to act as both a
pivot point and an angle measuring device (encoder or potentiometer). Use a
solenoid to hold it one the ground when turning, then lift it back up with a
spring when done.

Mark



Re: How to reliably turn a tracked robot?

One of the methods mentioned was to drop a physical sensor which would
also act as a pivot point.  I thnk this would help you maintain your
accuracy a lot, assuming the idea worked well.

Another idea which might help, is to lower your center rollers a small
amount, or just make them a little fatter by adding a rubber band
around them.  This causes the center of the track to bear more weight,
and would tend to make it behave a little more like an un-tracked
robot.

Joe Dunfee


Re: How to reliably turn a tracked robot?


One of the guys in our robotics club modified an optical mouse sensor
to see long range (around 6-8" I think) then pointed it forward and
used the input to control his high speed line follower. So I know it
can be done, it is just a matter of finding the correct optics.

-Robotguy
http://robotguy.net/blog


Re: How to reliably turn a tracked robot?



Could you bribe, browbeat, or berate him into writing this up and either
posting it on the web or publishing it in Robot or Servo magazine?  I'd
love to see how this was done (especially if it can be used for general
dead-reckoning, rather than just line-following).

Best,
- Joe

Re: How to reliably turn a tracked robot?



Check this out:

http://www.societyofrobots.com/robottheory/Maximizing_Miniature_Aerial_Vehicles.pdf

Optical flow with a mouse sensor at 1500 fps... Incredibly cool stuff...

Later,
Jon

--------------------------------------------------------------
   Jon Hylands      Jon@huv.com      http://www.huv.com/jon

  Project: Micro Raptor (Small Biped Velociraptor Robot)
           http://www.huv.com/blog

Re: How to reliably turn a tracked robot?



Thanks, Jon -- that's neat!

Best,
- Joe

Site Timeline