Repository for the implementation of motion control algorithms for kinematically redundant robots under generalized hard inequality constraints.
The algorithms presented in this repository offer efficient solutions for addressing redundancy resolution in velocity and acceleration commands while considering joint and Cartesian inequality constraints simultaneously. They provide real-time constraint customization without the need for parameter tuning. These algorithms are generalized versions of the Saturation in the Null Space (SNS) method, incorporating both joint and task-space constraints.
A significant advantage of these algorithms is their faster run-time execution compared to state-of-the-art local Quadratic Programming (QP) solvers. This feature is particularly beneficial for real-time applications involving redundant robots.
Simulation results are included in this repository to demonstrate the effectiveness of these algorithms across different robotic systems.
The codes in this repository are written in MATLAB. To get started:
- Clone or download this repository to your local machine.
- Open MATLAB and navigate to the downloaded repository folder.
- Run the
Example_Vel_Planar_6DOF_Robot.m
script to execute the example for a planar 6-degree-of-freedom robot at velocity-level control.
- Add the algorithms for Velocity-level control.
- Add the algorithms for acceleration-level control.
- Add more simulation examples with different robot models.
- Add Python scripts.
- Enhance documentation for better code understanding.
Here are some of our publications related to this project:
- Kazemipour, A., Khatib, M., Al Khudir, K., Gaz, C. and De Luca, A., 2022. "Kinematic control of redundant robots with online handling of variable generalized hard constraints," IEEE Robotics and Automation Letters, 7(4), pp.9279-9286. (Link)
- A. Kazemipour, M. Khatib, K. Al Khudir, A. De Luca, "Motion control of redundant robots with generalised inequality constraints," 3rd Italian Conference on Robotics and Intelligent Machines, Rome, ITA, pp. 138-140, 2021. (Link)
If you encounter any problems or issues with the code, please raise a new issue with a description of the problem, the steps to reproduce it, and the expected behavior.
This project was developed as part of my Master's thesis in Control Engineering at the Sapienza UniversitĂ di Roma.
For any questions or concerns, feel free to reach out.
Thanks to Prof. Alessandro De Luca, Dr. Maram Khatib, Dr. Khaled Al Khudir, and Dr. Claudio Gaz for their support and guidance throughout the research project.
Shield: This work is licensed under a Creative Commons Attribution 4.0 International License.