Embodied AI Glossary中文

FrankaPy (franka-interface + frankapy)

FrankaPyAdvanced

CMU's Franka control stack: a C++ side does real-time control, a Python side sends skills over ROS.

FrankaPy is a Franka control stack open-sourced by Oliver Kroemer's group (IAM Lab) at Carnegie Mellon University, and it comes in two halves. franka-interface, written in C++, runs on the Control PC, the real-time-kernel machine wired to the robot, and drives the arm at 1 kHz through libfranka; the Python library frankapy can run on any computer on the same ROS network. Motions are packaged as skills, each combining a trajectory generator, a feedback controller and a termination handler, for example "follow a minimum-jerk trajectory under Cartesian impedance to a pose and stop on arrival" or "stop once the contact force passes a threshold." Python calls such as goto_pose serialize the skill parameters with Protobuf and send them to the Control PC as a ROS action, where shared memory hands them to the real-time loop. Sensor data, such as object poses estimated from a camera, can also be streamed over ROS topics into the low-level controller. It depends on ROS 1 (Melodic / Noetic), and its documentation says ROS 2 is not supported yet.

ExampleOn a workstation, create fa = FrankaArm() and call fa.goto_pose(target_pose, duration=5); the Control PC moves there with the default minimum-jerk trajectory and Cartesian impedance. For continuous tracking, pass dynamic=True and publish new targets on a ROS topic at 50 Hz, as the official example run_dynamic_pose.py does.

Also called
franka-interface, frankapy
Related
libfranka / Franka Control Interface (FCI) · Robot Operating System · Protocol Buffers · Cartesian Impedance Control · Minimum-Jerk Trajectory · PREEMPT_RT
Sources
iamlab-cmu/frankapy (GitHub)
FrankaPy documentation
A Modular Robotic Arm Control Stack for Research: Franka-Interface and FrankaPy (arXiv 2011.02398)
As of
2026-10

See it in the full glossary →