Foxglove publie un flux ROS 2 capable d’enregistrer les mouvements du bras robotique SO-101 puis de les rejouer à leur rythme d’origine. Les trajectoires passent par les mêmes limites articulaires et contrôles d’autocollision que la téléopération en direct.
Le dispositif s’appuie sur le format ouvert MCAP, utilisé par défaut pour les sacs ROS 2. L’opérateur peut guider le bras à la main après avoir coupé le couple des moteurs, le piloter par cinématique inverse ou déplacer séparément ses articulations. Dans les trois cas, le système conserve les états articulaires, les états dynamiques et les transformations nécessaires à l’analyse.
Une trajectoire enregistrée comme un sac ROS 2
Le projet concerne le SO-101, un bras à cinq degrés de liberté couramment associé à LeRobot, l’écosystème de robotique de Hugging Face. Ici, le développeur Aditya Kamath remplace le fonctionnement classique à deux bras, dans lequel un bras « leader » transmet les gestes à un bras « follower », par une architecture ROS 2 exploitable avec un seul exemplaire.
Un nœud dédié écrit les sujets /joint_states, /dynamic_joint_states et /tf dans un fichier MCAP. Lors de la relecture, le système utilise les horodatages pour retrouver la cadence d’origine et publie par défaut une cible de position à 50 Hz. Il ne réalise pas encore d’interpolation entre les échantillons et rejoue uniquement l’enregistrement le plus récent.
Le choix architectural important concerne la sécurité du mouvement. La relecture n’envoie pas directement ses commandes aux moteurs : elle emprunte le même chemin que la téléopération et le pilotage par curseurs. Chaque cible reste donc soumise aux limites des articulations et au contrôle d’autocollision déjà présent dans la pile logicielle.
Le robot réel comparé au mode simulé
Foxglove a également servi à aligner deux enregistrements sur une même ligne de temps : l’un produit par le bras réel et l’autre par son mode simulé. Les courbes montrent un écart médian compris entre 0,2 et 2,4 degrés selon l’articulation. Le bras simulé se déplace un peu plus vite, ce que l’auteur attribue à l’absence de gravité et de contacts externes dans ce modèle simplifié.
Cette comparaison peut faciliter le réglage des contrôleurs, l’évaluation d’une modification de téléopération ou la mesure de répétabilité. Les fichiers MCAP s’ouvrent directement dans Foxglove, sans conversion spécifique, et le dépôt so_arm_ros2 rend le code accessible.
Des limites encore importantes
Le système ne surveille que les collisions du bras avec lui-même. Il ne détecte ni table, ni outil, ni obstacle placé dans l’espace de travail. Si la pose initiale diffère de celle de l’enregistrement, le bras rejoint cette pose à la vitesse autorisée par ses moteurs, ce qui impose de dégager la zone avant toute relecture.
La caméra montée au poignet n’est pas encore enregistrée, faute de calibration achevée. Le prototype reste donc centré sur le mouvement articulaire. La démonstration publiée par Foxglove fournit néanmoins une base reproductible pour enregistrer, inspecter et comparer les mouvements d’un petit bras robotique sous ROS 2.
