The shoulder is one of the most complicated part of the whole human body. Its articulations and the shoulder joint allow the shoulder a wide range motions of the arm and are thus quite complex to model. In consequence, the rehabilitation of the shoulder is a classic medical problem. The goal of this project is to design a robot that helps this rehabilitation.
This robot will take the form of an exoskeleton with various sensors that will measure relevant parameters to characterize the motion of the arm, and then will compare the obtained results to a database to give immediate feedback on the patient’s quality of the shoulder motion.
The device can be seen on the pictures just above. This exoskeleton is fixed on a harness that is worn by the patient. There are also straps to attach the arm of the device to the patient's arm.
We are students of the Brussels Faculty of Engineering (Bruface) and we have an assignment for the Mechatronics 1 course : realize a project from a suggestion list from which we chose the Shoulder rehabilitation robot.
Members of the Mechatronics 1 Group 7 :
Pierre Pereira Acuna
Step 1: Materials
- 3D printer : PLA plastic
- Laser cutting machine
- MDF 3mm : surface 2m²
- 2 accelerometers MMA8452Q
- 2 potentiometers : PC20BU
- Bearings : Inner diameter 10 mm ; Outer diameter 26mm
- Linear guides rails : width 27mm ; minimal length 300 mm
- Back Harness and straps
- Arduino Uno
- Arduino cables : 2 bus for Alimentation (3,3V Accelerometer and 5V Potientiometer), 2 bus for Accelerometer measurement , 1 bus for the mass. (breadboard) :
- Screws :
For the bearing : M10 bolts and nuts ,
For the structure in general : M3 and M4 bolts and nuts
Step 2: Main Idea
In order to help shoulder rehabilitation, this device has for purpose to help the rehabilitation of the shoulder following basic movements at home with the prototype.
The motions we have decided to focus on as exercises are : the frontal abduction (left on the picture) and external rotation (right).
Our prototype is equipped with various sensors : two accelerometers and two potentiometers. These sensors send to a computer the values of the angles of the arm and of the forearm from the vertical position. The different data are then plotted on a database that represents the optimal motion. This plot is done in real time so that the patient can directly compare his own motion to the motion to obtain, and can thus correct himself to stay as close as possible to the perfect motion. This part will be discussed in the database step.
The plotted results can also be sent to a professional physiotherapist that can interpret the data and give some more advice to the patient.
More in the practical point of view, as the shoulder is one of the most complex joint of the human body, the idea was to prevent certain range of motion in order to avoid bad realization of the movement, so that the prototype can allow only these two motions.
Moreover, the device won’t match perfectly the anatomy of the patient. This means that the axis of the rotation of the exoskeleton don’t match perfectly the ones of the patient shoulder. This will generates torques that can break the device. To compensate for that, a set of rails have been implemented. This also allows a large range of patient to wear the device.
Step 3: Different Parts of the Device
In this part, you can find all the technical drawings of the pieces we used.
If you want to use your own, be concerned by the fact that some pieces are subject to high constraints : the bearing's shafts for example are subject to local deformation. If 3D-printed, they should be made in high density and thick enough to prevent it from breaking.
Step 4: Assembly - Backplate
Step 5: Assembly - Abduction Articulation
Step 6: Assembly - External Rotation Articulation
Step 7: Final Assembly
Step 8: Circut Diagram
Now that the assembled prototype properly corrects shoulder misalignment, and manages to follow the patient’s motion alongside the two wanted directions, it is time to get on the tracking part and especially on the electrical part of the project.
So the accelerometers will receive accelerations informations alongside every directions of the plan, and a code will compute the different interesting angles from the measured data. The different results will be sent to a matlab file through the Arduino. The Matlab file then draws the results in real time and compares the obtained curve to a database of the acceptable motions.
Wiring components to Arduino :
This is the schematic representation of the different connections between different elements. The user should be careful that the connections depend on the code used. For example, the I1 output of the first accelerometer is connected to the ground while the output of the second one is connected to 3.3V. This is one of the ways to distinguish the two accelerometers from the Arduino point of view.
Wiring chart :
Green - Accelerometers alimentation
Red - input A5 of the Arduino to collect data from the accelerometers
Pink - input A4 of the Arduino to collect data from the accelerometers
Black - Ground
Grey - Measurements from the first potentiometer (on the frontal abduction rotule)
Yellow - Measurements from the second potentiometer (on the external rotation rotule)
Blue - Potentiometers Alimentation
Step 9: Database
Now that the computer receives the angles, the computer is going to interpret them.
This is a photo of a representation of the chosen database. On this database the blue curves represent the zone of acceptable motion and the red curve represents the perfect motion. It should be stressed that the database is of course open to modifications. Ideally the database’s parameters should be established by a professional physiotherapist to advise on the actual optimal rehabilitation parameters.
The chosen optimal motion here in red, is based on experience and is such that the arm reaches 90° in 2.5 seconds, which corresponds to a constant angular speed of 36°/s, (or 0,6283 rad/s).
The acceptable zone (in blue) has been designed with a 3 order piecewise function in this case for both the upper boundary and the lower boundary. Higher orders functions could as well be considered to improve the shape of the curves or even the complexity of the exercise. In this example the exercise is very simple : 3 repetitions of 0 to 90° motion.
The code is going to plot the results of one of the sensors - the one of interest giving the rehabilitation exercise considered - on this database. The game now for the patient is to adapt its arm’s speed and position so that its arm stays inside the blue zone, the acceptable range, and as close as possible to the red curve, the perfect motion.