LeRobot documentation

Robôs

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.6.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Robôs

Cada robô no LeRobot implementa a interface Robot: conectar, ler uma observação, enviar uma ação, desconectar. Escrever uma política ou um script de gravação para essa interface significa que ele funciona com qualquer braço suportado sem alterações.

Esta página é a referência gerada. Para instruções de fiação, calibração e primeira execução, comece pelos guias de hardware — SO-101, LeKiwi, Hope Jr, Reachy 2, OpenArm — ou Imitation Learning for Robots para o fluxo de trabalho de ponta a ponta. Para robôs mantidos pela comunidade fora do conjunto principal, consulte Third-Party Robots & Teleoperators. Para adicionar um robô próprio, consulte Bring Your Own Hardware.

Robô

A classe base abstrata. As subclasses implementam todos os métodos abaixo; o contrato descrito aqui é o que uma política ou um loop de gravação pode utilizar.

classe lerobot.robots.Robot

< >

( config: RobotConfig )

Parâmetros

  • config_class (RobotConfig) — A classe de configuração esperada para este robô.
  • name (str) — O nome exclusivo do robô usado para identificar esse tipo de robô.

A classe abstrata base para todos os robôs compatíveis com LeRobot.

Esta classe fornece uma interface padronizada para interagir com robôs físicos. As subclasses devem implementar todos os métodos e propriedades abstratos para serem utilizáveis.

connect

< >

( calibrate: bool = True )

Parâmetros

  • calibrate (bool) — Se True, calibra automaticamente o robô após a conexão, caso ele não esteja calibrado ou precise de calibração (isso depende do hardware).

Estabeleça comunicação com o robô.

disconnect

< >

( )

Desconecte-se do robô e execute as limpezas necessárias.

configurar

< >

( )

Aplique qualquer configuração de uso único ou em tempo de execução ao robô. Isso pode incluir a definição de parâmetros dos motores, modos de controle ou estado inicial.

calibrar

< >

( )

Calibre o robô, se aplicável. Caso contrário, esta deve ser uma operação sem efeito.

Este método deve coletar quaisquer dados necessários (por exemplo, offsets do motor) e atualizar o dicionário :pyattr:calibration de acordo.

get_observation

< >

( ) → RobotObservation

Retorna

RobotObservation

Um dicionário plano que representa o estado sensorial atual do robô. Sua estrutura deve corresponder a :pymeth:observation_features.

Obtenha a observação atual do robô.

send_action

< >

( action: dict ) → RobotAction

Parâmetros

  • action (RobotAction) — Dicionário representando a ação desejada. Sua estrutura deve corresponder a :pymeth:action_features.

Retorna

RobotAction

A ação efetivamente enviada aos motores, possivelmente truncada ou modificada, por exemplo, por limites de segurança na velocidade.

Envie um comando de ação para o robô.

observation_features

< >

( )

Um dicionário que descreve a estrutura e os tipos das observações produzidas pelo robô. Sua estrutura (chaves) deve corresponder à estrutura do que é retornado por :pymeth:get_observation. Os valores do dicionário devem ser:

  • O tipo do valor, caso seja um valor simples, por exemplo, float para um valor proprioceptivo único (posição/velocidade de uma articulação)
  • Uma tupla representando a forma, se for um valor de tipo array, por exemplo, (height, width, channel) para imagens

Observação: esta propriedade deve poder ser chamada independentemente de o robô estar conectado ou não.

action_features

< >

( )

Um dicionário que descreve a estrutura e os tipos das ações esperadas pelo robô. Sua estrutura (chaves) deve corresponder à estrutura do que é passado para :pymeth:send_action. Os valores do dicionário devem ser o tipo do valor, se for um valor simples, por exemplo, float para um valor proprioceptivo único (posição/velocidade de destino de uma articulação)

Observação: esta propriedade deve poder ser chamada independentemente de o robô estar conectado ou não.

is_connected

< >

( )

Se o robô está atualmente conectado ou não. Se False, chamar :pymeth:get_observation ou :pymeth:send_action deve gerar um erro.

is_calibrated

< >

( )

Se o robô está atualmente calibrado ou não. Deve ser sempre True se não aplicável

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 )

Seguidores do SO-100 e do SO-101

SO100Follower e SO101Follower são aliases da mesma classe SOFollower; os dois braços diferem em sua configuração, não em seu código de controle. SO100FollowerConfig e SO101FollowerConfig são, da mesma forma, aliases de SOFollowerRobotConfig.

classe lerobot.robots.so_follower.SOFollower

