How to Handle Ultrasonic Sensor more than one

Status
Not open for further replies.

dini_amiarti

New Member
I've recently seen mobile robot uses ultrasonic sensor (such as PING or Devantech SRF04) more than one, oftenly 3 & 6. The arrengement should looked like this :

--0--
0---0

or

----
0-0----
--0-----0---
0---------0-


I've built robot using 1 sensor, PING, to detect one big object infront of the robot. But it seems not smart for the robot. I thought it will be more diffucult to scan each sensor one by one, since the sensor needs little time (in ms) to measure the distance. I've heard bout fuzzy method.. but im blank in this area (maybe you guys could help me for this )
Is there any detail explanation (the method of scanning, pseudo code maybe?, or project) in this field? Could u guys help me..

Im not good in using english, sorry..
 
I presume you just scan them sequentially?, there's plenty of time to mess about with - mechanics run far slower than electronics.
 
I think he means he needs a wait time between each sensor ping since they are all working on the same frequency. I don't know what you mean by fuzzy method unless you mean fuzzy logic.

Have you looked at Devantech's new SRF02s? They are cheaper than the dual transducer units and are able to just receive or just transmit so you can have one sensor do a ping or ping/listen and have the others just listen so they can all use that initial transmit. Then you can get a range reading all at the same time from all the sensors. Just remember about distortion that can happen since the ping's origin and destination are not at exactly the same location (except for the sensor that did the transmit-receive).

But if you are talking about beam-forming I wouldn't try that unless you have some really high end sensors or build your own specifically for the purpose (I think you need to be able to synchronize the drive pulses between transmitters so you can control their phases for proper constructive/destructive interference). I guess if you have more than one sensor there is no harm in experimenting with beam forming to see if you can pull it off, but it would be crude at best.

Probably a better thing to do is to have a bunch of sensors pointing covergently somewhere and getting ranging information and making an educated guess as to what is there. It would help if you knew exactly what you mean by making it "smarter".
 
Last edited:
Srf08

The devantech units SRF08 all respond to the i2c general broadcast address 0, thus you can trigger any number of units simultaniusly. Then you read each distance emasured one by one. Obviusly the transducers cant know if the echo they recive originated from itself or one of the others, but if you mount them at 30 deg angles (each sensor has a 30 degree field of view) this shouldnt happen to often. And even if you do get an echo from a soundpulse originated from one of the other transcuders thats not such a big deal, IF (and thats a big IF) they all fire at once.

Distanse is calulated as the time from pulse fired to the time echo is resived. Where the pulse comes from doesnt matter that much. Try mounting 3 sensors on the front of your robot at 30 degree angles. Draw that on paper and simulate the robot running into a corner. You will see that it works fine, even if the sound bounces of several objects. (of course there are situatsions that the transducers will give wrong readings to, its not a perfect world, but this aproch ive outlined works fine in most cases)

One good way to augment between many distanse measurments is to consider each distance measured, and the angle the reciving sensor is mounted as a vector and then use vector sum on all sensors. the result is a vector, representing a repulsive force on your robot and will tell you in what direction you robot should move to be most likley to not crash into anything.

When calulating the vectors its probably a good idea to use the square of the distance as the vector length, and then ofcourse the angle the sensor is mounted compared to the forward direction of robot as the angle. Summing these vectors will give you a nice and easy result to work with.


PS: The vector sum aproch has been used amongst others by Rodney Brooks when he built Allen, the first robot to use his subsumption architechure of AFSM's. I can highly recomend reading his article colection "Cambrian Inteligance" if you are itnrested in inteligent robots (making things smarter is not always as hard as youd think)

Best regards,
Ole
 
Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…