# Teleoperators

A teleoperator produces actions for a robot to follow — a leader arm, a gamepad, a keyboard, a phone. All of
them implement the [`Teleoperator`] interface, so a recording script written against it works with any input
device.

See [Phone teleoperation](../phone_teleop) and [Isaac Teleop](../isaac_teleop) for setup guides, and
[Imitation Learning for Robots](../il_robots) for the recording workflow.

## Teleoperator

[[autodoc]] lerobot.teleoperators.Teleoperator
    - connect
    - disconnect
    - configure
    - calibrate
    - get_action
    - send_feedback
    - action_features
    - feedback_features
    - is_connected
    - is_calibrated

## TeleoperatorConfig

[[autodoc]] lerobot.teleoperators.TeleoperatorConfig

## make_teleoperator_from_config

[[autodoc]] lerobot.teleoperators.make_teleoperator_from_config

## SO-100 and SO-101 leaders

`SO100Leader` and `SO101Leader` are aliases of the same `SOLeader` class; the two arms differ in their
configuration, not their control code. `SO100LeaderConfig` and `SO101LeaderConfig` are likewise aliases of
`SOLeaderTeleopConfig`.

[[autodoc]] lerobot.teleoperators.so_leader.SOLeader
    - all
    - action_features
    - feedback_features
    - is_connected
    - is_calibrated

[[autodoc]] lerobot.teleoperators.so_leader.SOLeaderTeleopConfig

## KochLeader

[[autodoc]] lerobot.teleoperators.koch_leader.KochLeader
    - all
    - action_features
    - feedback_features
    - is_connected
    - is_calibrated

[[autodoc]] lerobot.teleoperators.koch_leader.KochLeaderConfig

## OmxLeader

[[autodoc]] lerobot.teleoperators.omx_leader.OmxLeader
    - all
    - action_features
    - feedback_features
    - is_connected
    - is_calibrated

[[autodoc]] lerobot.teleoperators.omx_leader.OmxLeaderConfig

## OpenArmLeader

CAN-based leader arm using Damiao motors.

[[autodoc]] lerobot.teleoperators.openarm_leader.OpenArmLeader
    - all
    - action_features
    - feedback_features
    - is_connected
    - is_calibrated

[[autodoc]] lerobot.teleoperators.openarm_leader.OpenArmLeaderConfig

## BiOpenArmLeader

A bimanual pair of `OpenArmLeader` arms.

[[autodoc]] lerobot.teleoperators.bi_openarm_leader.BiOpenArmLeader
    - all

[[autodoc]] lerobot.teleoperators.bi_openarm_leader.BiOpenArmLeaderConfig

## OpenArmMini

CAN-based leader arm using Damiao motors, a smaller/simpler OpenArm variant.

[[autodoc]] lerobot.teleoperators.openarm_mini.OpenArmMini
    - all
    - action_features
    - feedback_features
    - is_connected
    - is_calibrated

[[autodoc]] lerobot.teleoperators.openarm_mini.OpenArmMiniConfig

## BiOpenArmMini

A bimanual pair of `OpenArmMini` arms.

[[autodoc]] lerobot.teleoperators.bi_openarm_mini.BiOpenArmMini
    - all

[[autodoc]] lerobot.teleoperators.bi_openarm_mini.BiOpenArmMiniConfig

## HomunculusArm

A wearable exoskeleton arm read over a serial link.

[[autodoc]] lerobot.teleoperators.homunculus.HomunculusArm
    - all
    - action_features
    - feedback_features
    - is_connected
    - is_calibrated

[[autodoc]] lerobot.teleoperators.homunculus.HomunculusArmConfig

## HomunculusGlove

A wearable exoskeleton glove read over a serial link, remapped to HopeJR hand joints via
`homunculus_glove_to_hope_jr_hand`.

[[autodoc]] lerobot.teleoperators.homunculus.HomunculusGlove
    - all
    - action_features
    - feedback_features
    - is_connected
    - is_calibrated

