Open Source Robotics

A curated collection of high-quality open source robotics projects, tools, and software to propel the robotics community forward.

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

This website requires JavaScript to function properly. Please enable JavaScript to explore our collection of open source robotics projects.