Robotic Arms

This is an excerpt from Chapter 7 of my educational book on robotics. I figured the chapter worked well as a tutorial. I'm hoping to add a set of scratch built brackets for making your own arm. For now there is just the information on how an arm like this might work.

Enjoy!
Plooby Story

“Mom, have you seen my red sweater!?” “Ask Plooby!”

Plooby was monitoring, and upon hearing his name scans the audio buffer from the last thirty seconds extracting nouns and adjectives and cross referencing them against a search list associated with a word bank stored in his database. He then queries the house brain on the location of one sweater, red, in the possession of Kiera, the little girl making the request.

The house brain then scans for the RFID tag associated with the three items that have key words matching red and sweater, and prioritizes their location based on relevance, and the last time worn. Kiera’s room has registered that the item listed first on the prioritized list is not in the dresser drawer, closet, or laundry bin, but the item was last scanned entering the room yesterday afternoon, and was not scanned leaving.

Plooby makes his way to Kiera’s room. Using his camera plooby locates all of the “red” things in the room. He then navigates to each item and using an RFID scanner mounted in his arm, he tests each item. The third item on the search string is located under the bed. Plooby moves his arm into position so that his open end effector is in direct contact with the item, he closes the gripper, and then begins to retract his arm. Sensors in the gripper determine that the maximum pressure allowable for this item is being applied, and Plooby pulls the sweater out from under the bed.

Now to keep from entangling the sweater in any gears or wheels, Plooby backs out of the room holding his arm in the highest position possible. The RFID scanner maintains that the RFID tag is still in close proximity to the gripper. Plooby announces that he has the sweater over his loud speaker.

“Thanks Plooby” The sweater is released into the hands of one happy little girl.

Tutorial

Up until this point we have sort of taken for granted that Plooby has an arm. The odd thing, is that up until now we have not considered how this arm operates. What exactly are its properties. What is its range of motion, payload capacity, speed accuracy?

Before we come to any fast hard conclusions on this front, let us consider what the arm will be used for. If plooby is really meant to be helpful around the house, then he will need a relatively capable arm. Considering Plooby’s other limitations, if we want it to be at all effective at the myriad of tasks asked of it, I would argue that his arm would have to be much more capable than your own. “Plooby...Bring me a _________” Considering the wide range of things that we might ask for, from our glasses to a tooth pick to a jar of glue, unless we are going to give plooby a series of arms of different capabilities, then his arm will in fact have to be incredible.

So let us begin with a much more modest goal. Look at your own arm. It attaches to your body at a fixed point, our shoulder, and if you do not have rotator cuff damage like I do can rotate about 360 degrees along a vertical plane. It can also rotate about 180 degrees in horizontal plane, and can access any point that is a combination of those two axis of rotation. Your shoulder is a ball and socket joint. These allow an incredible range of motion and unfortunately are difficult to implement in robotics. Further down your arm you have another joint. This one is much simpler in design. It is a hinge joint. which has a range of a little over 135 degrees along one axis.



You can straighten your arm at the elbow, or bend it. Some really flexible people can slightly hyper extend their elbow joint beyond straight, but generally this is considered bad for you to do...so lets not do it. Next we come to the wrist. The wrist is what is known as a gliding joint. You have a number of small bones in your wrist that slide past each other to assume a number of different shapes. Consider this, with a ball and socket joint, motion is limited to 2 axis of rotation. With a gliding joint, You have a similar range of motion accomplished in a different way.

For example:

Stand facing forward with you arm straight down at your side. move your arm out and back so that it is at about a 45 degree angle behind and to the side of your body. Now moving your arm in a straight arc, bring it up so that it is at about a 45 degree angle above your shoulder and to the side of your body.






Now assume a seated position. Hold your wrist parallel to the ground. Keeping your hand flat, point your fingers down and to the side. Now mimic the movement you made with your arm. It may be a bit more difficult, but you can approximate the motion.





Now there are two joints that we have greatly ignored up to this point, one being between the elbow and wrist, and the other being a consequence of the ball and socket joint in your shoulder.

With your arm held tight to your side, bend it 90 degrees at the elbow so that your hand extends out in front of your body. Now maintaining this position rotate your arm outwards so that your hands points to the side. Now this is really a function of the ball and socket joint, not some other joint in your arm.

The second joint we have not spoken of yet is made up of the coupling of the two bones in your forearm, the radius and ulna. These two bones work together to allow your hand to rotate so that your palm can face up or down. They do this by twisting about one and other. The radius rotates around the ulna allowing about 180 degrees of rotation. These bones form a separate joint and work largely independently from the motion of your wrist.



All of the above motions are made possible not only by the joints of the arm, but also by the bones and muscles they are coupled with. In most living things, motion is made possible by elastic muscles pulling on ridged bones, fixed at the end by moving joints.

Now lets go back to considering the mechanics of Plooby’s arm. We must assume that at some point Plooby’s arm attaches to his body. Given that Plooby is a treaded rover, and therefor somewhat low to the ground, we want to attach the arm in a location where it will not impede the motion of the robot itself. In our case we would mount it near the front of the robot centered between the front treads.

To imagine the orientation of the arm, lie down on your side with your arm bent at the elbow. Point your elbow up towards the sky. In this way you can reach objects around you on the ground by extending your arm out in front of you.



Lets begin by focusing on the joints of the arm. At the base of the arm, we can mimic the capabilities of the human shoulder by using two points of rotation. In the base itself we can rotate on the horizontal or X plane, and then mounted on top of that a point of rotation in the vertical or Y plane.

For now we will settle on using servo motors at each joint to move or actuate our arm. While there are other methods which we might discuss later, for the sake of brevity we can make some assumptions.

So there is a servo under the base of the arm which controls the position on the X axis,we will call this servo Servo 1, or Shoulder X, and a second servo controlling motion on the Y axis at that joint. The second servo could be referred to as Servo 2, or more descriptively as Shoulder Y. By setting the position of these two servo motors we can move our elbow to any point along a half sphere about the center of rotation of the vertical servo at a set radius based on the length of the humorous, or arm segment between the shoulder and elbow. The elbow joint is a simple hinge. This allows movement along one axis of rotation. Here we only need one servo allowing rotation along one axis, which is the same as Servo 2, or the shoulder Y servo. Here we can use another servo mounted either at the end of the upper arm segment or at the top of the forearm segment (Servo 3 or Elbow). This will allow us to extend the reach of the arm. Finally, to model the capabilities of the human wrist we can again use two joints in a pan tilt arrangement actuated by two servos. One we will call Wrist Y or Servo 4, and the second Wrist X or Servo 5.



We need, or better, Plooby needs some way of knowing where his arm is. The sensation humans experience in knowing where their body parts are is called proprioception1. With Plooby that would be the feedback from the servo motors, telling our controller what position they are in. If with Plooby’s arm we set the center point of the servos in a certain position, then all motions become some variant from center. Through giving Plooby a sense of body awareness we can extend that into the ability to take control of his own arm through what is known as inverse kinematics2. Kinematics is the study of moving bodies, and the ability of those bodies to attain certain positions3. Inverse kinematics is the the ability to move ones body to attain the goal of a certain position.

To gain a deeper understanding of this, let us consider what would be required of Plooby in order to move a chess piece from one place on the board to another. While there are many ways in which Plooby’s arm could attain the required positions to move the chess piece, by giving plooby certain constraints, we facilitate the movement. In our case, we will have one set of rules for Plooby which are to be utilized when moving on a horizontal plane. Imagine we turn the chess board into an XY coordinate system. We will give Plooby a set of rules so that moving along a row is X, and along a column is Y. Unfortunately given that our shoulder is set in a fixed point, X becomes skewed along an arch around the center of rotation of shoulder X or servo 1. Y or the distance of the end effector from the base of the arm can be determined by changing the positions of servos 2, 3, and 4. In our case, each of these servos will move the same angle in concert with eachother, servos 2 and 4, the shoulder Y and wrist Y, in the same direction, and servo 3, the elbow in the opposite. In this way a change in these angels results in the arm becoming longer, while the end effector retains the same height, and thus remains on our plane.

Now by knowing the desired angle and length, we can reach any position on our chess board provided plooby’s arm is of sufficient length, and the servo motors are of strong enough to hold both the arm, and any payload we may wish to move. We can take this a step further by applying offsets to the length of Plooby’s arm based on the angle. using trigonometry, we can adjust the length of the arm so that it is longer at greater variance from the horizontal 0 point, and shorter as it approaches the horizontal 0 point. In this way, the end effector can be made to trace a straight line instead of moving along the arch it is predisposed to. Using a similar technique we can change the position on the vertical Axis also. Changing the length of the arm as we move the end effector vertically. The movement can be done by offsetting the zero point of the shoulder Y or servo 2. This will allow us to not only have Plooby move chess pieces, but also to lift them and avoid nocking other ones over.





[Math Talk]

Lets start with the basics. Y^2 + X^2 = Hyp^2. So if we know the value of X, and the value of Y in our coordinate system, we can calculate the length of the arm, or the hypotenuse. Now by dividing Y by the Hypotenuse we can find the cosine of the angle. Given this information we have our arm look up the desired angle in a cosine table.

We can determine the length of the arm as a function of the values of servos 2-5.



[/Math Talk]

If we were to release Plooby into the world his arm would be functional to a degree, but we should consider its ability to move separately from its need to move. Sure its fine for Plooby to be able to move a bunch of chess pieces around in a controlled environment, but how can we expect Plooby’s arm to behave in an environment where things are not as controlled. We have eyes. Using our eyes we can see to move our bodies in the appropriate manner. Plooby in this regard is at a major disadvantage. We use our eyes, and stereoscopic vision to create a map of the world around us. While Plooby does have a camera, in his current configuration he lacks the ability to map the objects around him in such a way as to be able to move his arm appropriately. To remedy this problem I suggest we implement sensors at the elbow and end effector. In this way the moving joints can determine the proximity of the various impediments to movement allowing Plooby to change his plans accordingly.

Lets return to the original task of removing the sweater from under the bed. In its present configuration, Plooby’s arm could not reach any great distance under the bed. If the arm is long enough to reach under the bed, then when the arm is in its shortened position the elbow would stick almost half the arm’s length into the air. So unless the bed was several feet off of the ground the arm would have to be extended before Plooby moves it under the bed. The only way in which Plooby would know of this would be if the elbow had some way of knowing when it was going to come in contact with an object during a planned movement. One solution would be to use an IR sensor located in elbow and use it to determine the distance from the elbow to any impediments. Plooby could then “re-plan his movements until the desired results are achieved. Another aspect the the solution would be to allow Plooby to change the very configuration of the arm. Imagine trying to retrieve a letter from a mailbox that sits several inches above your shoulder. The way in which you would position your body to accomplish this task is wholly different from the position you would assume if the same mailbox was several inches below your waist. We could add another axis of rotation, allowing the entire arm to roll onto its side. In this way Plooby could reach under or over different objects, changing the position of the arm as needed.

Finally lets consider the wrist assembly. It currently mimics the human wrist’s ability to pan and tilt giving it a great range of flexibility, It lacks the ability to roll provided by the interaction of the radius and ulna. In the human arm this mobility occurs before the pan and tilt mobility of the wrist. In Plooby’s case we can add this ability at the base of the end effect after the pan and tilt mobility provided by servos 4 and 5 or wrist X and wrist Y. This will allow our end effector to be rotated about greatly increasing its ability to lift and move a multitude of objects. Here we could also add a sensor array. A camera for object recognition, an RFID sensor for identifying various objects, and an IR sensor for distance. All of this data could be used to help plan the movement of the arm.

All of this and we still haven’t even addressed the end effector. The hand is a truly incredible end effector. Consider that with my hands I can type the letters you are reading, roll a coin from one finger to the next like goose in the movie Top Gun, and lift the coffee I am drinking from the table to my lips. I can hold an egg without breaking it, and amaze children with yoyo tricks.

While it is possible to create robotic hands that look similar to our own, our clumsy robotic cousins are far from being able to mimic the dexterity of the human hand. The human hand alone has roughly 27 degrees of freedom.4 This would not be practical in terms of a robot like Plooby. We would either have to use a cable method mimicking the tendons our muscles currently use to pull our bones about our joints, or use very small servo motors which would greatly increase the bulk and size of our end effector. In Plooby’s case, I think settling on just 2 fingers will suffice for most situations. Depending on the configuration of those fingers we could grip a large variety of objects and complete a large number of different tasks.







There are several different commercially available end effectors that we can choose from for this application. We can mount pressure sensors beneath the pads of the end effector in order to give Plooby the ability to “know” how tightly he is holding an object.

Conclusion:

While a bot like Plooby is a long way away given current technology. Robotic arms play a vital role in manufacturing. There are both robotic kits, and plans for scratch building robotic arms of your own. A chess playing robotic arm tied for the gold medal for best in show at the 2009 robogames event in San Francisco. Hopefully after reading this tutorial you now have a deeper understanding of how robotic arms can work, and what it would take to make an arm with Plooby like capability.

Links to Robotic Arm kits:
The lynxmotion arm featured in this tutorial

An AX-12 based robotic arm from Crustcrawler.com



http://en.wikipedia.org/wiki/Proprioception
http://jeroenarendsen.nl/2008/11/dav...manoid-robots/
http://en.wikipedia.org/wiki/Inverse_kinematics
http://wiki.answers.com/Q/How_many_d...uman_hand_have
www.lynxmotion.com