Variable Stiffness Robotic Fingers
This is a project I worked on at the Reneu Robotics Laboratory under the direction of Mincheol Kim. The objective was to design and fabricate a pair of 2-DOF fingers with both position and stiffness control, which allows for more sophisticated dexterous manipulation. There were many challenges involved in the design and manufacture of this system, and I learned a lot about cable-driven mechanisms, tolerances and fits, and the importance (and difficulties) associated with scale.
Differential Stiffness Joints
The backbone of this system is this spiral pulley. Controlling stiffness of a cable driven mechanism, when using series elastic actuators, is difficult. But when using rotary joints, we can vary radius instead of linear stiffness to vary the stiffness of the joint.
Spiral Pulley
The geometry of this part made it difficult to fabricate through traditional means. I ended up prototyping the early versions using an SLA 3D printer, which uses liquid photopolymer curing to achieve sub-80 micron resolution, and then pouring a urethane mold for epoxy resin, due to its improved mechanical properties.
Position Control
Position control was achieved by a simple pulley and motor. Because this was cable driven, I had to design a tensioning mechanism for the proof of concept, which ended up as a pair of eccentric cams.
Resolving 2 Inputs
2 Inputs - Position and Stiffness, and 1 Output. In order to resolve this transformation, we used a gear differential. Typically, these are used to maintain torque transmission between the two inputs, but by using the differential housing as a pulley itself, it produces an output motion that can follow the position of one input and transfer the effective stiffness of the other. This mechanism was the most restrictive and ended up being very difficult to keep consistent, lightweight, and compact.
Gear Differential
Eventually, we downsized the gear differential to less than 1/2 the original dimensions and less than 1/3rd the weight. In addition, precision brass gears and more thoughtful tolerances mitigated issues with backlash and friction from the previous design, which caused critical failures. The gears were modified with a drill and tap to fit an m2 grub screw, and the housing was printed using the Form 3 SLA printer.
Generating the Contour
Mincheol Kim used the desired stiffness matrices to back-calculate the desired pulley radius function. This exported a set of coordinates, which I converted into a usable format for the Solidworks "curve through xyz points" command. For this conversion, I used a Matlab helper script. This provided me with extra utility to split, join, scale, and rotate the spiral as needed.
Subassembly: Actuators
We needed 5 actuators for the 2 fingers - 4 for position control, and 1 for each stiffness pulley. This does mean that the stiffness matrix only has one DOF, but this suited the purpose of the design. We used a lot of 8020 framing to support all of the heavy motors. There were a lot of iterations for the pulley design in order to reduce slipping and tendon derailing, as well as finding a solid method of tendon anchoring. The most consistent method ended up utilizing thread-forming screws for plastic, which were able to bite into the resin 3D prints without fracturing or stripping,
Subassembly: Differential
Each of these subassemblies is responsible for resolving and routing the inputs for one finger. The sandwich on either side is responsibility for just one joint in the finger - the blue cylindrical pulley takes in position, the spiral pulley takes in stiffness, and the differential between them outputs to the finger joint.