Last time in this series, I verified that a servo would be a better way to control finger movement than using a solenoid. Since then:
- I’ve been re-developing the base of the palm to hold servos, and
- I’ve been researching how to control 4 servos using a single device, such as a Raspberry Pi.
Redesigning the palm
In my first attempt at powering the robotic hand, I had tried to fit in 4 bulky solenoids. This time, I’ve been trying to squeeze in four 9g Tower Pro servos. These are significantly smaller and lighter than the solenoids, but they present their own challenge. Whereas the main shaft of the solenoid retracted into its body, the servos control movement using a wiper blade, which sits outside the servo. There must be enough free space for this wiper blade to move freely.
I decided that the best way to do this was to put the servos on their sides, in stacks of two. I positioned the wipers on opposite sides. My current design for the palm is shown below:
- The four knuckles are at the back of the diagram;
- The two towers in the middle are to hold the four servos – I intend to secure the servos using a small plastic bar and three threaded bolts.
- There is plenty of room towards the bottom of the palm to add another servo and mounting point for the thumb – but I’ve not designed this part yet.
I know It’s a little bit difficult to work out how the part above allows the knuckles to fit, and connects the servos to these fingers. I’ve included a couple of photos below from either side of the printed object which I hope will clear up how the parts connect together.
There’s two different aspects to address – how all the mechanical parts connected together, and how the electronics and programming worked.
You can see it working so far in the embedded Vine below:
Getting everything on board the palm was pretty tight, as mentioned before. I connected the servo wipers to the fingers by linkages, which were bolted on. This was a very fiddly process. There’s a lot of friction in these linkages too.
Also, the servos are quite strong, but the fingers don’t have very much gripping power. I’m not sure how much I can do about this – the principle of moments is against me here.
For the next version:
- I’d like to try using bearings to reduce the friction in the rotating parts.
- I need to find a better way to position the servos to allow more room.
- I will make the fingers more narrow and rounded – I think that angling the knuckles so that the fingers weren’t just paralled was a good idea, but they clashed slightly when fully clenched shut.
Electronics and Software
I users the Raspberry Pi 3 and the Servo Hat that I researched in a previous post. This needed an external 6v supply to power the 4 servos, and I just used a supply I had in the house which transformed mains down to 6v. The Raspberry Pi and Hat are probably a bit big for any real application of this device – the Pi Zero might be better, although Windows 10 IoT Core isn’t available for this yet.
The other thing is a similar problem to the solenoids – right now, the finger is either extended, or clenched. This is an issue with the software, in that I haven’t programmed it so that I can regulate the speed of the fingers when they’re clenching.
For the next version:
- I’d like to re-write the software to control the speed of the fingers. This also means that I need some way of inputting what I want the speed to be. Right now I am not sure what that might be…an Xbox controller perhaps?
- I’ll use 4 x 1.5v batteries instread of the external power supply to make the device more portable.
This second version of my robotic hand is much better than the first one – it’s a lot lighter, a lot smaller, and I have the ability to actually control the start and position of the fingers using software, rather than use springs to control the tensed and rested positions. I also need to work on the thumb – another good reason to try to make the mechanics a bit more compact.
Next time I’m going to re-design a lot of the 3d-printed parts. I’m a lot more familiar with the tools (like AutoDesk 123d Design), and I’ve learned a lot (from mistakes!) from the first couple of iterations.