Wednesday, December 2, 2015

My Robotic Arm

I designed and built a robotic arm for a friend who had built a clever telepresence robot based on a Roomba vacuum.  His software development was brilliant, but he lacked the facilities to construct the mechanical parts, like the arm.  A primary requirement for the arm is for it to be lightweight, for the Roomba lacked the weight and power to maneuver with a heavy arm.  It was also critical that as much of the mass as possible was located close to the center of gravity so that the lightweight robot did not lose its balance.  Therefore, I located all of the heavy servos in the shoulder, and made the wrist and claw as light as possible.  Strong Kevlar strings transmit the motion from the servos to the joints.

The shoulder:  5 servos and several pulleys packed tightly together.
Servo 1: (large one center left)
Arm shoulder joint up/down
Servo 2: (large one top left)
Elbow joint up/down.
Servo 3: (small one bottom right)
Claw open/close
Servo 4: (small one above Servo 3)
Wrist clockwise/counterclockwise.

The wrist and claw.  Everything possible was done to reduce its weight. The aluminum parts were lightened by by milling large holes in them, and by keeping the parts count low.  The hinge halves and the wrist housing are one piece.  The wrist pulley and lever are also one piece.
 This was made on my Harbor Freight mill using a rotary table, since turning this piece on a lathe would not be possible.
This pulley/lever combination opens and closes the claw using a stiff wire which passes through the hollow wrist axle.

 The wrist is rotated by a pulley driven by one of the Kevlar strings. This string pair, and the claw string pair run through the lower PVC pipe.  There are pulleys in the hinged pipe joints to ensure that the string tension and position remains constant throughout the range of elbow movement.

The wrist pulley is held to the wrist axle by a wire pin to make removal for servicing easy.

The new robotic hand was far smaller and lighter than the original hand, which had its servo coupled directly to the claw. The original hand did not have an articulated wrist.   Since the original arm was being left on the robot, I copied the style by also using a pair of 1/2 inch PVC pipes for the "bones"

The lower elbow joint has 3 pulleys inside a very small space.  One bronze pulley guides the wrist strings, and the other bronze pulley guides the claw strings.  The center pulley is locked to the outer half of the joint, and carries the string which is attached to the elbow assist spring.   Top left in picture: The center pulley being turned from 1/2 inch diameter steel stock.  Top center: the steel pulley and one bronze pulley.  There was not enough space for a V groove in the bronze pulley, but since the bronze pulley extends into the relief cut in the sides of the steel pulley, the string stays on the pulley, and does not get caught in the space between them.   Note that the center of the steel pulley is threaded.  This pulley does not turn relative to the outer half of the elbow joint.  

The upper elbow joint is a completely different design, for its sole purpose is to move the elbow.  The pulley in this one was machined as one piece with the hinge half, and designed to take the large amount of torque required to actuate the elbow while having a lever arm length of only 3/8 inch.  The joint has a huge mechanical disadvantage of about 20:1.  As a result, about 20 foot pounds of torque is required for the arm to lift a 1 pound weight.  This was a consequence of choosing styling over  engineering.  I wanted to create an arm which moved without any external mechanisms visible.  However, it also met my requirement that the weight be kept very low.  The arm worked well, and met its design goal of being able to lift a cup of water.  Designing an arm which could lift more weight would have been pointless, because the robot would have lost its balance if it tried to lift more weight.

 The string was tensioned by turning this nut.  The string had to be kept very tight for proper operation. That was easy to do with the Kevlar string. I used multiple strings to achieve a tensile strength of about 200 pounds.  Manually moving the arm would not break the string.
The underside, or "armpit" or the arm.    There is very little wasted space.  Note how closely packed the  shoulder rack and pinion is.  The end of the rack is contoured to clear the curved end of the shoulder servo. It appears that there is no room for it to move, but it can move  to its full travel limits.  This gives the arm about 10 degrees of left/right motion. I chose this range of motion to keep the design simple. 
This photo shows how the 10 degrees of movement was easily done.  The arm can move that much while retaining a simple belt drive for the up/down movement, and all the servos can be mounted in the same frame.  This is only slightly more complex than not having any left/right movement at all.  A lightweight, compact design was more important than having a larger range of movement. 
Bottom view of the belt drive.  The servo pulley is also custom made. The splines in the servo pulley were filed by hand. 

The robot I bult the arm for is called MAYA, and it is the brainchild of Ben Hylak, who came up with the idea of hacking a Roomba robot and using it as the motive power for a low cost telepresence robot. It is Ben's telepresence robot concept and software development that is the reason for the national recognition he has received and his subsequent invitation to the White House.  My arm merely went along for the ride.  While I have never received, nor expect to receive an invitation to the White House, at least I can say that something I had a part in making was a guest of the President!