TimSchneider42/franky
High-Level Control Library for Franka Robots with Python and C++ Support
What it solves
Controlling Franka robots typically requires strict real-time programming at 1 kHz, which is difficult to achieve in non-real-time environments like Python. franky removes this barrier by providing a high-level control interface that handles the real-time requirements internally, allowing users to control robots without needing ROS or complex real-time setups.
How it works
Instead of requiring low-level commands, the library accepts high-level position or velocity targets. It uses the Ruckig library to plan time-optimal trajectories in real-time, respecting limits for velocity, acceleration, and jerk. It also includes a reaction system to handle unexpected events (like environmental contact) by updating motion commands dynamically and allows for the preemption of motions to re-plan trajectories on the fly.
Who it’s for
Developers and researchers working with Franka robots who want a simpler way to implement robot control using Python or C++ without the overhead of ROS or the complexity of low-level real-time programming.
Highlights
- Multi-modal Control: Supports Cartesian and joint position/velocity control, as well as direct torque and impedance control.
- No ROS Required: Can be installed via pip and used directly in Python.
- Reactive System: Ability to define real-time reactions to unexpected events and use non-blocking callbacks for monitoring.
- Full API Access: Provides Python access to most of the
libfrankaAPI, including gripper control and robot state reading. - Simulation Support: Compatible with
franky-simfor testing code before deploying to physical hardware.
Related
- Project
- Project
- Project
- Project
- Project