IKPy
Pure-Python inverse kinematics library that builds chains straight from URDF
License
Apache-2.0
Overview
IKPy is a lightweight, pure-Python inverse kinematics library by Pierre Manceron. It parses kinematic chains directly from URDF files, solves forward and inverse kinematics with a numerical optimizer built on SciPy, and includes simple Matplotlib-based 3D visualization. Because it has no compiled dependencies it installs anywhere Python runs, which has made it a favourite for education, hobby arms and the Poppy humanoid ecosystem it originally grew out of.
IKPy models a robot as a Chain of links parsed from URDF (with helpers for DH-style manual definitions). Forward kinematics is a matrix chain; inverse kinematics runs as bounded least-squares optimization over joint values, supporting position and orientation targets, active-link masks and joint limits. The library ships plotting utilities that render chains and targets in Matplotlib 3D, and tutorials that go from a two-link arm to full robots like Baxter. It deliberately trades raw speed for portability and hackability: everything is NumPy/SciPy, there is no C extension to build, and a chain is a plain Python object you can subclass. That design made IKPy the kinematics layer of the Poppy open-source humanoid ecosystem and a common choice for teaching IK, quick prototyping, and driving hobby arms where a full MoveIt stack would be overkill.
Why it matters
IKPy is the standard 'IK in five lines' library of the Python robotics world: for a decade it has been the lowest-friction path from a URDF file to working inverse kinematics, used across education, the Poppy humanoid community and countless hobby arm projects.
Problem it solves
Full motion-planning stacks are heavy machinery when you just need joint angles for a target pose. IKPy gives any Python program URDF-accurate forward and inverse kinematics with a pip install — no ROS, no compiled solvers, no configuration ceremony.
Key takeaways
- Builds kinematic chains directly from URDF files (plus manual DH-style definition)
- Numerical IK with joint limits, active-link masks, position and orientation targets
- Pure Python on NumPy/SciPy — installs anywhere, no compiled dependencies
- Built-in Matplotlib 3D visualization of chains and targets
- Kinematics layer of the Poppy humanoid ecosystem; widely used in teaching
Who it is for
- Robotics students learning kinematics
- Hobby robot-arm builders
- Python developers scripting robot motion
- Educators building robotics coursework
Limitations
- Numerical optimization is slower than analytic or compiled IK solvers — not for high-rate control loops
- No collision checking or motion planning — joint solutions only
- Orientation-constrained IK can need tuning (initial positions, active links) to converge well