I developed a 3D-printed robotic hand during my studies at the Technical University of Munich. I used a 3D printer to build the mechanical parts and a Raspberry Pi Pico for controlling the motors.
Every four years, ETH Zurich organizes the CYBATHLON competition (cybathlon.ethz.ch), in which teams from all over the world have to overcome various challenges using their developed prostheses. There are eight disciplines:
- ARM – Arm Prosthesis Race
- ROB – Assistance Robot Race
- VIS – Vision Assistance Race
- BCI – Brain-Computer Interface Race
- EXO – Exoskeleton Race
- FES – Func. Elec. Stimulation Bike Race
- LEG – Leg Prosthesis Race
- WHL – Wheelchair Race
The Technical University of Munich (TUM) regularly participates in the CYBATHLON in the category of prosthetic hands (ARM). There is the opportunity for students to participate in the development of the hand prosthesis in the form of a practical course. In the practical course, 2-4 students work on a specific topic, all with the goal of creating a competitive prosthesis in the future.
In the summer semester of 2022, one of the tasks of the practical course was to build a physical prototype of a new concept of a hand prosthesis. The new concept was designed in the previous semester. The previous concepts moved the hand (opening and closing) using a single motor and a pulley that goes through all fingers. The new concept relies instead on five small DC motors, each driving one finger directly. In addition, instead of cables, springs and rod connections are used to tie the kinematics of the fingers to the motors.
The task of my team was therefore to manufacture and assemble the prosthesis on the basis of the digital CAD model. To do this, we first examined the concept for feasibility and corrected corresponding weaknesses in the CAD model. For example, the dimensions of some components had to be adjusted to the tolerances of the 3D print, as otherwise, problems would have arisen during subsequent joining.
As the title describes, the hand consists almost entirely of 3D-printed components – only the motors, the springs, the joint axles, and the worm gears are made of metal. In addition to ease of use, 3D printing with PLA filament also offers a major advantage in terms of weight. Weight is an important property that has a major impact on the acceptance of a prosthesis. Prostheses that weigh significantly more than a human hand (approx. 500 g) are less likely to be worn. Our prosthesis weighs only 330 g without battery and PCB and therefore meets this requirement.
Finger design plays an important role in grasping objects with the prosthesis. As mentioned before, our prosthesis relies on special finger kinematics with springs and rods. This ensures that when the finger is closing, the two main joints of the finger bend simultaneously. The upper joint (closer to the fingertip) is compliantly coupled to the movement of the rest of the finger by means of a spring. This allows the motor can always close the finger to the same extent regardless of the object. The fingertip can adapt flexibly to the object geometry (see videos below). The thumb has a slightly different, more complex design, as the motor is housed in the finger itself rather than in the palm. The geometric space constraints make the design a bit more challenging than for the other fingers.
The main task was to build the mechanical part of the prosthesis. However, in order to validate the prototype, we need to control the motors. Therefore, I additionally soldered a PCB and wrote a simple control software to be able to perform the three most important grasping movements with the prosthesis.
Due to a large number of motors and sensors (mainly encoders and end stop switches) I needed a microcontroller with a lot of I/O pins. The Raspberry Pi Pico has just been released and has a fantastically low price (~5€) compared to other microcontrollers. So I decided to give it a try and was surprised at how easy it is to program this controller. One can choose between C/C++ or Python as the programming language. This makes it very interesting for people with no experience with embedded programming. I used the C/C++ library to allow porting my code to another microcontroller in the future if needed. To control the prosthesis, I wrote a small Python script that runs on a computer connected to the Raspberry Pi Pico via USB.
At the end of the project, we performed initial validation tests regarding the usability of the prototype. The test procedure included grasping an object, lifting the object from the table, shaking the hand with the object, and placing the object back on the table. The selection of objects tested included items for each of the three possible grasps. In summary, the results are promising and provide a good basis for development over the next few semesters leading up to the Fall 2024 competition.
Throughout our build and development process, we followed an iterative and modular approach. The main modules were the finger, the thumb, the wrist, and later, as an additional task, the electronics including software. Starting with the finger, we iteratively repeated the process of modularizing the components into functional subparts. Namely building, analyzing, and improving. In weekly presentations, we reported our progress to the supervisors and received feedback that we could directly incorporate into the following week’s task distribution. From my point of view, it was very important for the successful completion of the project to get some structure into such teamwork in this way.
Due to the fact that the competition is still ongoing, I cannot provide any details about the project such as code or CAD files.