[mowbot] Ultrasonic position

robin nospam at acm.org
Sun, 24 Nov 1996 01:36:37 GMT

On Sat, 23 Nov 1996 16:39:26 -0500 (EST) Raymond Skarratt u
<skar9500 nospam at mach1.wlu.ca> wrote:
> We can probably get <10cm accuracy with ultrasonic beacons, depending on
> humidity and temperature variances.
Sound travels at 331+0.61*T m/s in dry air at temperature T degrees C.
I don't know how humidity affects things. Let's guess T is 20 degrees,
so speed v = 331+12.2 = 343m/s and in t seconds an ultrasonic pulse will
travel 343t m. If we want to resolve to 0.1m we need to find t:
0.1 = 343t so t = 0.1/343 = 0.000291s ~= 0.3 milliseconds. This is
easily possible. At 40kHz, one wavelength is 343/40000 = 0.00825m = 8mm,
so that isn't a limiting factor. From previous experiments, I think we
can get resolutions of about of 0.02m, and with active beacons echoing
we only have to obtain half that timing accuracy for the same distance

> I think that the idea of having
> three beacons and having the beacons listen to different frequencies (or
> having the beacons give off different frequencies).
There are several potential problems here. One is that you need
*at least* three beacons in Mowbot's view to get a position fix.
Even in my almost rectangular and relatively unobstructed garden it
would be impossible to place three beacons so they are visible from
every point. So we would almost certainly need more than three.
Another problem is that the ultrasonic transducers I have previously
used are quite frequency-unspecific; although they are sold in supposedly
tuned pairs suitable for use at 40kHz, in reality, neither matching nor
frequency seem to be at all critical, so I don't think it is workable
to distinguish beacons by tuning. If the beacons are active, they need
power. The next point is that the transducers are somewhat directional.
I haven't measured the beam, but I would guess it extends at least 90
degrees in both axes from forward. This may have some benefit if it
allows Mowbot to look at one specific beacon, but probably requires that
Mowbot has a skirt of several transducers so it can see in all directions
at once. Finally, there is a significant problem with reflections.
Ultrasound bounces off anything even approximately flat (like a tree)
extremely well. This gives rise to the possibility of a beacon appearing
by reflection to be somewhere it isn't. Slopes and steps add to
the complexity of placing beacons and increase the likelyhood of
misleading reflections.

> Mowbot then sends
> out a signal for the beacons (or beacon if the beacons are listening for
> different frequencies) to 'ping' and then waits for the signal to come
> back. Take the flight time of the sound and divide by 2 (sound goes out,
> then comes back) and you have the distance (via speed of sound
> calculations) to that beacon.
One way to disambiguate beacons would be to make them wait different times
before replying. So Mowbot pings a trigger pattern, and all the beacons
reply one by one after waiting 1 second, 2 seconds etc.

> Do that 2 more times and you know your
> exact position as long as you know where the beacons are.
This is another problem. How do you know where the beacons are? How
do you tell Mowbot? If you move one beacon, you have to reprogramme
Mowbot---what a chore! And what happens if you get it wrong?

> What would be nice is the ability to travel a straight line (like a
> property boundary) using this method somehow. I know that it must be
> possible but I can't really think of how to do it at the moment. Any
> ideas? I'm trying to think of a way that would involve the least amount
> of calculations.
Anything involving fixed beacons pretty much requires the use of
inverse trigonometric functions to give absolute position. Once you
have 2-D co-ordinates, it is trivial to work along straight lines.

If you just want to define a straight line boundary, a modulated IR beam
is surely much simpler and more effective. I can't imagine containing
ultrasound in a cluttered environment accurately enough to be useful in
this way.

To reiterate: I would prefer a system which did not depend on
pre-programmed knowledge. A much more satisfying (to me) and reliable
system based on ultrasound would simply map landmarks and boundaries
early in the proceedings and use these as points of reference to help
compute future relative position fixes.


Copyright (C) 1996 R.M.O'Leary <robin nospam at acm.org>  All rights reserved.
For licence to copy, see http://dragon.swansea.linux.org.uk/mowbot/