.net, 3d Printing, Making, Raspberry Pi 3, Robotics

3d printed robotic hand – Part #5, attaching the servos to fingers

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.

screenshot.1463608513

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.

WP_20160519_19_27_48_Pro

WP_20160519_19_27_55_Pro

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:

Mechanics

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.

Summary

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.

 

3d Printing, arduino, Making, Robotics

3d printed robotic hand – Part #4, testing servos

Previously, I experimented with using solenoids to control finger movement on the robotic hand. This proved to not be suitable – the solenoids which were powerful enough to move the finger were big – which meant heavy, and also drained power too quickly.

I bought some servos from Amazon – these weigh 9g, and are rated as 1kg/cm, which means that the motor will stall (i.e. not move) if 1kg is applied at 1 cm from the centre of rotation.

servo
From Amazon

I decided to control these with an Arduino – this was pretty simple. I connected the red wire to the +5v of the Arduino, the black wire to GND, and I connected the orange wire to Pin 9. The Arduino programming environment ships with a program for a servo already – you can find it at File -> Examples -> Servo -> Sweep. This just makes the servo rotate backwards and forwards from 0 degrees to 180 degrees.

In order to test this with my robotic hand, I designed another jig – this one was a bit more complex than the previous one because the servo isn’t symmetrical.

Servo bracket

I printed this out, connected one of the fingers from last time and attached the servo and arduino. This proved to be much more successful.

WP_20160304_19_18_58_Pro

WP_20160304_19_19_09_Pro

Instead of snapping shut, and then depending on a spring for the return motion, the servo allows me to open and close the finger’s movement in a much more controlled way – I can actually specify its position in degress from 0 to 180, which gives a much smoother movement. The servo is way lighter than the solenoid, and also much smaller – so I’ve a much better chance of fitting 5 of them into a robotic hand.

Next time I’m going to re-design the palm of the hand and attempt to fit 4 servos, so that I can control each of the fingers individually.

3d Printing, Making, Robotics

3d printed robotic hand – Part #3, more printing, lessons learned so far

Last time, I tested the mechanism which moves the fingers, and I identified a solenoid which looked suitable for powering the mechanism. This time I print out the rest of the fingers, and design a mounting bracket for the fingers and the solenoids.

I’ve deliberately not done much research into how to build robotic hand – I think there’s a possibility that I’ll become too influenced by other people’s good ideas, and end up just building a replica of someone else’s project (which I don’t want to do). This approach has the advantage that even though I’ll make more mistakes, I’ll still end up learning more things (which is a slightly strange sounding advantage, but anyway). This time I make a few mistakes, and run into a few dead ends.

I’ll finish the post with a few lessons learned and things I’ll plan to do in future posts.

Re-designing the knuckle

Last time, I mentioned that I wanted to re-design the knuckle so that it could be bolted onto any mounting brackets, rather than acetone welded. This makes it easy to move or replace the knuckle unit. The picture below shows my redesign – using the splitting tool, I cut a hexagonal shaped hole into the knuckle, which allows an M3 nut to tightly fit. When I come to build the mounting bracket, it’s an easy task to extend a 1.8mm radius hole through the bracket, so the knuckle can be bolted on.

Designing the rest of the fingers

I based the other fingers on the one I designed last time – I aimed to make them approximately the same proportions as fingers on my own left hand. The proximal phalange was slightly tricky to adjust as I had used a curve for the outer edge, so it wasn’t possible to just cut a section out to shorten it. However, Autodesk 123D’s scale tool was useful here – I scaled in only one direction, shortening the proximal phalange by 10%. I then used the slicing tool to cut the holes again (as these will have become slightly enlongated during the scale).

featured image 2

I printed out each of these fingers, shown below.

printed fingers

Designing the mounting bracket

One of the things I’ve noticed about other similar projects (in the deliberately limited research that I’ve actually done) is that the fingers usually seem to be set out to be perfectly parallel, which I don’t think reflects how a real hand looks – the fingers are at a slight angle to each other. I decided to try setting my mounting bracket out to reflect this, and see what I learn. I set the index finger out at 10 degrees to the middle finger, and the ring finger and little finger to be 5 degrees to the middle finger in an opposite direction.

