LeRobot documentation

로봇

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

로봇

LeRobot의 모든 로봇은 Robot 인터페이스를 구현합니다: 연결, 관측값 읽기, 액션 전송, 연결 해제. 해당 인터페이스에 맞춰 정책이나 녹화 스크립트를 작성하면, 수정 없이 모든 지원되는 팔에서 작동합니다.

이 페이지는 자동 생성된 참조 문서입니다. 배선, 보정 및 첫 실행 지침에 대해서는 SO-101, LeKiwi, Hope Jr, Reachy 2, OpenArm 하드웨어 가이드를 참고하거나, 전체 워크플로우에 대해서는 Imitation Learning for Robots를 확인하세요. 코어 세트에 포함되지 않는 커뮤니티 유지 관리 로봇은 Third-Party Robots & Teleoperators를 참고하세요. 자체 로봇을 추가하려면 Bring Your Own Hardware를 참고하세요.

로봇

추상 베이스 클래스입니다. 서브클래스는 아래에 나열된 모든 메서드를 구현해야 하며, 여기서 설명하는 계약은 정책이나 기록 루프가 의존할 수 있는 기준입니다.

클래스 lerobot.robots.Robot

< >

( config: RobotConfig )

매개변수

  • config_class (RobotConfig) — 이 로봇에 대한 예상 구성 클래스입니다.
  • name (str) — 이 로봇 유형을 식별하는 데 사용되는 고유한 로봇 이름입니다.

모든 LeRobot 호환 로봇의 기본 추상 클래스입니다.

이 클래스는 물리적 로봇과 상호작용하기 위한 표준화된 인터페이스를 제공합니다. 서브클래스는 사용 가능하도록 모든 추상 메서드와 프로퍼티를 구현해야 합니다.

connect

< >

( calibrate: bool = True )

매개변수

  • calibrate (bool) — True인 경우, 로봇이 연결된 후 보정이 되어 있지 않거나 보정이 필요한 경우(하드웨어에 따라 다름) 자동으로 로봇을 보정합니다.

로봇과 통신을 설정합니다.

연결 해제

< >

( )

로봇에서 연결을 해제하고 필요한 정리 작업을 수행합니다.

configure

< >

( )

로봇에 일회성 또는 런타임 구성을 적용합니다. 모터 매개변수, 제어 모드 또는 초기 상태 설정을 포함할 수 있습니다.

calibrate

< >

( )

적용 가능한 경우 로봇을 보정합니다. 그렇지 않으면 이 작업은 아무 효과도 없습니다(no-op).

이 메서드는 필요한 데이터(예: 모터 오프셋)를 수집하고 calibration 사전에 따라 적절히 업데이트해야 합니다.

get_observation

< >

( ) → RobotObservation

반환값

RobotObservation

로봇의 현재 감각 상태를 나타내는 평탄한 사전입니다. 구조는 observation_features와 일치해야 합니다.

로봇에서 현재 관측값을 가져옵니다.

send_action

< >

( action: dict ) → RobotAction

매개변수

  • action (RobotAction) — 원하는 행동을 나타내는 사전(Dictionary)입니다. 구조는 :pymeth:action_features와 일치해야 합니다.

반환값

RobotAction

모터에 실제로 전송된 액션은 속도 안전 한계와 같은 요인에 의해 잘리거나 수정될 수 있습니다.

로봇에 액션 명령을 전송합니다.

observation_features

< >

( )

로봇이 생성하는 관측치의 구조와 유형을 설명하는 사전입니다. 그 구조(키)는 get_observation가 반환하는 값의 구조와 일치해야 합니다. 사전의 값은 다음 중 하나여야 합니다:

  • 단순 값인 경우의 값 유형, 예: 단일 고유감각 값(관절의 위치/속도)의 경우 float
  • 배열 타입의 값인 경우, 예를 들어 이미지의 경우 (height, width, channel)와 같이 형태를 나타내는 튜플

참고: 이 속성은 로봇이 연결되어 있든 아니든 상관없이 호출할 수 있어야 합니다.

action_features

< >

( )

로봇이 기대하는 액션의 구조와 유형을 설명하는 사전입니다. 이 사전의 구조(키)는 send_action에 전달되는 값의 구조와 일치해야 합니다. 사전의 값은 단순한 값인 경우 해당 값의 유형이어야 하며, 예를 들어 단일 고유감각 값(관절의 목표 위치/속도)의 경우 float입니다.

