feat: add double SO101 follower/leader support throughout the codebase

- Import and expose `so101_follower_double` (and corresponding leader) in examples, async inference, and scripts.
- Extend `SUPPORTED_ROBOTS` to include `so101_follower_double`.
- Update `make_robot_from_config` to handle the new robot type.
- Adjust calibration, joint limit discovery, recording, and replay scripts to use the double variant where appropriate. This enhances compatibility with dual‑arm configurations.
This commit is contained in:
2025-12-11 21:34:12 +08:00
parent 9f8680e8e7
commit a5518a6781
11 changed files with 19 additions and 2 deletions

View File

@@ -43,6 +43,7 @@ from lerobot.robots import ( # noqa: F401
make_robot_from_config,
so100_follower,
so101_follower,
so101_follower_double,
)
from lerobot.utils.constants import ACTION
from lerobot.utils.robot_utils import precise_sleep

View File

@@ -97,6 +97,7 @@ from lerobot.robots import ( # noqa: F401
koch_follower,
so100_follower,
so101_follower,
so101_follower_double,
)
from lerobot.robots.utils import make_robot_from_config
from lerobot.utils.constants import OBS_IMAGES

View File

@@ -26,4 +26,4 @@ DEFAULT_OBS_QUEUE_TIMEOUT = 2
SUPPORTED_POLICIES = ["act", "smolvla", "diffusion", "tdmpc", "vqbet", "pi0", "pi05"]
# TODO: Add all other robots
SUPPORTED_ROBOTS = ["so100_follower", "so101_follower", "bi_so100_follower"]
SUPPORTED_ROBOTS = ["so100_follower", "so101_follower", "so101_follower_double", "bi_so100_follower"]

View File

@@ -56,6 +56,7 @@ from lerobot.robots import ( # noqa: F401
make_robot_from_config,
so100_follower,
so101_follower,
so101_follower_double,
)
from lerobot.transport import (
services_pb2, # type: ignore

View File

@@ -36,6 +36,10 @@ def make_robot_from_config(config: RobotConfig) -> Robot:
from .so101_follower import SO101Follower
return SO101Follower(config)
elif config.type == "so101_follower_double":
from .so101_follower_double import SO101FollowerDouble
return SO101FollowerDouble(config)
elif config.type == "lekiwi":
from .lekiwi import LeKiwi

View File

@@ -42,6 +42,7 @@ from lerobot.robots import ( # noqa: F401
make_robot_from_config,
so100_follower,
so101_follower,
so101_follower_double,
)
from lerobot.teleoperators import ( # noqa: F401
Teleoperator,
@@ -50,7 +51,7 @@ from lerobot.teleoperators import ( # noqa: F401
koch_leader,
make_teleoperator_from_config,
so100_leader,
so101_leader,
so101_leader_double,
)
from lerobot.utils.import_utils import register_third_party_plugins
from lerobot.utils.utils import init_logging

View File

@@ -48,6 +48,7 @@ from lerobot.robots import ( # noqa: F401
make_robot_from_config,
so100_follower,
so101_follower,
so101_follower_double
)
from lerobot.teleoperators import ( # noqa: F401
TeleoperatorConfig,
@@ -56,6 +57,7 @@ from lerobot.teleoperators import ( # noqa: F401
make_teleoperator_from_config,
so100_leader,
so101_leader,
so101_leader_double
)
from lerobot.utils.robot_utils import precise_sleep

View File

@@ -99,6 +99,7 @@ from lerobot.robots import ( # noqa: F401
make_robot_from_config,
so100_follower,
so101_follower,
so101_follower_double
)
from lerobot.teleoperators import ( # noqa: F401
Teleoperator,
@@ -109,6 +110,7 @@ from lerobot.teleoperators import ( # noqa: F401
make_teleoperator_from_config,
so100_leader,
so101_leader,
so101_leader_double
)
from lerobot.teleoperators.keyboard.teleop_keyboard import KeyboardTeleop
from lerobot.utils.constants import ACTION, OBS_STR

View File

@@ -60,6 +60,7 @@ from lerobot.robots import ( # noqa: F401
make_robot_from_config,
so100_follower,
so101_follower,
so101_follower_double
)
from lerobot.utils.constants import ACTION
from lerobot.utils.import_utils import register_third_party_plugins

View File

@@ -35,6 +35,7 @@ from lerobot.robots import ( # noqa: F401
make_robot_from_config,
so100_follower,
so101_follower,
so101_follower_double
)
from lerobot.teleoperators import ( # noqa: F401
TeleoperatorConfig,
@@ -42,6 +43,7 @@ from lerobot.teleoperators import ( # noqa: F401
make_teleoperator_from_config,
so100_leader,
so101_leader,
so101_leader_double
)
COMPATIBLE_DEVICES = [

View File

@@ -77,6 +77,7 @@ from lerobot.robots import ( # noqa: F401
make_robot_from_config,
so100_follower,
so101_follower,
so101_follower_double
)
from lerobot.teleoperators import ( # noqa: F401
Teleoperator,
@@ -89,6 +90,7 @@ from lerobot.teleoperators import ( # noqa: F401
make_teleoperator_from_config,
so100_leader,
so101_leader,
so101_leader_double
)
from lerobot.utils.import_utils import register_third_party_plugins
from lerobot.utils.robot_utils import precise_sleep