LeRobot documentation

OpenArm

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

OpenArm

OpenArm adalah lengan humanoid 7DOF open-source yang dirancang untuk penelitian dan penerapan AI fisik.

Untuk mendapatkan OpenArm Anda, baik yang sudah dirakit maupun rakitan sendiri, dan bergabung dengan komunitas global, jelajahi produsen yang terverifikasi dan tersertifikasi di seluruh dunia di openarm.dev.

Apa yang Unik?

  • Desakan Skala Manusia: OpenArm dirancang dengan proporsi menyerupai manusia, diskalakan untuk orang dengan tinggi sekitar 160-165 cm. Hal ini memberikan keseimbangan optimal antara jangkauan praktis dan inersia yang dapat dikelola untuk operasi yang aman dan responsif.

  • Arsitektur Berbasis Keselamatan: Dibangun dengan motor QDD yang dapat dikendalikan mundur dan kepatuhan tinggi, OpenArm mengutamakan interaksi manusia-robot yang aman sambil mempertahankan kemampuan beban praktis (puncak 6,0 kg / nominal 4,1 kg) untuk tugas-tugas di dunia nyata.

  • Dibangun untuk Ketahanan: Komponen struktural kritis menggunakan konstruksi aluminium dan baja tahan karat, memastikan kinerja yang kokoh untuk pengumpulan data berulang dan penggunaan penelitian berkelanjutan.

  • Seluruhnya Dapat Diakses & Dibangun: Setiap komponen, mulai dari bagian CNC dan casing yang dicetak 3D hingga kabel listrik, dirancang agar dapat dibeli dan dibangun oleh peneliti individu dan laboratorium, dengan data fabrikasi lengkap yang disediakan.

  • Praktis & Terjangkau: Dengan harga 6.500 USD untuk sistem bimanual lengkap, OpenArm menghadirkan kemampuan kelas riset dengan biaya yang jauh lebih rendah dibandingkan robot humanoid tradisional.

Persyaratan Platform

**Linux Only**: OpenArm currently only works on Linux. The CAN bus USB adapter does not have macOS drivers and has not been tested on Windows.

Panduan Keselamatan

Sebelum mengoperasikan OpenArm, silakan baca panduan keselamatan resmi. Poin-poin utama:

  • Pemasangan aman: Kencangkan lengan ke permukaan datar dan stabil menggunakan sekrup atau klem
  • Jarak aman: Jauhkan bagian tubuh dan benda dari jangkauan gerak selama pengoperasian
  • Peralatan pelindung: Selalu gunakan kacamata pengaman; gunakan APD tambahan sesuai kebutuhan
  • Batas beban: Jangan melebihi batas beban yang ditentukan (6,0 kg puncak / 4,1 kg nominal per lengan)
  • Stop darurat: Ketahui lokasi dan cara pengoperasian perangkat stop darurat
  • Pemeriksaan rutin: Periksa baut yang longgar, batas mekanis yang rusak, suara yang tidak biasa, dan kerusakan kabel

Pengaturan Perangkat Keras

Ikuti dokumentasi perangkat keras OpenArm resmi untuk:

  • Daftar bahan dan pengadaan
  • Petunjuk pencetakan 3D
  • Perakitan mekanis
  • Instalasi kelistrikan

Repositori perangkat keras tersedia di github.com/enactic/openarm.

Pengaturan Bus CAN

OpenArm menggunakan komunikasi CAN bus dengan motor Damiao. Setelah Anda mencolokkan adapter USB CAN bus ke PC Linux Anda, ikuti panduan Damiao Motors dan CAN Bus untuk mengonfigurasi antarmuka.

Pengaturan cepat:

# Setup CAN interfaces
lerobot-setup-can --mode=setup --interfaces=can0,can1

# Test motor communication
lerobot-setup-can --mode=test --interfaces=can0,can1

Install LeRobot 🤗

Ikuti Panduan Instalasi kami, lalu instal dukungan motor Damiao:

pip install -e ".[damiao]"

Penggunaan

Lengan Pengikut (Robot)

Perintah
Contoh API
lerobot-calibrate \
    --robot.type=openarm_follower \
    --robot.port=can0 \
    --robot.side=right \
    --robot.id=my_openarm_follower

Lengan Pemimpin (Teleoperator)

Lengan leader digunakan untuk teleoperasi - menggerakkannya secara manual untuk mengendalikan lengan follower.

