
Taken from my project proposal:
I plan to create a robotic hand/arm that can respond to human commands and perform in basic problem-solving situations, where human guidance is kept at a minimum. After seeing a lot of different types of robotic arms, I believe that creating an arm isn’t that difficult, but writing the software that allows the robot to make informed decisions would be much more of a challenge.
I intend to create a humanoid hand (possibly with only 3-4 digits) that can perform a range of tasks, such as replicating a simple tune on a piano that the droid has been played, picking up objects, distinguishing weights and possibly even colours and materials which will require the robot to adjust the level of grip. This will require me to look at video pattern recognition for shapes and objects and possibly rely on the robots memory for previously-encountered objects.
I would like to use a combination of either Max5 or Flash and the Arduino for the hardware-software interaction and a series of servos and pulleys wrapped within an aluminium, plastic or copper construction, with FSRs (Force-Sensitive Resistors), and a spring-loaded immersion resistor for measuring the weight.
I am not looking to create a particularly fast-moving limb, but rather one that is dexterous enough to try a larger range of movements to complete a certain task.
My original idea was to create a pair of hands that could pick up and play a games console controller, like a PlayStation 3, but this would require extreme amounts of both dexterity and speed.
Now, the human hand is a complex thing and I’ve never looked at it more. The shear levels of dexterity are incredible, particularly in the thumb, which has to oppose the fingers perfectly in order to function. The human hand has a huge number of different muscles and tendons in order to create a vast library of shapes for different applications.

However, the main movements of a human hand can be summarised as shown below:


This of course ignores the 3 axis of movement that the entire arm has, with one hinge join in the elbow and 2 axis of movement in the shoulder – up/down and forward/backwards. However, the hand itself is comprised of just 16 major ‘bones’, but even this can be simplified. Most of us will find it hard to bend the 2 joints in our fingers independently of one another, therefore the finger itself only needs one form of control – curl up and extend. The knuckles are the next degree of movement and on top of the fingers fist>flat movement, they only require a small movement to spread the fingers apart and together again. The wrist is another simple joint with just 2 degrees of rotation. The most challenging digit is the thumb. I never noticed just how freely it moves in all 3 axis as well as bending in 2 places.
If I can design and build a hand that can accommodate all of these movements, the rest should be relatively easy(!)
Using 1, possibly 2 Arduino Duemilanove ATmega328 boards (I have just ordered 2!) and either Flash CS4/CS5 or more likely Max5 MSP, coupled with a variety of servos ranging from torques of 2kg/cm to a massive 15kg/cm, some PVC-coated steel braided wire and a multitude of sensors, I think I can make a hand that can perform almost as many tasks as a human hand. From thereon in, pre-recorded tasks and movements should(!) be easy…
My plan from my project proposal:
- Design a humanoid limb which is capable of the levels of dexterity of a human hand
- Build a skeleton to work around using a resistant material
- Fill the limb with servos and wires
- Connect everything up to Max5 to make sure the servos work as planned
- Experiment with moving different servos in different orders in order to mimic human-like movements
- Physically move the arm to get some values and data back for the different positions
- Program in some pre-recorded functions like “Pass to me” for extending the arm when it has something and ‘Yes/No, True/False’ for trial and error or reinforced learning
- Get the arm to see objects and move to a position over them
- Use the pre-recorded ‘grasp’ movement to grasp objects
- Use the pre-recorded “Pass to me” movement to pass me an object, or the “Move to” command to move the object to another place.
Good luck to me!
