SCRC:Indoor Robot-Magellan: Sensors
The robot will use a combination of sensors to accomplish tasks such as localization, speed control, mapping and object recognition.
The following sensors as necessary for functionality on the robot:
Wheel encoders will allow the robot to estimate both it's speed and distance traveled.
Microsoft's Kinect 3D sensor will produce a depth image that will be used to simulate a laser scanner for the navigation stack
HC-SR04 ultrasonic distance sensors (cheap Chinese, actual manufacturer unknown) to measure the distances to the walls in front of, behind, and to the right and left of the robot. They are available from many web retailers. After several readings, I get a couple of readings that are 20cm larger than the rest. Searching the web, it says to put a 10 uF capacitor between +5v and ground near the sensor. Also to allow at least 100 milliseconds after a reading before taking another reading, to allow for echo's to disperse. A voltage divider reduces the 5v output to 3.3 volts of the Arduino Due. Like a 1k ohm and 2k ohm resistors.
A Sharp GP2Y0A41SK0F IR distance sensor will be used to measure the distance from the gripper to the table or fridge shelf. It is used because it can work at distances down to 2 inches. It outputs an analog signal and requires 5v to operate. While my readings are repeatable, web pages say to put a 10 uF capacitor between +5v and ground near the sensor. The tantalum capacitors I bought are polarized with a line going down to the positive lead. IR Distance sensor don't have the range of ultrasonic sensor - it would take 3 IR sensors to cover the same distance. Two capacitors between Vcc and ground are recommend as near the sensor as possible to reduce changes in the output signal.  The Sharp sensors need 5v supply voltage, but max output is less than 3.2 volts - thus no voltage divider is needed for the 3.3v Due processor. There was a web page saying that the Sharp case is conductive.
Whisker sensors are a microswitch with a spring steel wire attached at can tough object, bend and then return to its original shape. They can be used as a last resort sensor for objects too short for the ultrasonic sensor to measure.
A sensor is need to see that the pop can is in front of the gripper.
Another sensor is needed to signal when the pop can is far enough between the gripper fingers to be securely held. It signal that the gripper should be closed.
There are limit switches at both ends of the vertical and horizontal arms. They prevent the motors from trying to move farther than they can.
 (under "How It Works") talks about how 12% of the consecutive readings from a Sharp IR sensor can differ by 42%. He takes an average of the readings.
The GP2Y0A710 sensor takes a reading very 16.5mSec +-3.7mSec and provides an analog output of the distance. Output voltage decreases with distance non-linearly. Voltage under the minimum distance also decreases, so the user needs to make sure that distances under the minimum are not possible. Maximum output voltage is about 3.2 (taken from Sharp's chart of output voltage vs distance) so it doesn't need a level shifter to work with the Arduino Due's 3.3v logic pins.