panda-py
AdvancedA Franka Python library from TUM that wraps libfranka and ships ready-made controllers.
panda-py is a Python library developed by Jean Elsner at the Munich Institute of Robotics and Machine Intelligence (MIRMI), Technical University of Munich, described in a tutorial-style paper in SoftwareX in 2023. It is named after Panda, Franka's earlier model, but also works with FR3. It binds almost all of libfranka's low-level API to Python and adds what people usually need: analytical inverse kinematics, moves to a given joint configuration or end-effector pose, 1 kHz state logging, and ready-made controllers for Cartesian impedance, joint position, force and more. Controllers run in the background without being held back by Python's global interpreter lock (GIL), meeting libfranka's real-time requirements while you update their targets from Python at any time. It also ships a Desk client that can unlock the joints and activate FCI from code. Note that pip install panda-python bundles libfranka 0.9.2, which only works with Panda; for FR3, download the matching package for your robot's system version from the GitHub releases page.
ExampleAfter preparing the robot with desk.unlock() and desk.activate_fci(), start controllers.CartesianImpedance() and, inside a 1 kHz panda.create_context loop, call ctrl.set_control() each step with a new target pose to sweep the end effector back and forth along a sine wave.
- Also called
- panda-python, panda_py
- Related
- libfranka / Franka Control Interface (FCI) · Franka Emika Panda / Franka Research 3 · Cartesian Impedance Control · Analytical Inverse Kinematics · Franka Desk · franky
- Sources
- JeanElsner/panda-py (GitHub)
Taming the Panda with Python (Elsner, SoftwareX 2023; arXiv 2307.07633)
panda-py documentation: panda_py package - As of
- 2026-10