LeRobot documentation

Robots

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Robots

Chaque robot dans LeRobot implémente l'interface Robot : connect, read an observation, send an action, disconnect. Écrire une politique ou un script d'enregistrement en s'appuyant sur cette interface garantit qu'il fonctionne avec n'importe quel bras pris en charge, sans modification.

Cette page est la référence générée. Pour le câblage, l'étalonnage et les instructions de première exécution, commencez par les guides matériel — SO-101, LeKiwi, Hope Jr, Reachy 2, OpenArm — ou Imitation Learning for Robots pour le flux de travail de bout en bout. Pour les robots maintenus par la communauté en dehors du jeu de base, consultez Third-Party Robots & Teleoperators. Pour ajouter votre propre robot, consultez Bring Your Own Hardware.

Robot

La classe de base abstraite. Les sous-classes implémentent chaque méthode ci-dessous ; le contrat décrit ici est ce sur quoi une politique ou une boucle d’enregistrement peut s’appuyer.

classe lerobot.robots.Robot

< >

( config: RobotConfig )

Paramètres

  • config_class (RobotConfig) — La classe de configuration attendue pour ce robot.
  • name (str) — Le nom unique du robot utilisé pour identifier ce type de robot.

Classe abstraite de base pour tous les robots compatibles LeRobot.

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

connect

< >

( calibrate: bool = True )

Paramètres

  • calibrate (bool) — Si True, calibre automatiquement le robot après la connexion s'il n'est pas calibré ou a besoin d'un étalonnage (dépendant du matériel).

Établir la communication avec le robot.

déconnecter

< >

( )

Déconnectez-vous du robot et effectuez le nettoyage nécessaire.

configurer

< >

( )

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

calibrer

< >

( )

Calibrez le robot 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_observation

< >

( ) → RobotObservation

Retourne

RobotObservation

Un dictionnaire plat représentant l'état sensoriel actuel du robot. Sa structure doit correspondre à :pymeth:observation_features.

Récupérer l'observation actuelle du robot.

send_action

< >

( action: dict ) → RobotAction

Paramètres

  • action (RobotAction) — Dictionnaire représentant l’action souhaitée. Sa structure doit correspondre à :pymeth:action_features.

Retourne

RobotAction

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 au robot.

observation_features

< >

( )

Un dictionnaire décrivant la structure et les types des observations produites par le robot. Sa structure (clés) doit correspondre à celle de ce qui est renvoyé par :pymeth:get_observation. 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 d'une articulation)
  • Un tuple représentant la forme s'il s'agit d'une valeur de type tableau, par exemple (height, width, channel) pour les images

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

action_features

< >

( )

Un dictionnaire décrivant la structure et les types des actions attendues par le robot. Sa structure (clés) doit correspondre à celle de ce qui est transmis à :pymeth:send_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.

is_connected

< >

( )

Indique si le robot est actuellement connecté ou non. Si False, l'appel de :pymeth:get_observation ou :pymeth:send_action doit lever une erreur.

is_calibrated

< >

( )

Indique si le robot est actuellement calibré ou non. Doit toujours être True si non applicable

RobotConfig

classe lerobot.robots.RobotConfig

< >

( id: str | None = Nonecalibration_dir: pathlib.Path | None = None )

make_robot_from_config

lerobot.robots.make_robot_from_config

< >

( config: RobotConfig )

Les adeptes du SO-100 et du SO-101

SO100Follower et SO101Follower sont des alias de la même classe SOFollower ; les deux bras diffèrent par leur configuration, et non par leur code de contrôle. SO100FollowerConfig et SO101FollowerConfig sont de même des alias de SOFollowerRobotConfig.

classe lerobot.robots.so_follower.SOFollower

< >

( config: SOFollowerRobotConfig )

Base générique de suiveur SO implémentant les fonctionnalités communes pour SO-100/101/10X. Conçue pour être sous-classée avec un config_class et un name spécifiques au modèle de matériel.

connect

< >

( calibrate: bool = True )

Nous supposons qu'au moment de la connexion, le bras est en position de repos et que le couple peut être désactivé en toute sécurité pour exécuter l'étalonnage.

send_action

< >

( action: dict ) → RobotAction

Retourne

RobotAction

l'action envoyée aux moteurs, potentiellement tronquée.

Lève

