We decided that in order to keep costs down we would use stepper motors instead of servo systems. This eliminated all the feedback sensors that we would need for each motor. It also meant that we could use a digital i/o board instead of a more expensive analog board. Each arm has 3 independent axes of movement (rotation, elevation, and bending at the elbow). The head can rotate as well, giving the robot 7 independent movement axes.
We used a simple 286-16 with 640k of memory to control the stepper motors. This helped keep costs down and provided more than enough computing power to run the software. All software was written in Turbo C++ for DOS. To help simplify moving the robot, a very simple script language was used. A teaching program was developed to write the scripts. To generate a script, the robot was moved one motor at a time using a simple interface until it was in the desired position. Once this position was attained, the user tells the robot to learn that position and the required movements are then calculated to move the robot from the last position learned (or the starting position) to the new learned position. There is no limit to the number of positions that can be included in a script. Once the final position has been learned, the program will determine its position relative to the neutral starting position and then return the apparatus to "zero". This eliminated any required position feedback since the mechanism will always return to zero. The source code for these programs is included here if it will help you any. It is very small and can easily be adapted to control up to 8 stepper motors using a standard I/O board. Also included are programs to simply move each motor separately, the script execution program, and examples of the very simple script language. The I/O board we used is the CIO-DIO48 from ComputerBoards, which retails for a very reasonable $79. It has 6 8-bit lines that can be configured for either logic input or output.
The stepper motors we selected were the 46000 series linear and rotary stepper motors from Haydon Switch and Instrument. Though these are a little more pricey at around $100 apiece and surplus stepper motors are readily available, the extra force and torque provided by these particular motors more than justified their price. The linear motor can generate almost 50lbs of force! the quality of these motors were very good and i highly recommend them to anyone who might be considering using them.
Because our budget was so small, around 95% of all the machining was done by me in our student machine shop. All parts are mode of aluminum and the entire torso weighs around 23 lbs. Each arm weighs around 10oz. A fiberglass shell was made to give the robot some substance and to keep clothing out of moving parts.
I think the project turned out very well. I have nicknamed him "Lurch" because he is almost 7 feel tall and never seems to smile! If you can think of a better name, email me and let me know!
If you still feel the need for more details, the more formal final report is online. It contains a more technical explanation as well as schematics and a fairly detailed explanation of the electronics interface and the operation of stepper motors.
There are a lot more pictures on the website: