Skip to content

pollen-robotics/reachy2_qpik

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Reachy2 quadratic programming inverse kinematics

A kinematics library for Reachy2 7 DoF arms, using quadratic programming (QP) for precise and robust motion control.

Licence Code style: black linter pytest coverage Docs

Reachy 2 Heart GIF

Table of contents

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

Key features

  1. 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.
  2. Task-Space Control Algorithm:
    • Pose tracking suitable for teleoperation, ensures joint-space continuity.
    • Handles unreachable poses gracefully within trajectories.
    • Customizable workspace and configuration parameters.

Installation

Dependencies are detailed in the setup.cfg file. To install this package locally, run:

pip install -e .[dev]

Include [dev] for optional development tools.

Requirement for running the full Reachy2 stack

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

Usage

Once this is done, you should be able to import the Python package in your codes with:

import reachy2_qpik

Switching between methods

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.

Unit tests

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

Documentation & URDF file

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

Contribution

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.

License

This project is licensed under the Apache 2.0 License. See the LICENSE file for more details.

About

Quadratic Programming Inverse Kinematics control algorithm for the arms of Reachy2.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published