To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.roboticsOpen lugnet.robotics in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / 12018
12017  |  12019
Subject: 
Re: Autonomous Robot
Newsgroups: 
lugnet.robotics
Date: 
Tue, 8 Aug 2000 03:55:34 GMT
Original-From: 
Steve Baker <SJBAKER1@AIRMAILnomorespam.NET>
Reply-To: 
sjbaker1@airmail.ANTISPAMnet
Viewed: 
828 times
  
Doug Weathers wrote:

It would be nifty if you could detect bar codes without needing to follow a
line.  My initial thought was to make "bull's-eye barcodes" that put the
codes in concentric rings.  No matter which direction you approach one of
these targets you get the same code - as long as you pass straight through
the center.

The problem then becomes: suppose you don't go straight through the center
of the target? You'll get strange results as you pass through part of the
bar code.

Yes - that's where I started thinking.  It seemed to me that if the circle
was large enough, odometry would put you inside the circle - then driving
out of the circle in any direction would get you to cross all the bar codes.

Presuming you use the RELATIVE sizes of the bars in the code as 1's and 0's
and not absolute sizes, you should be fairly immune to crossing the circle
at funny angles...so long as you started *roughly* in the center of the
circle and drove out in *roughly* a straight line.

However, it was at that point that I thought of following radial lines that
would lead you do the barcodes fairly unambiguously - and heading in about
the right direction to read them cleanly.

So my next idea is to put down an array of spots, perhaps in a hex pattern,
that will give a fairly constant pattern of light/dark no matter which angle
you travel through it.  The surface of the Logitech TrackMan Marble has such
a pattern on it.  You'd watch the sensor for a bunch of light/dark
transitions in a short period of time.  If you got them you'd know you are
on the target.  You could use different reflective values (colors) of the
spots to tell different landmarks apart.  You don't know what direction
you're facing, though.

But the detection of different brightnesses is the problem we started with.
A bright white spot will appear to be a darker grey spot if you drive
across the edge of it in just the wrong way.  The light detector is
sampling an area from the floor - and averaging the colour in that area.
No matter what you do, driving across the edge of a 'WHITE' spot/line/whatever
will look exactly like crossing a 'GREY' spot/line/whatever.

That's why I suggested using different colours - and different colour illumination
sources...in principal, that's a better solution.

I had another idea - which was to somehow use polarisation.

If you had a reflective spot on the floor - covered with one lens from a
cheap pair of polaroid sunglasses - then put the other lens under the light
source (or detector) on the robot - then you'd only get a bright reflection
when you were driving such that the two planes of polarization were parallel!

This would (theoretically) get you barcodes that could only be read when heading
in the right direction (er - or completely 180 degrees in the wrong direction - damn!)

I also wondered whether the compass that comes with some of the lego pirate ships
could be used...if you could focus a photodetector onto it, you might be able
to steer such as to minimise the change in brightness of the detector and hence
drive reliably in a straight line.

That might be insanely difficult with a lego compass - but a non-lego one
should be made easy to read.  Makes you glad we are doing this with Lego
and not an Erector Set - no metal to interfere with the compass!

So my next next idea is to have a spot of the floor "feel" different from
the rest.  You could trail two wire feelers until they both touch a piece of
tinfoil and complete a circuit, triggering a touch sensor port.  If this
sensor is at the center of rotation of your robot, you could then spin in
place until you detect a mark or a bar code.  Now you know your location AND
your orientation.  If you don't want to use non-Lego feelers, you could
always drill a hole in the floor :) and have a fifth wheel sense when it
drops into the depression.

Hmmm...or make a 'bump' by dropping a large lego baseplate on the floor and
build a small pyramid for the wheel to ride up over.  That would be a pure
lego solution - and not entail destruction of your home!

By using a rotation sensor and a linear-motion-to-rotation conversion you could
theoretically measure the height of the bump you just drove over and decode
different heights with a single RCX input.  In practice though I think you'd
have the same problem as with the optical detector.  Driving over the edge of
a BIG bump would look the same as driving exactly over the middle of a small
bump.

When you start looking for this kind of solution, there are *lots* of ways to do
it.  How about using the Lego magnet to pull down on metal objects embedded in
the floor to activate a switch?

If you taped some of those thin fridge magnets to the floor, then you could have
two kinds of landmark - North-poles-up and South-poles-up.  One attracts the
magnet on the robot - the other repels it...which can activate one of two
switches I guess.

Alternatively you could use a second light
sensor looking down for the shiny tinfoil.

Nope - the same argument applies as for a white spot.  If you clip the
edge of the shiney spot, the reflection will be (say) half as much and it'll
look like your regular white spot.

I guess you could have a light source that you can turn on and off from the
RCX (in parallel with one of the motors to save an output) - and have one
kind of spot that's reflective and another that shines by it's own light
(luminous tape?) - then if you can see light with your own lamp turned off,
it's a luminous dot - but if you can only see it with your light turned on
then it's a simple reflective dot.

Big Huge Disclaimer: I haven't tried ANY of this stuff out yet.  It's much
faster to think up ideas than it is to test them.

Yes - *very* true.

Besides I'm currently
working on a legged robot, and it's hard enough without worrying about
navigation!

I guess that's the kind of design that you have to take
one step at a time <giggle>

--
Steve Baker   HomeEmail: <sjbaker1@airmail.net>
              WorkEmail: <sjbaker@link.com>
              HomePage : http://web2.airmail.net/sjbaker1
              Projects : http://plib.sourceforge.net
                         http://tuxaqfh.sourceforge.net
                         http://tuxkart.sourceforge.net
                         http://prettypoly.sourceforge.net



Message is in Reply To:
  Re: Autonomous Robot
 
in article 398D9DA5.300D416C@airmail.net, Steve Baker at lego-robotics@crynwr.com wrote on 8/6/00 10:17 AM: (...) <regretfully snipped excellent discussion of using line following to find bar codes for landmark recognition> It would be nifty if you (...) (24 years ago, 8-Aug-00, to lugnet.robotics)

37 Messages in This Thread:

















Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR