I'm new to robot making and just got my first arduino to play around.

I want to make a robot that will wander on a table, and it will last longer I think if I could make it avoid falling from the table.

What will be the best way to make it detect the edge of a table so I can make it stop and turn around ? It have to be something reliable and preferably cheap.

It will also be better if I don't need to add extra stuff to the table so I can use it on any surface (my first idea was to draw path lines on the table and make a line follower robot, but I don't like this idea very much).


3 Answers 3


The Roomba solution to this problem was to add cliff sensors, which are really just downward facing proximity sensors:

Sharp GP2Y0A21YK infrared proximity sensor. The sensor has an analog output that varies from 3.1V at 10cm to 0.4V at 80cm.

Although this technique seems to have problems with some surfaces, such as dark tile floors, it sounds like this won't be a problem for your application.

You can even make one yourself with an IR LED and an IR photo diode, for example this Arduino Compatible DIY Infrared Proximity Sensor.

You might also be able to get some ideas from Tiny Wanderer - A Table Top Robot over on instructables.


An easy and cheap approach is to use a a touch sensor like a whisker. The controller just monitors whether the whisker is in contact with the ground, if one is not then it stops and moves away from that wisker.

Another fairly cheap method is to use a set of IR range finders pointed toward the ground. The controller then monitors the values returned from the rangers and if any of them go above some predefined threshold then the robot stops and moves away from that sensor.

  • 1
    $\begingroup$ The problem with touch is that the sensor may get damaged by impact from an object on the floor. Sensor reliability is an important part of robotic design. $\endgroup$ Feb 21, 2013 at 2:41

There are a number of different approaches to solving this problem:

  • Distance Sensors
  • Touch Sensor
  • RFID Tags around the edge of the table (Or magnets)
  • Camera (Using image processing, would be harder and the arduino would probably not be powerful enough for this)

With the distance sensor you will need to check whether it is a digital or analogue signal provided by the sensor. For the purpose of your 'cliff sensor' you would probably be fine with digital as you would be able to use the sensor as a toggle to detect when the distance is over a minimum distance.

If you are interested in analogue sensors to provide more information (such as distance from a wall) than just a toggle switch you will need to check what the range is on the device. The sharp sensor pictured in the answer above will provide you with a voltage, which you will have to convert into a distance (It has an inverse relationship with distance). You will require 3 sensors to cover the same range of distances that an ultrasonic sensor covers (e.g. SRF08 Ultrasonic Range Finder). Sharp GP2D120 Distance Measurement Sensor 4-30cm for short range, the Sharp GP2Y0A02YK Distance Measurement Sensor 20-150cm for medium range, and the Sharp GP2Y0A710K0F Distance Measurement Sensor 100-550cm for the long range sensor. I had issues with the ultrasonic sensor dropping to zero sporadically, so you would need to program a catch statement if this dropout is unacceptable in your application. The SRF08 Ultrasonic Range Finder was much easier to work with as it had been tuned by the manufacturer.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.