< >

( config: SOFollowerRobotConfig )

Base genérica de seguidor SO que implementa a funcionalidade comum para SO-100/101/10X. Projetada para ser subclasseada com uma config_class e um name específicos para cada modelo de hardware.

connect

< >

( calibrate: bool = True )

Assumimos que, no momento da conexão, o braço está em uma posição de repouso e que o torque pode ser desativado com segurança para executar a calibração.

send_action

< >

( action: dict ) → RobotAction

Retorna

RobotAction

a ação enviada aos motores, possivelmente limitada.

Exceções

RobotDeviceNotConnectedError

  • RobotDeviceNotConnectedError — se o robô não estiver conectado.

Comando o braço para se mover para uma configuração de juntas de destino.

A magnitude relativa da ação pode ser limitada (clipped) dependendo do parâmetro de configuração max_relative_target. Nesse caso, a ação enviada difere da ação original. Portanto, esta função sempre retorna a ação efetivamente enviada.

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

Dois seguidores de SO acionados como um único robô bimanual.

classe lerobot.robots.bi_so_follower.BiSOFollower

< >

( config: BiSOFollowerConfig )

Braços seguidores SO bimanuais projetados por 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 configuração para robôs Bi SO Follower.

KochFollower

classe lerobot.robots.koch_follower.KochFollower

< >

( config: KochFollowerConfig )

connect

< >

( calibrate: bool = True )

Assumimos que, no momento da conexão, o braço está em uma posição de repouso e que o torque pode ser desativado com segurança para executar a calibração.

send_action

< >

( action: dict ) → RobotAction

Parâmetros

  • action (RobotAction) — As posições de destino para os motores.

Retorna

RobotAction

A ação enviada aos motores, possivelmente limitada.

Comando o braço para se mover para uma configuração de juntas de destino.

A magnitude relativa da ação pode ser limitada (clipped) dependendo do parâmetro de configuração max_relative_target. Nesse caso, a ação enviada difere da ação original. Portanto, esta função sempre retorna a ação efetivamente enviada.

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 roda no próprio robô. LeKiwiClient é o proxy do lado do host que se comunica com ele pela rede e apresenta a mesma interface Robot.

classe lerobot.robots.lekiwi.LeKiwi

< >

( config: LeKiwiConfig )

O robô inclui uma base móvel com três rodas omni e um braço seguidor remoto. O braço líder é conectado localmente (no laptop) e as posições de suas juntas são registradas e, em seguida, transmitidas para o braço seguidor remoto (após a aplicação de um limite de segurança). Em paralelo, a teleoperação por teclado é usada para gerar comandos de velocidade bruta para as rodas.

send_action

< >

( action: dict ) → RobotAction

Retorna

RobotAction

a ação enviada aos motores, possivelmente limitada.

Exceções

RobotDeviceNotConnectedError

  • RobotDeviceNotConnectedError — se o robô não estiver conectado.

Comande o lekiwi para se mover para uma configuração de juntas de destino.

A magnitude relativa da ação pode ser limitada (clipped) dependendo do parâmetro de configuração max_relative_target. Nesse caso, a ação enviada difere da ação original. Portanto, esta função sempre retorna a ação efetivamente enviada.

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

< >

( )

Estabelece sockets ZMQ com o robô móvel remoto

disconnect

< >

( )

Limpa as comunicações ZMQ

get_observation

< >

( )

Capture observações do robô remoto: posições atuais dos braços seguidores, velocidades atuais das rodas (convertidas para velocidades no referencial do corpo: x, y, theta) e um quadro da câmera. Recebe via ZMQ, converte para velocidades no referencial do

send_action

< >

( action: dict ) → np.ndarray

Parâmetros

  • action (RobotAction) — array contendo as posições de destino para os motores.

Retorna

np.ndarray

a ação enviada aos motores, possivelmente limitada.

Exceções

RobotDeviceNotConnectedError

  • RobotDeviceNotConnectedError — se o robô não estiver conectado.

Comande o lekiwi para se mover até uma configuração de juntas de destino. Traduz para o espaço do motor + envia 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 )

Robô OpenArms Follower que usa comunicação via barramento CAN para controlar um braço de 7 graus de liberdade com uma garra. O braço usa motores Damiao no modo de controle MIT.

calibrar

< >

( )

Execute o procedimento de calibração para o robô OpenArms.

O procedimento de calibração:

  1. Desativar torque
  2. Peça ao usuário para posicionar os braços na posição suspensa com os garras fechadas
  3. Defina isso como posição zero
  4. Registre a amplitude de movimento de cada articulação
  5. Salvar calibração