참고: 이 속성은 로봇이 연결되어 있든 아니든 상관없이 호출할 수 있어야 합니다.

is_connected

< >

( )

로봇이 현재 연결되어 있는지 여부입니다. False인 경우, :pymeth:get_observation 또는 :pymeth:send_action를 호출하면 오류가 발생해야 합니다.

is_calibrated

< >

( )

로봇이 현재 보정되어 있는지 여부. 해당되지 않는 경우 항상 True여야 합니다

RobotConfig

클래스 lerobot.robots.RobotConfig

< >

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

make_robot_from_config

lerobot.robots.make_robot_from_config

< >

( config: RobotConfig )

SO-100 및 SO-101 팔로워

SO100Follower와 SO101Follower는 동일한 SOFollower 클래스의 별칭입니다. 두 팔은 제어 코드가 아니라 구성이 서로 다릅니다. SO100FollowerConfig와 SO101FollowerConfig도 마찬가지로 SOFollowerRobotConfig의 별칭입니다.

class lerobot.robots.so_follower.SOFollower

< >

( config: SOFollowerRobotConfig )

SO-100/101/10X의 공통 기능을 구현하는 범용 SO 팔로워 기반 클래스입니다. 하드웨어 모델별 config_class와 name을 사용하여 하위 클래스로 상속되도록 설계되었습니다.

connect

< >

( calibrate: bool = True )

연결 시점에 arm이 정지 상태에 있으며, 보정을 실행하기 위해 토크를 안전하게 비활성화할 수 있다고 가정합니다.

send_action

< >

( action: dict ) → RobotAction

반환값

RobotAction

모터로 전송되는 액션, 클리핑이 적용된 경우

다음 예외를 발생시킵니다

RobotDeviceNotConnectedError

  • RobotDeviceNotConnectedError — 로봇이 연결되지 않은 경우.

목표 관절 구성으로 이동하도록 팔을 명령합니다.

구성 매개변수 max_relative_target에 따라 상대적 액션 크기가 클립될 수 있습니다. 이 경우 전송된 액션은 원래 액션과 다릅니다. 따라서 이 함수는 실제로 전송된 액션을 항상 반환합니다.

클래스 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

두 개의 SO 팔을 하나의 양손 로봇으로 구동합니다.

class lerobot.robots.bi_so_follower.BiSOFollower

< >

( config: BiSOFollowerConfig )

TheRobotStudio가 설계한 양손 SO 팔로우 암

class lerobot.robots.bi_so_follower.BiSOFollowerConfig

< >

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

Bi SO Follower 로봇을 위한 구성 클래스입니다.

KochFollower

class lerobot.robots.koch_follower.KochFollower

< >

( config: KochFollowerConfig )

  • Alexander Koch가 Tau Robotics에서 개발한 Koch v1.0으로, 손목에서 팔꿈치까지의 확장 포함 여부에 관계없이
  • Jess Moss가 개발한 Koch v1.1

connect

< >

( calibrate: bool = True )

연결 시점에 arm이 정지 상태에 있으며, 보정을 실행하기 위해 토크를 안전하게 비활성화할 수 있다고 가정합니다.

send_action

< >

( action: dict ) → RobotAction

매개변수

  • action (RobotAction) — 모터의 목표 위치입니다.

반환값

RobotAction

모터로 전송된 액션, 클리핑이 적용되었을 수 있습니다.

목표 관절 구성으로 이동하도록 팔을 명령합니다.

구성 매개변수 max_relative_target에 따라 상대적 액션 크기가 클립될 수 있습니다. 이 경우 전송된 액션은 원래 액션과 다릅니다. 따라서 이 함수는 실제로 전송된 액션을 항상 반환합니다.

클래스 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는 로봇 자체에서 실행됩니다. LeKiwiClient는 네트워크를 통해 LeKiwi와 통신하는 호스트 측 프록시이며, 동일한 Robot 인터페이스를 제공합니다.

class lerobot.robots.lekiwi.LeKiwi

< >

( config: LeKiwiConfig )

로봇에는 3개의 옴니휠로 구성된 이동 기반과 원격 팔로워 암이 포함되어 있습니다. 리더 암은 로컬(노트북)에 연결되어 있으며, 그 관절 위치가 기록된 후 안전 클램프가 적용된 다음 원격 팔로워 암으로 전달됩니다. 이와 동시에, 키보드 텔레오퍼레이션을 사용하여 바퀴의 원시 속도 명령을 생성합니다.

