PyRoki
is a modular, extensible, and cross-platform toolkit for kinematic optimization, all in Python.
Core features include:
- Differentiable robot forward kinematics model from a URDF.
- Automatic generation of robot collision primitives (e.g., capsules).
- Differentiable collision bodies with numpy broadcasting logic.
- Common cost implementations (e.g., end effector pose, self/world-collision, manipulability).
- Arbitrary costs, autodiff or analytical Jacobians.
- Integration with a Levenberg-Marquardt Solver.
- Cross-platform support (CPU, GPU, TPU).
Please refer to the documentation for more details, features, and usage examples.
You can install pyroki
with pip
, with Python 3.12+:
git clone https://github.com/chungmin99/pyroki.git
cd pyroki
pip install -e .
May 6, 2025: Initial release
We are preparing and will release by May 16, 2025:
- Examples + documentation for hand / humanoid motion retargeting
- Documentation for using manually defined Jacobians.
- Support with python 3.10+
This codebase is released with the following preprint.
Chung Min Kim*, Brent Yi*, Hongsuk Choi, Yi Ma, Ken Goldberg, Angjoo Kanazawa. PyRoki: A Modular Toolkit for Robot Kinematic Optimization arXiV, 2025. |
*Equal Contribution, UC Berkeley.
Please cite PyRoki if you find this work useful for your research:
@article{pyroki2025,
author = {Kim, Chung Min* and Yi, Brent* and Choi, Hongsuk and Ma, Yi and Goldberg, Ken and Kanazawa, Angjoo},
title = {PyRoki: A Modular Toolkit for Robot Kinematic Optimization},
journal = {arXiv},
year = {2025},
}
Thanks!