Let's Make Robots!

"LoMoR" - Lets Orientate & Map Our Robots (Sonar Based)

"LoMoR" - Lets Orientate & Map Our Robots (Sonar Based)

 Also Blogged as Mystery Object Here

My System Uses a LCD display to Map an area which is scanned by an Ultrasonic or IR Distance_ing transducer.

The Angle of the Probe is converted from polar Coordinate to Cartesian Coords and then displayed X,Y fashion on the LCD Display.

The System works pretty well i must say, however the "Extra" echos of Ultrasonic signal can be miss-leading.

What is super cool is being able to see what the Ultrasonic or IR sensor sees - it sees a lot more than you would think, or should i say Too much more!!

I am not sure what the overshot areas on the plot are yet. (maybe i have to mount the transducers sideways).

I mounted the Ultrasonic Transducer Vertically and it gave slightly better result - the plus point is the transducer can pivot better around itself.

Basic system is so:-

  1. Arduino - LCD walkthrough
  2. GLCD based display
  3. Data Sheet for KSO108B
  4. Ultrasonic or IR Distance Transducer connected to a servo.

My code_ing works this way :-

  1. Servo scans with attached Ultrasonic or IR sensor taking distance measurments
  2. From this you have the angle of the servo with distance to object
  3. Convert the Angle of the servos Polar Coordinates to (cartesian coordinates)
  4. ie x=cos(angle)*distance, y=sin(angle)*distance
  5. then you can plot direct to the display x,y
  6. Result is a visual map of your scanned area.

Video (1)  URL :- LoMoR with URM37 Ultrasonic Sensor (Film was made by my Son, voice over by me)
Video (2)  URL :- LoMoR with Sharp GP2Y0A02YK0F Infra Red Long Range Sensor

Video (3)  URL :- LoMoR with Maxbotix LV-EZ1 - Ultrasonic Long Range Sonar

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

i`m trying to make something like you but i`m not having the same results. i`m using http://maxbotix.com/documents/XL-MaxSonar-EZ_Datasheet.pdf this sensor (MB 1200) and when i`m measuring the distance i`m getting the result from the closest object that stands between -30 and 30 degrees from the front of the sensor. Is that because the of thea beam characteristic of this sensor or is something else? because in your movie seem to detect the object that stands in front of the sensor...

This looks really cool. Did you ever try to use it for navigation?

LoMoR was an experimental platform to see which sensors worked the best.

The Display used up most of the pins on the poor Arduino , so there was not many pins left for control (well thats my excuse....it could be done though).

Since then i have found better ways for navigation blogged :-

The laser direction gives much higher accuracy ...... if you dont mind laser light flashing around.

And checkout GroGs post here :-


Gareth, will you merry me?

I'm currently working on a similar project, using a GP2D12 Sharp sensor, which I'm gonna integrate with a robot soon. Only I'm displaying the map on my PC. Here is a screenshot of a map being drawn (note: the application is far from finished):


I'd like to ask you for some advice...

* How often do you read from the sensor? I read somewhere that one should wait atleast 36ms between each reading. I read 250ms elsewhere, so I dunno..?

* Are you operating with individual readings or an average of several readings? If so then of how many?

* How many degrees do you turn between each reading?

* Have you thought about how to use this with a MOVING robot? I'm currenly thinking about starting out with a cheap, lowtech way of measuring how far the robot has moved by attaching quadrature encoders on the wheels. I'll then be using the so called SLAM (simultaneous localization and mapping) technique to deal with accumulated error. Any tips/thoughs in this direction?

* Any other advice you can think of? :)

Have just added Video for Maxbotixs LV-EZ1 Long Range single Ultrasonic Sonar.

Its a very compact Sonar - with analoge, pulse width and data outputs, running off 2.5V-5.5V supply @3ma

With Scanning in mind :-

This sensor is not so good for short range and does not detect edges very well (due to echos)

However it comes into its own at long range-

Unfortunately, the site I used for watching the videos is not working at the moment so I still cannot see your video but I do have a question for you. what did you connect pin 3 (Vee) to? I found the datasheet a bit vague. Is it 0 to -8V AC? input or output?

After seeing all the fun you are having with yours I am thinking of buying another :D

My version is so (contrast adjust works fine) :-

                          10K ohm variable resister

(Vout pin18) ---------/\/\/\/\/\--------  (+5V)
                           (To Vee input pin3 (center tap of variable resistor))


Then Measuring pin 18 Vout to Gnd yields  minus -4.8Vdc approx 

Measuring from Gnd to pin 3 (Vee and center of vr) yields variable voltage 0 to minus -4.8V dc adjusting the contrast accordingly


The data sheet wasn't very clear on that.
How many milliseconds between two measurements? I remember that the Sharp sensors need 39 ms between measurements. If that's correct, a 180 degrees scan would take 7 seconds. Is there a way to do it faster?