Contexte technique et architecture du robot
Microduck est un robot bipède open‑source développé par Pollen Robotics et Hugging Face. Le modèle physique du robot, incluant le corps, les servomoteurs et les capteurs, est fourni dans le dépôt IsaacLab. Le simulateur utilise le moteur Newton avec le solveur MJWarp et les Better Actuator Models (BAM) pour convertir les consignes de position en couples réalistes, en tenant compte du firmware, des limites électriques du moteur, du frottement et du délai de commande.
Le robot expose 61 valeurs d’observation (positions, vitesses, états de capteurs) et accepte 14 valeurs d’action correspondant aux positions cibles des articulations. Cette interface doit rester identique entre la simulation, l’export ONNX et le runtime embarqué.
Entraînement en simulation avec Isaac Lab
Isaac Lab exécute des milliers d’environnements parallèles sur le GPU. La configuration présentée utilise --num_envs 4096 et peut atteindre 1.25 M pas de simulation par seconde sur un terrain accidenté avec le paramètre backlash activé. Le même pipeline peut être distribué sur 16 GPU pour réduire le temps d’entraînement.
Le processus intègre une randomisation de domaine étendue : masse et centre de masse, friction du sol, inertie des articulations, offsets d’encodeur, tension de batterie et chute de tension, latence de commande, variations de terrain et impulsions externes. Le jeu de paramètres backlash modélise le jeu mécanique dans chaque boîte de vitesses, ce qui expose la politique aux différences de direction de joint que l’on observe sur le matériel réel.
uv run isaaclab train \
--rl_library rsl_rl \
--task IsaacContrib-Velocity-Rough-MicroDuck \
--num_envs 4096 \
presets=backlashLe réseau de politique, entraîné avec l’algorithme RSL‑RL, génère un modèle TorchScript (policy.pt) et un modèle ONNX (policy.onnx) prêts à être déployés.
Transfert vers le robot physique
Après validation en simulation, le fichier policy.onnx est copié sur le robot via scp puis chargé avec les commandes robotctl. Le runtime embarqué charge le modèle, applique la même normalisation d’observations et le même facteur d’échelle d’actions que pendant l’entraînement, garantissant la cohérence du pipeline.
scp exported/policy.onnx microduck@ROBOT_HOST:/home/microduck/my_walking.onnx
ssh microduck@ROBOT_HOST
robotctl policy list
sudo robotctl policy load walk /home/microduck/my_walking.onnx
robotctl monitor
sudo robotctl policy reset walkLe modèle exporté doit respecter les contraintes d’interface de l’Arena : 61 observations, 14 actions et une taille maximale de 64 MiB. Une fois chargé, le robot exécute la marche sur terrain inégal, démontrant la robustesse acquise grâce à la randomisation du jeu mécanique et des variations de charge.