configurar

< >

( )

Configure os motores com as configurações apropriadas.

connect

< >

( calibrate: bool = True )

Conecte-se ao robô e, opcionalmente, calibre.

Assumimos que, no momento da conexão, os braços estão em uma posição de repouso segura e que o torque pode ser desativado com segurança para executar a calibração, se necessário.

disconnect

< >

( )

Desconectar do robô.

get_observation

< >

( )

Obtém a observação atual do robô, incluindo posição, velocidade e torque.

Lê todos os estados dos motores (pos/vel/torque) em um único ciclo de atualização CAN, em vez de 3 leituras separadas.

send_action

< >

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

Parâmetros

  • action — Dicionário com as posições dos motores (por exemplo, “joint_1.pos”, “joint_2.pos”)
  • custom_kp — Ganhos de kp personalizados opcionais por motor (ex.: {“joint_1”: 120.0, “joint_2”: 150.0})
  • custom_kd — Ganhos kd personalizados opcionais por motor (ex.: {“joint_1”: 1.5, “joint_2”: 2.0})

Envie um comando de ação para o robô.

A magnitude da ação pode ser limitada com base em limites de segurança.

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 )

Braços Seguidores Bimanuais 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 configuração para robôs Bi OpenArm Follower.

OmxFollower

classe lerobot.robots.omx_follower.OmxFollower

< >

( config: OmxFollowerConfig )

  • OMX, expansão, desenvolvida por Woojin Wie e Junha Cha da ROBOTIS

connect

< >

( calibrate: bool = True )

Para robôs OMX que vêm pré-calibrados:

  • Se a calibração padrão do pacote não corresponder aos motores, leia dos motores e salve
  • Isso permite o uso de robôs pré-calibrados sem calibração manual
  • Se nenhum arquivo de calibração existir, use os valores padrão de fábrica (homing_offset=0, range_min=0, range_max=4095)

send_action

< >

( action: dict ) → RobotAction

Parâmetros

  • action (RobotAction) — As posições de destino para os motores.

Retorna

RobotAction

A ação enviada aos motores, possivelmente limitada.

Comando o braço para se mover para uma configuração de juntas de destino.

A magnitude relativa da ação pode ser limitada (clipped) dependendo do parâmetro de configuração max_relative_target. Nesse caso, a ação enviada difere da ação original. Portanto, esta função sempre retorna a ação efetivamente enviada.

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, da 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

O humanoide Hope Jr é exposto como dois robôs independentes, um braço e uma mão.

classe lerobot.robots.hope_jr.HopeJrArm

< >

( config: HopeJrArmConfig )

connect

< >

( calibrate: bool = True )

Assumimos que, no momento da conexão, o braço está em uma posição de repouso e que o torque pode ser desativado com segurança para executar a calibração.

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 )

Braço seguidor Seeed Studio reBot B601 (6-DOF + garra, motores CAN).

A comunicação com o motor é gerenciada pelo pacote motorbridge por meio de um barramento CAN, acessado seja através de uma ponte serial Damiao ou do transporte CAN nativo do MotorBridge.

configurar

< >

( )

Defina o modo de controle de cada motor antes de habilitar o torque.

disable_torque

< >

( )

Desative o torque do motor para que o braço possa ser movido à mão (depuração somente leitura).

disconnect

< >

( )

Desconecte os motores e as câmeras do robô.

send_action

< >

( action: dict )

Comande o braço para uma configuração de juntas de destino.

As posições são expressas em graus. A magnitude da ação relativa pode ser limitada dependendo de max_relative_target, portanto a ação efetivamente enviada é sempre retornada.

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 )

Configuração registrada para o robô seguidor reBot B601.

BiRebotB601Follower

classe lerobot.robots.bi_rebot_b601_follower.BiRebotB601Follower

< >

( config: BiRebotB601FollowerConfig )

Seguidor bimanual Seeed Studio reBot B601.

Compõe duas instâncias de RebotB601Follower de braço único. As chaves de observação e ação de cada braço são namespaced com o prefixo 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 configuração para o robô seguidor bimanual reBot B601.

EarthRoverMiniPlus

classe lerobot.robots.earthrover_mini_plus.EarthRoverMiniPlus

< >

( config: EarthRoverMiniPlusConfig )

