I began the arm design by researching how the human arm works, as well as various equivalent joint models which have been developed. My plan was to replicate human physiology to the greatest extent possible.
While much of the motion of the human forearm is relatively straightforward, the pronation and supination (i.e. "twisting" inward and outward, respectively) of the forearm is surprisingly complex. Maurel et al presented a mechanical model of the forearm joints in a 1996 paper entitled "A Biomechanical Musculoskeletal Model of Human Upper Limb for Dynamic Simulation". In it, they modeled the forearm joints as a combination of cylindrical and spherical joints, as shown here:
However, note that the surface to which the wrist is attached changes its orientation as the forearm is rotated, as shown here:
This means that without correction, the wrist in our arm would rotate to the left or right as the forearm was twisted.
Another challenging aspect of the forearm motion is the musculature involved. Somewhat counter-intuitively, the two directions of twisting are driven by different, non-symmetric muscles. As shown in this video, the muscles which pronate the forearm (pronator teres and pronator quadratus) are both contained in the forearm. However, the muscles which supinate the forearm (biceps brachii and supinator muscle) are located in the upper arm and forearm respectively.
In my first iteration (above), I attempted to replicate both the skeletal and muscular features of the human arm to the greatest degree possible. (Note that the hand itself has not yet been modeled so the part shown is simply a placeholder.)
To reduce complexity, the musculature for pronation and supination was simplified to a single air cylinder between the ulna and radius. By driving this cylinder in both directions (i.e. double-acting), I hoped to both pronate and supinate the arm. However, closer inspection of the cylinder travel throughout the twisting motion revealed that at certain angles the cylinder's leverage would be insufficient to stabilize the rotation, and furthermore its response was very non-linear, which would cause difficulty in driving it with the controller.
Although I also investigated the use of two cylinders (see above) to retain some linearity, it seemed like the design was losing its elegance and a more robust rotation driver was needed.
In my second iteration, I used a barrel cam with a helical groove cut into it to convert the linear motion of the hydraulic cylinder to a rotation of the forearm, which is supported on to 25mm bearings. (Although rotary actuators were considered, they were rejected because we want to keep the basic form factor of a human arm.)
A close-up of the cam showing the modified machine screws used as followers.
With the mechanics basically set, my collaborator Mark Biasotti did an aesthetic study on the current arm design. His primary goal was to expose the mechanism, so the parts are based on the above design but with several slots and windows cut to allow viewing of the mechanism.
To verify the functionality of the barrel cam, a portion of the arm was rapid-prototyped.
After de-waxing, the parts were assembled and the mechanism checked by moving the cam through its range of motion. The rotation worked as expected, although we discovered a few other issues from the model. First, the combination of the split design (which makes capturing the bearings easier) and the thin arm sections (seen on the left side of the picture above) makes the arm less rigid than the previous cylindrical design. Second, any deformation of the arm in the area of the cam will tend to make it bind.
To address the rigidity issues mentioned above and make the assembly easier to machine, I redesigned the cam mechanism by essentially turning it "inside out".
The barrel cam (with helical groove) is now stationary and rigidly attached to the arm, while the outer sleeve (with straight slots) rotates on two low-profile 25mm roller bearings. Two shoulder screws pass through the straight slots, through the helical slots in the cam, and thread into a small piston within the cam which is moved axially by an air cylinder. This design is shorter than the previous iteration, and also moves the front bearing to just behind the wrist yoke, removing the cantilever arrangement and thus further increasing rigidity. Finally, this arrangement allows the bearings to be preloaded slightly, eliminating play in the mechanism.
This was the final iteration. I machined the parts using a manual lathe and a CNC mill (to cut the helical slots). When assembled, the mechanism worked smoothly with almost no play and plenty of rigidity to hold the hand.
Air cylinder rod with steel piston
Boring the ID of the sleeve
Barrel cam and outer rotating sleeve
Twist mechanism as installed on the arm
Complete machined forearm