Skip to content

feat(hil): add bi_so_follower and bi_so_leader support for HIL data collection#3352

Open
wy-zong wants to merge 12 commits intohuggingface:mainfrom
wy-zong:feat/hil-bi-so-follower-support
Open

feat(hil): add bi_so_follower and bi_so_leader support for HIL data collection#3352
wy-zong wants to merge 12 commits intohuggingface:mainfrom
wy-zong:feat/hil-bi-so-follower-support

Conversation

@wy-zong
Copy link
Copy Markdown

@wy-zong wy-zong commented Apr 10, 2026

Type / Scope

  • Type: Feature
  • Scope: examples/hil

Summary / Motivation

The HIL data collection script (examples/hil/hil_data_collection.py) currently only registers a limited set of robot and
teleoperator types. Bimanual SO-ARM100 users (bi_so_follower / bi_so_leader) cannot use the HIL workflow because the
corresponding config classes are not imported, causing draccus to reject the --robot.type=bi_so_follower argument.

This PR adds the missing imports so that bi_so_follower and bi_so_leader are registered as valid choices.

Related issues

  • None

What changed

  • Added BiSOFollowerConfig import in examples/hil/hil_data_collection.py (registers bi_so_follower robot type)
  • Added BiSOLeaderConfig import in examples/hil/hil_data_collection.py (registers bi_so_leader teleoperator type)

How was this tested (or how to run locally)

  • Verified that --robot.type=bi_so_follower is accepted by draccus argument parser after the change.
    • Tested with bimanual SO-ARM100 hardware (SO-101) using the following command:

python /hil_data_collection.py --robot.type=bi_so_follower
--robot.left_arm_config.port=COM5 --robot.right_arm_config.port=COM8
--robot.id=bimanual_follower --teleop.type=bi_so_leader
--teleop.left_arm_config.port=COM4 --teleop.right_arm_config.port=COM9
--teleop.id=bimanual_leader --robot.left_arm_config.cameras='{"camera1": {"type": "opencv", "index_or_path": 0, "width": 640, "height": 480, "fps": 30}, "camera3": {"type": "opencv", "index_or_path": 1, "width": 640, "height": 480, "fps": 30}}'
--robot.right_arm_config.cameras='{"camera2": {"type": "opencv", "index_or_path": 2, "width": 640, "height": 480, "fps": 30}}' --policy.path=wuc1/bi_so101_flatten-and-fold-the-rag-0401-model
--dataset.repo_id=local/hil-rtc-dataset-PR --dataset.single_task="flatten and fold the rag"
--dataset.fps=30 --dataset.episode_time_s=1000
--dataset.num_episodes=50 --dataset.rename_map='{"observation.images.left_camera1": "observation.images.camera1", "observation.images.left_camera3": "observation.images.camera3", "observation.images.right_camera2": "observation.images.camera2"}'
--interpolation_multiplier=3 `
--dataset.push_to_hub=false

Checklist (required before merge)

  • Linting/formatting run (pre-commit run -a)
  • All tests pass locally (pytest)
  • Documentation updated
  • CI is green

Reviewer notes

  • Minimal two-line change — only adds imports to register existing config classes with draccus.
  • No new dependencies or breaking changes.

…ollection

Register BiSOFollowerConfig and BiSOLeaderConfig in the HIL script so
that bimanual SO-ARM100 robots can be used with hil_data_collection.py.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@github-actions github-actions Bot added the examples Issues related to the examples label Apr 10, 2026
pkooij
pkooij previously approved these changes Apr 14, 2026
Signed-off-by: wy-zong <wuc120@gmail.com>
@wy-zong wy-zong requested a review from pkooij April 20, 2026 13:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

examples Issues related to the examples

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants