Robot SO-ARM 101 : robotique éducative, programmation et intelligence artificielle

Le projet SO-ARM 101 propose une progression pédagogique complète pour découvrir la robotique moderne à partir d’un exemple concret : apprendre à un robot à reproduire un geste à partir de démonstrations. À l’aide de deux bras robotiques, de deux caméras, de scripts Python et d’un modèle d’intelligence artificielle, on explore toute la chaîne qui mène d’un geste humain à un comportement autonome — comment un geste devient une donnée, puis comment cette donnée apprend au robot à agir seul.

SO-ARM 101 rend la robotique intelligente visible, manipulable et enseignable. Il s’adresse en priorité au secondaire II et à l’enseignement supérieur, ainsi qu’à la formation du corps enseignant, tout en restant accessible à toute personne souhaitant aborder concrètement la robotique, la programmation, les données et l’intelligence artificielle.

Le projet est développé par le Service Écoles-Médias (SEM) du Département de l’Instruction Publique (DIP), Genève.

Accéder au dépôt GitHub


Bras Leader et Follower du projet SO-ARM 101

Bras Leader et Follower du projet SO-ARM 101

Le principe général

Le système repose sur deux bras SO-ARM 101. Le bras Leader, manipulé par l’humain, sert à montrer le geste. Le bras Follower le reproduit en temps réel. Pendant cette phase, deux caméras enregistrent la scène : une caméra globale, qui observe l’ensemble de la zone de travail, et une caméra placée près de la pince.

Les démonstrations enregistrées forment un dataset, c’est-à-dire l’ensemble des exemples à partir desquels le robot va apprendre. Ce dataset sert à entraîner un modèle d’apprentissage par imitation : plutôt que d’être programmé étape par étape, le robot apprend en imitant les exemples montrés par l’humain. Le projet utilise pour cela un type de modèle conçu pour la robotique, appelé ACT (Action Chunking Transformers).

Une fois entraîné, le modèle est déployé sur le robot. Le bras Follower n’est alors plus guidé directement : il s’appuie sur les caméras et sur ce qu’il a appris pour réaliser la tâche de manière autonome.

La tâche de référence

La tâche de référence est volontairement simple : le robot doit attraper un cube posé sur le plateau, puis le déposer dans une boîte. Le cube est présenté à cinq positions différentes (centre, libre, haut, gauche, droite), et l’on enregistre dix démonstrations par position, soit cinquante au total.

Cette tâche, simple en apparence, permet d’aborder plusieurs questions essentielles : la précision du geste, la qualité des démonstrations, la cohérence entre ce que le robot voit pendant l’enregistrement et pendant le déploiement, la construction d’un dataset exploitable, l’entraînement d’un modèle, et le passage d’un contrôle humain à un comportement autonome.

Ce que l’on peut travailler avec les élèves

Robotique

Les servomoteurs, les articulations, la calibration, les limites mécaniques, la téléopération et les questions de sécurité liées au mouvement d’un robot réel.

Programmation

Des scripts Python pour configurer les servomoteurs, communiquer avec le robot, gérer les caméras, enregistrer les données, entraîner le modèle et déployer le robot.

Données

Les démonstrations deviennent un dataset. Les élèves découvrent pourquoi la qualité des données est déterminante pour l’apprentissage d’un modèle.

Vision

Les deux caméras permettent d’aborder le cadrage, la zone utile et la cohérence entre entraînement et déploiement, ainsi que le rôle de l’image dans le comportement du robot.

Intelligence artificielle

L’apprentissage par imitation : le robot apprend à partir d’exemples fournis par l’humain, puis tente de reproduire la tâche de façon autonome.

Démarche scientifique

Une approche expérimentale : tester, observer, corriger, comparer, documenter et améliorer progressivement le système.

Avant de commencer : se procurer et fabriquer le robot

Avant d’aborder le logiciel (phases 1 à 10), il faut réunir le matériel, fabriquer les bras et préparer le plateau de la tâche.

Le matériel nécessaire

  • Deux bras SO-ARM 101 : un Leader et un Follower.
  • Douze servomoteurs Feetech STS3215 (six par bras) et deux cartes de contrôle.
  • Deux caméras USB.
  • Un PC sous Linux. Une carte graphique compatible CUDA est recommandée pour accélérer l’entraînement (phase 9), mais le reste du projet permet déjà de travailler de nombreuses notions sans dépendre de cette étape.

Les servomoteurs et les cartes