send_action

< >

( action: dict ) → RobotAction

반환값

RobotAction

모터로 전송되는 액션, 클리핑이 적용된 경우

다음 예외를 발생시킵니다

RobotDeviceNotConnectedError

  • RobotDeviceNotConnectedError — 로봇이 연결되지 않은 경우.

lekiwi에 목표 관절 구성으로 이동하도록 명령합니다.

구성 매개변수 max_relative_target에 따라 상대적 액션 크기가 클립될 수 있습니다. 이 경우 전송된 액션은 원래 액션과 다릅니다. 따라서 이 함수는 실제로 전송된 액션을 항상 반환합니다.

class 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 )

class lerobot.robots.lekiwi.LeKiwiClient

< >

( config: LeKiwiClientConfig )

connect

< >

( )

원격 모바일 로봇과 ZMQ 소켓을 설정합니다

연결 해제

< >

( )

ZMQ 통신을 정리합니다

get_observation

< >

( )

원격 로봇에서 관측치를 수집합니다: 현재 팔로우어 팔 위치, 현재 바퀴 속도(본체 좌표계 속도 x, y, theta로 변환), 그리고 카메라 프레임. ZMQ를 통해 수신하고 본체 좌표계 속도로

send_action

< >

( action: dict ) → np.ndarray

매개변수

  • action (RobotAction) — 모터의 목표 위치를 포함하는 배열.

반환값

np.ndarray

모터로 전송되는 액션, 클리핑이 적용된 경우

다음 예외를 발생시킵니다

RobotDeviceNotConnectedError

  • RobotDeviceNotConnectedError — 로봇이 연결되지 않은 경우.

lekiwi에 목표 관절 구성으로 이동하도록 명령합니다. 모터 공간으로 변환하고 ZMQ를 통해 전송합니다

class 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

class lerobot.robots.openarm_follower.OpenArmFollower

< >

( config: OpenArmFollowerConfig )

CAN 버스 통신을 사용하여 그리퍼가 장착된 7 DOF 팔을 제어하는 OpenArms Follower Robot입니다. 팔은 MIT 제어 모드의 Damiao 모터를 사용합니다.

calibrate

< >

( )

OpenArms 로봇에 대해 보정 절차를 실행합니다.

교정 절차:

  1. 토크 비활성화
  2. 그리퍼가 닫힌 상태로 팔을 매달린 자세로 위치하도록 사용자에게 요청합니다
  3. Set this as zero position
  4. 각 관절의 운동 범위를 기록
  5. 교정 저장

configure

< >

( )

적절한 설정으로 모터를 구성합니다.

connect

< >

( calibrate: bool = True )

로봇에 연결하고 필요에 따라 보정합니다.

연결 시점에 팔이 안전한 휴지 위치에 있으며, 필요할 경우 토크를 안전하게 비활성화하여 보정을 실행할 수 있다고 가정합니다.

연결 해제

< >

( )

로봇에서 연결을 해제합니다.

get_observation

< >

( )

로봇에서 위치, 속도, 토크를 포함한 현재 관측값을 가져옵니다.

3개의 개별 읽기 대신 하나의 CAN 리프레시 사이클에서 모든 모터 상태(pos/vel/torque)를 읽습니다.

send_action

< >

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

매개변수

  • action — 모터 위치를 담은 딕셔너리 (예: “joint_1.pos”, “joint_2.pos”)
  • custom_kp — 모터별 선택적 사용자 지정 kp 이득 (예: {“joint_1”: 120.0, “joint_2”: 150.0})
  • custom_kd — 모터별 선택적 사용자 지정 kd 이득 (예: {“joint_1”: 1.5, “joint_2”: 2.0})

로봇에 액션 명령을 전송합니다.

액션의 크기는 안전 한계에 따라 잘릴 수 있습니다.

클래스 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

class lerobot.robots.bi_openarm_follower.BiOpenArmFollower

< >

( config: BiOpenArmFollowerConfig )

양수 OpenArm 팔로워 암

class 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> )

Bi OpenArm Follower 로봇의 구성 클래스입니다.

OmxFollower

class lerobot.robots.omx_follower.OmxFollower

< >

( config: OmxFollowerConfig )

  • OMX, ROBOTIS의 Woojin Wie와 Junha Cha가 개발한 확장

connect

< >

( calibrate: bool = True )

