There are people in the world that suffer from serious impediments in their arms. These happen because of several illnesses and acute symptoms such as stroke, Guillain-Barré syndrome, paralysis from birth, cerebral palsy, spina bifida, spinal muscular atrophy and several others. These patients have to continuously take rehabilitation therapies, which are expensive:
The prices of these sessions go from $ 650 to $ 1300 USD and sometimes, they are not insurable: https://www.healthline.com/health/cool-sculpting-cost
They take a lot of time, and it is also necessary to go to specific clinics for the service. Which increases the pain and discomfort of the patient.
The clinical devices that perform the rehabilitation therapy are enormous and can not be transported or mobilized easily: https://www.hocoma.com/solutions/armeo-power/ https://www.researchgate.net/figure/Examples-of-robotic-devices-for-motor-training-A-End-effector-type-InMotion-20_fig1_259609214
Therefore, we decided to create a device capable of helping the patient in his rehabilitation and give him continuous feedback on his therapy. It also has to be economical (to a certain degree and in comparison to the other choices).
This is the connection diagram of the system:
For this to work we will be setting up the SmartEdge Agile device via MQTT to the Brainium portal, and via its motion sensor train the four movements that we will base our rehab in. From there we will then communicate via MQTT to a computer (could even be a Raspberry pi). In this case a laptop running Python via the paho-mqtt library. From there also via MQTT we will communicate to an ESP32 in order to give the commands required to move the Robotic arm a certain way, based on rehabilitation movements.
Before performing any other task, it is vital to be able to generate a model for elbow rehabilitation. The system can be extended to any rehabilitation therapy but we chose to work with elbow rehab as the first sample.
The four basic movements were programmed for arm rehabilitation (elbow), of which three of them will be used in the final rehabilitation.
Arm Lift (Lateral raise):
This is the model developed and the number of repetitions for each movement, notice the number of repetitions needed vs the maturity of the model:
And this is the model motion confusion matrix:
Now that we know what we will be working with, lets set up the device and widgets.
Press on create the widget.
Assign the model to the device.
Create a widget as shown in the image.
Finish the widget.
We will get a result like so.
Save External access token and User ID.
Create an account in Cloud MQTT.
Copy the credentials for "Server", "User", "Password" and "Port".
We will be using a laptop for this. Install Python Anaconda so that you can easily manipulate the MQTT broker, this had to be done because the Arduino library ESP32 for MQTT does not accept connectivity such as Websocket.
Then install the paho-mqtt library with the following command:
pip install paho-mqtt
Download the file "Python Files", open "MQTTRehab.py" and input your credentials.
Follow the diagram without making a mistake,
WARNING: IF YOU DON'T CONNECT EVERYTHING PROPERLY, YOU CAN MAKE IT SHORT CIRCUIT.
A note on the arm used: This robotic arm model just closes certain circuits to set the operating voltage positive or negative depending on how the circuit is closed. The control just uses a couple switches to achieve this. With the Relay module we can accomplish the same funcion of the controller by closing those circuits, with the added bonus of making it wireless. This diagram is only intended for a Robotic arm that uses DC motors such as the one presented, if your Robotic arm uses servos or other kind of motors the electrical design and microcontroller setup must be different.
After connecting everything, program the ESP32 with the code you can find below inside the "Arduino Files" folder.
Within the "ESP32ARMRehab.ino" file enter the CloudMQTT credentials.
const char* ssid = "YOURSSID"; const char* password = "YOURPASS"; const char* mqttServer = "m12.cloudmqtt.com"; const int mqttPort = 12345; const char* mqttUser = "YOURCLOUDMQTTUSER"; const char* mqttPassword = "YOURCLOUDMQTTPASS";
Here are some pictures of the final product and the build process:
And now time to test everything and produce a DEMO!
The global rehabilitation equipment market is set to grow and keep growing at an alarming rate. The reasons for this are the increasing number of disabilities that are derived from non-communicable diseases, favorable reforms in the healthcare sector and an increasing geriatric population coupled with increasing incidences of chronic diseases. In addition, increasing support from the government and technological innovations in the field of rehabilitation equipment which supports the geriatric population and the physically challenged people is also giving an impetus to this market. As previously stated, the high cost of the rehabilitation equipment, rehabilitation therapies along with a high maintenance cost of such devices alongside an increasing cost of general healthcare services (at least in the US) makes it an enduring problem.*1
According to Persistence Market Research, the global rehabilitation equipment market is forecasted to reach a figure of about US$ 13.4 Billion in 2022 and is poised to exhibit a robust CAGR in the period of assessment.
Reiterating on the cost of the therapies and the devices alongside the reduced number or lack of specialists (in relation to the number of patients) there is quite a market for these kind of solutions. Another problem that has to be taken into consideration, is the fact that nowadays and going forward payment will be linked to patient satisfaction and greately related to outcomes. So, patient experience is much more important as a whole. For this project I had the opportunity of actually performing the demonstration to medical specialists and rehabilitation professionals. They immediately found the proposition valuable and at the same time proposed a niche market for the product which is to target it to children. Children are sometimes very difficult to work with, but something such as a Robotic arm has the potential to improve on their attention and adherence to the routine and furthermore on their outcome.
Healthcare is changing, and it has to. Alone the US is reaching almost 20% on its GDP which is unsustainable and the trend that relates payment to patient satisfaction and outcomes will be much more prevalent. Our solution in this case is a combination of two SDGs, the #3 SDG which is to ensure good health and well being for all ages and the #9 which includes to foster innovation. Let's be fair here, even if we advance on health and well being to the limit proposed by the SDG, noncommunicable diseases will always be part of modern life and a sometimes forgoten sector involves orthopaedical-related injuries and rehabilitation. They are both what fills hospitals, and will continue to be for the forseeable future. This solution offers to foster innovation while closing the gap between patient satisfaction and adherence to a treatment for a better outcome. There is seldom a solution like this one for patient satisfaction, and yes a hospital and/or clinic is nowadays filled with technology, but more so related only to critical-care devices and top of the line imaging equipment. This solution focuses much more on the patient as a whole.
I think the project came up nicely, but I still want to perform a couple changes. One is regarding the use of a whole laptop to run a MQTT node and Python script. The issue was that Brainium's MQTT was unable to get to the MCU (in this case an ESP32) so a laptop was used as a gateway. This was the easier way to perform this action and follow on the architecture proposed, but as usual there are many alternatives. For example we may be able to do the same thing using a virtual machine hosted on a cloud service such as IBM cloud, AWS or Azure. The other alternative is to use an embedded computer such as a Raspberry Pi in order to create the gateway and make it more of an Edge device. The latter is probably the solution I would go with, as it implies a much lower price and ease of access.
The last thing I would like to intergrate in the project is audio cues. This could be done with any STT platform such as snips or even Amazon Alexa so that the patient is receiving instructions during the therapy.
Thank you for reading, and I hope you liked the project.