- Daniil Lisenkov
- Juan Diego Plaza
- Eduard Tarasenko
An exoskeleton is a wearable device that provides support to the human body and enhances its physical capabilities. Considering the great characteristics of those instruments, this project aims to program an exoskeleton for the upper part of the human body, in order to help people with limited mobility. Involving integrated control systems, sensors, and actuators.
At this stage the exoskeleton can work with two degrees of freedom (elbow and wrist) with force control or with one degree of freedom in the elbow with force control and position control.
The position control was intended to predict the movement of the user through the generation of soft curves between a startpoint and an endpoint, while the force control is used to correct and define the behavior of the wearable robot in case the prediction is wrong.
For this version the trajectories generated by the position control are sinusoidal-like waves, so the user can develop rehabilitation routines, which in many occasions, are composed of repetitive movements.
In this project we have two main routines: one that runs the code related with the force control of the elbow with the wrist and other with both force and position control for the elbow.
In order to run the first one, it is needed to replace the content of the main_exo_control.cpp
file located in /src/exo_control/src/Applications, the content of the exo_force_control.cpp
located in /src/exo_control/src and the file exo_force_control.h
located in /src/exo_control/include/exo_control with the content of the code files located in the folder /2DOF_Folder
To run the second one, there is no need to make any change.
Now that the files are setted, the next step is to charge the code file meant for the circuit board into the circuit board, which is placed in the folder /ESP32. In case you are using an Arduino, there are not necessary changes to be made, but if you are using an ESP32 you need to uncomment the line
#include <ESP32Servo.h>
and comment the line
#include <Servo.h>
-
Once everything is in the place it should, it’s time to run the ros nodes and start the communications.
In order to execute the code it is needed to open 5 tabs in a terminal and run the next command in the main folder of the workspace in order to source the setup.bash files.
source devel/setup.bash
-
Then in the first tab run the master node
roscore
-
In the second one run the robot skin ROS driver
roslaunch tum_ics_skin_driver_events skin_driver_ftdi.launch FTDI_SERIAL:=<Skin FTDI number>
-
In the third one run the launch file for the skin control
roslaunch skin_control skin_control.launch
-
Next step is to enable the communication between ros and the programmable circuit board, which should already have the code from the folder ESP32. That code works for ESP32 and Arduino.
rosrun rosserial_python serial_node.py <PORT> _baud:=921600
-
And finally run the launch file of the exo_control, which runs all the processes needed to activate and move the exoskeleton
roslaunch exo_control exo_control.launch
In this video you can see the complete operation of the system.