Back before I started working
on Bing, I had no clue how anything worked, but was able to discover some
stuff on the web. In an effort to describe the process of building
Bing, in hopes that some
other clueless newbie will benefit in some small way, here is a little
photo-essay documenting one step in Bing's construction.
After Bing's feet
and lower legs were constructed, the next step (working upward from
the ground as I have done) was the upper leg. All I really knew at
the start of this effort was that I needed to hook a servo
up to make the knee flex, and that the upper leg
needed three degrees of freedom of its own -- two
for movement of the upper leg, and one for rotation.
Beverage in hand (actually, a
number of beverages consumed over about three weeks), here is how
the process unfolded:
| Design is the key. I use a program called Rhinoceros,
which I bought a while ago for a very different purpose. First
I have to model the things that will make up the leg -- with pretty
high accuracy -- before experimenting with different designs.
The Hitec HS605BB servo (normally these servos are used in model
airplanes and such) produces 5.5 kg.cm of torque, which means that
it can lift 5.5 kg if that weight is placed one centimeter from the
center of the turning part of the servo. Here we see that its
width is 1.589 inches. The measuring device shown here is
called a "dial caliper" and you can get a good one for
about thirty dollars. For a robotics hobbyist it is a very
useful tool and if you have one I don't think you really need a
micrometer. |
 |
| Next, the really fun part. Fuss around with
stuff until a design is achieved that attains the objective.
In this case, I decided that three of the servos should go right
here, to leave more room inside Bing's body for electronics and
other stuff -- from there, it is just a matter of arranging where
things should go and making the "framework" have the proper
size to support the important parts. The next step is to be
horrified at how difficult it will be to make the design into
reality. In this case, besides the stock parts like the
universal joint and the servos, I will have to make 12 custom pieces
of aluminum with 43 threaded holes. Per leg! Ouch! |
 |
| Almost all of the work will be involved in shaping,
drilling, and tapping the aluminum bits. Best to get started
then! First, rough cut the pieces with a hacksaw. It
would be clumsy and hard on the machining equipment to use it for
this rough cutting; so a little elbow grease gets the job
done. The first piece will be the flat plate at the top of the
upper two servos. Here I am sawing a piece of 1.5 x 0.125 aluminum
stock, from which the piece will be cut. |
 |
| To make these parts, I use a small 3-axis milling
machine. What that means is that there is a spinning tool that
can be moved up and down toward a table that can be moved in two
dimensions. It is a fairly flexible arrangement, but not
completely flexible (for example it would be nice if the
spinning tool itself could be tilted and there are some machines
that can do that). This machine has been adapted for CNC
(Computer Numeric Control). See the round cylinders at the ends
of the moving base? Those are electric stepping motors that
move the base. They are controlled by the computer to move the
spinning tool and the base holding the part, following a programmed
path. |
 |
| Here is the first part to be made. It would be
nice if a program could take the model of the part and generate the
CNC script to cut out the part, but that is not such a simple
task! There is much to consider, such as which tools to use,
where clamps holding the part down are put and when they will be in
the way, and so on. I think there are expensive programs that
can do some or all of this, but I don't have one, so I have to write
the scripts mostly by hand (although I have written some helper
programs to do some simple tasks, such as carving out the square
areas that the posts sit in -- there are three such posts attaching
to this part). For the really curious, the resulting g-code
file (g-code is the language used to describe tool paths to CNC
machines) is here. |
 |
| We start off by setting the tool to our
"zero" point, in this case at the edge of the piece to be
cut. Note the scrap pieces underneath. We will be
cutting into one of them in the process of cutting through our
workpiece. The tool here is a 0.125 inch end mill. An end
mill is kind of like a drill bit but it is designed primarily for
cutting sideways so it has a perfectly flat bottom. |
 |
| Finally, ready to cut metal! This is a screen
shot of the CNC control program that runs the g-code script.
It converts the commands (which are all just telling the mill where
to move the spinning blade and how fast) into impulses out the
computer's parallel port, which are interpreted by the CNC control
box as commands for the motors. |
 |
| The first commands in the script cut the outline of
the part. |
 |
