Software Setup
This setup is split by machine. Currently we are using 3 computers. Keep OpenPI policy dependencies separate from DROID robot-control dependencies.
4090 Workstation: OpenPI
cd /home/kindred/Desktop/repo/openpi
uv sync
GIT_LFS_SKIP_SMUDGE=1 uv pip install -e .
The policy server is started from this repo:
uv run scripts/serve_policy.py \
--port=8000 \
policy:checkpoint \
--policy.config=pi05_droid \
--policy.dir=gs://openpi-assets/checkpoints/pi05_droid
For a fine-tuned checkpoint, use the fine-tuning config and local checkpoint directory:
uv run scripts/serve_policy.py \
--port=8000 \
policy:checkpoint \
--policy.config=pi05_droid_finetune \
--policy.dir=/path/to/checkpoint_step
Control Laptop: DROID + OpenPI Client
Install the lightweight OpenPI client into the DROID environment:
conda activate droid
cd /home/kindred/Desktop/repo/openpi/packages/openpi-client
pip install -e .
pip install tyro
The control laptop uses the DROID checkout:
cd /home/kindred/Desktop/repo/droid
Key scripts:
| Script | Purpose |
|---|---|
scripts/collect_openpi_realsense.py | Collect OpenPI-compatible RealSense DROID demonstrations. |
scripts/main.py | Run VLA policy rollouts against the 4090 policy server. |
scripts/tests/check_nuc_control.py | Check laptop to NUC to Franka communication. |
NUC: DROID Low-level Server
On the NUC:
ssh hcilab@192.168.4.4
cd /home/hcilab/Desktop/github/droid
bash scripts/server/launch_server.sh
The server binds tcp://0.0.0.0:4242. The control laptop connects through DROID ServerInterface.
Hugging Face CLI
Use Hugging Face as the lab dataset registry:
python -m pip install -U "huggingface_hub[cli]"
hf auth login
hf auth whoami
For this lab workflow, do not put credentials in submit files or committed scripts.