Polymetis
AdvancedMeta's open-source real-time control framework for Franka arms, where you write controllers in PyTorch.
Polymetis is a robot control framework that Facebook AI Research (now part of Meta) open-sourced in its fairo repository, used mainly with Franka arms. You write controllers in PyTorch, often from building blocks in the bundled torchcontrol library such as impedance control and minimum-jerk trajectories. The client compiles the controller to TorchScript and sends it over gRPC to a server written in C++, which runs it in real time at 1 kHz. The server's other end talks to a hardware client built on libfranka, or to a PyBullet simulation, so the same code runs in simulation and on the real arm. Most newcomers meet it in the DROID code: DROID runs the Polymetis server on a small NUC with a real-time kernel wired directly to the robot, while teleoperation and policies run on another computer. The official repository has had no new commits since February 2023. The libfranka version must match the robot; the DROID docs build from source with 0.9.0 for Panda and 0.10.0 for FR3.
ExampleOn a GPU workstation, connect with RobotInterface(ip_address=<NUC IP>), call start_cartesian_impedance() to start an impedance controller, then keep passing the policy's target poses to update_desired_ee_pose(); the server on the NUC tracks them compliantly at 1 kHz.
- Related
- libfranka / Franka Control Interface (FCI) · Franka Emika Panda / Franka Research 3 · TorchScript (torch.jit) / LibTorch · gRPC Remote Procedure Calls · PREEMPT_RT · DROID (Distributed Robot Interaction Dataset) · Intel NUC (Next Unit of Computing) · zerorpc
- Sources
- Polymetis documentation: Overview
facebookresearch/fairo: polymetis (GitHub)
DROID Docs: Running Application on Host - As of
- 2026-10