« Creative Capital Grant Work Samples and an Update | Main | Pocket Workshop »
August 08, 2005
How to build the robotic arm (wrist to shoulder)
This post is the step by step how-to instructions for building our first generation robotic arm (from the wrist to the shoulder). This entry includes zipped design files ready to be augmented or printed on a 3D printer, part pictures, assembly instructions and some general info on our progress...
In June we decided to take a new approach. Michelle is going to build a smaller, less expressive “michelle robot” and I am going to build a bigger and pretty expressive “james robot”. The james robot is going to be built around cheap available motors that can be augmented to provide for closed-loop control. Closed loop just means that our control system will have active feedback that will dynamically control the motor speed, acceleration, etc. When I say closed loop I don’t mean RC servo’s or DC servos with potentiometers. RC servos have a limited form of positional control but no user accessible feedback loop. And potentiometers aren’t very good positional feedback for our purposes as they are noisy, wear easily and are not reliably repeatable.
For the james robot, the first step was determining a size large enough to accommodate our motor assemblies, harnessing, etc., but small enough to remain very light and be considered miniature. So I shopped around for motors that would be cheap, small and enable closed loop control via encoders. At Honeybee we use Maxon and MicroMo motors. These are great motors and you can find them in small packages, but the cost was prohibitive for both our project and the low-cost DIY robot we want to make available.
So I decided I would try to find separate shaft encoders and motors and try to make an assembly (or a couple varieties of assemblies) that would couple them via gear pairs or pulleys or whatever. We tried out a number of different motors and finally decided we would use a few gearmotors from solarbotics. We chose the solarbotics motors because they had a range of reductions, sizes, shaft output orientation and were overall very light, very cheap and very available.
Check out solarbotics here
The GM3 224:1 gearmotor and the GM14 Sanyo 297.1:1 gearmotors have seen the most action so far in our arm assembly. The GM3 (and the GM2, GM8 and GM9) are all similar, use the RM3 DC brushed servo motor and have plastic gears and housing. They all also have an output D-through- shaft that can couple to an encoder shaft. The regular output shaft is also easy to couple to and the motor is pretty easy to mount with two built-in mounting through-holes. They are capable of 50 in*oz of torque, with a kludge clutch rated at 60 in*oz and a weight of 1.31ounces. They cost ~ $6.00 each.

The GM14 is smaller, lighter and has metal gears. This is a very small motor, small enough to universally make people say “cute” when they see it. It produces ~40 in*oz of torque and weighs .29 ounces. The output shaft has a flatted side, so it is easy to mount to, though there isn’t much shaft axially in general. Not particularly easy to mount but it does have some mounting holes and can be mounted by putting the whole motor in a rectangular recess. They cost ~ $25.00.

Both motors run on ~5VDC and draw current in the range of 100 ma to 600 ma.
I choose the U.S. Digital S4 miniature optical shaft encoder as the proprioceptive feedback device. This encoder is cheap, small, very accurate, comes in a number of resolutions, is easy to mount and can be purchased with a gear bearing shaft so the encoder can handle a substantial radial load. They cost ~ $45.00.

Check out U.S. Digital here.
So with these motors in mind I started trying to build an arm starting with the assembly for the elbow of the james robot. I picked the elbow for no particular reason, but it turns out biomedical engineers also use the elbow diameter as a figure of merit for human factors engineering. It looks like the smallest I can make the elbow joint is ~2" diameter. I could go smaller but it will actually cost more, as the gearmotors I would need are real cute and realy pricey. I decided to lock the size at ~52% scale to the 50 percentile man age 20-65 as documented by The Measurement of Man and Woman You can look at the overall arm dimensions in the Arm_Dimensions.xls in the Arm section of the DIY robot KIT.
The following design represents our first generation robotic arm. The current design has 3 DOF not including the wrist and up to the shoulder. This arm allows for motion approximating the motion of a human arm, including bending the elbow, forearm pronation/supination and gross supination/pronation.


The overall integration of the arm with its actuators can be accomplished in under ten minutes not counting soldering of leads, cabling and harnessing. The following numbered list describes and illustrates the basic assembly and integration of the arm.
1. Collect all 7 ABS parts, 3 S4 shaft encoders, 2 GM14 small metal gearmotors, 1 white plastic GM2 gearmotor, 3 plastic gears, 2 plastic hubs, 2 #2 socket head cap screws and nuts, and a heavy duty 6” rubber band.
2. Insert S4 encoder 1 shaft into the 0.372” hole in the upper arm motor/encoder mount (Part 1) until the encoder is flush. Lock it into place with the nut using a small wrench or pliers.

3. Insert S4 encoder 2 shaft into 0.372” hole in the upper arm mounting substrate (Part 2). Then begin to attach the encoder/motor mount (Part 1) to upper arm mounting substrate (Part 2) by lining up the two 0.115” mounting holes by inserting 1-1/2” #2 socket head cap screws through the upper arm mounting substrate and the encoder/motor mount.

