LeRobot documentation

로봇

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.7.0).
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