I designed and built an initial mounting bracket, which I’ve shown below.

test jig for knuckles

I ordered more solenoids, and extended the design of this bracket to allow them to be attached to the bracket and the fingers. This looked alright in theory – the bracket seemed to be a bit wide, so I decided to use the middle sized solenoid from last time to control the little finger.

WP_20160301_19_46_46_Pro

One other problem which became obvious pretty quickly was that the solenoids were too big to allow them to be set out in line with their respective finger. I set them out parallel to each other, figuring that that I could print a linkage with a mounting hole at a 10 degrees or 5 degrees angle, which would allow the mechanism to move.

Arranging the fingers on the mounting bracket in Autodesk 123D showed that they would fit without clashing into each other – each of the fingers appears in one colour this time because I combined all the parts into a single part to help with Autodesk 123D’s memory usage on my computer. If you do this, make sure to save this as a copy as you can’t easily undo the operation.

I printed the bracket out using a wide brim on my printer as something with a large surface area is likely to warp quite easily.

After attaching the fingers to the mounting bracket (shown below) they all fitted reasonably well, although I’ve noticed that some of the alignment is slightly off. This misalignment is because I printed the proximal phalanges in two separate pieces, and they’ve not been acetone welded in a perfectly symmetrical way. This means that the opposing bolt holes are slightly misaligned, and that small error is greatly magnified over the length of the finger. I think for version two I’ll try printing these phalange pieces out in one go.

assembled hand

So at this point, it was starting to become really obvious that this wasn’t going to work – the solenoids are far too big, and also too heavy (I didn’t even bother installing the smaller solenoid for the little finger).

Another problem that occurred to me was that whereas the solenoids will close the four fingers, they’re either on or off – which means that when power is applied to the solenoids, they’ll snap shut – not great for picking up something fragile. Finally, the solenoids really drain power quickly.

So next time, I’m going to go back to doing some research and development – I’m going to investigate whether a small servo would be suitable to power the mechanism, instead of the solenoids.

3d Printing, Making, Robotics

3d printed robotic hand – Part #2, testing the mechanism with a solenoid

In the previous part I started designing the fingers in the Autodesk 123D CAD package, and 3d printed one of these fingers out. In this part, I’d like to find a way to electrically control the movement of the finger.

The finger rotates around the knuckle joint – this part of the mechanism is too small to allow a motor to fit into it, so I decided to try another linkage which would allow a linear movement to be translated into rotation.

I thought a good transducer would be a small solenoid – this would allow me to convert electrical energy (from a battery or power supply) into a linear movement. When the current flows through the circuit, the solenoid’s coil wire is magnetised, which then pulls a metal core into the coil of wire. When the current is removed, a spring forces the metal core back into it’s original position. I can attach a link from the finger mechanism to the end of the metal core, so switching on the current will make the finger move.

Three Solenoids

I ordered three types of solenoid – I didn’t really have any idea of the suitability of hardware I was going to receive – each of these purchases was really just a shot in the dark, hoping something would be suitable.

3-12V 0.08-0.35A Push-Pull Type DC Open Frame Linear Solenoid

solenoid
Purchased from eBay
  • Voltage:3-12v;
  • Current:0.08-0.35A;
  • Dimensions: 11 x 12 x 20.3mm

DC 12V 2.1Kg Force 10mm Push Pull Type Electric Solenoid Electromagnet

61xbhkuimzl-_sy355_
Purchased from Amazon

 

  • Voltage:12v;
  • Dimensions: 30 x 15 x 13mm;
  • Force: 2.1kg (I know force is measured in Newtons, but this is from the spec)

1kg Force 10mm Stroke Push Open Frame Solenoid Electromagnet DC 12V

solenoid2
Purchased from Amazon
  • Voltage:12v;
  • Dimensions: 40 x 29 x 24mm;
  • Force: 1kg (again, I know force is measured in Newtons, but this is from the spec)

Comparison

I photographed all three of these solenoids side by side, and placed them beside a UK 10p piece to show their relative sizes.

WP_20160227_23_35_00_Pro

I think this makes the differences pretty clear!

