Subject:
|
Re: Even better, RIS 1.5, $99.99
|
Newsgroups:
|
lugnet.robotics
|
Date:
|
Sun, 9 Jun 2002 00:55:17 GMT
|
Original-From:
|
Steve Baker <[sjbaker1@airmail.]IHateSpam[net]>
|
Reply-To:
|
sjbaker1@airmail.*StopSpam*net
|
Viewed:
|
873 times
|
| |
| |
Jonathan Spitz wrote:
> I have thought about those methods as well, the only problem is when you
> don't work with the RCX's for just one robot. When you want to try a little
> bit with AI and interactions between different robots you can't have a
> master that requests, unless you use it to communicate as a telephone
> operator, we would need to find a way in wich two or more robots can
> communicate without messing up, as you can't have more than one
> "conversation" at a time you can't tell the other robot to wait. If instead
> of using IR it used a Radio comm. it would be easier as every robot would
> know when the others are talking. This subject still needs lots of
> investigation.
What makes this REALLY difficult is that the communications medium is
error prone - it's all too easy for two robots to get out of IR contact
with each other when they are moving around.
That makes all the usual protocols very difficult. In the real world,
we use protocols like TCP/IP (which is one of the most important protocols
on the Internet) that can route around communication breakages and send
messages via intermediaries, repeat messages that got lost, etc, etc.
The problems with using that for RCX are severe though - you don't have
enough code space to implement all of that - and the S-L-O-W speeds of
the IR link would make a fully bullet-proofed scheme *unbearably* slow.
What I was doing worked well only because the five Lego computers were
carefully arranged so that the RCX could see all of the 'slave' Scout's
and each Scout could see the RCX. With a request/response approach, that's
enough. With a token-ring, everyone has to be able to see everyone else -
which is harder to arrange in a practical robot (although I did sucessfully
implement that too).
The Ethernet low-level protocol is interesting, it uses a trick called
'ALOHA' to solve the "everyone talking at once" problem. ALOHA works
like this:
* When I want to send a message, I listen to make sure there are no
messages currently being sent.
* When the air is quiet, I send my message *LISTENING TO WHAT I SEND*.
* If what I hear is exactly what I sent - then the message went out OK.
* But if the message I sent is screwed up (because someone else happened to
start talking at more or less the exact same moment as I did) then
I deliberately broadcast garbage for a while to make sure that everyone
else *knows* that both messages were corrupted.
* Then I wait for a RANDOM amount of time - and try all over again.
* If I have to retry more than once, I wait for statistically increasing
amounts of time on each retry.
Waiting for a random time when something goes wrong otherwise two computers
whose messages collide would probably retry at the exact same moment and
cause another collision. Waiting a random amount of time reduces the odds
of another collision and guarantees that the two machines will *EVENTUALLY*
get through without colliding if they retry enough times.
Aloha might be a good approach for IR - but it's not clear whether an
RCX can reliably read it's own IR output signal.
----------------------------- Steve Baker -------------------------------
Mail : <sjbaker1@airmail.net> WorkMail: <sjbaker@link.com>
URLs : http://www.sjbaker.org
http://plib.sf.net http://tuxaqfh.sf.net http://tuxkart.sf.net
http://prettypoly.sf.net http://freeglut.sf.net
http://toobular.sf.net http://lodestone.sf.net
|
|
Message is in Reply To:
| | Re: Even better, RIS 1.5, $99.99
|
| I have thought about those methods as well, the only problem is when you don't work with the RCX's for just one robot. When you want to try a little bit with AI and interactions between different robots you can't have a master that requests, unless (...) (22 years ago, 9-Jun-02, to lugnet.robotics)
|
12 Messages in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
Active threads in Robotics
|
|
|
|