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 est un bras humanoïde 7 DOF open source conçu pour la recherche et le déploiement en IA physique.

Pour obtenir votre OpenArm, assemblé ou en kit, et rejoindre la communauté mondiale, parcourez les fabricants vérifiés et certifiés à travers le monde sur openarm.dev.

Qu'est-ce qui est unique ?

  • Conception à l'échelle humaine : OpenArm est conçu avec des proportions anthropomorphes, dimensionné pour une personne d'environ 160 à 165 cm de taille. Cela offre un équilibre optimal entre une portée pratique et une inertie maîtrisable pour un fonctionnement sûr et réactif.

  • Architecture axée sur la sécurité : Conçu avec des moteurs rétroactionnables QDD et une haute compliance, OpenArm privilégie une interaction sûre entre l'humain et le robot tout en conservant des capacités de charge utiles (6,0 kg en pointe / 4,1 kg nominales) pour des tâches réelles.

  • Conçu pour durer : Les composants structurels critiques sont fabriqués en aluminium et en acier inoxydable, garantissant des performances robustes pour la collecte répétée de données et l'utilisation continue en recherche.

  • Entièrement accessible et réalisable : chaque composant, des pièces CNC et boîtiers imprimés en 3D au câblage électrique, est conçu pour être achetable et réalisable par des chercheurs individuels et des laboratoires, avec des données de fabrication complètes fournies.

  • Pratique et abordable : À 6 500 USD pour un système bimanuel complet, OpenArm offre des capacités de niveau recherche pour une fraction du coût des robots humanoïdes traditionnels.

Exigences de la plateforme

**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.

Guide de sécurité

Avant d'utiliser OpenArm, veuillez lire le guide de sécurité officiel. Points clés :

  • Installation sécurisée : Fixez le bras à une surface plane et stable à l'aide de vis ou de pinces
  • Distance de sécurité : Gardez les parties du corps et les objets hors de la portée de mouvement pendant le fonctionnement
  • Équipement de protection : Portez toujours des lunettes de sécurité ; utilisez un EPI supplémentaire si nécessaire
  • Limites de charge utile : Ne pas dépasser les limites de charge utile spécifiées (6,0 kg au pic / 4,1 kg nominaux par bras)
  • Arrêt d'urgence : Connaître l'emplacement et le fonctionnement du dispositif d'arrêt d'urgence
  • Inspection régulière : Vérifiez la présence de vis desserrées, de limites mécaniques endommagées, de bruits inhabituels et de dommages au câblage

Configuration matérielle

Suivez la documentation matérielle officielle d'OpenArm pour :

  • Liste des matériaux et approvisionnement
  • Instructions d’impression 3D
  • Assemblage mécanique
  • Câblage électrique

Les dépôts de matériel sont disponibles sur github.com/enactic/openarm.

Configuration du bus CAN

OpenArm utilise la communication par bus CAN avec des moteurs Damiao. Une fois l’adaptateur USB du bus CAN branché sur votre PC Linux, suivez le guide Damiao Motors et bus CAN pour configurer l’interface.

Installation rapide :

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

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

Installer LeRobot 🤗

Suivez notre Guide d’installation, puis installez le support du moteur Damiao :

pip install -e ".[damiao]"

Utilisation

Bras suiveur (robot)

Commande
Exemple d'API
lerobot-calibrate \
    --robot.type=openarm_follower \
    --robot.port=can0 \
    --robot.side=right \
    --robot.id=my_openarm_follower

Bras leader (Téléopérateur)

Le bras leader est utilisé pour la téléopération, c'est-à-dire pour le déplacer manuellement afin de contrôler le bras suiveur.

Commande
Exemple d'API
lerobot-calibrate \
    --teleop.type=openarm_leader \
    --teleop.port=can1 \
    --teleop.id=my_openarm_leader

Téléopération

Pour téléopérer OpenArm avec un contrôle maître-esclave :

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

Utilisez les mêmes --robot.id et --teleop.id que lors de l'étalonnage, afin que LeRobot trouve les fichiers d'étalonnage.

Téléopération bimanuelle

Pour téléopérer un setup OpenArm bimanuel avec deux bras leaders et deux bras followers :

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

Enregistrement des données

Pour enregistrer un jeu de données lors d'une téléopération :

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 ajoute la date et l’heure de la session au nom du jeu de données, qui est donc enregistré sous my_hf_username/my_openarm_dataset_YYYYMMDD_HHMMSS. Consultez le guide d’enregistrement pour les caméras, les contrôles clavier et le reste du flux de travail.

Options de configuration

Configuration du suiveur

ParamètrePar défautDescription
port-Interface CAN (par exemple, can0)
sideNoneCôté bras : "left", "right" ou None pour des limites personnalisées
use_can_fdTrueActiver CAN FD pour des débits de données plus élevés
can_bitrate1000000Débit nominal (1 Mbps)
can_data_bitrate5000000Débit de données CAN FD (5 Mbps)
max_relative_targetNoneLimite de sécurité pour les positions cibles relatives
position_kpPar articulationGains proportionnels de contrôle de position
position_kdPar articulationGains dérivés de contrôle de position

Configuration du leader

ParamètrePar défautDescription
port-Interface CAN (par exemple, can1)
manual_controlTrueDésactiver le couple pour le mouvement manuel
use_can_fdTrueActiver CAN FD pour des débits de données plus élevés
can_bitrate1000000Débit nominal (1 Mbps)
can_data_bitrate5000000Débit de données CAN FD (5 Mbps)

Configuration du moteur

OpenArm utilise des moteurs Damiao avec la configuration par défaut suivante :

JointType de moteurEnvoyer l'IDID de réception
joint_1 (Rotation de l'épaule)DM80090x010x11
joint_2 (Élévation de l'épaule)DM80090x020x12
joint_3 (Rotation de l'épaule)DM43400x030x13
joint_4 (Flexion du coude)DM43400x040x14
joint_5 (Rotation du poignet)DM43100x050x15
joint_6 (Inclinaison du poignet)DM43100x060x16
joint_7 (Rotation du poignet)DM43100x070x17
gripperDM43100x080x18

Dépannage

Aucune réponse des moteurs

  1. Vérifier les connexions de l'alimentation
  2. Verify CAN wiring (CAN-H, CAN-L, GND)
  3. Lancer les diagnostics : lerobot-setup-can --mode=test --interfaces=can0
  4. Consultez le guide de dépannage Damiao pour plus de détails

Interface CAN introuvable

Vérifiez que l'interface CAN est configurée :

ip link show can0

Ressources

Update on GitHub