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 / 11972
11971  |  11973
Subject: 
Re: Autonomous Robot
Newsgroups: 
lugnet.robotics
Date: 
Fri, 4 Aug 2000 03:02:40 GMT
Viewed: 
832 times
  
"Mario Ferrari" <mario.ferrari@edis.it> wrote in message
news:Fyo60o.6LF@lugnet.com...
Hi Mauro

I find your project very challenging, being navigation one of my main
interests inside Lego-robotics. About 18 months ago I made my first
experience with pure odometry (no external landmarks) and found that in • the
short range it is *very* precise. At that time I was using legOS 0.1.7 and
had to implement all the math in fixed point, writing myself the code for
the sin, cos, arctan and sqrt functions.
This is the link to my page about that project:
http://www.geocities.com/~marioferrari/s7/s7.html

Hi, Mario. you may not remember but we exchanged e-mail before. I questioned
about your old style car with 2 gears, remember?
Your site is great. One of my favorites. If I decide to do one to present my
ideas, that is one I would use as a model. I have been watching ITLUG
challenges also. That's interesting how simple problems requires so much
thinking, testing and improvement. Of course I got some ideas by your
comments from the dragster races and the line following competition,
especially the battery discussion. We are trying to organize a brazilian
users group. ITLUG events and presentation are great.
Yes, I know, I'm not so original. :) Unfortunatelly I did not visit both
sites for some time so I don't know if there are any news.

The problem intrisic to odometry is that it accumulates errors, so you
definitely need some landmark system to reset the robot to a specific
position.


You got exactly my point!

Some free thoughts about this topic:

1) With a differential drive setup, you could use two rotation sensors • both
for navigation between landmarks, and for collision detection: when the
wheels are supposed to rotate (motor on) but don't, you know you are • against
an obstacle. Very simple but effective. You now can use the third sensor
port for a light sensor bound to landmark detection.


Nice approach. It combines a nice way to measure travel distance, turn angle
and object detection, all in one.
Unfortunatelly I have no rotation sensors yet. It's virtually impossible to
get them here in Brazil but I met a guy who did. I hope to get 2 and try
this. I'll try this for sure as soon as I can.
The only disadvantage is that all 3 ports are used so there is no room for a
touch sensor, unless you combine it with the light sensor for additional
functions.

Meanwhile I must rely on regular sensors so I must use timing for rotation
and distance measure and use the landmarks for corrections.

2) A grid of tape on the floor works very well as artificial landmark. Use
different color for the horizontal and vertical lines, so you're sure of
what kind of line you crossed.


I bought a lot of colored tapes for experiments with that already. :)
Unfortunatelly, I still could not find a dark grey one or similar. Most dark
tapes I found were plastic so they reflects light and are recognized as a
light color.

The problem is that my apartment is not a controllled environment. It varies
from  colored carpet to wood floor and other types. The main challenge is to
find a color that can be diferentiated from the floor. I just acquired a
silver tape that may work well for that. Not tested yet. Once the detect
robot detects it is inside the landmark, it can run a landmark routine until
it detects it is out of it.

Although the idea of  vertical and horizontal lines seens good, I still
didn't figure out a good algoritm to deal with that. The light sensor
measures a mean light reflection. That means that if it over the edge of a
black light and a white paper, the reading could be the same as the one from
a gray line. I confess I still didn't try that. Sometimes you must see the
robot working to figure out a solution...

3) A different landmarking approach could be using a laser beam to query
some base stations (if you're open to use a non-Lego laser pointer). The
idea is you have a roating laser pointer connected to a motor and a • rotation
sensor (multiplied to increase resolution). When the robot wants to
calculate its position, it stops and starts slowly rotating the laser • beam.
The base stations have a light sensor positioned at the same height of the
laser beam. When the light sensor gets hit by the laser light, it reads
almost 100% and the base station transmit an IR message to say "got it".
Receiving the IR message the robot reads the rotation sensor and measure • the
angle against the base station. If you have at least two base stations, • you
can apply some trig and find your position with very good approximation
(except the case you're on the ideal line that connects the two stations).
Three stations is definitly a better configuration. One of the base • stations
could also be your recharging station.
The limitation is you need the base station are "visible" from the robot.


I already got a lsaer pointer but i never figure out what to do with that.
I bought a book ("Mobile Robots") that mentions a comercial robotic vacuum
cleaner that uses a similar approach. He also have a rotating laser pointer
but also have a rotating ligt sensor. In his case the stations are passive
and and are designed to reflect the light back. these reflections are a kind
of bar code to identify the stations. I liked the idea but didn't figure out
how to do that yet.
Your idea is good also. The problem is the number of RCX needed. Line of
vision is a problem also, but could be dealt with.
Again, the rotation sensor is needed. :(

4) NQC: I love it and use it for most of my project. But I'd say that • space
mapping is off its range. I probably better start directly with legOS.


In fact it is impossible to do with NQC alone, unless it is hard coded due
to variable limitation. You can writeto the datalog but you can't read it
with the RCX. The only way to have a map in NQC is to have it hard coded.
Suppose for example a function MAP (X,Y) , where given coordinates X and Y
it returns a value if there is a obstacle there or not.
That's where the VB program enters. It should generates this NQC function
based on datalog info got from a previous explorer program. I'll make a few
experiments and report results and a more detailed explanation of the
algoritm.

Thanks for your ideas, Mario. You really opened a whole new branch of ideas!

Mauro



Message has 1 Reply:
  Re: Autonomous Robot
 
(...) questioned (...) Sure, I do :-) (...) my (...) Many thanks for your kind words about my and ItLUG sites. I'm happy you like them. I have recently slightly rearranged my site to make navigation easier. I'm going to post some new robots in a few (...) (24 years ago, 4-Aug-00, to lugnet.robotics)

Message is in Reply To:
  Re: Autonomous Robot
 
Hi Mauro I find your project very challenging, being navigation one of my main interests inside Lego-robotics. About 18 months ago I made my first experience with pure odometry (no external landmarks) and found that in the short range it is *very* (...) (24 years ago, 2-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