Perintah
Contoh API
lerobot-calibrate \
    --teleop.type=openarm_leader \
    --teleop.port=can1 \
    --teleop.id=my_openarm_leader

Teleoperasi

Untuk melakukan teleoperasi OpenArm dengan kontrol leader-follower:

lerobot-teleoperate \
    --robot.type=openarm_follower \
    --robot.port=can0 \
    --robot.side=right \
    --robot.id=my_openarm_follower \
    --teleop.type=openarm_leader \
    --teleop.port=can1 \
    --teleop.id=my_openarm_leader

Gunakan --robot.id dan --teleop.id yang sama seperti saat kalibrasi, agar LeRobot dapat menemukan file kalibrasi.

Teleoperasi Bimanual

Untuk melakukan teleoperasi pada setup OpenArm bimanual dengan dua lengan leader dan dua lengan follower:

lerobot-teleoperate \
    --robot.type=bi_openarm_follower \
    --robot.left_arm_config.port=can0 \
    --robot.left_arm_config.side=left \
    --robot.right_arm_config.port=can1 \
    --robot.right_arm_config.side=right \
    --robot.id=my_bimanual_follower \
    --teleop.type=bi_openarm_leader \
    --teleop.left_arm_config.port=can2 \
    --teleop.right_arm_config.port=can3 \
    --teleop.id=my_bimanual_leader

Merekam Data

Untuk merekam dataset selama teleoperasi:

lerobot-record \
    --robot.type=openarm_follower \
    --robot.port=can0 \
    --robot.side=right \
    --robot.id=my_openarm_follower \
    --teleop.type=openarm_leader \
    --teleop.port=can1 \
    --teleop.id=my_openarm_leader \
    --dataset.repo_id=${HF_USER}/my_openarm_dataset \
    --dataset.single_task="Describe your task here" \
    --dataset.fps=30 \
    --dataset.num_episodes=10

lerobot-record menambahkan tanggal dan waktu sesi ke nama dataset, sehingga disimpan sebagai my_hf_username/my_openarm_dataset_YYYYMMDD_HHMMSS. Lihat panduan perekaman untuk kamera, kontrol keyboard, dan sisa alur kerja.

Opsi Konfigurasi

Konfigurasi Pengikut

ParameterDefaultDeskripsi
port-Antarmuka CAN (misalnya, can0)
sideNoneSisi lengan: "left", "right", atau None untuk batas kustom
use_can_fdTrueAktifkan CAN FD untuk laju data yang lebih tinggi
can_bitrate1000000Bitrate nominal (1 Mbps)
can_data_bitrate5000000Laju bit data CAN FD (5 Mbps)
max_relative_targetNoneBatas keamanan untuk posisi target relatif
position_kpPer sendiGain proporsional kontrol posisi
position_kdPer sendiPeningkatan turunan kontrol posisi

Konfigurasi Leader

ParameterDefaultDeskripsi
port-Antarmuka CAN (misalnya, can1)
manual_controlTrueNonaktifkan torsi untuk gerakan manual
use_can_fdTrueAktifkan CAN FD untuk laju data yang lebih tinggi
can_bitrate1000000Bitrate nominal (1 Mbps)
can_data_bitrate5000000Laju bit data CAN FD (5 Mbps)

Konfigurasi Motor

OpenArm menggunakan motor Damiao dengan konfigurasi default berikut:

GandaJenis MotorKirim IDID Terima
joint_1 (Pan bahu)DM80090x010x11
joint_2 (Angkat bahu)DM80090x020x12
joint_3 (Rotasi bahu)DM43400x030x13
joint_4 (Fleksi siku)DM43400x040x14
joint_5 (Putaran pergelangan tangan)DM43100x050x15
joint_6 (Pitch pergelangan tangan)DM43100x060x16
joint_7 (Rotasi pergelangan tangan)DM43100x070x17
gripperDM43100x080x18

Pemecahan Masalah

Tidak Ada Respons dari Motor

  1. Periksa koneksi catu daya
  2. Verify CAN wiring (CAN-H, CAN-L, GND)
  3. Jalankan diagnostik: lerobot-setup-can --mode=test --interfaces=can0
  4. Lihat panduan pemecahan masalah Damiao untuk detail lebih lanjut

CAN Interface Tidak Ditemukan

Pastikan antarmuka CAN telah dikonfigurasi:

ip link show can0

Sumber daya

Update on GitHub