OMX 로봇 중 사전 보정이 완료된 경우:

  • 패키지의 기본 캘리브레이션이 모터와 일치하지 않으면 모터에서 읽고 저장합니다
  • …
  • 교정 파일이 존재하지 않으면 공장 기본값(homing_offset=0, range_min=0, range_max=4095)을 사용합니다.

send_action

< >

( action: dict ) → RobotAction

매개변수

  • action (RobotAction) — 모터의 목표 위치입니다.

반환값

RobotAction

모터로 전송된 액션, 클리핑이 적용되었을 수 있습니다.

목표 관절 구성으로 이동하도록 팔을 명령합니다.

구성 매개변수 max_relative_target에 따라 상대적 액션 크기가 클립될 수 있습니다. 이 경우 전송된 액션은 원래 액션과 다릅니다. 따라서 이 함수는 실제로 전송된 액션을 항상 반환합니다.

클래스 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

class lerobot.robots.reachy2.Reachy2Robot

< >

( config: Reachy2RobotConfig )

Pollen Robotics의 Reachy 2.

class 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

클래스 lerobot.robots.unitree_g1.UnitreeG1

< >

( config: UnitreeG1Config )

클래스 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

Hope Jr 휴머노이드는 팔과 손이라는 두 개의 독립적인 로봇으로 노출됩니다.

class lerobot.robots.hope_jr.HopeJrArm

< >

( config: HopeJrArmConfig )

connect

< >

( calibrate: bool = True )

연결 시점에 arm이 정지 상태에 있으며, 보정을 실행하기 위해 토크를 안전하게 비활성화할 수 있다고 가정합니다.

클래스 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 )

class lerobot.robots.hope_jr.HopeJrHand

< >

( config: HopeJrHandConfig )

class 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

class lerobot.robots.rebot_b601_follower.RebotB601Follower

< >

( config: RebotB601FollowerRobotConfig )

Seeed Studio reBot B601 팔로우 암 (6-DOF + 그리퍼, CAN 모터).

모터 통신은 motorbridge 패키지를 통해 CAN 버스로 처리되며, Damiao 시리얼 브리지 또는 MotorBridge의 네이티브 CAN 전송을 통해 접근할 수 있습니다.

configure

< >

( )

토크를 활성화하기 전에 각 모터의 제어 모드를 설정하세요.

disable_torque

< >

( )

motor torque를 비활성화하여 팔을 수동으로 이동할 수 있도록 합니다(읽기 전용 디버깅).

연결 해제

< >

( )

로봇에서 모터와 카메라를 분리합니다.

send_action

< >

( action: dict )

팔을 목표 관절 구성으로 명령합니다.

Positions는 도(degree) 단위로 표현됩니다. max_relative_target에 따라 상대 동작 크기가 클립될 수 있으므로, 실제로 전송된 동작이 항상 반환됩니다.

class 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 )

reBot B601 팔로워 로봇에 대한 등록된 구성입니다.

BiRebotB601Follower

class lerobot.robots.bi_rebot_b601_follower.BiRebotB601Follower

< >

( config: BiRebotB601FollowerConfig )

양손 조작용 Seeed Studio reBot B601 팔로워.

두 개의 단일 암 RebotB601Follower 인스턴스를 구성합니다. 각 암의 관찰 및 동작 키에는 left_ / right_ 접두사가 네임스페이스로 적용됩니다.

class 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 )

양손 조작용 reBot B601 팔로워 로봇의 구성 클래스입니다.

EarthRoverMiniPlus

class lerobot.robots.earthrover_mini_plus.EarthRoverMiniPlus

< >

( config: EarthRoverMiniPlusConfig )

