New Sonar Range Sensor

All,
I have been working on an ultrasonic sensor since 1994.
About two years ago I decided to package the sensor for everyone.
It is avaible now. Data sheet is avaiable at the web site.
formatting link

The MaxSonar-EZ1:
is very low cost,
uses just one trasnducer,
detects to zero (yes even pressing against the front face),
detects to 254 inches (6.45 meters),
is the smallest size (smallest PCB & includes mounting holes),
is the lowest power (just 2 mA typical at 5V),
has a controlled narrow long-range beam,
has a very easy user interface including RS232C, pulse width, and
analog votlage.
I posted this because this really is a break through product
and I would have wanted one in 1997.
Reply to
Bob (Robot Wars Thumper 1997)
Loading thread data ...
Bob, Congrats on the new product! Looks very well done.
A suggestion: a deficiency of many of these types of offerings is the lack of software examples for integrating the data from a sensor into something meaningful. Single ping ranging is easy; actually "seeing" surfaces and 3D objects, especially those not perpendicular to the sensor) is much harder. As you know, there is a tremendous leap from simple sensing to actual autonomous navigation.
Would you consider some code examples for a couple of popular platforms -- a PIC or BASIC stamp, for example. Since your sensor has RS232 outputs (bravo!), interfacing to a PC is easy. How about a Windows DLL for mapping that could be called from VB, C#, C++, or other compliant language.
-- Gordon
Bob (Robot Wars Thumper 1997) wrote:
Reply to
Gordon McComb
the reasons you don't see more hobbyists making maps out of sonar data are that it requires:
1. more copies of a sensor than most are willing to buy 2. more memory and cpu power than most 8 bit cpus they use can provide 3. good enough dead reckoning to integrate readings over movement
navigation is admittedly a nontrivial problem but reducing sensor data to local occupancy maps is old hat in cs research. the key is that unlike a lidar or machine vision system you can't make much of a map with just readings from one location. you need to have readings from many locations in many directions and you need to combine them sensibly. i have done this with sensors like the one above and it is certainly possible to get decent looking maps.
...which brings me to my next point. rs-232 is nice but full coverage with 40khz piezo sonar takes about 10 sensors and who has that many extra serial ports on their robot? i'm sort of cheap and didn't want to buy 8 devantech sensors so the one robot sonar system i built had one tranciever multiplexed to 8 transducer pairs. that way you get extra sensor data for basically the price of the transducers, which is about $5 each. this is standard for sonar on the big research robots. i've only seen it done on homemade robots once or twice. maybe that's just because most people use prebuilt sonar sensors and there currently aren't any multi-transducer types.
and as far as "seeing 3d objects" goes, it's certainly possibly but not with 40khz narrowband. building a 2d phased array broadband sonar is #1 on my list for the next time i get stranded on a deserted island with a dsp development suite...
anyway just my $0.02
-chris.
Reply to
eckern
Got any pics or more info on the 8X x-ducer setup you made ? I'm also curious why you state that one needs 10 sensors. Do you have any links or info for a sonar newbie ?
-JSM
Reply to
Jason S. Mantor
well, 10 is about what you get when you divide 360 degrees by the beam width of piezo transducers. if you're using electrostatic transducers you would want more since they have tighter beams.
my robot's webpage is here:
formatting link
there isn't a schematic but if i recall the analog parts were based somewhat on this robot:
formatting link
-chris
Reply to
eckern
Thanks for the critical feedback. The code examples are likely to go in this weekend or the next, right now I have code for the basic stamp and for the basic atom. The code will be added into the FAQ section.
As for RS232, I have one very positive feedback from someone
formatting link
who connected to a PC using hyper-terminal. I need to add this to the site also. It was hard for them to believe that this type of sensor would have such a narrow beam!
Only so much time and so much to do!
Reply to
Bob (Robot Wars Thumper 1997)
Gordon, Please bear with me, you mention that
"Single ping ranging is easy";
Well to this I must answer with some very personal experience.
One of the reasons I completed this sensor was because my daughters robot was stuck on a wall (it was too close) during a contest. The sensor that was on the robot was one of most popular two sensor models, but when too close, it was blind.
I then purchased one of all the popular robot ultrasonic sensors and found problems with them all! I was looking for a solution to the range sensing that didn't cost and wasn't big. I was willing to invest to find the one that worked... One at a time, I tried them.
The next problem was that this dual sensor beam width was much too wide to be useful. The (smallest?) dual sensor model that I have has a beam width so wide that it detects a wall, a full 180 degrees, one meter away. I literally could not use it, for anything!
The other dual sensor high end model with I2C, that I have, has readings that vary so much, during the first one meter, I have to average many readings just to get a stable reading. It is not uncommon to have readings vary more than 6 cm and sometimes 15 cm. It also has a beam width that was over two meters wide just one meter out. Again the beam width is too wide to be used in my home! I can not use it down the hall or in the living room!
Another recent dual sensor model has a narrow beam width, but has trouble with small objects and has a short range.
No offence really, it is just that I want a sensor that actually works.
(And I didn't really want the $100 analog output, high current models, and too big for a small robot. I did find that these expensive round ones actually worked though.)
I found I could not purchase a low-cost, small, low-power sensor that actually provided a stable range output.
So I built this one. I wanted something that was easy to use and worked well. And for me designing this sensor, the MaxSonar-EZ1, was a lot of work. (Ask my wife if it was a lot of work!) It is not a copy of anything else out there. It is an original design, designed to overcome the above mentioned problems and much more.
The MaxSonar-EZ1 has a stable range output. It has a very narrow beam and has long range. It works to look down a hall or in my living room or in a robot contest.
Again, thanks for your thumbs up on the design, but I really wanted to let you (and others) know special this sensor actually is and, for me at least, it wasn't easy.
For you guys that don't know, along with the design of the beacon system for the original Robot Wars autonomous class, I contributed the battery chapter in Build Your Own Combat Robot. Although my name, some of my work, and some pictures of my robot are in the book, the chapter on batteries is all that I did for the book, the other stuff was gathered and so some of my other work made it into the book. And I also critically read another chapter of the book for the editor before publishing.
Bob Gross
formatting link

Reply to
Bob (Robot Wars Thumper 1997)

Understood. The statement was an over simplification of relative difficulty in affectively using a sonic-based sensor. Very little about this science is truly "easy."
However, the point I was trying to make is that most folks are stuck at firing a ping and measuring a single distance. Whether or not the measurement is within a couple inches of accuracy at a half-dozen feet is not of great importance; most folks trying this stuff lack the math to use sonar for anything other than gross ranging. Products like the Parallax Ping or Devantech are often used (at least for typical small bots) for just simple collision avoidance or yes/no proximity detection, where accuracy isn't as important.
I know of several folks who are using the Devantech units on a pan mechanism and actually doing some fairly elaborate mapping, but they're good at the math, and fairly decent coders to make it all work. This is why I think a software library, and not just simple examples, might be useful to your market. (I'd do it, but I suck at math...)
For those interested, there is some stuff here that relates to this subject:
formatting link
Check out the robot on the right; it uses a SensComp (Polaroid) sensor on a scanner, and Alex has written some nice mapping software for it. Bob, you might want to contact Alex Brown and maybe even send him one of your sensors in exchange for feedback and possible exposure. I know he's not been 100% happy with the SensComp transducer that he's currently using. I does suck a lot of amps when it fires...
-- Gordon
Reply to
Gordon McComb
Yes, this looks like a very nice product. I went to the website and downloaded the datasheet. I plan to order a couple soon.
A few years ago, I recall reading about an ultrasound device to assist blind people. They wore the device like goggles, and it turned the ultrasound info into audible sounds that the user could listen to through headphones. After wearing it a while, some of the users became skilled enough to move around their house by listening to the beeps, chirps and hums in the headphones.
But most interesting was that the information from the sound was different from visual information. It could tell the user nothing about the color of an object, but it could tell them about texture and rigidity. They could tell just by "looking" at an object with the goggles, if it was soft, like a pillow, or hard, like a rock. I remember one user talking about how he could tell which coke cans were full and which were empty on the other side of the room, by listening to the pings. They sounded different.
I would like to see some devices for robots that can provide information like that, instead of just range info. I don't mean any of this to sound like I am carping about the OP's product, it appears to do what it is designed to do quite well. But I wonder why we don't use ultrasound to do a lot more.
But I think another thing to consider, is why active acoustics (as opposed to passive listening) has been such a failure in the natural world (at least the terrestial world, the aquatic world is a different situation). The only non-aquatic animals that use echo location are bats, and that is because they fly at night and in caves so vision is not an option. And even bats have eyes. Why has vision been almost universally more successful than echo location? Will the same thing happen with robots? Will ultrasound ranging eventually fade away when computer vision becomes sophisticated enough?
Reply to
Bob
Buy one and stick in on the end of a stepper motor. Then sweep it back and forth. I have never done this myself, but I have seen it done this way. Of course, it was not a fast moving robot.
Take the price of an 8 bit CPU, add the price of a cup of coffee, and you can buy a 32 bit CPU. Check out the latest ARM microcontrollers from Philips and Atmel. 32 bits, lots of I/O, up to 60 MHz, up to 256kB of internal RAM, C compilers that actually generate good code. These days, using an 8-bitter as the main cpu in a robot makes about as much sense as commuting with a unicycle. You can expect to see less and less of it as all the nostalgic old farts die off.
Reply to
Bob
Bob -
I just wanted to add my $0.02 worth... As far as I can see, you've done an outstanding job with this device! I'm definitely sold.
Not only is it remarkably small, easy on the power, and have an excellent range, it's also very well priced. I really like the flexibility of the interfaces. Pick the one you want instead of being force-fed what someone thinks you want. Use one for debugging and one for the final application.
This is a very good solution to not only robotics applications for also for static detector applications.
More power to you!
Dave
Reply to
Dave
Wow! Really nice product, and a great price!
I've ordered two... -- Mark "I prefer heaven for climate, hell for company."
Reply to
Mark Moulding
Hi Bob,
When I first saw your post I followed the link and thought ho hum, yawn, another ultrasonic sensor. And regarding the price, while affordable, it's not all that much lower than the lower end from Devantech or Parallax, in fact it seems right in line with their prices.
But ... then I read your reply to Gordon and I see that perhaps you do indeed have something very nice here. I've experienced all those things you describe and seemed to want for a little bit more out of the ultrasoncis that are commonly available.
Anyway - your reply to Gordon intrigued me enough to bite. Reel me in. I just bought several to try out - please ship ASAP, thank you :-)
BTW, do you offer a volume discount on smallish quantities, i.e., 10 or so?
Also, I wouldn't mind writing up some sample code for my MAVRIC boards for driving this sensor to include on your web site or sample code section. Let me know ...
Thanks, -Brian
Reply to
Brian Dean
If it had either TTL-level coms or RS485 I might be interested.
I just don't think that RS232 has enough noise-immunity for robotic use. IMHO. -- D. Jay Newman
formatting link
Reply to
D. Jay Newman
Bob,
Congratulations on a very classy bit of engineering. I intend to buy one this weekend.
I am curious about the self-calibration you describe in your data sheet. It looks like at start up the sensor estimates the sound speed for the current conditions and then applies it to subsequent measurements. To do so, it needs to have a sound-reflecting target, but doesn't need to know the actual range to that target. Is that correct? If so, how is the measurement accomplished?
Gary
P.S. To everyone else... At one atmosphere, 20 degrees C (68 F) and 20 percent relative humidity, the sound speed is about 343.6 m/s. At 26.6 degrees (80 F) and 90 percent humidity it's about 348.9 m/s. This might be enough to give a one-inch difference in reading at about six feet. It appears that Bob is the kind of guy who worries about things like that and has engineered a solution. I was wondering how he did it.
Bob (Robot Wars Thumper 1997) wrote:
Reply to
gwlucas
Jay:
From reading the schematic of the Maxbotix spec. sheet, the RX/TX is signalling is connected directly to the pins on the PIC16F676. Thus, the Maxbotix sonar is using 0-5V signalling (i.e. TTL), not RS-232 signal voltages.
The signalling voltages for RS-232 are typically +/- 12 volts with a no mans land of +/- 3 volts. I have been in environments where we've run 100's of RS-232 cabels for 100's of meters side-by-side without any problems. Thus, my experience with RS-232 noise immunity is that it is excellent. My experience with running TTL over much shorter distances has not been nearly has pleasant (I used to live across the Charles river from the Boston University radio station broadcast station, and very short pieces of wire picked up a great deal of signal.) I agree with your assessment about differential signalling (e.g. RS-422, RS-485, CAN, etc.), differential signalling tends to have excellent noise immunity.
I'm curious what experience you have with RS-232 that makes you dislike it in a robotics environment?
Any insight would be greatly appreciated,
-Wayne
Reply to
Wayne C. Gramlich
That's good news for me. I took the OP at his word.
You must be using better cable than I do. Or perhaps a better source of RS232 transmissions (mine are PCs or microprocessors used in robots.
Yes. I was planning on immediately converting the TTL-level to RS485.
I've had too many communications breakdown within robots before I gave up on RS232. Perhaps I've had bad luck and bad cables.
On small robots RS232 has worked fine for me, but when I raised the size of the robots and the speed of the communications bad things happened. -- D. Jay Newman
formatting link
Reply to
D. Jay Newman
Gary,
I do not want to mislead you on the way the sensor works. The sensor has continuous variable gain (100s of small gain steps) using a log amplifier. Because of the amplifier, the MaxSonar-EZ1 can control the beam width to what is shown on the datasheet.
In addition, the ring down pattern of the sensor is also measured and stored. Then when an object is up close it has a ring down pattern to compare the reading to. The truth is that The MaxSonar-EZ1 is measuring mV of signal on top of volts of signal. This is so the single sensor can detect all the way down to zero distance. This is very reliable.
But the sensor's dynamic loading can change depending upon the air temperature and this change can be mistaken for an up close object. I have had them running for weeks without requiring a repeat calibration, but when I cooled down the MaxSonar-EZ1 (moved near a large ice block in my office) or heated it up (with a small heater) the calibration changed. The humidity affects the exposed sensor and can change the ring down pattern as can the applied voltage. So the calibration cycle is to detect close objects.
At this time the readings are not range compensated for temperature. Maybe this can occur on the next model.
The 0 to 5 V RS232 is mainly for connecting to micro controllers so they don't require a level shifting chip. This is very reliable. I have used the sensor to talk to a PC and for me this has always worked, but no guarantees.
Bob
Reply to
Bob (Robot Wars Thumper 1997)
There are a few deep evils in robotics.
Non-differential runs off the PCB Step/Direction control of motors
Sure, if you are building things that run around the carpet for your own jollies, but if it needs to be bullet proof, go differential.
On the subject of TTL serial, isn't RS-232C a specification for voltage levels and comms spec?
Reply to
blueeyedpop

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.