RobotDeviceNotConnectedError

  • RobotDeviceNotConnectedError — si le robot n'est pas connecté.

Commander le bras pour se déplacer vers une configuration articulaire cible.

L'amplitude relative de l'action peut être rognée en fonction du paramètre de configuration max_relative_target. Dans ce cas, l'action envoyée diffère de l'action d'origine. Ainsi, cette fonction renvoie toujours l'action réellement envoyée.

classe lerobot.robots.so_follower.SOFollowerRobotConfig

< >

( port: strdisable_torque_on_disconnect: bool = Truemax_relative_target: float | dict[str, float] | None = Nonecameras: dict = <factory>use_degrees: bool = Trueposition_p_coefficient: int = 16position_i_coefficient: int = 0position_d_coefficient: int = 32num_read_retries: int = 2id: str | None = Nonecalibration_dir: pathlib.Path | None = None )

BiSOFollower

Deux adeptes de SO pilotés comme un robot bimane unique.

classe lerobot.robots.bi_so_follower.BiSOFollower

< >

( config: BiSOFollowerConfig )

Bras suiveurs SO bimanuels conçus par TheRobotStudio

classe lerobot.robots.bi_so_follower.BiSOFollowerConfig

< >

( left_arm_config: SOFollowerConfigright_arm_config: SOFollowerConfigcameras: dict = <factory>id: str | None = Nonecalibration_dir: pathlib.Path | None = None )

Classe de configuration pour les robots Bi SO Follower.

KochFollower

classe lerobot.robots.koch_follower.KochFollower

< >

( config: KochFollowerConfig )

connect

< >

( calibrate: bool = True )

Nous supposons qu'au moment de la connexion, le bras est en position de repos et que le couple peut être désactivé en toute sécurité pour exécuter l'étalonnage.

send_action

< >

( action: dict ) → RobotAction

Paramètres

  • action (RobotAction) — Les positions cibles pour les moteurs.

Retourne

RobotAction

L'action envoyée aux moteurs, potentiellement tronquée.

Commander le bras pour se déplacer vers une configuration articulaire cible.

L'amplitude relative de l'action peut être rognée en fonction du paramètre de configuration max_relative_target. Dans ce cas, l'action envoyée diffère de l'action d'origine. Ainsi, cette fonction renvoie toujours l'action réellement envoyée.

classe lerobot.robots.koch_follower.KochFollowerConfig

< >

( port: strdisable_torque_on_disconnect: bool = Truemax_relative_target: float | dict[str, float] | None = Nonecameras: dict = <factory>use_degrees: bool = Falseid: str | None = Nonecalibration_dir: pathlib.Path | None = None )

LeKiwi

LeKiwi s’exécute directement sur le robot. LeKiwiClient est le proxy côté hôte qui communique avec lui via le réseau et expose la même interface Robot.

classe lerobot.robots.lekiwi.LeKiwi

< >

( config: LeKiwiConfig )

