LeRobot documentation
OpenArm
OpenArm
OpenArm, fiziksel yapay zeka araştırması ve dağıtımı için tasarlanmış açık kaynaklı 7DOF insansı bir koldur.
OpenArm'ınızı, montajlı veya kendin yap olarak edinmek ve küresel topluluğa katılmak için dünya genelindeki doğrulanmış ve sertifikalı üreticileri openarm.dev adresinde inceleyin.
Neyi Farklı Kılıyor?
İnsan Ölçeğinde Tasarım: OpenArm, yaklaşık 160-165 cm boyundaki bir kişiye uygun orantılarla tasarlanmıştır. Bu, güvenli ve tepkisel bir çalışma için pratik erişim ile yönetilebilir atalet arasında optimal bir denge sağlar.
Güvenlik Öncelikli Mimari: QDD geri sürülebilir motorlar ve yüksek uyumlulukla geliştirilen OpenArm, gerçek dünya görevleri için pratik taşıma kapasitelerini (6,0 kg tepe / 4,1 kg nominal) korurken güvenli insan-robot etkileşimini önceliklendirir.
Dayanıklılık İçin Tasarlandı: Kritik yapısal bileşenler, alüminyum ve paslanmaz çelikten üretilmiştir; bu da tekrarlayan veri toplama ve sürekli araştırma kullanımında sağlam performans sağlar.
Tamamen Erişilebilir ve Üretilebilir: CNC parçalarından 3D baskılı kasalara ve elektrik kablolarına kadar her bileşen, bireysel araştırmacılar ve laboratuvarlar tarafından satın alınabilir ve üretilebilir şekilde tasarlanmıştır; tam üretim verileri sağlanmaktadır.
Pratik ve Uygun Fiyatlı: Tam bir çift kollu sistem için 6.500 ABD doları karşılığında OpenArm, geleneksel humanoid robot maliyetlerinin çok küçük bir kısmıyla araştırma sınıfı yetenekler sunar.
Platform Gereksinimleri
**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.
Güvenlik Kılavuzu
OpenArm'i kullanmadan önce lütfen resmi güvenlik kılavuzunu okuyun. Temel noktalar:
- Güvenli kurulum: Kolu, vidalar veya kelepçelerle düz ve kararlı bir yüzeye sabitleyin
- Güvenli mesafe: Çalışma sırasında vücut kısımlarını ve nesneleri hareket alanının dışında tutun
- Koruyucu ekipman: Her zaman güvenlik gözlüğü takın; gerektiğinde ek KKD kullanın
- Yük sınırları: Belirtilen yük sınırlarını aşmayın (kol başına 6,0 kg zirve / 4,1 kg nominal)
- Acil durdurma: Acil durdurma cihazının konumunu ve kullanımını bilin
- Düzenli kontrol: Gevşemiş vidaları, hasarlı mekanik sınırları, olağandışı sesleri ve kablo hasarlarını kontrol edin
Donanım Kurulumu
Şu konular için resmi OpenArm donanım belgelerini izleyin:
- Malzeme listesi ve tedarik
- 3D baskı talimatları
- Mekanik montaj
- Elektrik tesisatı
Donanım depoları github.com/enactic/openarm adresinde mevcuttur.
CAN Bus Kurulumu
OpenArm, Damiao motorlarla CAN bus iletişimi kullanır. CAN bus USB adaptörünü Linux bilgisayarınıza taktıktan sonra, arayüzü yapılandırmak için Damiao Motors and CAN Bus guide kılavuzunu izleyin.
Hızlı kurulum:
# Setup CAN interfaces
lerobot-setup-can --mode=setup --interfaces=can0,can1
# Test motor communication
lerobot-setup-can --mode=test --interfaces=can0,can1LeRobot 🤗'u Yükle
Yükleme Kılavuzu’muzu izleyin, ardından Damiao motor desteğini yükleyin:
pip install -e ".[damiao]"Kullanım
Takip Kolu (Robot)
lerobot-calibrate \
--robot.type=openarm_follower \
--robot.port=can0 \
--robot.side=right \
--robot.id=my_openarm_followerfrom lerobot.robots.openarm_follower import OpenArmFollower, OpenArmFollowerConfig
config = OpenArmFollowerConfig(
port="can0",
side="right", # or "left" for left arm
id="my_openarm_follower",
)
follower = OpenArmFollower(config)
follower.connect()
# Read current state
obs = follower.get_observation()
print(obs)
# Send action (position in degrees)
action = {
"joint_1.pos": 0.0,
"joint_2.pos": 0.0,
"joint_3.pos": 0.0,
"joint_4.pos": 45.0,
"joint_5.pos": 0.0,
"joint_6.pos": 0.0,
"joint_7.pos": 0.0,
"gripper.pos": 0.0,
}
follower.send_action(action)
follower.disconnect()Lider Kol (Teleoperatör)
Leader kol, teleoperasyon için kullanılır; takipçi kolu kontrol etmek için manuel olarak hareket ettirilir.
lerobot-calibrate \
--teleop.type=openarm_leader \
--teleop.port=can1 \
--teleop.id=my_openarm_leaderfrom lerobot.teleoperators.openarm_leader import OpenArmLeader, OpenArmLeaderConfig
config = OpenArmLeaderConfig(
port="can1",
id="my_openarm_leader",
manual_control=True, # Disable torque for manual movement
)
leader = OpenArmLeader(config)
leader.connect()
# Read current position (as action to send to follower)
action = leader.get_action()
print(action)
leader.disconnect()Teleoperasyon
OpenArm'i lider-takipçi kontrolüyle teleoperasyon yapmak için:
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_leaderKalibrasyon sırasında kullanılan --robot.id ve --teleop.id değerlerini kullanın; böylece LeRobot kalibrasyon dosyalarını bulur.
İki Ellilik Uzaktan Kontrol
İki lider ve iki takipçi kolu olan bimanüel bir OpenArm kurulumunu teleoperasyonla kontrol etmek için:
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_leaderVeri Kaydı
Teleoperasyon sırasında bir veri seti kaydetmek için:
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=10lerobot-record, oturumun tarih ve saatini veri seti adının sonuna ekler; bu nedenle veri seti my_hf_username/my_openarm_dataset_YYYYMMDD_HHMMSS olarak kaydedilir. Kameralar, klavye kontrolleri ve iş akışının geri kalanı için kayıt kılavuzuna bakın.
Yapılandırma Seçenekleri
Takipçi Yapılandırması
| Parametre | Varsayılan | Açıklama |
|---|---|---|
port | - | CAN arayüzü (ör. can0) |
side | None | Arm tarafı: özel sınırlar için "left", "right" veya None |
use_can_fd | True | Daha yüksek veri hızları için CAN FD'yi etkinleştirin |
can_bitrate | 1000000 | Nominal bit hızı (1 Mbps) |
can_data_bitrate | 5000000 | CAN FD veri bant genişliği (5 Mbps) |
max_relative_target | None | Göreceli hedef konumları için güvenlik sınırı |
position_kp | Eklem başına | Konum kontrolü oransal kazançları |
position_kd | Eklem başına | Konum kontrolü türev kazançları |
Lider Yapılandırması
| Parametre | Varsayılan | Açıklama |
|---|---|---|
port | - | CAN arayüzü (ör. can1) |
manual_control | True | Manuel hareket için torku devre dışı bırak |
use_can_fd | True | Daha yüksek veri hızları için CAN FD'yi etkinleştirin |
can_bitrate | 1000000 | Nominal bit hızı (1 Mbps) |
can_data_bitrate | 5000000 | CAN FD veri bant genişliği (5 Mbps) |
Motor Yapılandırması
OpenArm, aşağıdaki varsayılan yapılandırmayı kullanan Damiao motorlarını kullanır:
| Birlikte | Motor Türü | Kimlik Gönder | Alıcı Kimliği |
|---|---|---|---|
| joint_1 (Omuz pan) | DM8009 | 0x01 | 0x11 |
| joint_2 (Omuz kaldırma) | DM8009 | 0x02 | 0x12 |
| joint_3 (Omuz rotasyonu) | DM4340 | 0x03 | 0x13 |
| joint_4 (Dirsek fleksiyonu) | DM4340 | 0x04 | 0x14 |
| joint_5 (Bilek yuvarlama) | DM4310 | 0x05 | 0x15 |
| joint_6 (Bilek pitch) | DM4310 | 0x06 | 0x16 |
| joint_7 (Bilek rotasyonu) | DM4310 | 0x07 | 0x17 |
| gripper | DM4310 | 0x08 | 0x18 |
Sorun Giderme
Motorlardan Yanıt Alınamadı
- Güç kaynağı bağlantılarını kontrol edin
- Verify CAN wiring (CAN-H, CAN-L, GND)
- Tanılama çalıştırın:
lerobot-setup-can --mode=test --interfaces=can0 - Daha fazla ayrıntı için Damiao sorun giderme kılavuzuna bakın
CAN Arayüzü Bulunamadı
CAN arayüzünün yapılandırıldığından emin olun:
ip link show can0