mink is a library for differential inverse kinematics in Python, based on the 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.
If you use mink in your research, please cite it as follows:
@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}
}
You can install mink
using pip
:
pip install mink
To include the example dependencies:
pip install "mink[examples]"
mink works with a variety of robots, including:
- Arms: UR5e, iiwa14, bimanual iiwa14
- Humanoids: Unitree G1, Unitree H1
- Quadrupeds: Unitree Go1, Boston Dynamics Spot
- Hands: Shadow Hand, Allegro Hand
- Mobile manipulators: Stanford TidyBot, Hello Robot Stretch
Check out the examples directory for more code.
Install the library, use it and report any bugs in the issue tracker if you find any. If you're feeling adventurous, you can also check out the contributing guidelines and submit a pull request.
mink is a direct port of Pink which uses 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.
- The collision avoidance constraint is adapted from dm_robotics's LSQP controller.