spacer Using a Light-Pipe as a Robotic Touch Sensor

As I work on my polypod robot I'm considering options for sensors. I've always felt that a machine needs to be autonomous for it to really be a robot. That means it has to sense the world and make decisions based on what it detects. I've been trying to come up with an idea for force sensors on the feet so they can tell when they're touching something. I had an idea that a simple DIY light-pipe might work.

We're all familiar with optical fibres. These are usually glass or plastic fibres that conduct light from one end to the other with relatively little loss. While these are typically solid, I wondered whether I could make a 'fibre optic' cable out of plastic tubing and water. No longer a fibre I suppose this would be better described as a light-pipe.

Light pipe formed from water filled tube capped by an LED and a phototransister

The light-pipe I constructed consists of an approximately 4" piece of clear tygon tubing (R-3603 1/8" ID, 3/16" OD, ShoreA Hardness 55). The tygon tubing is flexible but strong enough to maintain its shape when bent through a curve of as little as 8-9mm diameter.

I immersed the tubing in water and forced out any bubbles using a syringe body. I inserted a 3mm LED into one end and a matching 3mm phototransistor into the other. Finally, removing the tube from the water, I placed short pieces of heat-shrink tubing over the ends to hold the assembly together.

Update: In the end I switched to isopropyl alcohol. The water would release small amounts of dissolved air which would eventually coalesce to create air voids. The alcohol is ~99% pure and was used for cleaning. Normal rubbing alcohol is about 70% pure I think. Glycerol might be a better choice yet since it's not volatile and still water soluble for cleanup after filling..

Light travelling down the light-pipe

As a quick test I illuminated the LED at about 40mA. With the tube lying on a sheet of white paper, there is some light leakage but much is still transmitted down the tube. This LED (EL-204IT) has a 30degree viewing angle.

The phototransistor (EL-PT204-6C) showed a resistance of about 60Kohm without illumination. When the tube is straight and the LED is illuminated the resistance drops to about 6Kohm. When bent into a 3cm diameter curve, the resistance increases to about 7.5Kohm.

Light pipe being deformed by a light pressure.

I wondered what would happen when the tubing is compressed. I thought that it should reduce the efficiency of the light-pipe reducing the light falling on the phototransistor. From the photo you can see (well not really very well) red light 'leaking' from the point of compression. When the tube is compressed by a light force the resistance increases. My initial tests showed an increase of about 5% which was promising.

Further Tests

My next test used the isopropyl alcohol filled light-pipe. I bent the tube around a piece of MDF that was 1" wide and had a rounded end with a 0.5" radius. I monitored the voltage as indicated in the diagram. I then pressed the light-pipe against an electronic balance to gauge the amount of force.

Light-pipe mounted on a piece of MDF

Below you can see what the oscilloscope signal looks like when I pressed the light-pipe against the scale with a force of roughly 350g. The first observation is that the signal is a bit noisy suggesting that low pass filtering might be helpful. Secondly, in the presence of fluorescent lights, there is a sizeable signal superimposed (not seen here). Either opaque tubing or better shielding of the phototransistor would be useful.

Sensor signal measured via oscilloscope

I tested the sensor again using a volt meter and pressing the sensor against the scale with different forces. The plot below shows that the response is linear within the range of 0 to 450g.

Graph of Sensor Signal vs Applied Force

My robot will have a final weight of about 500g. Therefore at best one might expect less than 250g of force on a foot sensor. A light touch of 100g ought to produce a deviation of about 42mV based on the graph. A 10 bit A/D has a resolution of about 3.2 mV running off a 3.3V supply and should show a change in signal of about 13. It certainly sounds doable.

It would be better if the tubing were a bit softer as it should give a larger signal. I seem to recall that the silcone rubber tubing that we used as fuel lines for our R/C planes when I was a youth was softer and translucent. If correct, the silicone tubing might be just what the doctor ordered. Once I find time to finish the Polypod's leg code I'll try fitting some light-pipe sensors and see how they work.

-- The End For Now --