[[autodoc]] lerobot.teleoperators.homunculus.HomunculusGloveConfig

[[autodoc]] lerobot.teleoperators.homunculus.homunculus_glove_to_hope_jr_hand

## RebotArm102Leader

[[autodoc]] lerobot.teleoperators.rebot_102_leader.RebotArm102Leader
    - all
    - action_features
    - feedback_features
    - is_connected
    - is_calibrated

[[autodoc]] lerobot.teleoperators.rebot_102_leader.RebotArm102LeaderTeleopConfig

## BiRebot102Leader

A bimanual pair of `RebotArm102Leader` arms.

[[autodoc]] lerobot.teleoperators.bi_rebot_102_leader.BiRebot102Leader
    - all

[[autodoc]] lerobot.teleoperators.bi_rebot_102_leader.BiRebot102LeaderConfig

## BiSOLeader

A bimanual pair of `SOLeader` arms.

[[autodoc]] lerobot.teleoperators.bi_so_leader.BiSOLeader
    - all

[[autodoc]] lerobot.teleoperators.bi_so_leader.BiSOLeaderConfig

## Phone

Reads pose and touch input from a phone app (iOS or Android).

[[autodoc]] lerobot.teleoperators.phone.Phone
    - all
    - action_features
    - feedback_features
    - is_connected
    - is_calibrated

[[autodoc]] lerobot.teleoperators.phone.PhoneConfig

## Keyboard

`KeyboardTeleop`, `KeyboardEndEffectorTeleop`, and `KeyboardRoverTeleop` read key-press events for manual
control, targeting joint-space, end-effector, or mobile-base actions respectively.

[[autodoc]] lerobot.teleoperators.keyboard.KeyboardTeleop
    - all
    - action_features
    - feedback_features
    - is_connected
    - is_calibrated

[[autodoc]] lerobot.teleoperators.keyboard.KeyboardTeleopConfig

[[autodoc]] lerobot.teleoperators.keyboard.KeyboardEndEffectorTeleop
    - all
    - action_features

[[autodoc]] lerobot.teleoperators.keyboard.KeyboardEndEffectorTeleopConfig

[[autodoc]] lerobot.teleoperators.keyboard.KeyboardRoverTeleop
    - all
    - action_features
    - is_calibrated

[[autodoc]] lerobot.teleoperators.keyboard.KeyboardRoverTeleopConfig

## GamepadTeleop

Reads joystick/button input from a gamepad via pygame.

[[autodoc]] lerobot.teleoperators.gamepad.GamepadTeleop
    - all
    - action_features
    - feedback_features
    - is_connected

[[autodoc]] lerobot.teleoperators.gamepad.GamepadTeleopConfig

## UnitreeG1Teleoperator

A wearable exoskeleton for teleoperating the Unitree G1 humanoid's arms, mapping exoskeleton joint angles to
G1 end-effector poses via forward/inverse kinematics.

[[autodoc]] lerobot.teleoperators.unitree_g1.UnitreeG1Teleoperator
    - all
    - is_connected
    - is_calibrated

[[autodoc]] lerobot.teleoperators.unitree_g1.UnitreeG1TeleoperatorConfig

[[autodoc]] lerobot.teleoperators.unitree_g1.ExoskeletonArm
    - all
    - is_connected
    - is_calibrated

[[autodoc]] lerobot.teleoperators.unitree_g1.ExoskeletonArmPortConfig

[[autodoc]] lerobot.teleoperators.unitree_g1.ExoskeletonIKHelper
    - all

[[autodoc]] lerobot.teleoperators.unitree_g1.ExoskeletonCalibration

[[autodoc]] lerobot.teleoperators.unitree_g1.ExoskeletonJointCalibration

## Reachy2Teleoperator

[[autodoc]] lerobot.teleoperators.reachy2_teleoperator.Reachy2Teleoperator
    - all
    - action_features
    - feedback_features
    - is_connected
    - is_calibrated

[[autodoc]] lerobot.teleoperators.reachy2_teleoperator.Reachy2TeleoperatorConfig
