Skip to content

jplazag/exoskeleton

Repository files navigation

Wearable Robotics: Final Project

Author information

  • Daniil Lisenkov
  • Juan Diego Plaza
  • Eduard Tarasenko

Description

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.

Basic tree of the workspace (only the main files were considered)

IMAGE_DESCRIPTION

How to run the code

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>

  1. 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

  2. Then in the first tab run the master node

    roscore

  3. 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>

  4. In the third one run the launch file for the skin control

    roslaunch skin_control skin_control.launch

  5. 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

  6. 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

Video

In this video you can see the complete operation of the system.

Watch the video

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published