Parâmetros

  • config — Configuração do robô
  • sdk_base_url — URL base do servidor do SDK Frodobots, obtida de config.sdk_url (padrão: http://localhost:8000)

Robô EarthRover Mini Plus controlado via API HTTP do Frodobots SDK.

Este robô usa controle baseado em nuvem por meio do Frodobots SDK, em vez de uma conexão direta com o hardware. As câmeras transmitem via WebRTC pela nuvem da Agora, e os comandos de controle são enviados por meio de requisições HTTP POST.

O robô suporta:

  • Câmeras duplas (frontal e traseira) acessadas por meio de endpoints HTTP do SDK
  • Controle de velocidade linear e angular
  • Telemetria de bateria e orientação

calibrar

< >

( )

Calibração não é necessária para robôs baseados em SDK.

configurar

< >

( )

Configure o robô (sem operação para robôs baseados em SDK).

connect

< >

( calibrate: bool = True )

Parâmetros

  • calibrate — Não usado para robôs baseados em SDK (mantido para compatibilidade de API)

Exceções

DeviceAlreadyConnectedError ou DeviceNotConnectedError

  • DeviceAlreadyConnectedError — Se o robô já estiver conectado
  • DeviceNotConnectedError — Se não for possível conectar ao servidor do SDK

Conecte-se ao robô via Frodobots SDK.

disconnect

< >

( )

Exceções

DeviceNotConnectedError

  • DeviceNotConnectedError — Se o robô não estiver conectado

Desconectar do robô.

Interrompe o robô e fecha a conexão com o SDK.

get_observation

< >

( ) → RobotObservation

Retorna

RobotObservation

Observação contendo:

  • front: Imagem da câmera frontal (480, 640, 3) no formato RGB
  • rear: Imagem da câmera traseira (480, 640, 3) no formato RGB
  • speed: float - Velocidade atual (valor bruto do SDK)
  • battery_level: float - Nível da bateria (0-100)
  • orientation: float - Orientação do robô em graus
  • gps_latitude: float - coordenada de latitude do GPS
  • gps_longitude: float - coordenada de longitude do GPS
  • gps_signal: float - intensidade do sinal GPS (porcentagem)
  • signal_level: float - Nível do sinal da rede (0-5)
  • vibration: float - Leitura do sensor de vibração
  • lamp: float - Estado da lâmpada (0=desligado, 1=ligado)
  • accelerometer_x/y/z: float - Eixos do acelerômetro (valor bruto da SDK)
  • gyroscope_x/y/z: float - Eixos do giroscópio (valor bruto da SDK)
  • magnetometer_filtered_x/y/z: float - Eixos do magnetômetro (valor bruto da SDK)
  • wheel_rpm_0/1/2/3: float - RPMs das rodas

Exceções

DeviceNotConnectedError

  • DeviceNotConnectedError — Se o robô não estiver conectado

Obtenha a observação atual do robô do SDK.

Os quadros da câmera são obtidos dos endpoints de SDK /v2/front e /v2/rear. Os quadros são decodificados de base64 e convertidos do formato BGR para RGB. A telemetria do robô é obtida do endpoint /data. Os arrays de sensores (accels, gyros, mags, rpms) contêm cada um entradas de [values…, timestamp]; a leitura mais recente de cada array é utilizada.

Nota: Os quadros da câmera são obtidos dos endpoints /v2/front e /v2/rear do SDK. Os quadros são decodificados de base64 e convertidos do formato BGR para RGB. A telemetria do robô é obtida do endpoint /data. Todos os valores do SDK são normalizados para os intervalos apropriados para o registro do conjunto de dados.

send_action

< >

( action: dict ) → RobotAction

Parâmetros

  • action — Dicionário de ação com as chaves:
    • linear_velocity: Velocidade linear alvo (-1 a 1)
    • angular_velocity: Velocidade angular alvo (-1 a 1)

Retorna

RobotAction

A ação que foi enviada (corresponde às chaves de action_features)

Exceções

DeviceNotConnectedError

  • DeviceNotConnectedError — Se o robô não estiver conectado

Envie ação para o robô via SDK.

Nota: As ações são enviadas ao SDK por meio do endpoint POST /control. O SDK espera comandos no intervalo [-1, 1].

classe lerobot.robots.earthrover_mini_plus.EarthRoverMiniPlusConfig

< >

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

Parâmetros

  • sdk_url — URL do servidor do SDK Frodobots (padrão: http://localhost:8000)

Configuração para o robô EarthRover Mini Plus usando o SDK da Frodobots.

Este robô usa controle baseado em nuvem por meio da API HTTP do Frodobots SDK. Os quadros da câmera são acessados diretamente por meio dos endpoints HTTP do SDK.

Update on GitHub