매개변수

  • config — 로봇 구성
  • sdk_base_url — Frodobots SDK 서버의 기본 URL로, config.sdk_url에서 가져옵니다 (기본값: http://localhost:8000)

Frodobots SDK HTTP API를 통해 제어되는 EarthRover Mini Plus 로봇.

이 로봇은 하드웨어를 직접 연결하는 대신 Frodobots SDK를 통해 클라우드 기반 제어를 사용합니다. 카메라는 Agora 클라우드를 통해 WebRTC로 스트리밍되며, 제어 명령은 HTTP POST 요청을 통해 전송됩니다.

로봇은 다음을 지원합니다:

  • SDK HTTP 엔드포인트를 통해 액세스하는 듀얼 카메라(전면 및 후면)
  • 선형 및 각속도 제어
  • 배터리 및 방향 텔레메트리

calibrate

< >

( )

SDK 기반 로봇에는 보정이 필요하지 않습니다.

configure

< >

( )

로봇 구성 (SDK 기반 로봇의 경우 아무 작업도 수행하지 않음).

connect

< >

( calibrate: bool = True )

매개변수

  • calibrate — SDK 기반 로봇에는 사용되지 않음(API 호환성을 위해 유지)

다음 예외를 발생시킵니다

DeviceAlreadyConnectedError 또는 DeviceNotConnectedError

  • DeviceAlreadyConnectedError — 로봇이 이미 연결된 경우
  • DeviceNotConnectedError — SDK 서버에 연결할 수 없는 경우

Frodobots SDK를 통해 로봇에 연결합니다.

연결 해제

< >

( )

다음 예외를 발생시킵니다

DeviceNotConnectedError

  • DeviceNotConnectedError — 로봇이 연결되지 않은 경우

로봇에서 연결을 해제합니다.

로봇을 정지하고 SDK와의 연결을 닫습니다.

get_observation

< >

( ) → RobotObservation

반환값

RobotObservation

다음 내용을 포함하는 관찰:

  • front: RGB 형식의 전면 카메라 이미지 (480, 640, 3)
  • rear: RGB 형식의 후면 카메라 이미지 (480, 640, 3)
  • speed: float - 현재 속도 (원시 SDK 값)
  • battery_level: float - 배터리 수준 (0-100)
  • orientation: float - 도 단위(robot orientation)
  • gps_latitude: float - GPS 위도 좌표
  • gps_longitude: float - GPS 경도 좌표
  • gps_signal: float - GPS 신호 강도(%)
  • signal_level: float - 네트워크 신호 수준 (0-5)
  • vibration: float - 진동 센서 측정값
  • lamp: float - 램프 상태 (0=꺼짐, 1=켜짐)
  • accelerometer_x/y/z: float - 가속도계 축 (원시 SDK 값)
  • gyroscope_x/y/z: float - 자이로스코프 축 (원시 SDK 값)
  • magnetometer_filtered_x/y/z: float - 자계계 축 (원시 SDK 값)
  • wheel_rpm_0/1/2/3: float - 바퀴 RPM

다음 예외를 발생시킵니다

DeviceNotConnectedError

  • DeviceNotConnectedError — 로봇이 연결되지 않은 경우

SDK에서 현재 로봇 관측값을 가져옵니다.

카메라 프레임은 SDK 엔드포인트 /v2/front와 /v2/rear에서 가져옵니다. 프레임은 base64에서 디코딩되어 BGR 형식에서 RGB 형식으로 변환됩니다. 로봇 텔레메트리 데이터는 /data 엔드포인트에서 가져옵니다. 센서 배열(accels, gyros, mags, rpms) 각 항목은 [values…, timestamp] 형식의 항목을 포함하며, 각 배열의 최신 읽기 값이 사용됩니다.

Note: 카메라 프레임은 SDK 엔드포인트 /v2/front 및 /v2/rear에서 가져옵니다. 프레임은 base64에서 디코딩된 후 BGR에서 RGB 형식으로 변환됩니다. 로봇 텔레메트리 데이터는 /data 엔드포인트에서 가져옵니다. 모든 SDK 값은 데이터셋 기록에 적합한 범위로 정규화됩니다.

send_action

< >

( action: dict ) → RobotAction

매개변수

  • action — 다음 키를 가진 Action 딕셔너리:
    • linear_velocity: 목표 선형 속도(-1~1)
    • angular_velocity: 목표 각속도(-1~1)

반환값

RobotAction

보낸 액션( 키와 일치)

다음 예외를 발생시킵니다

DeviceNotConnectedError

  • DeviceNotConnectedError — 로봇이 연결되지 않은 경우

SDK를 통해 로봇에 액션을 전송합니다.

Note: Actions are sent to SDK via POST /control endpoint. SDK expects commands in range [-1, 1].

class lerobot.robots.earthrover_mini_plus.EarthRoverMiniPlusConfig

< >

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

매개변수

  • sdk_url — Frodobots SDK 서버의 URL (기본값: http://localhost:8000)

Frodobots SDK를 사용하여 EarthRover Mini Plus 로봇을 구성하는 설정입니다.

이 로봇은 Frodobots SDK HTTP API를 통해 클라우드 기반 제어를 사용합니다. 카메라 프레임은 SDK HTTP 엔드포인트를 통해 직접 접근합니다.

Update on GitHub