# Телеоператоры

Телеоператор генерирует действия, которые выполняет робот, — это может быть ведущая рука, геймпад, клавиатура или телефон. Все они реализуют интерфейс `Teleoperator`, поэтому сценарий записи, написанный для этого интерфейса, работает с любым устройством ввода.

См. [Телеуправление с телефона](../phone_teleop) и [Isaac Teleop](../isaac_teleop) для руководств по настройке, а также [Imitation Learning for Robots](../il_robots) для рабочего процесса записи. Для устройств, поддерживаемых сообществом, но не входящих в основной набор, см. [Third-Party Robots & Teleoperators](../third_party_robots). Чтобы добавить собственный телеоператор, см. [Bring Your Own Hardware](../integrate_hardware).

## Телеоператор[[lerobot.teleoperators.Teleoperator]]

#### lerobot.teleoperators.Teleoperator[[lerobot.teleoperators.Teleoperator]]

```python
lerobot.teleoperators.Teleoperator(config: TeleoperatorConfig)
```

[Источник](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/teleoperators/teleoperator.py#L32)

**Параметры:**

config_class (RobotConfig) : Ожидаемый класс конфигурации для данного телеоператора.

name (str) : Уникальное имя, используемое для идентификации данного типа телеоператора.

Базовый абстрактный класс для всех устройств телеуправления, совместимых с LeRobot.

Этот класс предоставляет стандартизированный интерфейс для взаимодействия с физическими телеоператорами. Подклассы должны реализовать все абстрактные методы и свойства, чтобы быть пригодными для использования.

#### подключить[[lerobot.teleoperators.Teleoperator.connect]]

```python
connect(calibrate: bool = True)
```

[Источник](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/teleoperators/teleoperator.py#L125)

**Параметры:**

calibrate (bool) : Если True, автоматически калибрует телеоператора после подключения, если он не откалиброван или требует калибровки (зависит от аппаратной части).

Установите связь с телеоператором.

#### отключить[[lerobot.teleoperators.Teleoperator.disconnect]]

```python
disconnect()
```

[Источник](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/teleoperators/teleoperator.py#L224)

Отключитесь от телеоператора и выполните необходимую очистку.

#### настроить[[lerobot.teleoperators.Teleoperator.configure]]

```python
configure()
```

[Источник](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/teleoperators/teleoperator.py#L190)

Примените любую одноразовую или конфигурацию во время выполнения к телеоператору. Это может включать в себя настройку параметров двигателей, режимов управления или начального состояния.

#### калибровать[[lerobot.teleoperators.Teleoperator.calibrate]]

```python
calibrate()
```

[Источник](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/teleoperators/teleoperator.py#L142)

При необходимости откалибруйте телеоператора. Если это не требуется, операция не должна ничего делать.

Этот метод должен собирать все необходимые данные (например, смещения моторов) и соответствующим образом обновлять словарь :pyattr:`calibration`.

#### get_action[[lerobot.teleoperators.Teleoperator.get_action]]

```python
get_action()
```

[Источник](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/teleoperators/teleoperator.py#L198)

**Возвращает:** `RobotAction`

Плоский словарь, представляющий текущие действия телеоператора. Его структура должна соответствовать :pymeth:`observation_features`.

Получите текущее действие от телеоператора.

#### send_feedback[[lerobot.teleoperators.Teleoperator.send_feedback]]

```python
send_feedback(feedback: dict)
```

[Источник](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/teleoperators/teleoperator.py#L209)

**Параметры:**

feedback (dict[str, Any]) : Словарь, представляющий желаемую обратную связь. Его структура должна соответствовать :pymeth:`feedback_features`.

**Возвращает:** dict[str, Any]

Действие, фактически отправленное на моторы, может быть обрезано или изменено, например, из-за ограничений безопасности по скорости.

Отправьте команду действия обратной связи телеоператору.

#### action_features[[lerobot.teleoperators.Teleoperator.action_features]]

```python
action_features()
```

[Источник](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/teleoperators/teleoperator.py#L90)

Словарь, описывающий структуру и типы действий, генерируемых телеоператором. Его структура (ключи) должна соответствовать структуре данных, возвращаемых :pymeth:`get_action`. Значениями словаря должны быть типы значений, если это простые значения, например `float` для одиночного проприоцептивного значения (целевая позиция/скорость сустава)

Примечание: этот метод должен вызываться независимо от того, подключен ли робот или нет.

#### feedback_features[[lerobot.teleoperators.Teleoperator.feedback_features]]

```python
feedback_features()
```

[Источник](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/teleoperators/teleoperator.py#L103)

Словарь, описывающий структуру и типы действий обратной связи, ожидаемых роботом. Его структура (ключи) должна соответствовать структуре данных, передаваемых в :pymeth:`send_feedback`. Значения в словаре должны указывать тип значения, если это простое значение, например `float` для одиночного проприоцептивного значения (целевая позиция/скорость сустава)

Примечание: этот метод должен вызываться независимо от того, подключен ли робот или нет.

#### is_connected[[lerobot.teleoperators.Teleoperator.is_connected]]

```python
is_connected()
```

[Источник](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/teleoperators/teleoperator.py#L116)

Указывает, подключён ли телеоператор в данный момент. Если `False`, вызов :pymeth:`get_action` или :pymeth:`send_feedback` должен вызывать ошибку.

#### is_calibrated[[lerobot.teleoperators.Teleoperator.is_calibrated]]

```python
is_calibrated()
```

[Источник](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/teleoperators/teleoperator.py#L136)

Указывает, откалиброван ли телеоператор в данный момент. Если не применимо, должно всегда быть `True`

## TeleoperatorConfig[[lerobot.teleoperators.TeleoperatorConfig]]

#### lerobot.teleoperators.TeleoperatorConfig[[lerobot.teleoperators.TeleoperatorConfig]]

```python
lerobot.teleoperators.TeleoperatorConfig(id: str | None = None, calibration_dir: pathlib.Path | None = None)
```

[Источник](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/teleoperators/config.py#L23)

## make_teleoperator_from_config[[lerobot.teleoperators.make_teleoperator_from_config]]

#### lerobot.teleoperators.make_teleoperator_from_config[[lerobot.teleoperators.make_teleoperator_from_config]]

```python
lerobot.teleoperators.make_teleoperator_from_config(config: TeleoperatorConfig)
```

[Источник](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/teleoperators/utils.py#L36)

