Pictorial Essay:  Building Bits of Bing -- The Upper Leg


Greetings Robot Fans!

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!