fr3-stack
Low-latency, ROS-free control stack for the Franka Research 3. C++ daemon on the NUC (libfranka, 1 kHz); Python client over ZMQ + Cap'n Proto.
Build the docs locally:
pip install mkdocs-material mkdocs serve
๐ Docs ยท Quickstart
Install
# NUC Side ./fr3-stack build ./fr3-stack up # Workstation pip install -e .
Hello world
import time from fr3_stack import Robot pos, quat = [0.5, 0.0, 0.4], [0, 0, 0, 1] with Robot("nuc.local") as robot: # 1. large distance movement robot.send_move_to(pos, quat, run_time=2.0) time.sleep(2.0) # 2. cartesian control for policy robot.send_cartesian_impedance( target_pos = pos, target_quat_xyzw = quat, ) # 3. hybrid force-position robot.send_hybrid_force_position( target_pos = pos, target_quat_xyzw = quat, target_force = [0, 0, -5, 0, 0, 0], S = [1, 1, 0, 1, 1, 1], # Z = force, rest = position )
Use RobotAgent for policy loops (reset - observe - step), or Robot for
admittance / hybrid / joint impedance.
Controllers
| Controller | What it does |
|---|---|
idle |
hand-guidable: gravity comp + inertia-aware per-joint damping + optional Coulomb-friction comp |
cartesian_impedance |
spring/damper at the EE in base frame ( |