Centibot: Mechanical Design

A Lot of Parts

Segment center block dimensions

Segment Center Block

The body segments are constructed about central blocks that are attached to each other via a compliant linkage composed of a hinge and a spring, forming a sort of backbone. These blocks are made from wood in the current version (and ultimately painted blue). Basic dimensions are shown in the drawing to the right. The image below shows a prototype block core and illustrates the attachment of the compliant linkage (to two half-blocks). The springs are standard 3" long compression springs with .48" outer diameter, made of .055" wire (e.g. Lee Spring part no. P6-LC055G14M). They are mounted on dowels glued into holes in the blocks. The dowels are 1/64" shy of 3/8" in diameter (they need to fit into the springs) protrude 3/4" and extend 3/4" into the block. The hinges inserted into slots in the tenon which are compressed with through-bored machine screws and nuts. The ends of the tenons are chamfered to allow greater flex in the joint. Upper and lower plates, which support the other segment components, are attached to the center block with #2 wood screws.

Mass production:
Blocks were cut on a table saw from clear pine stock using standard tenon-cutting jigs and technique. 3/8" dowel blanks can be sized down if needed by hammering through a hole of the correct size drilled in 1/4" steel plate.

The 3/4" x 1/2" hinges shown (and used) are not ideal. A longer plate, say 1" or 1-1/2" that extended further back into into the tenon would provide much better support.

Segment block and compliant linkage prototypes
(note the linked blocks are only half-made).

Upper body plate dimensions

Lower body plate dimensions

Battery box dimensions (for 2016 KingMax 1000mAh LiPo battery)

Upper and Lower Plates (and Attachments)

Most of the segment components are supported by upper and lower body plates screwed to the center block. The legs are held between the plates. The lower plate contains a rectangular hole (mortise) into which the hip servo is secured. The upper plate contains a thickened "bearing block" section with a hole for a bearing pin extending upward from the hip box. This external bearing is necessary because the internal servo bearing is not designed for the large transverse torque that must be supported.

The battery is attached to the underside of the lower plate using a screwed-on battery box glued up from 3-D-printed parts. The micro-controller boards are mounted to the upper plate using a pair of glued-on 3-D-printed triangular brackets. ABS-to-ABS gluing must be done using a solvent-welding cement, NOT epoxy or superglue, which will not give a strong enough bond.

The original plan was to 3-D print the plates, and CAD models were developed for them. However, PLA, which is used in most hobby printers, is not nearly strong and tough enough for these structural components. The ABS printer we had access to (a Makerbot) could not reliably produce parts as large as the body plates, due to thermal shrinkage issues that caused the part to detach from the build platform. By watching the printer like a hawk and glueing the parts back down when they came loose, we managed to print a few examples, but eventually we resorted to conventional machining, making the plates out of 1/8" black ABS sheet. Some examples are shown below, with dimensional drawing to the right.

Mass production:
The plate profiles were cut on a table saw using jigs for for accurate reproduction. The material was black 1/8" ABS sheet. The rectangular mortises in the lower plates were made by clamping them all together in alignment, roughing out the waste on a drill press using a Forstner bit, and cleaning up the corners and edges with a sharp wood chisel. The thickened bearing blocks of the upper plates were produced by gluing on a small additional rectangle of ABS sheet. Screw holes were made on the drill press using a spacing jig. Trying to drill through all the layers with a small bit while they are clamped in alignment tends to result in deviation of the drill and melting of the plastic unless great care is taken.

Issues: A better-quality ABS printer would be able to produce the parts from the CAD models. Doing so would probably be slower than making them using conventional machining, which ended up taking only a few minutes per plate once we were set up and running with the jigs. The battery box is highly specific to a particular battery, and LiPo forms are not standardized. An alternative is to attach the battery using velcro.

Upper plate prototypes (3-D-printed)

The complex cutouts are not so much to reduce weight, as an attempt to reduce shrinking stresses that caused detachment during 3-D printing. Unfortunately, not enough to bring print success to above 50%.

Lower plate prototypes (3-D-printed and sheet ABS)

Battery box components (3-D-printed)

Partially assembled segment prototype

Contains center block, upper and lower plates, assembled legs, and board-mounting brackets. Note that the upper plate is slightly different in shape than the final version (the corner cut-back was increased to prevent collisions with leg of the adjacent segment).

Hip bracket dimensions

Hip top dimensions

Femur dimensions

Tibia-foot dimensions


The legs are composed of 3 basic components: the hip box, the femur, and the tiba/foot unit. Each of these is mounted on a servo via the "X-shaped" spline adaptor supplied with the servo. The hip box servo is mounted on the lower body plate; the femur servo is contained in the hip box; and the tibia servo is mounted at the end of the femur. The axes of the hip and femur servos intersect, producing an effective 2-DOF hip joint.

Leg assembled to lower body plate

In the current model, the rigid parts of the leg are 3-D printed from ABS plastic. This permitted fanciful "bug-like" designs to be used for the femur and tibia simply by changing the profile around the crucial basic dimensions. Some post machining is necessary to produce accurate holes for mounting and assembly access. PLA is not strong or tough enough, will not reliably hold assembly screws, and cannot be post-machined accurately. If an ABS printer is not available, the parts can be made from ABS or polycarbonate using conventional machining (though fancy designs are more difficult to achieve).

Hip Box

