This repository contains the code for setting up your DROID robot platform for Franka Research 3 (FR3) robots and using it to collect teleoperated demonstration data.
Originally designed for Panda robots using polymetis, this fork has been adapted for FR3 with support for the modern Franky SDK.
[Original DROID Homepage] [DROID Dataset] [Paper]
- Franka Research 3 robot with control desk connected
- Zed camera for visual data collection
- Robotiq 2F gripper (optional, for grasping operations)
- NUC PC (for robot control) - Ubuntu 22.04
- Laptop (for teleoperation) - Ubuntu 22.04
- Python 3.10+
- Franky SDK (
pip install franky-control) - pyrobotiqgripper (for Robotiq gripper control)
- dm-control, mujoco, pybullet (for IK solver)
Configure your environment in droid/misc/parameters.py or via system environment variables:
export ROBOT_IP=172.16.0.3 # FR3 robot IP address
export NUC_IP=172.16.0.2 # NUC control PC IP
export LAPTOP_IP=172.16.0.1 # Laptop IP
export ROBOT_TYPE=fr3 # Robot typeOn the NUC control PC:
conda activate base
cd scripts/server
./launch_server.shOn the laptop:
# Use the DROID client to connect to the robot serverFor more details on the teleoperation interface, see the original DROID documentation.
| Component | Original (Panda) | FR3 Version |
|---|---|---|
| Robot Control | polymetis (USB/PCIe) | Franky (TCP/IP) |
| OS | Ubuntu 18.04 | Ubuntu 22.04 |
| Python | 3.7 | 3.10 |
| Gripper | Franka gripper | Robotiq 2F (pyrobotiqgripper) |
- FrankyRobot (
droid/franka/franky_robot.py) - Main robot control class using Franky SDK - IK enhancements -
cartesian_position_to_joint_positionfor direct IK solving - Camera improvements - Skip unavailable cameras during initialization
For Robotiq gripper control, set the serial port:
export GRIPPER_COM_PORT=/dev/ttyUSB0See droid/misc/parameters.py for all configurable parameters.
Dockerfiles are provided for both NUC and laptop environments. See:
.docker/nuc/Dockerfile.nuc- NUC control PC image.docker/laptop/Dockerfile.laptop- Laptop teleop image
Use the provided setup scripts:
scripts/setup/nuc_setup.sh- Setup NUC environmentscripts/setup/laptop_setup.sh- Setup laptop environment
Robot connection issues:
- Verify
ROBOT_IPis correct and the robot is accessible - Check firewall settings allow TCP connections on port 4242
Gripper not responding:
- Confirm
GRIPPER_COM_PORTis correct - Verify Robotiq gripper is powered on and connected
Camera not detected:
- Check Zed SDK installation on laptop
- Run
zed_camera.pydirectly to see which cameras are available
For more details, see docs/setup_records/ for our setup experience.
