Metadata-Version: 2.4
Name: mink
Version: 0.0.6
Summary: mink: MuJoCo inverse kinematics.
Keywords: inverse,kinematics,mujoco
Author-email: Kevin Zakka <zakka@berkeley.edu>
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Classifier: Development Status :: 5 - Production/Stable
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.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering
License-File: LICENSE
Requires-Dist: mujoco >= 3.1.6
Requires-Dist: qpsolvers[quadprog] >= 4.3.1
Requires-Dist: typing_extensions
Requires-Dist: numpy < 2.0.0
Requires-Dist: mink[examples, dev] ; extra == "all"
Requires-Dist: black ; extra == "dev"
Requires-Dist: mink[test] ; extra == "dev"
Requires-Dist: mypy ; extra == "dev"
Requires-Dist: ruff ; extra == "dev"
Requires-Dist: dm_control >= 1.0.20 ; extra == "examples"
Requires-Dist: loop-rate-limiters >= 0.1.0 ; extra == "examples"
Requires-Dist: qpsolvers[quadprog, osqp] >= 4.3.1 ; extra == "examples"
Requires-Dist: absl-py ; extra == "test"
Requires-Dist: coveralls ; extra == "test"
Requires-Dist: pytest ; extra == "test"
Requires-Dist: robot_descriptions >= 1.9.0 ; extra == "test"
Project-URL: Changelog, https://github.com/kevinzakka/mink/blob/main/CHANGELOG.md
Project-URL: Documentation, https://kevinzakka.github.io/mink/
Project-URL: Homepage, https://kevinzakka.github.io/mink/
Project-URL: Source, https://github.com/kevinzakka/mink
Project-URL: Tracker, https://github.com/kevinzakka/mink/issues
Provides-Extra: all
Provides-Extra: dev
Provides-Extra: examples
Provides-Extra: test

# mink

[![Build](https://img.shields.io/github/actions/workflow/status/kevinzakka/mink/ci.yml?branch=main)](https://github.com/kevinzakka/mink/actions)
[![Coverage Status](https://coveralls.io/repos/github/kevinzakka/mink/badge.svg)](https://coveralls.io/github/kevinzakka/mink?branch=main)
[![PyPI version](https://img.shields.io/pypi/v/mink)](https://pypi.org/project/mink/)
![Banner for mink](https://github.com/kevinzakka/mink/blob/assets/banner.png?raw=true)

mink is a library for differential inverse kinematics in Python, based on the [MuJoCo](https://github.com/google-deepmind/mujoco) physics engine.

Features include:

* Task specification in configuration or operational space;
* Limits on joint positions and velocities;
* Collision avoidance between any geom pair;
* Lie group interface for rigid body transformations.

For usage and API reference, see the [documentation](https://kevinzakka.github.io/mink/).

If you use mink in your research, please cite it as follows:

```bibtex
@software{Zakka_Mink_Python_inverse_2024,
  author = {Zakka, Kevin},
  license = {Apache-2.0},
  month = jul,
  title = {{Mink: Python inverse kinematics based on MuJoCo}},
  url = {https://github.com/kevinzakka/mink},
  version = {0.0.4},
  year = {2024}
}
```

## Installation

You can install `mink` using `pip`:

```bash
pip install mink
```

To include the example dependencies:

```bash
pip install "mink[examples]"
```

## Examples

mink works with a variety of robots, including:

* Arms: [UR5e](https://github.com/kevinzakka/mink/blob/main/examples/arm_ur5e_actuators.py), [iiwa14](https://github.com/kevinzakka/mink/blob/main/examples/arm_iiwa.py), [bimanual iiwa14](https://github.com/kevinzakka/mink/blob/main/examples/dual_iiwa.py)
* Humanoids: [Unitree G1](https://github.com/kevinzakka/mink/blob/main/examples/humanoid_g1.py), [Unitree H1](https://github.com/kevinzakka/mink/blob/main/examples/humanoid_h1.py)
* Quadrupeds: [Unitree Go1](https://github.com/kevinzakka/mink/blob/main/examples/quadruped_go1.py), [Boston Dynamics Spot](https://github.com/kevinzakka/mink/blob/main/examples/quadruped_spot.py)
* Hands: [Shadow Hand](https://github.com/kevinzakka/mink/blob/main/examples/hand_shadow.py), [Allegro Hand](https://github.com/kevinzakka/mink/blob/main/examples/arm_hand_iiwa_allegro.py)
* Mobile manipulators: [Stanford TidyBot](https://github.com/kevinzakka/mink/blob/main/examples/mobile_tidybot.py), [Hello Robot Stretch](https://github.com/kevinzakka/mink/blob/main/examples/mobile_stretch.py)

Check out the [examples](https://github.com/kevinzakka/mink/blob/main/examples/) directory for more code.

## How can I help?

Install the library, use it and report any bugs in the [issue tracker](https://github.com/kevinzakka/mink/issues) if you find any. If you're feeling adventurous, you can also check out the contributing [guidelines](CONTRIBUTING.md) and submit a pull request.

## Acknowledgements

mink is a direct port of [Pink](https://github.com/stephane-caron/pink) which uses [Pinocchio](https://github.com/stack-of-tasks/pinocchio) under the hood. Stéphane Caron, the author of Pink, is a role model for open-source software in robotics. This library would not have been possible without his work and assistance throughout this project.

mink also heavily adapts code from the following libraries:

* The lie algebra library that powers the transforms in mink is adapted from [jaxlie](https://github.com/brentyi/jaxlie).
* The collision avoidance constraint is adapted from [dm_robotics](https://github.com/google-deepmind/dm_robotics/tree/main/cpp/controllers)'s LSQP controller.

