Le simulateur
Un simulateur 3D gratuit de bras robotisé avec Blockly
Apprenez la programmation robotique en ligne dans un jumeau numérique sur navigateur. Créez les programmes Blockly à gauche, simulez le bras à cinq articulations au centre et consultez collisions et scores à droite.
Le bras
Cinq articulations en chaîne
Le mode Servo déplace une articulation à la fois vers un angle absolu, calculé par l’élève. Dans Cutter Grid, les déplacements en repère fixe sont compilés avant exécution par cinématique inverse déterministe.
| Joint | Axis | Range | Initial | Speed |
|---|---|---|---|---|
| Lacet de la basebaseYaw | X | 30° … 150° | 90° | 60°/s |
| Roulis d’épaule (simulation uniquement)shoulderRoll | — | -45° … 45° | 0° | 45°/s |
| Épauleshoulder | Y | 30° … 150° | 90° | 45°/s |
| Coudeelbow | Z | 17.5° … 162.5° | 90° | 60°/s |
| Poignetwrist | B | 0° … 180° | 90° | 75°/s |
Les axes X, Y, Z et B, ainsi que l’axe E de l’outil au repos, démarrent tous à la valeur Home du micrologiciel, soit 90°. Shoulder Roll n’existe que dans la simulation et démarre à 0°. Les décalages géométriques associent cet état matériel à une seule pose sûre ; aucune seconde pose initiale n’est cachée.
Les blocs
Trois blocs Servo et des mouvements Cutter Grid certifiés
Le mode Servo utilise les blocs angle, attente et répétition. Cutter Grid ajoute six directions fixes et des distances entières. Blockly produit un Program IR validé et le planificateur fige une trajectoire déterministe avant le rejeu.
set <joint> to <angle>°
Amène une articulation à un angle absolu. Le défi définit les articulations disponibles et rejette tout angle hors plage avant l’exécution.
wait <ms>
Maintient la pose actuelle pendant 0 à 5 000 millisecondes.
repeat <n> times
Exécute les blocs internes de 1 à 20 fois. La boucle compte pour un bloc au lieu de n, ce qui améliore fortement l’efficacité.
Dégagement autour de la tête
Refuser le mouvement avant la collision
La tête n’est pas composée de voxels et ne peut pas être coupée. Avant de valider une commande, le simulateur balaie continûment la trajectoire de l’outil contre sa géométrie. Cette contrainte géométrique empêche toute traversée à grande vitesse.
Si le balayage détecte un contact, l’exécution s’arrête à la dernière pose sûre. Le bloc source est mis en évidence et la simulation passe dans un état d’erreur récupérable. Le rendu ne masque jamais une correction : à l’arrêt du bras, l’interface indique le bloc responsable.
Contenu du journal
12:04:31 exécution lancée · défi neat-short-haircut
12:04:31 shoulderRoll → 15°
12:04:32 shoulder → 72°
12:04:33 elbow → 10° refusé · dégagement insuffisant de la tête · maintien de la dernière pose sûre
12:04:33 état → erreur récupérable · bloc 3
Notation
Composition du score
Trois sous-scores, chacun limité à 0–100, sont combinés selon des poids fixes. Un chiffre après la virgule est affiché, mais la précision complète est conservée.
Achèvement
×0.60|Target ∩ Result| / |Target ∪ Result| × 100
IoU des voxels par rapport à la coiffure cible. Couper trop pénalise exactement autant que ne pas couper assez.
Efficacité
×0.25min(100, ReferenceProgramCost / ProgramCost × 100)
Le coût du programme correspond au nombre de blocs source, plus 0,25 par commande exécutée. Une boucle coûte donc moins cher que la répétition explicite des mêmes mouvements.
Temps
×0.15min(100, ReferenceTimeMs / EstimatedDurationMs × 100)
Le temps est estimé d’après le déplacement et la vitesse des articulations, jamais mesuré par le navigateur. Un ordinateur lent ne vous fait pas perdre de points.
Score final
0.60 × Completion + 0.25 × Efficiency + 0.15 × Time
Si un fournisseur transmet des poids dont la somme n’est pas égale à 1, le simulateur signale clairement l’erreur au lieu de les normaliser discrètement.
Référence étalonnée : coupe courte nette
Le programme de départ obtient au moins 80 points pour l’achèvement et laisse volontairement une marge de progression. L’égaler ne constitue pas un plafond.
Commandes
Exécuter un programme
- Exécuter
- Exécute depuis l’état initial du défi.
- Pause / Reprendre
- Arrête et relance le chronomètre sans perdre la pose.
- Pas à pas
- Exécute exactement une commande atomique depuis l’arrêt ou la pause.
- Arrêter
- Met fin à l’exécution sans enregistrer de score ; le panneau n’affiche qu’un achèvement provisoire.
- Réinitialiser
- Restaure la simulation tout en conservant le programme.
- Tester
- Évalue le programme sans affichage, avec le même moteur et le même résultat, en quelques millisecondes.
En toute transparence
Ce qui n’est pas encore développé
Mieux vaut signaler ces limites ici que les découvrir en classe.
- Comptes et espaces enregistrés
- Cinématique inverse générique à l’exécution hors du planificateur Cutter Grid certifié
- Actionnement des ciseaux ou moteur physique
- Cheveux réalistes (le simulateur utilise des voxels)
- Auto-collision du robot
- Version mobile dédiée
- Transport MQTT dans l’application (spécifié, pas encore raccordé)
- Connexion et identités vérifiées
Questions
Questions fréquentes
- Faut-il acheter un robot ?
- Non. Le produit est le simulateur accessible dans le navigateur. Le bras physique existe et son micrologiciel est libre, mais l’enseignement n’en dépend pas.
- Sur quels appareils fonctionne-t-il ?
- Utilisez Chrome ou Edge sur ordinateur, idéalement en 1280×720 ou plus. L’atelier 3D nécessite un clavier et un dispositif de pointage ; aucune version mobile dédiée n’existe.
- Un élève peut-il truquer le score ?
- Lors d’une manche compétitive, le programme est rejoué sur le serveur et le score du serveur fait foi. Aucune donnée déclarée par le navigateur n’est prise pour argent comptant ; le temps d’exécution est calculé d’après le déplacement des articulations, et non chronométré, afin que le matériel n’influence pas le résultat.
- Le robot peut-il heurter la tête ?
- Non. Le dégagement repose sur un balayage géométrique continu, pas sur une simulation physique tolérante. En cas de contact, le bras reste dans sa dernière pose sûre et passe dans un état d’erreur récupérable.
- Faut-il un compte ?
- L’entraînement individuel ne nécessite aucun compte. Les comptes et la sauvegarde des espaces ne sont pas encore disponibles ; les autres lacunes figurent ci-dessous.
- Le projet est-il terminé ?
- Le client web public et l’API Rust sont déployés. La boucle Servo, les exercices et leçons Cutter Grid, ainsi que les modes solo et versus sont jouables et validés sous Chrome et Edge. Comptes, sauvegarde, MQTT côté app et mobile dédié restent absents.