PyRoki: A Modular Toolkit for Robot Kinematic Optimization
About
Robot motion can have many goals. Depending on the task, we might optimize for pose error, speed, collision, or similarity to a human demonstration. Motivated by this, we present PyRoki: a modular, extensible, and cross-platform toolkit for solving kinematic optimization problems. PyRoki couples an interface for specifying kinematic variables and costs with an efficient nonlinear least squares optimizer. Unlike existing tools, it is also cross-platform: optimization runs natively on CPU, GPU, and TPU. In this paper, we present (i) the design and implementation of PyRoki, (ii) motion retargeting and planning case studies that highlight the advantages of PyRoki's modularity, and (iii) optimization benchmarking, where PyRoki can be 1.4-1.7x faster and converges to lower errors than cuRobo, an existing GPU-accelerated inverse kinematics library.
Related benchmarks
| Task | Dataset | Result | Rank | |
|---|---|---|---|---|
| Inverse Kinematics | Panda Arm open-world random target (test) | Execution Time (ms)13.96 | 20 | |
| Inverse Kinematics | Fetch Arm open-world random target (test) | Time (ms)12.92 | 20 | |
| Collision-free Inverse Kinematics | MotionBenchMaker box_panda | Execution Time (ms)34.04 | 15 | |
| Inverse Kinematics | open-world random target benchmark synthetic arm | Time (ms)15.09 | 12 | |
| Reference Tracking | Squat movement | Mean Laplacian Error (m)0.057 | 6 | |
| Reference Tracking | One-foot balance movement | Joint RMSE0.848 | 5 | |
| Inverse Kinematics | Panda Arm | MMD0.0451 | 4 | |
| Keypoint tracking | Kung fu | Laplacian Error0.062 | 3 | |
| Keypoint tracking | Pistol Squat | Laplacian Error0.057 | 3 | |
| Keypoint tracking | Balancing Stick | Laplacian Error0.048 | 3 |