A kinematics library for Reachy2 7 DoF arms, using quadratic programming (QP) for precise and robust motion control.
Section | Description |
---|---|
Introduction | Overview of the Reachy2 IK library |
Key features | Highlights of main capabilities and advantages of the library |
Installation | How to install dependencies and the package |
Usage | How to import and use the package |
Unit tests | How to run online unit tests |
Documentation & URDF file | Package documentation & Location of the robot description file (URDF) |
Contribution | How to contribute to the repository |
License | Licensing information |
- Quadratic Programming Inverse Kinematics:
- Solves inverse kinematics with quadratic programming by minimizing joint accelerations under task-space constraints.
- Handles accelerations, speed and joints limits.
- Robustness against singularities — a fancy way of saying we can be robust against unstable joint configurations.
- Task-Space Control Algorithm:
- Pose tracking suitable for teleoperation, ensures joint-space continuity.
- Handles unreachable poses gracefully within trajectories.
- Customizable workspace and configuration parameters.
Dependencies are detailed in the setup.cfg
file. To install this package locally, run:
pip install -e .[dev]
Include [dev] for optional development tools.
To launch the stack with Reachy2, make sure you are on the branch reachy2_qpik
in the ros2_pollen_toolbox repository:
git checkout reachy2_qpik
Once this is done, you should be able to import the Python package in your codes with:
import reachy2_qpik
The inverse kinematics solver provides multiple methods that can be selected via an enum in the pollen_kdl_kinematics_node.py
file:
IK_MODE = IKMode.ACCELERATION_QP
Available options are:
- Symbolic IK (repository)
- Closed Loop Inverse Kinematics (CLIK)
- Speed QP
- Acceleration QP
Check the example folder for complete examples.
To ensure everything is functionning correctly, you can run unit tests. The tests need to be done online: they require a connection to a simulated robot (e.g., in RViZ), and the virtual robot should exhibit movement during these tests.
Example:
pytest -m online
or:
python3 -m pytest -m online
The package documentation can be generated locally with pdoc:
pdoc reachy2_qpik --output-dir docs --logo "https://github.com/pollen-robotics/reachy2_qpik/blob/develop/docs/POLLEN_LOGO.png?raw=true" --logo-link "https://github.com/pollen-robotics/reachy2_qpik" --docformat google
An URDF file is provided in 'src/config_files/reachy.urdf'.
All contributions are welcome!
- Report Issues: Found a bug or have a feature request? Create a new issue here.
- Fix Bugs & Add Features: Find out where you can lend a hand by checking out existing issues.
This project is licensed under the Apache 2.0 License. See the LICENSE file for more details.