A bit of honesty – I made this project by accident. True story.
One beautiful morning I woke up and decided, that today I should brighten my day by relaxing with a couple hours of CAD design and 3D printing. Really, compared to my research, CAD design is a bloody leisure time.
So I sat down with an intention to design a knee joint for a future walking robot. Me being me – I went for youtube inspiration session first. I already had my eyes for some time at the upper limbs of LIMS, but also I rewatched an old video of IIT/Pisa SoftHand, and one particular term fascinated me – Hillberry joint. So without looking at the actual design of the hand (oh silly old me, why, oh why… all those hours wasted…) I googled the term and saw the picture from the original patent. And it was beautiful.
So I assembled something out of an engineers horror story – two LEGO blocks connected using two elastic loops. Because I had about 6 sets of LEGO Mindstorms that I were naively preparing for some workshops with 10-year olds. And guess what? It works. It rotates. It stays put, well, kinda. And it even works for longer chains!
Ok, the idea is sound, so let me grab my OpenSCAD and sketch it.
Now, the LEGO idea #1 with just two rolling cylinders is too primitive, because nothing stops them from misalignment – so the #2 with gears on the outside is a bit more stable when it comes to rotation. So the first sketch is exactly that – a simple pulley sandwiched between two gears (I was using some unnamed OpenSCAD gear function I found in the abyss of the internet and can’t track down, because I think the original author deleted it since then, but don’t worry – I’m moving to MCAD involute gears slowly).
I tried using a normal string to bound them together. Bad idea in a long run, no elasticity actually hurts it a lot.
The second take on that was to actually make it look like a robotic link, with places for joint at the end. When I printed a couple of those and used a small rubbery elastic loop to join them I noticed something – am I building a finger?!
Ok, let me fix a couple of problems with the previous design first, before I do anything else.
– I’m printing straight on an aluminium plate (without adhesives!), so my first layer is kinda squished and adds just a fraction of a millimeter to the bottom outline of the object – that means the gears are wider at the bottom than at the top; solution? either use a file to post-process them OR round them in the design, so that they are more tolerant to the shape of top-bottom layers
– I’m printing without supports, everything that hangs as a roof needs to be at a slight angle
– I’m done with wires – what else can I use as a leaf-spring element of the Hillberry joint? after a small trip to the haberdashery (I love that word) I got all sorts of elastic strings (hat-strings and threads), but most importantly – I found a roll of NinjaFlex in a cupboard and the all the parameters seems great, so I’m going with it for a while
So building a finger was not planned, but well – let me build it more properly then. A good finger requires a locking mechanism when it’s straight, so that it only really bends.
Since it’s my first voyage into the crazy world of building fingers I think I will go with a more traditional approach to actuation – a nonholonomic hand, with motor up in the palm and a wire that is pulling the last phalange (the mounts are underneath the pulleys). So for the automatic return to the original position I’m using a second elastic element – and the mount on the top.
Maybe time for a tutorial in hand anatomy?
Ok, so after a quick crash-course on the hand anatomy I embarked on a quest to make a proximal phalange and metacarpals. I had no idea of how to arrange the side motions near the metacarpal so I just tossed classic springs in there.
The first test of moving a finger around – oooh, it even has a little bit of gripping force… oh, sorry, my mistake – NO FORCE at all. And you may have to hold the pulley on top of the servo, otherwise it comes off.
My mistake? I grabbed the smallest 9g servo I have, powered it through the Arduino voltage regulator, and so on, and on.
Ok, with a proper servo pulley – it’s better. Now, you may ask why I’m not using screws and the servo horn – I’m not a fan of doing anything that actually destroys the servo horn.
I’m starting to think the NinjaFlex was a bit overkill, so I redesigned the whole thing and scaled about 10% down – and used a white elastic thread.
First metacarpal design was a disaster, with smoke, flames, firefighters and buildings crushing down. Don’t ask.
The second design looks nice. And bends. And works. The grip strength is awful, but what do you expect from 1$ servos? The thumb is still missing, but should be in place for when I get down to doing actual research using this thing.
Q: So what’s so special about it? There is a IIT/PISA SoftHand, SoftHand Pro, Shadow Hand and all sorts of other finger-devices, why did you keep doing it at all?
A: Midway through it I honestly wondered one thing – how long can I keep designing it without any screws holding it together. I got pretty far, the only screws are the ones binding metacarpals to the palm and the servo mounts. Also, have you looked at the scale of gear teeth at the SoftHand? You need sub-0.1 layer and sub-0.3 line width precision to print that at home, not even mentioning the about 100+ micro bearing for Hillberry joints. It works wonders, don’t get me wrong, but the replicating that design is not for the faint of heart.
PS. I really should be sponsored by Razer. Their logo is in nearly every video I make.