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 / 12076
12075  |  12077
Subject: 
Re: Autonomous Robot
Newsgroups: 
lugnet.robotics
Date: 
Thu, 10 Aug 2000 17:41:22 GMT
Viewed: 
871 times
  
in article 3991FAAF.A8D0FDBA@airmail.net, Steve Baker at
lego-robotics@crynwr.com wrote on 8/9/00 5:43 PM:

Doug Weathers wrote:


<snip>

One way to get around this is to use an internal RCX timer with its
millisecond (?) resolution.  The base station will have only one laser, at
ground level.  First it does a fast scan to discover the approximate angle
of the robot.  Then it does a slower scan across the robot again, which does
two things: gets a better fix on the location of the robot, and gives the
robot a chance to measure HOW LONG it takes for the beam to transit the
detector.

But if the robot isn't accurately pointed at the laser, it won't be able to
do that calculation since the ANGULAR separation of the detectors (subtended
at the laser) won't be known.

You can handle this two ways.

1) omnidirectional laser sensor with cylindrical cross-section, which always
has the same width no matter the heading of the robot

2) have the process of acquiring the laser beam end up with the robot
accurately pointing at the laser (or perhaps accurately pointing 90 degrees
away from the beam because the sensor is on the side of the robot; this idea
from an email from John Barnes)


The knowledge of how wide the detector is, combined with
knowledge of how fast the tower was rotating (angle sensor and IR broadcast
from tower), should allow the robot to calculate its distance from the
tower.  The accuracy limitation here is not the resolution of the angle
sensor, but the latency issues of the RCX firmware and your code.  (And the
smoothness with which the base station can rotate.  Oil your turntable!)

The ACCURACY of the SPEED of the laser becomes an issue.  Since motors vary,
the actual speed of rotation is unknown unless you measure it continually
and pass that information to the robot.  Since the precision of measurement
of angle is the thing you are trying to get rid of, this is a self-defeating
mechanism.

In a sense, you are correct.  But measuring the angle of a single particular
pointing operation, as in your tower idea, seems to me to be more prone to
error than measuring the speed of rotation of a turntable where all you
really need is the average speed.  Of course you could make several scans
from top to bottom and from bottom to top and average your results, like the
trick the Mars Pathfinder boffins used to increase the resolution of the
camera on the base station.


But my main concern is the issue of the orientation of the robot.

If the tower were the active component though (with all the brains), it
could measure the position of two or more retro-reflectors on the robot
and deduce the orientation from that.  That might not be terribly accurate
though.  I favor doing *only* position measurement - using consecutive
readings to deduce the direction the robot is moving - and therefore
pointing.  If you drive in straight-ish lines for reasonable distances,
you can get this information to an arbitarily good precision.  Use
odometry to cope with going around corners and to fill-in when you don't
read IR from the tower or if it loses the robot and has to re-aquire it.


Sure, that would work, at the expense of having to move the robot to
determine its heading.  You'd have to worry about running into something
because you're not quite sure of your heading, though.  Not likely to be a
big problem, since odometry is unlikely to be off by 180 degrees between
calibrations.

If you are going to go for a tower-based system - and admit to non-Lego
laser pointers - then doing all the work in the tower is just monumentally
easier *and* faster than all these spinning robots, spinning lasers, wide
and narrow beams, etc, etc.

The scheme I'm imagining would consume 2 scanning motors, two angle
sensors, one photo-detector and a $5 laser pointer (ALL in the tower)
plus *NOTHING* in the robot other than a retro-reflector mounted on
it's roof somewhere.  It'll be fast - you could probably update the
robot with it's position once a second - and best of all, the robot
doesn't have to stop doing it's work to spin in place in order to
know where it is.  The robot can use all three RCX inputs for doing
it's real job of work - and I can have multiple robots if I want.

I missed how you can get by with only one laser.  Ian Warfield's original
idea used a ground-level laser to find out the robot's bearing from the
tower, so that the tower-top laser knows that when it scans down it will hit
the robot.  How will you ensure that when the tower-top laser does its sweep
that it will hit the robot?  Do you just scan the whole room all the time,
like the laser terrain scanner on the Dante II robot?  If so, it seems that
it would take more time than one second to complete one scan.

Although once the robot is acquired, you can stop scanning the other parts
of the room, I guess.


Now, I just need to figure out how to make a corner reflector instead
of using a bicycle reflector so that I don't get spurious laser light
flashing around the room - potentially damaging people's eyesight.

The spurious reflections may be due to the fact that bicycle reflectors
aren't mirror finished on the back, and the little corner reflectors
probably also act as prisms, bending the light rays around and shining them
back into other prisms unpredictably.

You might be able to fix this by cracking open a bicycle reflector and
spray-painting the back.  Ideally, you'd want to mirror-finish the back, but
I haven't got a clue how you would do that.  Can you buy paint that you can
put on glass to turn it into a mirror?  I don't think so, but it would be
handy if such a product existed.

Once you've got some pieces of spray-painted reflector, you could make a
little square pyramid out of it and glue it to a square Lego plate for
mounting on your robot.


If the tower can track a robot reasonably well, the laser will always
go down from the ceiling somewhere and shine within an inch or two of
the robot - then reflected back into the ceiling fitting.  It would
be hard to get that shone in your face unexpectedly.

Ceiling fitting?  Where did the ceiling enter into your scheme?

You could get the effect of a really tall tower by fastening your laser
scanner to the ceiling.

If you don't want to fasten Lego stuff to the ceiling (look out below!), you
might try mounting it on the wall with picture-hanging technology.  More
likely to shine into people's eyeballs this way, though.

Some suggestions for safety signs follow.  :)

Sign on door of dining room, next to goggles on wall hook:

"WARNING: All diners must wear eye protection!"

Sign on the base station (wherever it is): "WARNING: Do not look directly
into laser with remaining eye"


My two rotation sensors are on order :-)

Good luck.  We won't know how well these ideas will work until we start
building them.

I don't have any rotation sensors on order yet, although I keep bidding for
them on eBay.

--
Doug Weathers, http://www.rdrop.com/~dougw
Portland, Oregon, USA
Don't spam me - I know how to use http://www.spamcop.net
"On a clear disk you can seek forever"



Message has 1 Reply:
  Re: Autonomous Robot
 
(...) Yep - that would work - but we don't have an omni-directional sensor. I guess a conical diffuser with a regular lego sensor pointing straight upwards would work OK though. (...) Yes - I wanted to avoid having to continually distract the robot (...) (24 years ago, 11-Aug-00, to lugnet.robotics)

Message is in Reply To:
  Re: Autonomous Robot
 
(...) a (...) the (...) reads (...) Sorry, Mario, I still didn't figure out your proposal. Could you explain that better? Did you (or anybody else?) already did that? Maybe if I can understand better looking at the code, if available... (...) that. (...) (24 years ago, 6-Aug-00, to lugnet.robotics)

37 Messages in This Thread:

















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

This Message and its Replies on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

Custom Search

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