Le robot comprend une base mobile à trois roues omni et un bras suiveur distant. Le bras leader est connecté localement (sur le portable) et ses positions articulaires sont enregistrées puis transmises au bras suiveur distant (après application d'une limite de sécurité). En parallèle, la téléopération au clavier est utilisée pour générer des commandes de vitesse brutes pour les roues.

send_action

< >

( action: dict ) → RobotAction

Retourne

RobotAction

l'action envoyée aux moteurs, potentiellement tronquée.

Lève

RobotDeviceNotConnectedError

  • RobotDeviceNotConnectedError — si le robot n'est pas connecté.

Commandez lekiwi pour qu'il se déplace vers une configuration articulaire cible.

L'amplitude relative de l'action peut être rognée en fonction du paramètre de configuration max_relative_target. Dans ce cas, l'action envoyée diffère de l'action d'origine. Ainsi, cette fonction renvoie toujours l'action réellement envoyée.

classe lerobot.robots.lekiwi.LeKiwiConfig

< >

( port: str = '/dev/ttyACM0'disable_torque_on_disconnect: bool = Truemax_relative_target: float | dict[str, float] | None = Nonecameras: dict = <factory>use_degrees: bool = Truenum_read_retries: int = 2id: str | None = Nonecalibration_dir: pathlib.Path | None = None )

classe lerobot.robots.lekiwi.LeKiwiClient

< >

( config: LeKiwiClientConfig )

connect

< >

( )

Établit des sockets ZMQ avec le robot mobile distant

déconnecter

< >

( )

Nettoie les communications ZMQ

get_observation

< >

( )

Capture les observations du robot distant : positions actuelles des bras suiveurs, vitesses actuelles des roues (converties en vitesses dans le repère du corps : x, y, theta), et une image de la caméra. Reçoit via ZMQ, convertit en vitesses dans le

send_action

< >

( action: dict ) → np.ndarray

Paramètres

  • action (RobotAction) — tableau contenant les positions cibles pour les moteurs.

Retourne

np.ndarray

l'action envoyée aux moteurs, potentiellement tronquée.

Lève

RobotDeviceNotConnectedError

  • RobotDeviceNotConnectedError — si le robot n'est pas connecté.

Commandez lekiwi pour se déplacer vers une configuration articulaire cible. Traduit vers l'espace moteur + envoie via ZMQ

classe lerobot.robots.lekiwi.LeKiwiClientConfig

< >

( remote_ip: strport_zmq_cmd: int = 5555port_zmq_observations: int = 5556teleop_keys: dict = <factory>cameras: dict = <factory>polling_timeout_ms: int = 15connect_timeout_s: int = 5id: str | None = Nonecalibration_dir: pathlib.Path | None = None )

OpenArmFollower

classe lerobot.robots.openarm_follower.OpenArmFollower

< >

( config: OpenArmFollowerConfig )

Robot suiveur OpenArms qui utilise la communication par bus CAN pour contrôler un bras à 7 degrés de liberté avec une pince. Le bras utilise des moteurs Damiao en mode de contrôle MIT.

calibrer

< >

( )

Exécuter la procédure de calibration pour le robot OpenArms.

La procédure de calibration :

  1. Désactiver le couple
  2. Demander à l'utilisateur de positionner les bras en position suspendue avec les pinces fermées
  3. Définir ceci comme position zéro
  4. Enregistrer l'amplitude de mouvement de chaque articulation
  5. Enregistrer l'étalonnage

configurer

< >

( )

Configurez les moteurs avec les paramètres appropriés.

connect

< >

( calibrate: bool = True )

Connectez-vous au robot et, le cas échéant, effectuez une calibration.

Nous supposons qu'au moment de la connexion, les bras sont dans une position de repos sûre, et que le couple peut être désactivé en toute sécurité pour effectuer une calibration si nécessaire.

déconnecter

< >

( )

Déconnectez-vous du robot.

get_observation

< >

( )

Obtenir l'observation actuelle du robot, y compris la position, la vitesse et le couple.

Lit tous les états des moteurs (pos/vel/torque) dans un seul cycle de rafraîchissement CAN au lieu de 3 lectures séparées.

send_action

< >

( action: dictcustom_kp: dict[str, float] | None = Nonecustom_kd: dict[str, float] | None = None )

Paramètres

  • action — Dictionnaire contenant les positions des moteurs (par exemple, “joint_1.pos”, “joint_2.pos”)
  • custom_kp — Gains kp personnalisés par moteur (facultatif) (par ex. {“joint_1”: 120.0, “joint_2”: 150.0})
  • custom_kd — Gains kd personnalisés optionnels par moteur (par ex. {“joint_1”: 1.5, “joint_2”: 2.0})

Envoyer une commande d'action au robot.

L'amplitude de l'action peut être limitée en fonction des limites de sécurité.

classe lerobot.robots.openarm_follower.OpenArmFollowerConfig

< >

( port: strside: str | None = Nonecan_interface: str = 'socketcan'use_can_fd: bool = Truecan_bitrate: int = 1000000can_data_bitrate: int = 5000000disable_torque_on_disconnect: bool = Trueuse_velocity_and_torque: bool = Falsemax_relative_target: float | dict[str, float] | None = Nonecameras: dict = <factory>motor_config: dict = <factory>position_kp: list = <factory>position_kd: list = <factory>joint_limits: dict = <factory>id: str | None = Nonecalibration_dir: pathlib.Path | None = None )

BiOpenArmFollower

classe lerobot.robots.bi_openarm_follower.BiOpenArmFollower

< >

( config: BiOpenArmFollowerConfig )

Bras suiveurs bimanuels OpenArm

classe lerobot.robots.bi_openarm_follower.BiOpenArmFollowerConfig

< >

( id: str | None = 'bi_openarm_follower'calibration_dir: pathlib.Path | None = Noneleft_arm_config: OpenArmFollowerConfigBaseright_arm_config: OpenArmFollowerConfigBasecameras: dict = <factory> )

Classe de configuration pour les robots Bi OpenArm Follower.

OmxFollower

classe lerobot.robots.omx_follower.OmxFollower

< >

( config: OmxFollowerConfig )

  • OMX, extension, développée par Woojin Wie et Junha Cha de ROBOTIS

connect

< >

( calibrate: bool = True )

Pour les robots OMX livrés pré-calibrés :

  • Si l'étalonnage par défaut du package ne correspond pas aux moteurs, lisez depuis les moteurs et enregistrez
  • Cela permet d'utiliser des robots pré-calibrés sans calibration manuelle
  • Si aucun fichier de calibration n'existe, utilisez les valeurs par défaut d'usine (homing_offset=0, range_min=0, range_max=4095)

send_action

< >

( action: dict ) → RobotAction

Paramètres

  • action (RobotAction) — Les positions cibles pour les moteurs.

Retourne

RobotAction

L'action envoyée aux moteurs, potentiellement tronquée.

Commander le bras pour se déplacer vers une configuration articulaire cible.

L'amplitude relative de l'action peut être rognée en fonction du paramètre de configuration max_relative_target. Dans ce cas, l'action envoyée diffère de l'action d'origine. Ainsi, cette fonction renvoie toujours l'action réellement envoyée.

classe lerobot.robots.omx_follower.OmxFollowerConfig

< >

( port: strdisable_torque_on_disconnect: bool = Truemax_relative_target: float | dict[str, float] | None = Nonecameras: dict = <factory>use_degrees: bool = Falseid: str | None = Nonecalibration_dir: pathlib.Path | None = None )

Reachy2Robot

classe lerobot.robots.reachy2.Reachy2Robot

< >

( config: Reachy2RobotConfig )

Reachy 2, de Pollen Robotics.

classe lerobot.robots.reachy2.Reachy2RobotConfig

< >

( max_relative_target: float | None = Noneip_address: str | None = 'localhost'port: int = 50065disable_torque_on_disconnect: bool = Falseuse_external_commands: bool = Falsewith_mobile_base: bool = Truewith_l_arm: bool = Truewith_r_arm: bool = Truewith_neck: bool = Truewith_antennas: bool = Truewith_left_teleop_camera: bool = Falsewith_right_teleop_camera: bool = Falsewith_torso_camera: bool = Falsecamera_width: int = 640camera_height: int = 480cameras: dict = <factory>id: str | None = Nonecalibration_dir: pathlib.Path | None = None )

UnitreeG1

classe lerobot.robots.unitree_g1.UnitreeG1

< >

( config: UnitreeG1Config )

classe lerobot.robots.unitree_g1.UnitreeG1Config

< >

( kp: list[float] | None = Nonekd: list[float] | None = Nonedefault_positions: list = <factory>control_dt: float = 0.004is_simulation: bool = Trueend_effector: G1EndEffector = <G1EndEffector.DEX1: 'dex1'>sim_publish_images: bool = Truesim_camera_port: int = 5555sim_onscreen: bool | None = Nonerobot_ip: str = '192.168.123.164'cameras: dict = <factory>gravity_compensation: bool = Falsecontroller: str | None = Noneembodiment: str = 'g1_29'id: str | None = Nonecalibration_dir: pathlib.Path | None = None )

Hope Jr

Le humanoïde Hope Jr est exposé sous la forme de deux robots indépendants, un bras et une main.

classe lerobot.robots.hope_jr.HopeJrArm

< >

( config: HopeJrArmConfig )

connect

< >

( calibrate: bool = True )

Nous supposons qu'au moment de la connexion, le bras est en position de repos et que le couple peut être désactivé en toute sécurité pour exécuter l'étalonnage.

classe lerobot.robots.hope_jr.HopeJrArmConfig

< >

( port: strdisable_torque_on_disconnect: bool = Truemax_relative_target: float | dict[str, float] | None = Nonecameras: dict = <factory>id: str | None = Nonecalibration_dir: pathlib.Path | None = None )

classe lerobot.robots.hope_jr.HopeJrHand

< >

( config: HopeJrHandConfig )

classe lerobot.robots.hope_jr.HopeJrHandConfig

< >

( port: strside: strdisable_torque_on_disconnect: bool = Truecameras: dict = <factory>id: str | None = Nonecalibration_dir: pathlib.Path | None = None )

RebotB601Follower

classe lerobot.robots.rebot_b601_follower.RebotB601Follower

< >

( config: RebotB601FollowerRobotConfig )

Bras suiveur Seeed Studio reBot B601 (6-DOF + pince, moteurs CAN).

La communication avec les moteurs est gérée par le package motorbridge via un bus CAN, accessible soit par un pont série Damiao, soit par le transport CAN natif de MotorBridge.

configurer

< >

( )

Définissez le mode de contrôle de chaque moteur avant d’activer le couple.

disable_torque

< >

( )

Désactiver le couple du moteur afin que le bras puisse être déplacé à la main (débogage en lecture seule).

déconnecter

< >

( )

Débranchez les moteurs et les caméras du robot.

send_action

< >

( action: dict )

Commander le bras vers une configuration articulaire cible.

Les positions sont exprimées en degrés. L'amplitude de l'action relative peut être limitée en fonction de max_relative_target, de sorte que l'action réellement envoyée est toujours renvoyée.

classe lerobot.robots.rebot_b601_follower.RebotB601FollowerRobotConfig

< >

( port: strmotor_family: MotorFamily = <MotorFamily.DM: 'dm'>can_adapter: str | None = Nonedm_serial_baud: int = 921600disable_torque_on_disconnect: bool = Truemax_relative_target: float | dict[str, float] | None = Nonecameras: dict = <factory>motor_can_ids: dict[str, tuple[int, int]] | None = Nonecontrol_mode: ArmControlMode = <ArmControlMode.MIT: 'mit'>gripper_control_mode: lerobot.robots.rebot_b601_follower.motor_family.GripperControlMode | None = Nonemit_kp: float | dict[str, float] | None = Nonemit_kd: float | dict[str, float] | None = Nonepos_vel_velocity: float | dict[str, float] | None = Nonegripper_torque_ratio: float | None = Nonegripper_torque_limit: float | None = Nonegripper_hold_torque_limit: float | None = Nonejoint_limits: dict[str, tuple[float, float]] | None = Noneid: str | None = Nonecalibration_dir: pathlib.Path | None = None )

Configuration enregistrée pour le robot suiveur reBot B601.

BiRebotB601Follower

classe lerobot.robots.bi_rebot_b601_follower.BiRebotB601Follower

< >

( config: BiRebotB601FollowerConfig )

Suiveur bimanuel Seeed Studio reBot B601.

Compose deux instances RebotB601Follower à un seul bras. Les clés d’observation et d’action de chaque bras sont préfixées par left_ / right_.

classe lerobot.robots.bi_rebot_b601_follower.BiRebotB601FollowerConfig

< >

( left_arm_config: RebotB601FollowerConfigright_arm_config: RebotB601FollowerConfigcameras: dict = <factory>id: str | None = Nonecalibration_dir: pathlib.Path | None = None )

Classe de configuration pour le robot suiveur bimanuel reBot B601.

EarthRoverMiniPlus

classe lerobot.robots.earthrover_mini_plus.EarthRoverMiniPlus

< >

( config: EarthRoverMiniPlusConfig )

Paramètres

  • config — Configuration du robot
  • sdk_base_url — URL de base du serveur du SDK Frodobots, prise de config.sdk_url (par défaut : http://localhost:8000)

Robot EarthRover Mini Plus contrôlé via l'API HTTP du SDK Frodobots.

Ce robot utilise un contrôle basé sur le cloud via le SDK Frodobots plutôt qu’une connexion directe au matériel. Les flux vidéo des caméras transitent par WebRTC via le cloud Agora, et les commandes de contrôle sont envoyées via des requêtes HTTP POST.

Le robot prend en charge :

  • Deux caméras (avant et arrière) accessibles via des points de terminaison HTTP du SDK
  • Contrôle de la vitesse linéaire et angulaire
  • Télémétrie de la batterie et de l'orientation

calibrer

< >

( )

Aucune calibration n'est nécessaire pour un robot basé sur un SDK.

configurer

< >

( )

Configurer le robot (sans effet pour un robot basé sur le SDK).

connect

< >

( calibrate: bool = True )

Paramètres

  • calibrate — Non utilisé pour les robots basés sur le SDK (conservé pour la compatibilité de l'API)

Lève

DeviceAlreadyConnectedError ou DeviceNotConnectedError

  • DeviceAlreadyConnectedError — Si le robot est déjà connecté
  • DeviceNotConnectedError — Si la connexion au serveur SDK est impossible

Connectez-vous au robot via le SDK Frodobots.

déconnecter

< >

( )

Lève

DeviceNotConnectedError

  • DeviceNotConnectedError — Si le robot n'est pas connecté

Déconnectez-vous du robot.

Arrête le robot et ferme la connexion à l'SDK.

get_observation

< >

( ) → RobotObservation

Retourne

RobotObservation

Observation contenant :

  • front : Image de la caméra avant (480, 640, 3) au format RGB
  • rear : Image de la caméra arrière (480, 640, 3) au format RGB
  • speed: float - Vitesse actuelle (valeur brute du SDK)
  • battery_level: float - Niveau de la batterie (0-100)
  • orientation: float - Orientation du robot en degrés
  • gps_latitude: float - Coordonnée de latitude GPS
  • gps_longitude: float - Coordonnée de longitude GPS
  • gps_signal: float - Intensité du signal GPS (pourcentage)
  • signal_level: float - Niveau du signal réseau (0-5)
  • vibration: float - Lecture du capteur de vibration
  • lamp: float - État de la lampe (0=éteinte, 1=allumée)
  • accelerometer_x/y/z: float - Axes de l'accéléromètre (valeur brute du SDK)
  • gyroscope_x/y/z: float - Axes du gyroscope (valeur brute du SDK)
  • magnetometer_filtered_x/y/z: float - Axes du magnétomètre (valeur brute du SDK)
  • wheel_rpm_0/1/2/3: float - Tournage des roues

Lève

DeviceNotConnectedError

  • DeviceNotConnectedError — Si le robot n'est pas connecté

Obtenir l'observation actuelle du robot depuis le SDK.

Les images de la caméra sont récupérées depuis les points de terminaison SDK /v2/front et /v2/rear. Les images sont décodées depuis le base64 et converties du format BGR au format RGB. La télémétrie du robot est récupérée depuis le point de terminaison /data. Les tableaux de capteurs (accels, gyros, mags, rpms) contiennent chacun des entrées de la forme [values…, timestamp] ; la dernière lecture de chaque tableau est utilisée.

Note : Les images de la caméra sont récupérées depuis les points de terminaison /v2/front et /v2/rear de l’SDK. Les images sont décodées depuis le format base64 et converties du format BGR au format RGB. La télémétrie du robot est récupérée depuis le point de terminaison /data. Toutes les valeurs de l’SDK sont normalisées dans les plages appropriées pour l’enregistrement du jeu de données.

send_action

< >

( action: dict ) → RobotAction

Paramètres

  • action — Dictionnaire d'action avec les clés :
    • linear_velocity : Vitesse linéaire cible (-1 à 1)
    • angular_velocity: Vitesse angulaire cible (-1 à 1)

Retourne

RobotAction

L'action qui a été envoyée (correspond aux clés de action_features)

Lève

DeviceNotConnectedError

  • DeviceNotConnectedError — Si le robot n'est pas connecté

Envoyer une action au robot via le SDK.

Note: Les actions sont envoyées au SDK via le point de terminaison POST /control. Le SDK s'attend à des commandes dans l'intervalle [-1, 1].

classe lerobot.robots.earthrover_mini_plus.EarthRoverMiniPlusConfig

< >

( sdk_url: str = 'http://localhost:8000'id: str | None = Nonecalibration_dir: pathlib.Path | None = None )

Paramètres

  • sdk_url — URL du serveur du SDK Frodobots (par défaut : http://localhost:8000)

Configuration du robot EarthRover Mini Plus à l'aide du SDK Frodobots.

Ce robot utilise un contrôle basé sur le cloud via l'API HTTP du SDK Frodobots. Les images de la caméra sont accédées directement via les points de terminaison HTTP du SDK.

Update on GitHub