By Jim Toal
Senior Manager, Product Marketing for Vishay Optoelectronics
Robotic vacuum cleaners may use either optical sensors or cameras to navigate around a room. Camera-based vacuums can ‘see’ where they are going and avoid collisions, but they are expensive products. Cheaper optical sensor-based vacuums depend on contact between the bumper on the vacuum and objects such as table legs to navigate around the obstructions in the room that they are cleaning, as shown in Figure 1.
Fig. 1: A robotic vacuum cleaner has a bumper around its entire circumference
The design of an optical sensor-based robotic vacuum cleaner features an air gap between the bumper and the body of the cleaner. In the gap is a ring of light. When the bumper hits a table leg, the ring of light is broken because the bumper collapses just enough to block the light.
A ‘No light’ interrupt from the sensor is translated by a microcontroller as a signal that the device has hit an obstruction. The vacuum cleaner then stops, turns at an angle and attempts to move forward again, in an attempt to find a clear path. The ring of light may be created by:
- Discrete infrared emitters and photo-detectors
- Reflective sensors
- Or integrated light-to-digital sensors, such as the VCNL36687S proximity sensor from Vishay
Discrete infrared emitters and detectors could be used in several possible configurations. A single high-powered emitter could be coupled to one end of a flexible light pipe, with a photodiode at the other end. When the cleaner bumps into an object the bumper pinches the light pipe, interrupting the stream of light.
A different configuration would require breaking the bumper into sections. Each section would have an IR emitter pointed at a phototransistor which is parallel to the outer ring. When the subsection of the bumper hits an object, it deflects inward and breaks the beam of light, again producing a ‘No light’ signal. This can be accomplished using discrete emitters and detectors, or an integrated photo-interrupter. In both cases, the output of the photo-detector is a current which will be amplified, then converted and interpreted by a microcontroller.
While optical sensing in the bumper can handle obstructions on a flat plane, cliffs are a different concern for robotic vacuum cleaners. Stairs, for instance, are a series of cliffs, as shown in Figure 2. To avoid falling down a cliff, a light-to-digital proximity sensor may be used, pointing down at an angle towards the floor, and located on the leading edge of the vacuum cleaner. A proximity sensor integrates an IR emitter, photodiode and signal-processing circuits in a single package. The output of a sensor such as the 12-bit VCNL36687S from Vishay is a digital count from 0 to 4,095.
Fig. 2: A proximity sensor detects the cliff edge underneath the robot
When moving normally along the floor, the light from the emitter is reflected from wooden, tiled or carpeted surfaces to the photodiode. A High count is read by the sensor, and passed to an MCU via an I2C interface. At a cliff edge, the count drops to zero because there is no floor from which light can be reflected. This zero count triggers the MCU to stop the robot.
To ease the load on the MCU, the system can avoid constantly polling for proximity counts: instead, the sensor can react when the count passes an internally configured threshold, and pass this information on to the MCU via a simple command on an Interrupt pin.
This means that the sensor system must be smart enough to know the difference between the transition from a reflective surface to a cliff, and from a reflective surface such as wood to a different surface such as dark deep-pile carpet, which absorbs IR light.
One of the most important functions of a robotic vacuum cleaner is to know how far it has travelled. This too uses an optical sensor: a transmissive sensor or slotted interrupter which has an IR emitter directing light to a phototransistor across a gap through which a codewheel passes. The transmissive sensor is supplied as a single package, as shown in Figure 3.
Fig. 3: Vishay’s TCUT1630X01 transmissive sensor
The codewheel is attached to the axle driving the wheels, and interrupts the IR light which is directed towards the phototransistor, as shown in Figure 4. This assembly forms a device known as an optical encoder. The use of a three-channel transmissive sensor such as the TCUT1630X01 allows the robot to keep track not only of distance travelled, but also forward and reverse motion, and, if necessary, the number of revolutions.
Fig. 4: An optical encoder assembly based on Vishay’s TCUT1630X01 transmissive sensor