| The outline, along with the hole that the post
connecting to Bing's hip will pass through, has been cut. |
 |
| Using a 0.0625 end mill, cut out some quarter inch squares
halfway through the plate. These will serve as anchors for
posts that hold the servos in place. These kinds of cuts are
done in many passes; trying to cut all the way down would be too
much work and would likely break the bit. Here I cut into the
metal 0.012 inches at a time. It therefore takes about ten
minutes to cut out each square, under computer control. |
 |
| After drilling holes for the machine screws and
cleaning up some corners with a small file, a tap is used to thread
the holes so that the machine screws will hold firmly. Almost
all of the screws in Bing are 2-56, which means "size 2"
(which is small), 56 threads per inch. |
 |
| The finished part. The bases of the pads look
kind of rough but actually they are completely flat; the marks are
from the end mill but are very shallow, so I won't bother
trying to polish them out or anything. I am not yet a good
enough craftsman with these tools to make "professional"
parts, but the precision I do manage is more than adequate for Bing. |
 |
| The next part is the plate that goes in between the
two layers of servos. This is one of the largest and probably
the most complicated part in all of Bing, but the method is exactly
the same as for the last part. The one difference is that the
post anchors are not all on the same side of this piece, which means
that I have to flip the piece over halfway through. This is
tricky because I have to line it up perfectly again, which takes
some time and care. |
 |
| The finished part. |
 |
| Next, another plate, this one below all the servos and
just above the knee. Here is the result. The
manufacturing techniques are just like the previous part. Both
sides are shown here. |
 |
| Below that bottom plate is the top half of Bing's
knee. This part was made differently. Starting with a
0.25 x 0.75 inch chunk of stock, I cut it in a vise because the part
is too small to clamp down conveniently. |
 |
| The finished part. One thing I don't show here
is drilling the holes. There are al lot of holes to
drill; every part has two or three so the whole thing holds
together. This part is 0.625 of an inch square by 0.25 inches
thick. |
 |
| Bing's major structural motif involves the use of 0.25
inch by 0.25 inch aluminum bars, which are perfectly sized for
connecting larger parts together and also are a good size for
mounting servos. For the two upper legs, there are 14 of these
posts, with 50 total holes to be drilled and tapped. |
 |
| The final piece of the upper leg has to connect the
universal joint (embodying two degrees of freedom of the hip) to the
long posts in the previous picture. This part is cut from a
0.375 x 0.375 x 0.5 piece of stock aluminum. In the picture,
the left piece shows the place where the post attaches, fitting
snugly into the square hole and then screwed into place. The
right piece shows a circular hole (0.24 inches in diameter) where
the universal joint will attach with another screw. |
 |
| Before the upper leg can be assembled, there is still
much to do. 6 of Bing's 14 servos will be in the upper legs,
and all must be modified slightly to give feedback about their
position. These hobby servos are controlled by sending them
electrical pulses telling them where to go, but I want to know about
their progress getting there. Bing has four different sizes of
servos, which are all constructed slightly differently, but they all
have potentiometers attached to the "arm" which are used
internally to track the servo's position. By attaching an
additional wire to the center lead from these pots (the purple wire
shown here), I can monitor the voltage and turn that into an
approximation of the servo's position. |
 |
| The final preparatory step involves modifying the
servo arms to give the leverage and freedom of movement
needed. The black part attached to the servo arm is a
"swivel link" which lets the push rods which will be
attached to the servos move freely. Thank goodness for people
that fly model airplanes! Because of them, these parts are
easily available at hobby shops. |
 |
| Whew! Finally it is time for assembly.
Most everything is attached with 2-56 machine screws. Start by
attaching the top part of the knee to the bottom-most plate. |
 |
| Next, attach the first set of servo support posts. |
 |
| Add the knee servo. |
 |
| Now, attach the large middle plate that separates the
two levels of servos, along with the rest of the posts. Some
of the holes have to be countersunk to make room for the servos. |
 |
| Screw the two remaining servos onto the posts. |
 |
| Add the top plate and the piece that will attach the
upper leg to the hip, and it is finished! |
 |