Metadata-Version: 2.4
Name: pink_motions
Version: 0.3.0
Summary: Robot motions performed by inverse kinematics and predictive control.
Keywords: inverse,kinematics,pinocchio
Author-email: Stéphane Caron <stephane.caron@normalesup.org>
Maintainer-email: Stéphane Caron <stephane.caron@normalesup.org>
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: Robot Framework :: Library
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering
License-File: LICENSE
Requires-Dist: clarabel
Requires-Dist: loop-rate-limiters >=0.1.0
Requires-Dist: matplotlib
Requires-Dist: meshcat >=0.3.2
Requires-Dist: meshcat-shapes >=0.3.0
Requires-Dist: pin-pink >=4.4.0
Requires-Dist: qpmpc >=2.6.3,<4
Requires-Dist: qpsolvers >=4.3.1
Requires-Dist: robot_descriptions >=3.0.0
Requires-Dist: xacrodoc
Project-URL: Changelog, https://github.com/pink-kinematics/pink_motions/blob/main/CHANGELOG.md
Project-URL: Documentation, https://pink-kinematics.github.io/pink_motions/
Project-URL: Homepage, https://pink-kinematics.github.io/pink_motions/
Project-URL: Source, https://github.com/pink-kinematics/pink_motions
Project-URL: Tracker, https://github.com/pink-kinematics/pink_motions/issues

# Pink motions

[![PyPI version](https://img.shields.io/pypi/v/pink_motions)](https://pypi.org/project/pink_motions/)

A library of robot motions performed by inverse kinematics and model predictive control:

<p align="center">
    <img src="https://github.com/user-attachments/assets/5b169c2b-3c84-47b8-96d0-5b9095255f52" alt="Sample scenarios from pink motions" />
</p>

## Usage

The recommended way to use pink motions is with [pixi](https://pixi.sh), which handles all dependencies automatically:

```console
git clone https://github.com/stephane-caron/pink_motions.git
cd pink_motions
pixi run scenario --robot ur5 --qpsolver quadprog
```

This will open a MeshCat tab in your web browser playing the scenario for its prescribed duration.

This task is just an alias to [`examples/run_scenario.py`](examples/run_scenario.py), which simply calls:

```py
pink_motions.play_scenario(
    name="jaxon",
    dt=0.005,  # seconds
    qpsolver="proxqp",
)
```

## See also

Pink motions are specified using a combination of several open-source libraries:

- [robot\_descriptions.py](https://github.com/robot-descriptions/robot_descriptions.py) to load robot descriptions
- [Pinocchio](https://github.com/stack-of-tasks/pinocchio/) for forward kinematics functions: Jacobians, Jlog6, ...
- [MeshCat](https://github.com/meshcat-dev/meshcat-python) for (optional) visualization
- [Pink](https://github.com/pink-kinematics/pink) for differential inverse kinematics
- [qpmpc](https://github.com/stephane-caron/qpmpc) for linear model predictive control, used in biped and humanoid scenarios

The library is also related to the following projects:

- [ik\_qpbenchmark](https://github.com/qpsolvers/ik_qpbenchmark): Test set for QP solvers with differential IK problems generated from pink motions.
- [LoIK](https://github.com/Simple-Robotics/LoIK): Constrained differential inverse kinematics solver that was evaluated on pink motions.

