# Téléopérateurs

Un téléopérateur génère des actions pour qu'un robot les suive — un bras maître, une manette, un clavier, un téléphone. Tous implémentent l'interface `Teleoperator`, de sorte qu'un script d'enregistrement écrit pour cette interface fonctionne avec n'importe quel périphérique d'entrée.

Consultez [Phone teleoperation](../phone_teleop) et [Isaac Teleop](../isaac_teleop) pour les guides de configuration, et [Imitation Learning for Robots](../il_robots) pour le flux de travail d’enregistrement. Pour les appareils maintenus par la communauté en dehors du jeu de base, consultez [Third-Party Robots & Teleoperators](../third_party_robots). Pour ajouter votre propre téléopérateur, consultez [Bring Your Own Hardware](../integrate_hardware).

## Téléopérateur[[lerobot.teleoperators.Teleoperator]]

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

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

[Source](https://github.com/huggingface/lerobot/blob/main/src/lerobot/teleoperators/teleoperator.py#L32)

**Paramètres :**

config_class (RobotConfig) : La classe de configuration attendue pour ce téléopérateur.

name (str) : Le nom unique utilisé pour identifier ce type de téléopérateur.

Classe abstraite de base pour tous les périphériques de téléopération compatibles avec LeRobot.

Cette classe fournit une interface standardisée pour interagir avec des téléopérateurs physiques. Les sous-classes doivent implémenter toutes les méthodes et propriétés abstraites pour être utilisables.

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

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

[Source](https://github.com/huggingface/lerobot/blob/main/src/lerobot/teleoperators/teleoperator.py#L125)

**Paramètres :**

calibrate (bool) : Si True, calibre automatiquement le téléopérateur après la connexion s'il n'est pas calibré ou a besoin d'un recalibrage (dépendant du matériel).

Établir la communication avec le téléopérateur.

#### déconnecter[[lerobot.teleoperators.Teleoperator.disconnect]]

```python
disconnect()
```

[Source](https://github.com/huggingface/lerobot/blob/main/src/lerobot/teleoperators/teleoperator.py#L224)

Déconnectez-vous du téléopérateur et effectuez le nettoyage nécessaire.

#### configurer[[lerobot.teleoperators.Teleoperator.configure]]

```python
configure()
```

[Source](https://github.com/huggingface/lerobot/blob/main/src/lerobot/teleoperators/teleoperator.py#L190)

Appliquez toute configuration à usage unique ou d'exécution au téléopérateur. Cela peut inclure la définition des paramètres des moteurs, des modes de contrôle ou de l'état initial.

#### calibrer[[lerobot.teleoperators.Teleoperator.calibrate]]

```python
calibrate()
```

[Source](https://github.com/huggingface/lerobot/blob/main/src/lerobot/teleoperators/teleoperator.py#L142)

Calibrez le téléopérateur le cas échéant. Sinon, cette opération ne doit rien faire.

Cette méthode doit collecter les données nécessaires (par exemple, les décalages moteurs) et mettre à jour le dictionnaire :pyattr:`calibration` en conséquence.

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

```python
get_action()
```

[Source](https://github.com/huggingface/lerobot/blob/main/src/lerobot/teleoperators/teleoperator.py#L198)

**Retourne :** `RobotAction`

Un dictionnaire plat représentant les actions actuelles du téléopérateur. Sa structure doit correspondre à :pymeth:`observation_features`.

Récupérer l'action actuelle depuis le téléopérateur.

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

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

[Source](https://github.com/huggingface/lerobot/blob/main/src/lerobot/teleoperators/teleoperator.py#L209)

**Paramètres :**

feedback (dict[str, Any]) : Dictionnaire représentant le retour d'information souhaité. Sa structure doit correspondre à :pymeth:`feedback_features`.

**Retourne :** dict[str, Any]

L'action réellement envoyée aux moteurs, potentiellement tronquée ou modifiée, par exemple par des limites de sécurité sur la vitesse.

Envoyer une commande d'action de retour d'information au téléopérateur.

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

```python
action_features()
```

[Source](https://github.com/huggingface/lerobot/blob/main/src/lerobot/teleoperators/teleoperator.py#L90)

Un dictionnaire décrivant la structure et les types des actions produites par le téléopérateur. Sa structure (clés) doit correspondre à celle de ce qui est renvoyé par :pymeth:`get_action`. Les valeurs du dictionnaire doivent être le type de la valeur s'il s'agit d'une valeur simple, par exemple `float` pour une valeur proprioceptive unique (position/vitesse cible d'une articulation)

Note : cette propriété doit pouvoir être appelée, que le robot soit connecté ou non.

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

```python
feedback_features()
```

[Source](https://github.com/huggingface/lerobot/blob/main/src/lerobot/teleoperators/teleoperator.py#L103)

Un dictionnaire décrivant la structure et les types des actions de retour d'information attendues par le robot. Sa structure (clés) doit correspondre à celle de ce qui est transmis à :pymeth:`send_feedback`. Les valeurs du dictionnaire doivent être le type de la valeur s'il s'agit d'une valeur simple, par exemple `float` pour une valeur proprioceptive unique (position/vitesse cible d'une articulation)

Note : cette propriété doit pouvoir être appelée, que le robot soit connecté ou non.

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

```python
is_connected()
```

[Source](https://github.com/huggingface/lerobot/blob/main/src/lerobot/teleoperators/teleoperator.py#L116)

Indique si le téléopérateur est actuellement connecté ou non. Si `False`, l'appel de :pymeth:`get_action` ou :pymeth:`send_feedback` doit lever une erreur.

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

```python
is_calibrated()
```

[Source](https://github.com/huggingface/lerobot/blob/main/src/lerobot/teleoperators/teleoperator.py#L136)

Indique si le téléopérateur est actuellement calibré ou non. Doit toujours être `True` si non applicable

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

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

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

[Source](https://github.com/huggingface/lerobot/blob/main/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)
```

[Source](https://github.com/huggingface/lerobot/blob/main/src/lerobot/teleoperators/utils.py#L36)