I applied 12v to each of these and tested their strength by pressing against them.

  • The smallest solenoid is incredibly weak, and obviously unsuitable –  it presented almost no resistance. Also, there’s nothing to stop the metal core coming out of the main solenoid body;
  • The middle sized solenoid was quite a lot stronger, but this definitely would not be able to pick up 2.1kg – still pretty weak;
  • The largest solenoid was – obviously enough – the strongest of the three. I thought this would be strong enough to make the mechanism work.

I found this video on YouTube about another solenoid, which is similar to the smallest solenoid.

I designed a jig in Autodesk 123D to test the existing printed finger with this largest solenoid (shown below). The large regtangular pad in the main green part is where the solenoid will sit, and the solenoid plunger will screw into the yellow linkages protruding from the blue part.

finger with base jig (full)

The image below shows the same finger and jig with a few parts hidden so that the internal linkage mechanism is clearer.

finger with base jig

And here’s the complete test apparatus part after printing the green jig and new yellow linkages. I attached the knuckle to the jig by acetone welding the two parts together – I don’t want to do this again, so I’ll redesign the knuckle to allow it to be bolted to any attachments.

WP_20160226_23_23_33_Pro

Here’s what happens after 12V is applied to the solenoid.

WP_20160226_23_23_19_Pro

Here’s what happens after the 12V is removed from the solenoid…no change.

WP_20160226_23_23_19_Pro

Looks like the solenoid spring isn’t strong enough to return the mechanism to it’s original position. Fortunately I had suspected that might happen, so deliberately designed a couple of holes at the back of the proximal phalanges (blue parts in the CAD diagrams above) for a spring.

I added a spring – you can see this at the bottom left of the picture below. This allowed the finger mechanism to return to its original position, although it does make it a bit harder for the solenoid to pull the metal core into the body of the solenoid.

WP_20160227_20_18_46_Pro

I think this is a good enough proof of concept for version one, so I’ll proceed with a few more of the solenoids used above. Next time, I’ll design more fingers and consider how they knuckles will be positioned on the main part of the hand.

 

3d Printing, Making, Robotics

3d printed robotic hand – Part #1, designing the finger mechanism

I wrote a short post previously mentioning that I was going to try to build a robotic hand with my 3d printer. I don’t have any grand plan for how to achieve this – I’m going to think a little bit ahead, experiment, and see how things go!

What’s a 3d printed finger going to look like?

The first thing I did was examine the structure of a hand.

Hand
Source: https://en.wikipedia.org/wiki/Hand

I decided that for the printed version, I would make the distal phalanges and intermediate phalanges into a single piece. I also thought that I could use an internal linkage from the knuckle to the intermediate phalange which would allow the finger to curl when the proximal phalange rotates around the knuckle – which only requires rotation around one point.

I won’t judge you if you didn’t read that last paragraph too closely.

I decided to draw out my first attempt a single finger in some CAD software – as usual, I chose to draw this in Autodesk 123D design, and I’ve included some screenshots of this design below.

It’s difficult to explain how this mechanism works using words – a video is probably a better medium for this. I’ll try to explain this below, and colour-code the biology phrases to help clarify which parts they relate to in the diagrams above.

  • The knuckle will be bolted to the proximal phalange, and this in turn will be bolted to the intermediate phalange.
  • There is an internal linkage from the knuckle to the intermediate phalange. This prevents the parts from rotating freely, but it should ensure that when the proximal phalange is rotated that the intermediate phalange will rotate also.

So the next step was to lay these parts out flat and then 3d print them.

  • I had to split the intermediate phalange into two parts which were mirror opposites of each other to simplify the print.
  • Similarly for the proximal phalange, I split the parts (although they aren’t perfect mirror images, I decided to make it asymmetric so that it would be more difficult to match them incorrectly).
  • These opposing parts needed to be stuck together – glue would be fine, but acetone welding is easier.

The photo below shows the printed mechanism – first of all in an un-tensed configuration (meaning lying flat):

flat

The photo below show the mechanism when it’s tensed (meaning rotated around the knuckle). You can see how the top part (intermediate and distal phalanges) starts to bend around as well because of the internal linkage.

upright

The next step is to think about how I can mechanically power this – I’ve ordered some solenoids, as I can use another linkage to translate the solenoid’s linear motion into a rotational movement around the knuckle.