PolicyIK: High-Precision Inverse Kinematics for Robot Arms with Reinforcement Learning
Organizations: New York University · New York University Abu Dhabi
Abstract
Inverse kinematics (IK) converts end-effector pose commands into joint motion, and many vision-language-action (VLA) policies rely on it to act on a given arm and to transfer across embodiments. Precise IK remains laborious: redundancy and singularities complicate the inverse mapping, execution depends on hand-tuned controllers, and training data on physical robots are costly to collect. We present PolicyIK, a goal-conditioned reinforcement learning policy for high-precision IK. It updates joint-position references from pose feedback and observes its accumulated reference relative to the measured joints, so it can retain the offset that the position controller needs at rest. Two-scale pose errors with an error-dependent action gain resolve millimeter residuals while preserving large motions. Progress and dwell rewards teach it to both reach the tolerance and stay within it. In simulation, a single attempt by the trained PPO policy keeps the mean errors over the final second within 1 mm and 0.2° on 93.5% of held-out tasks, and a deployment protocol raises success to 98.9%. When trained directly on a physical arm with an off-policy RL learner, PolicyIK achieves higher reaching and holding success than all four classical IK controllers under the same time budgets. In simulated pick-and-place, PolicyIK executes the end-effector commands of the VLA policy with 95.7% success. These results show that reinforcement learning can provide high-precision inverse kinematics for robot arms. Code is available at https://github.com/Tinaliu0123/PolicyIK.
Figures & tables
| Median error | |||||
|---|---|---|---|---|---|
| Controller | Strict (%) | Coarse (%) | Pos. (mm) | Ori. ( ∘ ) | |
| UMI-RL (tuned) | 0.00 0.00 | 16.38 3.10 | 16.65 0.80 | 4.25 0.77 | 1.000 |
| DLS | 1.000 | ||||
| QP | 1.000 | ||||
| MPC | 1.000 | ||||
| PolicyIK | 93.49 0.20 | 96.56 0.16 | 0.25 0.02 | 0.04 0.00 | 1.000 |
Appendix figures & tables12 assets
Supplementary material from the paper’s appendix.
Appendix
| Setting | Strict (%) | |
|---|---|---|
| Final checkpoint, single attempt | 92.30 0.13 | 1.000 |
| Checkpoint average, single attempt | 93.49 0.20 | 1.000 |
| error-corrected goal | 94.80 0.12 | 1.036 |
| transient-goal attempts | 98.92 0.23 | 1.212 |
| Median error | |||
|---|---|---|---|
| Setting | Coarse (%) | Pos. (mm) | Ori. ( ∘ ) |
| 0.20 s horizon, (source) | 0.04 0.01 | 19.45 3.80 | 74.69 2.62 |
| 0.54 s horizon, | 0.02 0.02 | 6.27 0.43 | 54.87 3.85 |
| 0.54 s horizon, | 0.35 0.09 | 11.17 2.27 | 37.45 0.61 |
| 0.54 s horizon, | 16.38 3.10 | 16.65 0.80 | 4.25 0.77 |
| 3.3 s horizon, | 1.04 0.06 | 44.16 3.52 | 4.20 1.25 |
| Median error | ||||
|---|---|---|---|---|
| Controller | Strict (%) | Coarse (%) | Pos. (mm) | Ori. ( ∘ ) |
| DLS, selected ( , 0.15 rad lead) | 50.41 | 64.42 | 0.94 | 0.15 |
| QP, selected ( , 0.15 rad lead) | 56.21 | 63.98 | 0.57 | 0.11 |
| MPC, selected ( , 0.15 rad lead) | 56.33 | 64.78 | 0.54 | 0.10 |
| DLS, measured-joint anchor, full step | 1.84 | 46.50 | 4.74 | 2.20 |
| DLS (default), 30 Hz | 1.60 | 42.86 | 5.88 | 2.73 |
| Success (%) | Terminal phase | Median error | ||||
| Variant | Coarse | Strict | Entry (s) | Uncont. (%) | Pos. (mm) | Ori. ( ∘ ) |
| PolicyIK | 96.56 0.16 | 93.49 0.20 | 1.73 0.01 | 2.43 0.23 | 0.25 0.02 | 0.04 0.00 |
| Command-state feedback and reference anchor | ||||||
| w/o command-state feedback | 92.63 0.20 | 84.26 0.28 | 2.04 0.02 | 10.32 0.32 | 0.30 0.00 | 0.06 0.00 |
| measured-joint anchor | 95.90 0.17 | 30.77 7.94 | 1.80 0.03 | 82.46 6.62 | 1.27 0.05 | 0.16 0.01 |
| Pose feedback and action scaling | ||||||
| Targets | DLS (default) | DLS (hand-tuned) | QP (hand-tuned) | PolicyIK |
|---|---|---|---|---|
| Closest to the mount | 85.5 | 96.8 | 85.9 | 95.1 |
| Farther to the side | 96.1 | 96.5 | 95.7 | 96.4 |
| 15 s budget | 25 s budget | |||||||
|---|---|---|---|---|---|---|---|---|
| Policy | Reached | Held 1 s | Held 5 s | Reached | Held 1 s | Held 5 s | Coarse | Gross |
| Ablated | 40 | 36 | 31 | 46 | 43 | 40 | 52 | 5 |
| PolicyIK | 52 | 44 | 27 | 54 | 45 | 43 | 59 | 1 |
| 15 s budget | 25 s budget | |||||
|---|---|---|---|---|---|---|
| Controller | Reached | Held 1 s | Held 5 s | Reached | Held 1 s | Held 5 s |
| DLS | 38 | 21 | 6 | 48 | 29 | 17 |
| Resolved-rate QP | 43 | 21 | 6 | 48 | 24 | 16 |
| Kinematic MPC | 29 | 10 | 3 | 46 | 26 | 15 |
| Adapted OpenArm QP | 13 | 8 | 1 | 32 | 16 | 11 |
| PolicyIK | 52 | 44 | 27 | 54 | 45 | 43 |
| Setting | PolicyIK on hardware | FlashSAC |
| Learner | ||
| Online transitions | 120,000 | |
| Batch size | 1,024 | 2,048 |
| Replay capacity | 120,000 (the whole run) | |
| Initial random actions | 200 | – |
| Updates begin after | 1,024 transitions | – |
| Controller | Formulation | Parameters |
|---|---|---|
| DLS | Damped least squares with global speed scaling | , |
| Resolved-rate QP | Damped least squares within the joint bounds | , |
| Kinematic MPC | Seven-step receding horizon (0.14 s) | , |
| Adapted OpenArm QP | OpenArm QP with measured-pose settling | Costs 12/1.5, damping 0.1 |
| Controller | Success | Reach (s) | Position (mm) | Orientation ( ∘ ) |
|---|---|---|---|---|
| Standard reaching | ||||
| DLS | 60/60 | 2.9 | 0.074 | 0.015 |
| QP | 60/60 | 2.0 | 0.094 | 0.018 |
| MPC | 60/60 | 2.3 | 0.085 | 0.016 |
| xArm built-in IK | 59/60 | 1.8 | 0.004 | 0.001 |
| PolicyIK (sim-trained) | 60/60 | 2.2 | 0.169 | 0.034 |
Inverse Kinematics
Inverse kinematics maps desired robot or articulated-body motions to joint configurations while handling constraints, redundancy, and multiple solutions.
See all 43 papers