Touchy feely…

I’ve finished the improved potentiometer mounts on my humanoid robot and they are working well and much sturdier than the previous design. I’ve been working on an improvement to the robot that I’ve been planning for a while. As the title of this post may have given away, I am giving my robot a sense of touch. I have been toying with the idea for a few months now and I have found some time to start work on it. I wanted the robot to be able to sense when its hand has touched something, ideally from any angle. I tried a design that involved a spring mounted to the end of the robots arm, with a bolt passing through the middle of the spring. A ball mounted on the end of the spring was to be the robots new hand. The idea was that the spring would deflect when the hand touched something and make contact with the bolt. This would act as a switch and be connected to a digital input of the Arduino. I fabricated a prototype of this arrangement and whilst it worked reasonably well, the spring had to be quite stiff, to avoid false triggering as the arm moved about. This meant that the hand would have to push objects quite hard before the switch would trigger. What I really wanted was a switch that would trigger at the slightest touch and this design didn’t really meet the requirements.

I went back to the drawing board and revisited the idea I had initially for a sense of touch. This was simply to use tactile switches mounted to the hand that switched when they hit something. I have made a couple of quick circuits on strip-board that are simply a tactile switch and a connector. I have mounted these circuits to two sides of the robots hand. I already had connections on my interface board for switches so connecting these up was easy. Have a look at the picture below to see how these look mounted to the robot hand. As an experiment I have glued a bit of a cable tie to the tactile switch to extend the range of the switch and make it trigger a bit easier. This helps the switch trigger no matter what angle the hand hits an object. Seems to work really well!

Hand switches

I have connected the switches to the Arduino and modified the Arduino software to read the switches and added a switch status byte to the data packet being sent to the pc. I have also added to my Python code to graphically display the switch status on the screen.

I added a sense of touch to my robot in readiness for automating the robots movements. The robot needs to know when the hand has come into contact with something so the arm can be stopped and appropriate action be taken. I’m sure that the design of the hand switches will change and evolve as I do more testing but I’m happy that these switches will do the job for a while. Just a couple more switches for the other hand to make now!

Facts and Thoughts on Technological Progress

Turing's Radiator

Pleasantly Warm Topics in Computational Philosophy

Mind the Leap

One small step for the brain. One giant leap for the mind.

Steve Grand's Blog

Artificial Life in real life


Hi, I'm Jim. Read what I write and I'll write more to read.