BUILDING A REVOLUTE
COORDINATE ARM
The revolute coordinate arm design provides a great deal of flexibility, yet requires few
components. The arm described in this chapter enjoys only two degrees of freedom.
You’ll find, however, that even with two degrees of freedom, the arm can do many things.
It can be used by itself as a stationary pick-and-place robot, or it can be attached to a mobile
platform. The construction details given here are for a left hand; to build a right hand, simply
make it a mirror image of the left.
You can use just about any type of gripper with this arm. In Fig. 27-1, the completed
arm is shown with a simple gripper built on it. You can design the forearm so it accepts many
different grippers interchangeably. See Chapter 27, “Experimenting with Gripper Designs,”
for more information on robot hands.
The design of the revolute coordinate arm is modeled after the human arm. A shaft-mounted
shoulder joint provides shoulder rotation (degree of freedom #1). A simple swing-arm rotating
joint provides the elbow flexion (degree of freedom #2).
You could add a third degree of freedom—shoulder flexion—by providing another joint
immediately after the shoulder. Tests have proved that this basic two-degree-of-freedom arm
is quite sufficient for most tasks. It is best used, however, on a mobile platform where the
robot can move closer to or farther away from the object it’s grasping. That’s cheating, in
a way, but it’s a lot simpler than adding another joint.
27.2 Shoulder Joint and Upper Arm
The shoulder joint is a shaft that connects to a bearing mounted on the arm base or in the
robot. Attached to the shaft is the drive motor for moving the shoulder up and down. The
motor is connected by a single-stage gear system, as shown in Fig. 27-2 (refer to the parts
list in Table 27-1). In the prototype arm for this book, the output of the motor was approximately
22 r/min, or roughly one-third of a revolution per second.
TABLE 27-1 Parts List For Revolute Arm |
1 |
10-in length -by- -by- -in aluminum channel stock |
1 |
10-in length -by- -by- -in aluminum channel stock |
1 |
8-in length -by- -by- -in aluminum channel stock |
1 |
8-in length -by- by- -in aluminum channel stock |
1 |
7-in length -in 20 all-thread rod |
2 |
1 -in-by- stove bolt |
2 |
1 -by- -in flat corner iron |
1 |
3-by- -in mending plate "T" (for motor mounting) |
2 |
-in aluminum spacer |
1 |
-in aluminum spacer |
2 |
-in-diameter, 5-lugs-per-in timing belt sprocket |
1 |
201.2-in-length timing belt (5 lugs per in) |
2 |
Stepper motors (see text) |
1 |
3:1 gear reduction system (such as one 20-tooth 24-pitch spur gear and one
60-tooth 24-pitch spur gear) |
Misc. |
, , and -in 20 nuts, washers, tooth lock washers, fishing tackle weights |
|
For a shoulder joint, 22 r/min is a little on the fast side. A gear ratio of 3:1 was chosen
to decrease the speed by a factor of three (and increase the torque of the motor roughly by
a factor of three). With the gear system, the shoulder joint moves at about one revolution
every 8 s. That may seem slow, but remember that the shoulder joint swings in an arc of a
little less than 50°, or roughly one-seventh of a complete circle. Thus, the shoulder will go
from one extreme to the other in under 2 s.
The upper arm is constructed from a 10-in length of
-by-
-by-
-in aluminum channel
stock and a matching 10-in length of
-by-
-by-
-in aluminum channel stock Fig. 27-3 . Sandwich the two stocks together to make a bar. Drill a 1.4—in hole 1.2 in from the end
of the channel stock pieces. Cut a piece of
-in 20 all-thread rod to a length of 7 in (this
measurement depends largely on the shoulder motor arrangement, but 7 in gives you room
to make changes). Thread a 1.4-in 20 nut, flat washer, and locking washer onto one end of
the rod. Leave a little extra—about
to
in—on the outside of the nut. You'll need the
room in a bit.
Drill a
-in hole in the center of a 3
-in-diameter metal electrical receptacle cover plate.
Insert the rod through it and the hole of the larger channel aluminum. Next, thread two
-in
20 nuts onto the rod to act as spacers, then attach the smaller channel aluminum. Lock the
pieces together using a flat washer, tooth washer, and
-in 20 nut.
The shoulder is now complete.
The forearm attaches to the end of the upper arm. The joint there serves as the elbow. The
forearm is constructed much like the upper arm: cut the small and large pieces of channel
aluminum to 8 in instead of 10 in. Construct the elbow joint as shown in Fig. 27-4 and
Fig. 27-5, using two 1
-by-
-in flat corner angles,
-in spacers, and
hardware. The
-in
timing belt sprocket (5 lugs per inch) is used to convey power from the elbow motor, which
is mounted at the shoulder. The completed joint is shown in Fig. 27-6.
You can actually use just about any size of timing belt or sprocket. When using the size of
sprockets specified in Table 27-1, the timing belt is 201.2 in. If you use another size sprocket
for the elbow or the motor, you may need to choose another length. You can adjust for some
slack by mounting the elbow joint closer to or farther from the end of the upper arm.
You may also use #25 roller chain to power the elbow. Use a sprocket on the elbow and
a sprocket on the motor shaft. Connect the two with a #25 roller chain. You’ll need to
experiment based on the size of sprockets you use to come up with the exact length for the
roller chain.
When the elbow and forearm are complete, mount the motor on the shoulder, directly
on the plate cover. The motor we chose for the prototype revolute coordinate arm was a
1A medium-duty stepper motor. Predrilled holes on the face of the motor made it easier to
mount the arm. A 3-by-
-in mending plate T was used to secure the motor to the plate, as
illustrated in Fig. 27-7. New holes were drilled in the plate to match the holes in the motor
(1
-in spacing), and the T was bent at the cross.
Unscrew the nut holding the cover plate and upper arm to the shaft, place the T on it,
and retighten. Make sure the motor is perpendicular to the arm. Then, using the other hole
in the T as a guide, drill a hole through the cover plate. Secure the T in place with an
-by-
-in bolt and nut. The finished arm, with a gripper attached, is shown in Fig. 27-1.
As it is, the arm is unbalanced, and the shoulder motor must work harder to position the
arm. You can help to rebalance the arm by relocating the shoulder rotation shaft and by
adding counterweights or springs. Before you do anything hasty, however, you may want to
attach a gripper to the end of the forearm. Any attempts to balance the arm now will be
severely thwarted when you add the gripper.
The center of gravity for the whole arm, with the elbow drive motor included, is approximately
midway along the length of the upper arm (at least this is true of the prototype arm;
your arm may be different). Remove the long shaft from the present shoulder joint, and
replace it with a short 1
- or 2-in-long
-in 20 bolt. Drill a new
-in hole through the upper
arm at the approximate center of gravity, and thread the shoulder shaft through it. Attach
it as before, using
-in 20 nuts, flat washers, and toothed lock washers.
The forearm is also out of balance, and you can correct it in a similar manner, by attaching
the shoulder joint nearer to the center of the arm. This has the unfortunate side effect,
however, of shortening the reach of the forearm. One solution is to make the arm longer
to compensate. In effect, you’ll be keeping the elbow joint where it is, just adding extra
length behind it.
This may interfere with the operation of the arm or robot, however, so you may want to
opt for counterweights attached to the end of the arm. For the prototype arm, two 4-oz
fishing tackle weights were attached to the arm with a 2-by-¾-in corner angle bracket (see
Fig. 27-8).
The stepper motors used for the shoulder and elbow joints of the prototype provide a natural
control over the position of the arm. Under electronic control, the motors can be commanded
to rotate a specific number of steps, which in turn moves the upper arm and
forearm a specified amount.
You should supplement the open-loop servo system with limit switches. These switches
provide an indication when the arm joints have moved to their extreme positions. The most
common limit switches are small leaf switches. You can also construct optical switches using
photo-interrupters. A small patch of plastic or metal interrupts the flow of light between an
LED and phototransistor, thus signaling the limit of movement. You can build these interrupters
by mounting an infrared LED and phototransistor on a small perforated board, or
you can purchase ready-made modules (they are common surplus finds). Using an IR LED
and phototransistor is actually a simplified version of the limit switches discussed in Chapter
20.
When using continuous DC motors, you need to provide some type of feedback to
report the position of the arm. Otherwise, the control electronics (almost always a computer)
will never know where the arm is or how far it has moved. There are several ways
you can provide this feedback. The most popular methods are a potentiometer and an
incremental shaft encoder.
Attach the shaft of a potentiometer to the shoulder or elbow joint or motor (see Fig. 27-9),
and the varying resistance of the pot serves as an indication of the position of the arm. Just
about any pot will do, as long as it has a travel rotation the same as or greater than the travel
rotation of the joints in the arm. Otherwise, the arm will go past the internal stops of the
potentiometer. Travel rotation is usually not a problem in arm systems, where joints seldom
move more than 40° or 50°. If your arm design moves more than about 270°, use a multi turn
pot. A three-turn pot should suffice.
Another method is to use a slider-pot. You operate a slider-pot by moving the wiper up
and down, rather than by turning a shaft. Slider-pots are ideal when you want to measure
linear distance, like the amount of travel (distance) of a chain or belt. Fig. 27-10 shows a
slider-pot mounted to a cleat in the timing belt used to operate the elbow joint.
27.5.2 INCREMENTAL SHAFT ENCODER
The incremental shaft encoder was first introduced in Chapter 20, “Working with DC
Motors.” The shaft encoder is a disc that has many small holes or slots near its outside circumference.
You attach the disc to a motor shaft or the shoulder or elbow joint. The shaft
encoder circuit is typically composed of a circuit connected to the phototransistor (the latter
of which is baffled to block off ambient light). The phototransistor counts the number
of on/off flashes and then converts that number into distance traveled. For example, one
on/off flash may equal a 2° movement of the joint. Two flashes may equal a 4° movement,
and so forth.
The advantage of the incremental shaft encoder is that its output is inherently digital.
You can use a computer, or even a simple counter circuit, to count the number of on/off
flashes. The result, when the movement ends, is the new position of the arm.
To learn more about . . . |
|
Read |
Using DC motors and shaft encoders |
|
Chapter 20, “Working with DC Motors” |
Using stepper motors to drive robot parts |
|
Chapter 21, “Working with Stepper Motors” |
Different robotic arm systems and assemblies |
|
Chapter 24, “An Overview of Arm Systems” |
Attaching hands to robotic arms |
|
Chapter 27, “Experimenting with Gripper Designs” |
Interfacing feedback sensors to computers and microcontrollers |
|
Chapter 29, “Interfacing with Computers and Microcontrollers” |