Newsgroups: comp.robotics
Path: brunix!news.Brown.EDU!noc.near.net!howland.reston.ans.net!usc!elroy.jpl.nasa.gov!decwrl!concert!inxs.concert.net!taco!eos.ncsu.edu!rmlegran
From: rmlegran@eos.ncsu.edu (RICHARD MARK LEGRAND)
Subject: Sonar sensing as near as 4'' 
Message-ID: <1993Oct22.160822.8439@ncsu.edu>
Sender: news@ncsu.edu (USENET News System)
Organization: North Carolina State University
Date: Fri, 22 Oct 1993 16:08:22 GMT
Lines: 56

I write on Oct 16:

I am using the infamous Polaroid sonar modules on an autonomous vehicle,
and I am having problems with sensing obstacles less than a foot or
so away from the transducer.

I'm pretty sure this is because of the internal blanking that the module
performs to prevent detecting the transducer ring.  The real problem
seems to be that closer objects (closer than 1.3 feet) lie within this
blanking period and instead of the first echo being received, the second or
third echo is received giving the illusion that there is as much as two
or three times the actual distance to the nearest object.

Is there a way to improve the module's performance by having it indicate that
objects less than 1.3 feet away are simply 1.3 feet away instead of 2 or 3
feet away (for example)?  Has anyone dealt with this problem and had any
success?

I have found a solution to the sonar blanking dilemma, and through a
simple addition to the drive circuitry, the Polaroid ranging system
can detect objects as close as 4 inches. (!!!)  Furthermore, this 4 inch
threshold exhibits none of the undesirables that the 1.3 foot
threshold exhibits.  That is, objects closer than 4 inches are
detected to be 4 inches away (as opposed to 8 or 12 inches away).

The solution follows:

The board has two extra signals:  BLNK and BINH.  Asserting BLNK (driving
it HIGH) resets the ECHO RS-latch, and asserting BINH shortens the internal
blanking interval (which is 2.38 ms by default).  Thus, the solution would
seem to lie in asserting BINH after a reasonable amount of time (< 2.38 ms
after asserting INIT) to detect objects closer than 1.3 feet.  This doesn't
work very well because BINH for some reason is very susceptable to noise,
and attaching a driver to it wreaks havoc because of the anomalous current
sink during the transmit phase (I think).  Anyhow, this can be fixed by
asserting BLNK during the blanking period (ie the new blanking period)
while negating BINH and asserting BIHN after the blanking period while
negating BLNK.  That's all there is to it.

This can be done easily with a one-shot or some other timing device (eg
computer timer, etc).

To illustrate, I did it with a computer timer.  The timer output
goes HIGH tblank ms after INIT is asserted, where tblank=0.15*dist
and dist is the threshold distance in inches).  The timer output goes
to BINH and the inverted timer output goes to BLNK.  I recommend that
the timer output be inverted with an LS/TTL inverter to delay the
negation of BLNK, otherwise the RS latch may do weird things.

Let me know if this works for you, or if you have any problems and/or
successes.

Richard LeGrand
Center for Robotics and Intelligent Machines
North Carolina State University
 
