Skip to content

Repository containing the code for our shared-control paper accepted for presentation @ ICORR 2025

License

Notifications You must be signed in to change notification settings

itbellix/biomechanical_safe_deflection

Repository files navigation

Biomechanic-aware shared control for robotic-assisted physiotherapy

In this repository, we collect the code associated to our publication "A Shared Control Approach to Safely Limiting Patient Motion Based on Tendon Strain During Robotic-Assisted Shoulder Rehabilitation", to appear at the IEEE International Consortium on Rehabilitation Robotics 2025 (ICORR).

We provide the scripts we used to control our robotic physiotherapist (KUKA iiwa 7), as well as the basic plotting scripts employed to generate the images in the paper. Moreover, we provide a link to the rosbags containing our experimental data.

Paper

For an explanation of our approach, we refer to our paper:

@article{belli2025,
  title={A Shared Control Approach to Safely Limiting Patient Motion Based on Tendon Strain During Robotic-Assisted Shoulder Rehabilitation},
  author={Belli, Italo and Hu Yuxuan, and Prendergast, J Micah and Abbink David and Seth, Ajay and Peternel, Luka},
  journal=ICORR,
  year={2025}
}

If you find our work useful, ⭐ and citations are appreciated!

Funding Institutions
TUD logo
Biomechanical Engineering and
Cognitive Robotics at TU Delft

CZI logo
Chan Zuckerberg Initiative

Dependencies

Our code depends on:

  • the Robot Operating System (ROS1)
  • the impedance controller implemented at https://gitlab.tudelft.nl/kuka-iiwa-7-cor-lab/iiwa_ros/
  • several other (python) packages, documented in the requirements.txt
  • (we also depend indirectly from the OpenSim project and OpenSimAD, which we use to generate our differentiable models of the human shoulder joint)

Code

The code is structured as a ROS package to simplify its execution. The most important scripts are:

  • biomech_safety_net.py, implementing the bulk of the work (estimating the most suitable robotic intervention to guarantee low-strain rehabilitation exercises for the shoulder complex, on the basis of trajectory optimization);
  • robot_control.py, which takes care of initializing the communication with the robot, sending it to the initial position and estimating the current human pose;
  • plot_results.py, which can be run to analyze one of the rosbags we provide below (some parameters need to be adjusted, such as the interval of interest for the analysis).

The launch folder contains the launch files and a readme on how to use them.

Dockerized version

To enable others to run our code more easily, we provide also a dockerized version of it at biomechanical_safe_deflection_docker. Check it out!

Experimental data

The experimental data to reproduce our figures is available at the following DOI: 10.4121/2016260b-d4bb-4b4e-94d5-e2e177913e11

Contributing and trouble-shooting

If you would like to contribute to this project or have troubles getting things to work, just reach out or open an issue!

Video of our experiments

video_icorr_short.mp4

About

Repository containing the code for our shared-control paper accepted for presentation @ ICORR 2025

Resources

License

Stars

Watchers

Forks

Packages

No packages published