4. Insert motor onto #2 screws until flush with encoder/motor mount. Tighten down nuts with socket set or wrench. Insert the hubs (Hub 1 & 2) onto the GM2 motor and the encoder shafts. Stretch the rubber band from hub to hub such that the movement of one shaft is mechanically coupled to the other. I am going replace this eventually with a v-shaped drive belt made of rubber.

5. Insert the shaft of the S4 encoder 2, while still mounted on the upper arm mounting substrate, into the 0.25 mounting hole on the gear feature at the bottom of the upper arm/shoulder rotational drum (Part 3).

6. Next, insert the small, thin pinion gear (Gear 1) onto the D-shaft of the GM14 motor 1. Insert the motor into the motor cavity in the upper arm substrate (Part 2). You will need to help rotate the upper arm/shoulder rotational drum so the teeth of the pinion and gear will mesh.

7. To finish the upper arm mate the other half of the upper arm substrate, the upper arm mating substrate (Part 4) to the upper arm mounting substrate. Use the motor and motor cavity as the alignment feature. I am going to add a latch to these parts very soon but for now fasten the two halves of the upper arm substrate together with rope, wire ties or rubber bands.

8. Next grab the forearm mounting substrate (Part 5) and place the large pinion gear (Gear 2) vertically in the slot on the mounting substrate so that it is parallel and co-linearly aligned with the 0.372” hole on the mounting substrate. Insert S4 encoder 3 into the 0.372” hole on the mounting substrate and the 0.25” hole on the large gear. Use needle nose pliers to tighten the nut on the encoder.

9. Insert the double flatted shaft of the GM2 motor 1 into the double flatted feature on the forearm mounting substrate.

10. Insert the GM14 motor 2 D-shaft into the small, thick pinion gear (Gear 3). Insert motor 2 into the motor cavity on the forearm mounting substrate so the gear and pinion are aligned. You may need to help rotate the large gear so the gear and pinion teeth can mesh.

11. Lay the Forearm rotational drum (Part 7) shaft and gear features so that the gear meshes with the thick pinion gear (Gear 3) and the shaft aligns and fits into the forearm mounting substrate shaft recess feature such that the forearm drum is secured in the X and Y planes.

12. Finally, mate the forearm mating substrate (Part 6) with the forearm mounting substrate using the motor and motor cavity and the shaft recess as alignment features. As before, I am going to make a latch for this so use rope, wire ties and rubber bands to secure these two forearm substrates.

In the next section I will illustrate and describe how to create and run the wiring harness for the arm, create service loops to accommodate rotational joints and how to properly solder the motor and encoder leads.

All the arm design files can be found in the arm design zip files in the Arm section of the DIY robot KIT. The zips include STLs for printing at service bureaus on FDM machines or ABS 3D printers, IGES part files, Autodesk Inventor part and assembly files, part DWF files and DXF files. All zip files are named according to file type and revision. Download the latest revision as we will be constantly upgrading. For more information on the design, fabrication and/or assembly of the 1ST generation arm please send me an email. The files are licensed under the creative capital non-commercial, attribution, share-alike contract. If you use or modify the design we would love to hear about it and we will be glad to host your new designs (and sing your praises) on the Lab Blog.
Download James Robot Arm Dimension Chart file
Download James Robot Arm IGES zipped files (parts only)
Download James Robot Arm Inventor zipped files (parts and assemblies)
Download James Robot Arm Part zipped pictures
Download James Robot Arm STEP zipped files (parts only)
Download James Robot Arm STL zipped files (parts only)
Posted by powderly at August 8, 2005 02:20 AM
Comments
Hey James,
Happy New Year.
I know you have a lot invested in this arm, but here is my approach to what you are trying to do.
Building a relatively small set of dexterous arms for a puppet, I would choose a relatively "dumb" arm and a just slightly smarter motor package. In other words, a small steel cable actuated arm driven by a bank or banks of large R/C servos.
This approach has several advantages :
1. The arm itself becomes mostly a structural design challenge rathen than a structural and electro-mechanical packaging issue.
2. The place where, due to it's proximity to the unpredictable real world, stand the greatest chance of damage is now a relatively simple structure. Currently there are several points in your design where just dropping the arm could cause significant damage.
3. Using Ø3/32" 7x19 wind steel cable as your transmission medium provides a bit of built in compliance. If the arm takes a shock load, the cable and flexible housings act as an extension and compression spring respectivly.
4. Use existing R/C servos as your remote actuators. They are well engineered, and have built in electronics to close the motor position loop. Many boards exist to drive them, either directly or thru a serial link for direct control from a computer or microcontroller.
I will try to locate a photo of what I am talking about tomorrow.
All the best
Dave Kindlon
Posted by: Dave Kindlon at January 6, 2006 05:28 AM