Le plus simple est de partir du kit SO-ARM101 Servo Motor Kit Pro de Seeed Studio, qui réunit les servomoteurs, les cartes/adaptateurs et les câbles nécessaires au montage. Les alimentations ne sont pas comprises dans le kit : elles sont à prévoir séparément (5 V pour le Leader, 12 V pour le Follower dans la version Pro). Voir le kit chez Seeed Studio.

Les pièces du robot : à imprimer ou à acheter

Les pièces de structure des bras peuvent être imprimées en 3D à partir des fichiers du projet — disponibles dans le dossier hardware du dépôt GitHub, issus de la conception open source de The Robot Studio — ou achetées toutes faites (par exemple le squelette imprimé proposé par Seeed Studio). Le montage des deux bras est ensuite détaillé en phase 2.

Fichiers de The Robot Studio (SO-ARM100) · Squelette imprimé Seeed Studio

Le plateau de la tâche

Le plateau est une planche en bois de 60 × 40 cm ; les cibles (les cinq positions du cube) et les emplacements des boîtes y ont été découpés et gravés au laser du SEMLab. Les fichiers de construction (STL, SVG, etc.) seront mis à disposition dans le dossier hardware du dépôt GitHub.

Les phases du projet

De l’installation au robot autonome, le projet se parcourt en dix phases, chacune accompagnée d’un guide. (Les guides déjà documentés sont disponibles dans le dépôt GitHub ; les suivants y sont ajoutés au fur et à mesure de l’avancement du projet.)

Les guides détaillés et les fichiers PDF sont disponibles dans le dépôt GitHub du projet.

Voir les guides sur GitHub

Phase 1 — Installation de l’environnement

Préparer l’ordinateur : environnement LeRobot, Python, bibliothèques nécessaires, outils vidéo et permissions Linux pour accéder au robot et aux caméras.

Phase 2 — Configuration et montage des servomoteurs

Attribuer un identifiant unique à chacun des servomoteurs (six par bras), tester leur mouvement, les centrer, puis monter les bras Leader et Follower.

Phase 3 — Calibration des limites et position de repos

Définir, pour chaque servomoteur, ses positions minimale, centrale et maximale, afin d’obtenir des mouvements sûrs et reproductibles.

Phase 4 — Tests et contrôle manuel

Vérifier le bon fonctionnement des deux bras et piloter chaque articulation au clavier, pour valider les limites avant de passer à la téléopération.

Phase 5 — Téléopération Leader → Follower

Piloter le bras Follower en temps réel à partir du bras Leader : le geste effectué sur l’un est reproduit immédiatement par l’autre.

Phase 6 — Caméras

Ajouter les deux caméras (vue globale et vue proche de la pince), vérifier leur cadrage et préparer la cohérence visuelle nécessaire à l’apprentissage.

Phase 7 — Enregistrement du dataset

Enregistrer les démonstrations qui serviront à l’apprentissage : cinquante au total pour la tâche de référence (dix par position du cube). Ces démonstrations constituent le dataset.

Phase 8 — Consolidation et vérification du dataset

Regrouper et contrôler les démonstrations enregistrées, et vérifier leur qualité et leur cohérence — car c’est à partir de ces données que le modèle apprendra.

Phase 9 — Entraînement du modèle ACT

Entraîner le modèle d’apprentissage par imitation : à partir du dataset, l’ordinateur apprend à reproduire le geste. Une carte graphique accélère nettement cette étape.

Phase 10 — Déploiement autonome

Installer le modèle entraîné sur le robot. Le bras Follower n’est plus guidé par l’humain : il réalise la tâche de manière autonome, à partir des caméras et de ce qu’il a appris.

Ressources du projet

Le dépôt GitHub SO-ARM 101 est le point central du projet.

Lien GitHub :
https://github.com/yanko-sem/SO-ARM-101

Il regroupe les scripts Python, les guides de phase et leurs fichiers PDF, les fichiers matériels, les fichiers de configuration, la documentation, ainsi que les informations de licence, de citation, de contribution et de suivi des versions.

Ouvrir le dépôt GitHub

Remerciements

Ce projet s’appuie sur des travaux open source que nous tenons à remercier :

  • The Robot Studio, pour la conception open source des bras SO-ARM100 / SO-ARM101, dont sont issus les fichiers 3D utilisés ici. Ces fichiers sont réutilisés et redistribués dans le dossier hardware du dépôt GitHub du projet, dans le respect de leur licence Apache 2.0.
  • Hugging Face, pour le framework open source LeRobot, qui sert de base à toute la chaîne d’apprentissage par imitation.

Nous remercions également la communauté open source de la robotique éducative, dont les ressources rendent ce type de projet accessible à l’enseignement.