Subject:
|
Re: Ultrasonic sensor interactions
|
Newsgroups:
|
lugnet.robotics
|
Date:
|
Sat, 20 May 2006 13:34:49 GMT
|
Original-From:
|
steve <SJBAKER1@AIRMAIL.NETspamless>
|
Viewed:
|
2661 times
|
| |
| |
Juergen Stuber wrote:
> Hi Tim,
>
> Tim Rueger <trueger@yahoo.com> writes:
>
> > How feasible would it be to set up some sort of
> > time-sharing communications over Bluetooth to
> > allocate time slots when each of the robots in an
> > area would be allowed to use their ultrasonic
> > sensors?
>
>
> it should be possible to use the ultrasonic sensor itself for that,
> there is a command to listen in on other sensors for that purpose.
The problem with that is that both NXT machines may be listening.
Neither hears anything - so both decide to emit a ping - and they
still interfere with each other. The nasty part is that even if
you can detect that an interference happened, all you can do is
wait a while and then retry. However, if both computers are
programmed the same way then they'll both back off and wait
for the exact same amount of time - which means that they'll
immediately collide a second time...and a third time and so on!
You actually need to wait for a RANDOM amount of time.
This is a well known problem with systems like Ethernet and the
best known fix is the 'Aloha' protocol.
http://en.wikipedia.org/wiki/Aloha_protocol
However, this all assumes you can detect when the 'ping' you
sent out got corrupted by a ping someone else sent out. I
don't know whether this is possible.
Ideally, you want to assign each robot a code - and have them
emit their ultrasound according to that code. Suppose you
used morse code. You could sent "dot dot dash" from one
computer and "dash dot dot" from the other. When you hear
the reflected sound, you could check that it matched your
pulse pattern - and assume that if you hear anything else
other than your own pulse pattern that someone else messed
up your transmission. So wait a random amount of time and
then try again.
|
|
Message is in Reply To:
27 Messages in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|