Robotic BioSonar

When I built my first binocular sonar system, I was amazed at how much it improved the sonar’s resolution compared to a single-receiver system. The receivers I was using had a beam width of +/-15°; when I AND (logic AND) the signals together from two receivers, the beam width was decreased to about +/-5°. The sonar transmitter and the two receivers were mounted on the head of my first robot, with the transmitter in the center and the two receivers on either side separated by 12”. The head was driven by a stepper motor and could be rotated in 1° increments. After each step, the sonar was pulsed and the echo data for the step was saved. After a full rotation of the head, the data from each step was combined into an image of the room. When I did this with a single receiver the images were very poor. Corners were round, door openings were completely gone and furniture looked like large blobs. But when I used two receivers the corners were almost square, door openings were smaller than they should be but they were there, and furniture kind of resembled furniture. A huge improvement.

Twenty years later when I started working with sonar again, I was planning on using a rotating head again and improve upon the old system’s electronics. But as I worked with it I realized scanning the room was very slow, and I didn’t want to stop my robot for minutes while the sonar scanned the room. While working with the binocular system I started to realize that there was a lot more information in the echoes from two receivers than just distance to an object. With a little trigonometry, I was able to combine the echo data from the two receivers and calculate the X and Y coordinates for most of the objects in front of the sonar. Initially this looked very promising, however it turned out to be more difficult than it appeared. The binocular system was good at identifying the location and estimating the size of most objects in an area ten to fifteen feet in front of the sonar within an angle of about +/-20°. That was very encouraging, but it still had limitations. One of my goals was to identify an open door from ten feet away, and this turned out to be more difficult than I expected. But I don’t think it is impossible and I am still working on it.

I ran a lot of tests with the binocular sonar aimed at an open and closed door to see if I could reliably determine if the door was open or closed. Between four and six feet away I could easily identify the door jambs and walls on either side of an open door and determine if the door was open or closed. But at eight feet things started becoming fuzzier. The main problem is the width of the returned echo and delays within the receiver circuit. When the transmitter is pulsed with a single 40KHz cycle, the returned echo is usually much greater than a single cycle. The reason for this is because the returned echo is from the entire surface of the object, not just from the surface directly in front of the transmitter: it is from the surface above, below and on each side of the center. The rising edge of the echo is from the surface directly in front of the transmitter, echoes from the surface further away from the center of the beam take longer to return, which increases the width of the returned echo. The echo from the surface directly in front of the transmitter is the highest amplitude and the echoes from the surfaces moving away from the center are lower amplitudes. There are usually walls connected to door jambs which creates an echo that looks like a dampened sine wave with a width of about 10 – 20 cycles or 200uS to 400uS. That makes it very difficult to distinguish the two echoes from an open door’s right and left door jamb at a distance of ten feet. With a 36” door opening, at ten feet the difference in echo distance is only about 2” and the difference in echo time from the two door jambs to one receiver is about 100uS. See Figure #1. However, since the amplitude of the return echo drops rapidly, it is possible to see the two echoes, but only if the receiver circuits don’t add to the pulse width of the returned signal. The half-wave precision rectifier I used in my Sonar 2 system added about 150uS to the width of the returned signal, which made it impossible to see the echo from the more distant door jamb at ten feet away. The full wave precision rectifier I am using in my Sonar 3 system is much faster and only adds 10uS to the width. However, with this faster rectifier there is a lot of 40KHz ripple left on the output signal. In my Sonar 3 system I am using a high-speed analog to digital converter (ADC) to simultaneously digitize the signals from the two rectifiers. The digitized data is stored in memory and I use a firmware algorithm to remove the 40KHz ripple. This system is very fast and produces clean pulses for each echo signal without adding much to the pulse width. In addition to echo time and pulse width, the ADC also gives me the amplitude of the echo signals. This is far more information than my Sonar 2 system. At eight feet away I can easily see the echoes from both door jambs in the data from the two receivers and calculate the width of an open door. At ten feet I can see the four echoes in graphs of the data, but it is still going to be tricky to create an algorithm to use that data to locate an open door.

The document “Sonar Equations.DOC” describes the equations I used to calculate the X and Y coordinates of objects from the echo time of two receivers and one transmitter in my Sonar 2 system.
Picture 1
Trace 2 in picture 1 is the raw echo signal from the left receiver aimed at an open door 11 feet away. Trace 1 is the signal from the detector. The pulse at 20mS is the echo from both door jambs. The width of the echo from the left door jamb is so wide it overlaps the echo from the right door jamb which creates one very wide pulse. This makes it impossible to detect the two door jambs at distances greater than about eight feet.

Graphs 1 & 2
Graphs 1 & 2 are signals recorded from a prototype of my sonar 3 system. The detector in this system is much faster and adds very little to the width of the received signal. This system is also using a high-speed ADC to capture the signal. Picture 1 is the raw data digitized by the ADC and picture 2 is after that data is cleaned up in firmware. It is still difficult to separate the echoes from the two door jambs, but this is a lot better than my Rev. 2 sonar system.

Picture 1 – Rev. 1 Receiver

Graph 1 –Sonar Rev 3 Prototype

Graph 2 – Sonar Rev 3 Prototype