Simulateur robotique gratuit en ligne · Blockly · Jumeau numérique
Programmez un robotpour couper les cheveux.Chaque mouvement est vérifié.
HCR est une étude universitaire consacrée à un Hair Cutting Robot. Les participants assemblent des blocs pour guider un Service Robot à cinq articulations sur une coiffure en voxels. Un jumeau numérique vérifie chaque mouvement et refuse ceux qui risquent de toucher la tête.
Le client fonctionne dans le navigateur et un service Rust rejoue puis note les programmes envoyés. Aucun robot physique n’est nécessaire ; la difficulté évolue selon les résultats de chaque participant.
Ou télécharger l’application de bureau pour macOS, Windows et Linux. Elle est utile lorsque la salle ne dispose pas de Wi-Fi.
- shoulderRoll15°
- shoulder72°
- elbow10°
- elbow−48°
- baseYaw−30°
- baseYaw0°
- baseYaw30°
- wrist−20°
Pourquoi
L’enseignement de la robotique passe difficilement à l’échelle
Un bras, un élève
Un véritable bras robotisé coûte cher, ne sert qu’un élève à la fois et exige la présence d’un enseignant.
Un cours, un rythme
Une progression unique ennuie les élèves rapides et décourage ceux qui ont besoin de plus de temps.
Les erreurs coûtent cher
Sur le matériel réel, un mauvais angle provoque une collision. La solution la plus sûre consiste alors à ne pas laisser les débutants piloter.
La boucle
Programmez, vérifiez, notez. Modifiez une valeur et recommencez
Trois étapes, puis la troisième ramène à la première. Cette boucle constitue tout l’apprentissage.
- 1Programmer
Déplacez des blocs, sans saisir de syntaxe
Le mode Servo comporte trois blocs : angle absolu, attente et répétition. Cutter Grid ajoute six directions fixes et des distances entières, compilées en plan articulaire déterministe avant l’exécution.
Angles de servo · mouvements Cutter Grid · attente (0–5000 ms) · répétition (1–20×)
- 2Vérifier
Le jumeau numérique l’exécute d’abord
Avant tout mouvement, le programme est testé sur un modèle géométrique de la tête. Tout mouvement qui y pénétrerait est refusé ; le bras garde sa dernière pose sûre et le bloc responsable est signalé.
Contact par balayage continu · déterministe, sans moteur physique
- 3Noter
Un score, pas une note
Une erreur ne coûte qu’un nouvel essai. Le score mesure la fidélité à la coupe cible, la concision du programme et sa durée estimée.
0.60 completion + 0.25 efficiency + 0.15 time
Adaptation
Un niveau par élève, pas un niveau pour toute la classe
Après chaque essai, la plateforme réestime le niveau et choisit le défi suivant. Une réussite aisée augmente la difficulté ; une difficulté persistante la réduit.
- Aptitude θ
- Maîtrise de la programmation robotique sur une échelle logit, mise à jour après chaque programme rejoué.
- 2PL, et non 3PL
- Une coupe correcte ne peut pas être obtenue au hasard : le paramètre de devinette est fixé à zéro au lieu d’estimer un troisième paramètre à partir du bruit.
- Sélection des items
- Les défis sont classés selon l’information de Fisher au θ actuel, puis leur exposition est plafonnée afin de ne pas servir toujours les mêmes items aux élèves de même niveau.
- Crédit partiel
- Les scores sont continus. Avant de mettre l’estimation à jour, le service remappe chaque score autour du seuil de maîtrise de l’item tout en conservant la valeur d’origine.
- Étalonnage
- Un nouveau défi débute avec un statut provisoire : son exposition est plafonnée et il ne compte pas dans la mise à jour de l’aptitude avant d’avoir assez de réponses pour réestimer sa difficulté.
- Un seul θ pour l’instant
- Cette version utilise une valeur d’aptitude composite unique et consigne des étiquettes dimensionnelles pour chaque réponse. Un véritable modèle multidimensionnel constitue une étape future, pas une fonctionnalité actuelle.
Participation
Choisissez de participer ou non avant de commencer
Le client ne crée aucune session du simulateur ni aucun identifiant de joueur tant que la personne n’a pas choisi de participer à l’étude.
Données nécessaires à l’étude
Blockly Program IR compilé, version du défi, score et identifiants techniques de session ou d’envoi nécessaires à la relecture et à l’analyse.
Contexte facultatif
La langue principale est enregistrée sous un code général tel que zh ou en, et le décalage UTC sous forme de minutes. Le bouton « Participer » active les deux ; « Plus de réglages » permet de les désactiver séparément.
Données non recueillies
Nous ne recueillons aucune empreinte du navigateur, aucun nom précis de fuseau IANA, aucune position déduite, aucun identifiant publicitaire et aucun profil de suivi intersites.
Comment nous décrivons les données
Nous ne présentons pas ces données comme entièrement anonymes. Les dossiers de l’étude peuvent conserver des identifiants de session et le serveur garde ses journaux de sécurité habituels ; nous parlons donc de données désidentifiées.
Modes
Entraînez-vous seul ou affrontez la salle
Entraînement individuel
Sans limite de temps : un atelier, un défi et autant d’essais que souhaité.
- Vous pouvez exécuter, mettre en pause, reprendre, avancer commande par commande, arrêter ou réinitialiser. Le programme reste en place après la réinitialisation.
- « Tester » évalue le programme sans affichage en quelques millisecondes, au lieu d’attendre son animation.
- Affichez ou masquez l’aperçu de la coiffure cible pendant votre travail.
Manche en duel
Tous les participants de la salle reçoivent le même défi au même moment.
- Une durée réelle fixe, mesurée par l’horloge du serveur et non celle des joueurs.
- Personne ne voit les scores, même le sien, avant la fin de la manche.
- Vous pouvez soumettre autant de fois que vous le souhaitez ; seul le meilleur essai compte.
- Les programmes sont rejoués sur le serveur ; un ordinateur plus rapide n’apporte aucun avantage.
Sans backend configuré, le navigateur note les manches contre des bots scénarisés. Le menu, le salon et le tableau des scores les signalent clairement comme des entraînements. Le jeu hors ligne reste possible, mais un score local n’est jamais présenté comme résultat officiel.
Conçu avec Rust
Rust, du rejeu côté serveur au micrologiciel du robot
Rust n’est pas une simple étiquette dans HCR : il met en œuvre le service de notation, le moteur adaptatif, le protocole et la passerelle embarquée no_std.
Architecture technique
Quatre composants, un protocole
Simulator
HCR_Simulator_Frontend
React · TypeScript · Vite · React Three Fiber · Blockly
Toute la démonstration s’exécute côté client. Sans backend configuré, aucune requête réseau n’est envoyée.
Service
hcr-backend
Rust · MQTT over WebSocket · HTTP binding
Rejoue les programmes côté serveur, exécute la banque adaptative et gère les échéances et classements des manches.
Protocole
hcr-backend/schema
hcr.v1 · JSON and CBOR
Chaque message utilise une enveloppe et est corrélé par ULID. Les versions mineures ne font qu’ajouter des champs ; les récepteurs ignorent ce qu’ils ne reconnaissent pas au lieu d’échouer.
Matériel
hcr-fw
Rust (no_std) · ESP8266 · Arduino C++ as a hardware library
Sur le bras physique à cinq servomoteurs, Rust gère le démarrage, le routage, HTTP/JSON et l’état des servos ; C++ reste derrière une ABI C orientée octets. MQTT n’est pas encore implémenté.
Essayer
Programmation adaptative, jeu, simulation et éducation sur une même plateforme.
Aucun robot à acheter. Toute la classe apprend en même temps, chacun à son niveau. Lisez les informations sur l’étude, choisissez de participer ou non, puis ouvrez le premier défi.