The hip box is made from several components. The largest is a lower bracket that holds the femur servo and is connected to the hip servo. A separately made top for the bracket is solvent welded to the bracket after post-machining hole-drilling operations, completing the hip box. Holes in the top allow screwdriver access to the screws connecting the bracket to the servo spline adaptor, and the adaptor to the spline, so that everything can be easily assembled and disassembled.

The top also holds a bearing pin that fits into the bearing block in the upper body plate. The pin is a short segment of 1/8" brass rod mounted in a disk of ABS plastic that is pressed up into the counterbored adaptor screw access hole in the bracket top after attachment of the bracket to the servo, but before insertion of the hip servo into the box. (An alternative to this procedure would be to attach the box top with screws rather than solvent welding it to the bracket, but putting in and removing those screws is actually more time-consuming.)

3-D-printed hip parts

Assembled hip box with femur servo mounted on hip servo


The femur is a single piece with a rectangular mortise to hold the tibia servo, bracketed by raised blocks that provide standoff and hold the attaching screws. The current bot has a variety of 3-D printed femurs made by varying the profile about the crucial central structure.

A sampling of 3-D-printed femurs.


The tibia-foot segment is built up from several components. The tibia proper is a solid piece that is screwed to the spline adaptor of the tibia servo. It has an angled plate along the inner edge, to which the flexible foot is attached. In the current design, the tibia and its angled plate are 3-D printed separately and solvent-welded together, since the angular shape of the full component is awkward to print directly.

The foot is built up, like a one-sided leaf spring, from three layered strips of polyester boning (synthetic whalebone used in dressmaking) of different lengths glued together with superglue for the inch or so that attaches to the tibia plate. This layering allows the springiness of the foot to be tailored as needed. At the end of the foot is a rubber friction tip made from a glued-on piece of split rubber tubing. In current construction the foot is glued to the tibia plate with superglue, but it could be attached with screws if the glue fails to hold up under long-term flexing stresses.

Assembled tibia-foot units and parts

A completed leg spring (for right leg)

Leg spring in position on hip block/servo unit

Leg Springs

In order to reduce the torque on femur servo during walking or standing, the femur joint was equipped with a tensioning spring that partially counteracts the gravitational torque experienced in the neutral "standing" position about which the step movement is centered. Since a leg spends most of its time in the support phase, balancing this torque substantially reduces the average motor currents, power consumed, joule heating, and stress on the servo bearings, Because the servos we used for the joint in the initial model were marginally powered, the springs were, in fact, necessary for effective walking.

The springs needed to be custom made for the application. To counter gravity, the leg spring needs to produce about 20 oz-in of torque. It needs to stack less than an additional 5 oz-in when raised 45 degrees from neutral (a rate of 1/9 oz-in/degree, or 40 oz-in/revolution). It also needs to fit in the space between the servo and the femur. After a bit of empirical research, we found that the specifications could be met by a spring having an outer diameter of 5/8" made of 6-3/8 turns of .039" music wire, and pretensioned approximately 180 degrees.

The springs were fabricated by starting with an 18" length of .039" spring temper piano wire, and putting a 90 degree bend about 1" from one end. This allowed the wire to be clamped in a vise against a 7/16" steel rod, on which 8-1/2 turns were wound, forming the spring proper. When the winding tension was released, the result was the desired 6-1/2 turns at a diameter of 5/8". The wire must be kept under tension during winding. This is best done by gripping the far end using locking pliers (e.g. Vise Grips). A lathe at low speed with a jig for securing the spring could also be used for winding.

Putting a slight initial twist in the wire, in the wind direction (e.g. clockwise looking along the wire towards the spring when winding clockwise viewed from the direction of build) will help produce a spring whose coils stay compactly together. Twisting the other way, will push the coils apart. This is easy to do when holding the wire with locking pliers. About 3/8 of a turn (135 degrees) in the 18" wire is about right for this application.

After the spring is wound, the ends are trimmed to the appropriate length (about 1/2" for the right-angle end, and 2" from center for the tail. Use a cutoff wheel on a Dremel or other grinding tool for this, as attempting to cut spring-temper wire with your wire-cutters will probably destroy them. Small adjustments to the angled end are also made so the unit fits correctly around the servo shaft when anchored in the hip block. The images to the right shows a completed spring and how it is positioned on the hip block.

Both left and right-handed springs must be made since the left and right legs are mirror images of each other. The springs are attached by inserting the right-angle end into a #60 hole drilled in a corner of the hip block. The long tail, after pre-tensioning, rests against one of the femur screw-blocks. The image below shows a spring installed on a (right-hand) leg.

Spring installed on a leg

Leg Motor Alignment

In order for the micro-controller to correctly control the position of the leg, the leg components must be properly aligned with the servo's notion of its own position. This is an issue because the components are attached to the servos via a 25-tooth spline adaptor, and the servo shaft contains no reference markings indicating a home position. This can be done by setting the servos to their midpoint by sending them a 1500us PWM control signal, and then adjusting the spline adaptor so that the leg is in a canonical "home" position. Defining this as the femur pointing straight out from the body (90 degrees) both horizontally and vertically, and the tibia reference line pointing 90 degrees down from the femur happens to work well. This home position is shown in the image below.

A further complication arises from the fact that the "X-shaped" spline adaptor has a 4-fold symmetry that does not divide the 25 spline positions evenly. So before attaching the leg, the spline position that best orients the "X" so its arms are at 45 degrees with respect to the servo when it is set at midpoint must be found. This could be considered a feature rather than a bug since it allows alignment to be adjusted to one of 100 possibilities rather than the 25 the spline teeth alone would allow.

A leg in canonical "home" position