LeRobot documentation
Robotlar
Robotlar
LeRobot'taki her robot Robot arayüzünü uygular: bağlantı kurma, bir gözlem okuma, bir eylem gönderme ve bağlantıyı kesme. Bu arayüze göre bir politika veya kayıt betiği yazmak, bu betiğin herhangi bir desteklenen kolla değişiklik yapılmadan çalışması anlamına gelir.
Bu sayfa üretilmiş referanstır. Kablolama, kalibrasyon ve ilk çalıştırma talimatları için donanım kılavuzlarından başlayın — SO-101, LeKiwi, Hope Jr, Reachy 2, OpenArm — veya uçtan uca iş akışı için Imitation Learning for Robots. Çekirdek setin dışındaki topluluk tarafından sürdürülen robotlar için Third-Party Robots & Teleoperators bölümüne bakın. Kendi robotunuzu eklemek için Bring Your Own Hardware bölümüne bakın.
Robot
Soyut temel sınıf. Alt sınıflar aşağıdaki her yöntemi uygular; burada açıklanan sözleşme, bir politika veya kayıt döngüsünün güvenebileceği şeydir.
sınıf lerobot.robots.Robot
< source >( config: RobotConfig )
Tüm LeRobot uyumlu robotlar için temel soyut sınıf.
Bu sınıf, fiziksel robotlarla etkileşim kurmak için standart bir arayüz sağlar. Alt sınıflar, kullanılabilir olabilmek için tüm soyut yöntemleri ve özellikleri uygulamak zorundadır.
bağlan
< source >( calibrate: bool = True )
Robotla iletişim kurun.
Robottan bağlantıyı kesin ve gerekli temizlik işlemlerini gerçekleştirin.
Robotun herhangi bir tek seferlik veya çalışma zamanı yapılandırmasını uygulayın. Bu, motor parametrelerini, kontrol modlarını veya başlangıç durumunu ayarlamayı içerebilir.
Uygulanabilirse robotu kalibre edin. Değilse, bu bir no-op (hiçbir şey yapmayan işlem) olmalıdır.
Bu yöntem, gerekli verileri (ör. motor ofsetleri) toplamalı ve
:pyattr:calibration sözlüğünü buna göre güncellemelidir.
get_observation
< source >( ) → RobotObservation
Dönüş değeri
RobotObservation
Robotun mevcut duyusal durumunu temsil eden düz bir sözlük. Yapısı observation_features ile eşleşmelidir.
Robotun mevcut gözlem değerini alın.
send_action
< source >( action: dict ) → RobotAction
Robota bir eylem komutu gönderin.
Robotun ürettiği gözlemlerin yapısını ve türlerini açıklayan bir sözlük.
Yapısı (anahtarları), :pymeth:get_observation tarafından döndürülen yapıyla eşleşmelidir.
Sözlüğün değerleri şunlardan biri olmalıdır:
- Basit bir değer olması durumunda değerin türü, örneğin tek bir proprioseptif değer (bir eklem konumu/hızı) için
float - Dizgi türünde bir değer olması durumunda, örneğin görüntüler için
(height, width, channel)gibi, şekli temsil eden bir demet
Not: Bu özellik, robot bağlı olsun ya da olmasın çağrılabilir olmalıdır.
Robotun beklediği eylemlerin yapısını ve türlerini açıklayan bir sözlük. Yapısı (anahtarları), :pymeth:send_action fonksiyonuna iletilen veri yapısıyla eşleşmelidir. Sözlüğün değerleri, basit bir değer olması durumunda o değerin türü olmalıdır; örneğin tek bir proprioseptif değer (bir eklem için hedef konum/hız) için float.
Not: Bu özellik, robot bağlı olsun ya da olmasın çağrılabilir olmalıdır.
Robotun şu anda bağlı olup olmadığı. False ise, :pymeth:get_observation veya
:pymeth:send_action çağrısı bir hata yükseltmelidir.
Robotun şu anda kalibre edilip edilmediğini belirtir. Uygulanabilir değilse her zaman True olmalıdır
RobotConfig
sınıf lerobot.robots.RobotConfig
< source >( id: str | None = Nonecalibration_dir: pathlib.Path | None = None )
make_robot_from_config
SO-100 ve SO-101 takipçileri
SO100Follower ve SO101Follower, aynı SOFollower sınıfının takma adlarıdır; iki kol, kontrol kodlarında değil yapılandırmalarında farklılık gösterir. SO100FollowerConfig ve SO101FollowerConfig da benzer şekilde SOFollowerRobotConfig sınıfının takma adlarıdır.
SO-100/101/10X için ortak işlevselliği uygulayan genel SO takipçi tabanı.
Donanım modeli başına config_class ve name ile alt sınıflandırılmak üzere tasarlanmıştır.
Bağlantı anında kolun dinlenme konumunda olduğunu ve kalibrasyonu çalıştırmak için torkun güvenle devre dışı bırakılabileceğini varsayıyoruz.
send_action
< source >( action: dict ) → RobotAction
Dönüş değeri
RobotAction
motorlara gönderilen, potansiyel olarak kırpılmış eylem.
Yükseltilen
RobotDeviceNotConnectedError
RobotDeviceNotConnectedError— robot bağlı değilse.
Kolu, hedef eklem konfigürasyonuna hareket ettirmek için komut verin.
Göreli eylem büyüklüğü, max_relative_target yapılandırma parametresine bağlı olarak kırpılabilir. Bu durumda, gönderilen eylem orijinal eylemden farklıdır.
Bu nedenle, bu fonksiyon her zaman fiilen gönderilen eylemi döndürür.
sınıf lerobot.robots.so_follower.SOFollowerRobotConfig
< source >( 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
İki SO takipçisi, tek bir bimanuel robot olarak sürülür.
TheRobotStudio tarafından tasarlanan İki Ellili SO Follower Kolları
sınıf lerobot.robots.bi_so_follower.BiSOFollowerConfig
< source >( left_arm_config: SOFollowerConfigright_arm_config: SOFollowerConfigcameras: dict = <factory>id: str | None = Nonecalibration_dir: pathlib.Path | None = None )
Bi SO Follower robotları için yapılandırma sınıfı.
KochFollower
- Koch v1.0, bilek-dirsek genişletmesi ile ve olmadan, Tau Robotics'ten Alexander Koch tarafından geliştirilmiştir
- Jess Moss tarafından geliştirilen Koch v1.1
Bağlantı anında kolun dinlenme konumunda olduğunu ve kalibrasyonu çalıştırmak için torkun güvenle devre dışı bırakılabileceğini varsayıyoruz.
send_action
< source >( action: dict ) → RobotAction
Kolu, hedef eklem konfigürasyonuna hareket ettirmek için komut verin.
Göreli eylem büyüklüğü, max_relative_target yapılandırma parametresine bağlı olarak kırpılabilir. Bu durumda, gönderilen eylem orijinal eylemden farklıdır.
Bu nedenle, bu fonksiyon her zaman fiilen gönderilen eylemi döndürür.
sınıf lerobot.robots.koch_follower.KochFollowerConfig
< source >( 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 robotun kendisinde çalışır. LeKiwiClient, ağ üzerinden onunla iletişim kuran ve aynı Robot arayüzünü sunan ana bilgisayar tarafındaki vekildir.
Robot, üç omniwheel mobil taban ve uzaktan takipçi kola sahiptir. Lider kol yerel olarak (laptop üzerinde) bağlanır ve eklem konumları kaydedildikten sonra uzaktaki takipçi kola iletilir (güvenlik sınırlaması uygulandıktan sonra). Paralel olarak, tekerlekler için ham hız komutları üretmek klavye teleoperasyonu kullanılır.
send_action
< source >( action: dict ) → RobotAction
Dönüş değeri
RobotAction
motorlara gönderilen, potansiyel olarak kırpılmış eylem.
Yükseltilen
RobotDeviceNotConnectedError
RobotDeviceNotConnectedError— robot bağlı değilse.
lekiwi'yi hedef eklem konfigürasyonuna hareket etmesi için komut verin.
Göreli eylem büyüklüğü, max_relative_target yapılandırma parametresine bağlı olarak kırpılabilir. Bu durumda, gönderilen eylem orijinal eylemden farklıdır.
Bu nedenle, bu fonksiyon her zaman fiilen gönderilen eylemi döndürür.
sınıf lerobot.robots.lekiwi.LeKiwiConfig
< source >( 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 )
Uzak mobil robotla ZMQ soketlerini oluşturur
ZMQ iletişimini temizler
Uzak robotdan gözlemleri yakalayın: mevcut takipçi kol konumları, mevcut tekerlek hızları (gövde çerçevesi hızlarına dönüştürülür: x, y, theta) ve bir kamera karesi. ZMQ üzerinden alır, gövde çerçevesi hızlarına çevir
send_action
< source >( action: dict ) → np.ndarray
lekiwi'yi hedef eklem konfigürasyonuna hareket etmesi için komutlandırın. Motor uzayına çevirir + ZMQ üzerinden gönderir
sınıf lerobot.robots.lekiwi.LeKiwiClientConfig
< source >( 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
CAN bus iletişimini kullanarak 7 DOF'lu bir kolu ve kavrayıcıyı kontrol eden OpenArms Follower Robot. Kol, MIT kontrol modunda Damiao motorları kullanır.
OpenArms robotu için kalibrasyon prosedürünü çalıştırın.
Kalibrasyon prosedürü:
- Torku devre dışı bırak
- Kullanıcıdan gripperlar kapalıyken kollarını asılı konuma getirmesini isteyin
- Bunu sıfır konumu olarak ayarlayın
- Her eklem için hareket aralığını kaydet
- Kalibrasyonu kaydet
Motorları uygun ayarlarla yapılandırın.
Robota bağlanın ve isteğe bağlı olarak kalibrasyon yapın.
Bağlantı anında kolların güvenli bir dinlenme konumunda olduğunu ve gerekirse kalibrasyonun çalıştırılabilmesi için torkun güvenle devre dışı bırakılabileceğini varsayıyoruz.
Robotla bağlantıyı kesin.
Robotun konum, hız ve torkunu içeren mevcut gözlemi alın.
Tüm motor durumlarını (pos/vel/torque) 3 ayrı okuma yerine tek bir CAN yenileme döngüsünde okur.
send_action
< source >( action: dictcustom_kp: dict[str, float] | None = Nonecustom_kd: dict[str, float] | None = None )
Robota komut gönder.
Eylem büyüklüğü, güvenlik sınırlarına göre kırpılabilir.
sınıf lerobot.robots.openarm_follower.OpenArmFollowerConfig
< source >( 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
sınıf lerobot.robots.bi_openarm_follower.BiOpenArmFollower
< source >( config: BiOpenArmFollowerConfig )
Bimanual OpenArm Follower Kollar
sınıf lerobot.robots.bi_openarm_follower.BiOpenArmFollowerConfig
< source >( id: str | None = 'bi_openarm_follower'calibration_dir: pathlib.Path | None = Noneleft_arm_config: OpenArmFollowerConfigBaseright_arm_config: OpenArmFollowerConfigBasecameras: dict = <factory> )
Bi OpenArm Follower robotları için yapılandırma sınıfı.
OmxFollower
Önceden kalibre edilmiş olarak gelen OMX robotları için:
- Paketten gelen varsayılan kalibrasyon motorlarla eşleşmiyorsa, motorlardan okuyun ve kaydedin
- Bu, manuel kalibrasyon gerektirmeden önceden kalibre edilmiş robotların kullanılmasını sağlar
- Eğer bir kalibrasyon dosyası yoksa, fabrika varsayılan değerlerini kullanın (homing_offset=0, range_min=0, range_max=4095)
send_action
< source >( action: dict ) → RobotAction
Kolu, hedef eklem konfigürasyonuna hareket ettirmek için komut verin.
Göreli eylem büyüklüğü, max_relative_target yapılandırma parametresine bağlı olarak kırpılabilir. Bu durumda, gönderilen eylem orijinal eylemden farklıdır.
Bu nedenle, bu fonksiyon her zaman fiilen gönderilen eylemi döndürür.
sınıf lerobot.robots.omx_follower.OmxFollowerConfig
< source >( 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
Pollen Robotics tarafından geliştirilen Reachy 2.
sınıf lerobot.robots.reachy2.Reachy2RobotConfig
< source >( 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
sınıf lerobot.robots.unitree_g1.UnitreeG1Config
< source >( 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 humanoid, iki bağımsız robot olarak, bir kol ve bir el olarak sunulur.
Bağlantı anında kolun dinlenme konumunda olduğunu ve kalibrasyonu çalıştırmak için torkun güvenle devre dışı bırakılabileceğini varsayıyoruz.
sınıf lerobot.robots.hope_jr.HopeJrArmConfig
< source >( 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 )
sınıf lerobot.robots.hope_jr.HopeJrHandConfig
< source >( port: strside: strdisable_torque_on_disconnect: bool = Truecameras: dict = <factory>id: str | None = Nonecalibration_dir: pathlib.Path | None = None )
RebotB601Follower
sınıf lerobot.robots.rebot_b601_follower.RebotB601Follower
< source >( config: RebotB601FollowerRobotConfig )
Seeed Studio reBot B601 takip kolu (6-DOF + kavrama, CAN motorlar).
Motor iletişimi, CAN hattı üzerinden motorbridge paketi tarafından yönetilir; bu hat, Damiao seri köprüsü veya MotorBridge'in yerel CAN taşıma katmanı aracılığıyla erişilir.
Torku etkinleştirmeden önce her motorun kontrol modunu ayarlayın.
Kolu elle hareket ettirebilmek için motor torkunu devre dışı bırakın (salt okunur hata ayıklama).
Motorları ve kameraları robottan ayırın.
Kolun hedef eklem konfigürasyonuna komut edin.
Konumlar derece cinsinden ifade edilir. Göreceli eylem büyüklüğü, max_relative_target'a bağlı olarak kırpılabilir; bu nedenle aslında gönderilen eylem her zaman döndürülür.
sınıf lerobot.robots.rebot_b601_follower.RebotB601FollowerRobotConfig
< source >( 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 takip robotu için kayıtlı yapılandırma.
BiRebotB601Follower
sınıf lerobot.robots.bi_rebot_b601_follower.BiRebotB601Follower
< source >( config: BiRebotB601FollowerConfig )
Bimanual Seeed Studio reBot B601 takipçi.
İki tek kollu RebotB601Follower örneğini birleştirir. Her kolun gözlem ve eylem anahtarları left_ / right_ önekiyle adlandırılmıştır.
sınıf lerobot.robots.bi_rebot_b601_follower.BiRebotB601FollowerConfig
< source >( left_arm_config: RebotB601FollowerConfigright_arm_config: RebotB601FollowerConfigcameras: dict = <factory>id: str | None = Nonecalibration_dir: pathlib.Path | None = None )
İki kollu reBot B601 takipçi robotu için yapılandırma sınıfı.
EarthRoverMiniPlus
sınıf lerobot.robots.earthrover_mini_plus.EarthRoverMiniPlus
< source >( config: EarthRoverMiniPlusConfig )
Frodobots SDK HTTP API ile kontrol edilen EarthRover Mini Plus robotu.
Bu robot, doğrudan donanım bağlantısı yerine Frodobots SDK üzerinden bulut tabanlı kontrol kullanır. Kameralar, Agora bulutu üzerinden WebRTC ile yayın yapar ve kontrol komutları HTTP POST istekleri ile gönderilir.
Robot şu özellikleri destekler:
- SDK HTTP uç noktaları üzerinden erişilen çift kamera (ön ve arka)
- Doğrusal ve açısal hız kontrolü
- Pil ve yön telemetrisi
SDK tabanlı robot için kalibrasyon gerekmez.
Robotu yapılandırın (SDK tabanlı robot için hiçbir şey yapmaz).
bağlan
< source >( calibrate: bool = True )
Frodobots SDK ile robota bağlanın.
bağlantıyı kes
< source >( )
Yükseltilen
DeviceNotConnectedError
DeviceNotConnectedError— Robot bağlı değilse
Robotla bağlantıyı kesin.
Robotu durdurur ve SDK bağlantısını kapatır.
get_observation
< source >( ) → RobotObservation
Dönüş değeri
RobotObservation
Şu gözlemi içeren:
- front: RGB formatında ön kamera görüntüsü (480, 640, 3)
- rear: Arka kamera görüntüsü (480, 640, 3) RGB biçiminde
- speed: float - Mevcut hız (ham SDK değeri)
- battery_level: float - Pil seviyesi (0-100)
- orientation: float - Derece cinsinden robot yönelimi
- gps_latitude: float - GPS enlem koordinatı
- gps_longitude: float - GPS enlem koordinatı
- gps_signal: float - GPS sinyal gücü (yüzde)
- signal_level: float - Ağı sinyal seviyesi (0-5)
- vibration: float - Titreşim sensörü okuması
- lamp: float - Lamba durumu (0=kapalı, 1=açık)
- accelerometer_x/y/z: float - İvmeölçer eksenleri (ham SDK değeri)
- gyroscope_x/y/z: float - Jiroskop eksenleri (ham SDK değeri)
- magnetometer_filtered_x/y/z: float - Magnetometre eksenleri (ham SDK değeri)
- wheel_rpm_0/1/2/3: float - Tekerlek RPM değerleri
Yükseltilen
DeviceNotConnectedError
DeviceNotConnectedError— Robot bağlı değilse
SDK'dan güncel robot gözlem değerini alın.
Kamera kareleri SDK uç noktalarından /v2/front ve /v2/rear üzerinden alınır. Kareler base64'ten çözümlenir ve BGR'den RGB formatına dönüştürülür. Robot telemetrisi /data ucundan alınır. Sensör dizileri (accels, gyros, mags, rpms) her biri [values…, timestamp] girdileri içerir; her diziden en son okuma kullanılır.
Not: Kamera kareleri SDK uç noktalarından /v2/front ve /v2/rear adreslerinden alınır. Kareler base64'ten çözümlenir ve BGR'den RGB formatına dönüştürülür. Robot telemetrisi /data uç noktasından alınır. Tüm SDK değerleri, veri seti kaydı için uygun aralıklara normalize edilir.
send_action
< source >( action: dict ) → RobotAction
Parametreler
- action — Aşağıdaki anahtarlara sahip Action sözlüğü:
- linear_velocity: Hedef doğrusal hız (-1 ile 1 arasında)
- angular_velocity: Hedef açısal hız (-1 ile 1 arasında)
Dönüş değeri
RobotAction
Gönderilen eylem (action_features anahtarlarıyla eşleşir)
Yükseltilen
DeviceNotConnectedError
DeviceNotConnectedError— Robot bağlı değilse
SDK üzerinden eylemi robota gönderin.
Not: Eylemler, SDK'ya POST /control uç noktası üzerinden gönderilir. SDK, [-1, 1] aralığında komutlar bekler.
sınıf lerobot.robots.earthrover_mini_plus.EarthRoverMiniPlusConfig
< source >( sdk_url: str = 'http://localhost:8000'id: str | None = Nonecalibration_dir: pathlib.Path | None = None )
Frodobots SDK kullanılarak EarthRover Mini Plus robotu için yapılandırma.
Bu robot, Frodobots SDK HTTP API üzerinden bulut tabanlı kontrol kullanır. Kamera kareleri, doğrudan SDK HTTP uç noktaları üzerinden erişilir.