Zum Hauptinhalt springen

Kostenloser Online-Robotersimulator · Blockly · Digitaler Zwilling

Programmiere einen Roboter,der Haare schneidet.Jede Bewegung wird vorher geprüft.

HCR ist eine wissenschaftliche Studie zu einem Haarschneideroboter. Teilnehmende steuern mit Blöcken einen Serviceroboter mit fünf Gelenken über eine Voxelfrisur. Ein digitaler Zwilling prüft jede Bewegung und lehnt alles ab, was den Kopf berühren könnte.

Der Client läuft im Browser; ein Rust-Dienst gibt eingereichte Programme wieder und bewertet sie. Ein physischer Roboter ist nicht erforderlich, und die Aufgaben passen sich an die Leistung der Teilnehmenden an.

Oder die Desktop-App herunterladen für macOS, Windows und Linux. Nützlich in Räumen ohne WLAN.

Ordentlicher KurzhaarschnittAusführung
  1. shoulderRoll15°
  2. shoulder72°
  3. elbow10°
  4. elbow−48°
  5. baseYaw−30°
  6. baseYaw
  7. baseYaw30°
  8. wrist−20°
Vollständigkeit57.6
Hier schneidenBehalten

Warum

Robotikunterricht lässt sich nur schwer skalieren

Ein Arm, ein Lernender

Ein echter Roboterarm ist teuer, kann jeweils nur von einer Person genutzt werden und muss beaufsichtigt werden.

Ein Kurs, ein Tempo

Eine Klasse erhält meist eine feste Aufgabenfolge. Schnell Lernende langweilen sich, während andere den Anschluss verlieren.

Fehler sind teuer

Bei echter Hardware führt ein falscher Winkel zur Kollision. Deshalb dürfen Anfänger den Roboter oft gar nicht selbst steuern.

Der Ablauf

Schreiben, prüfen, bewerten. Dann eine Zahl ändern und erneut versuchen

Drei Schritte, wobei der dritte wieder zum ersten führt. Dieser Ablauf bildet die gesamte Lerneinheit.

  1. 1Programm

    Blöcke ziehen statt Syntax tippen

    Der Servo-Modus besitzt drei Blocktypen: absoluten Gelenkwinkel setzen, warten und wiederholen. Die zertifizierte Cutter-Grid-Übung ergänzt sechs feste Weltrichtungen und ganzzahlige Distanzen, die vor dem Lauf in einen deterministischen Gelenkplan kompiliert werden.

    Servowinkel · Cutter-Grid-Bewegungen · Warten (0–5000 ms) · Wiederholen (1–20×)

  2. 2Prüfen

    Ein digitaler Zwilling führt das Programm zuerst aus

    Bevor sich der Arm bewegt, wird dasselbe Programm in einem geometrischen Kopfmodell geprüft. Eine Bewegung in den Kopf wird abgelehnt: Der Arm bleibt in der letzten sicheren Pose, und der auslösende Block wird hervorgehoben.

    Kontinuierliche Bahnkontaktprüfung · deterministisch, ohne Physik-Engine

  3. 3Punktzahl

    Eine Punktzahl, keine Schulnote

    Ein Fehler kostet nur einen weiteren Versuch. Bewertet werden die Übereinstimmung mit der Zielfrisur, die Kompaktheit des Programms und die geschätzte Ausführungszeit.

    0.60 completion + 0.25 efficiency + 0.15 time

Die Garantie

Jede Aufgabe ist garantiert lösbar.

Eine Zielfrisur zuerst zu zeichnen und auf die Erreichbarkeit durch den Arm zu hoffen, funktioniert nicht. Eine frühe Aufgabe verlangte 91 Haarteile, obwohl der Arm nur 20 erreichen konnte. Sie war unlösbar, ohne dass die Lernenden gewarnt wurden.

Nun läuft der Löser zuerst. Ein Zielkandidat wird im kollisionsfreien Gelenkraum geprüft und dann an einen Referenzlöser übergeben. Kann dieser ihn nicht abschließen, wird der Kandidat bei der Erzeugung verworfen und nie ausgegeben. Die Lösung legt Referenzkosten und Referenzzeit der Stufe fest.

Eine frühe, von Hand entworfene Aufgabe

Von der Aufgabe verlangte Haare91
Vom Arm erreichbare Haare20

Die Aufgabe war nicht lösbar, doch die Oberfläche erklärte das nicht. Lernende konnten diesen Konstruktionsfehler leicht für eigenes Versagen halten.

Adaptiv

Eine passende Stufe pro Lernendem statt einer Stufe pro Klasse

Nach jedem Versuch schätzt die Plattform den Lernstand neu und wählt eine passende nächste Aufgabe. Wer sicher abschließt, erhält eine schwierigere Aufgabe; bei Problemen wird zurückgestuft. So bekommt jeder Lernende eine passende Stufe.

Fähigkeit θ
Fähigkeit zur Roboterprogrammierung auf einer Logit-Skala, nach jeder wiedergegebenen Programmausführung aktualisiert.
2PL statt 3PL
Eine richtige Frisur lässt sich nicht erraten. Deshalb ist der Rateparameter auf null gesetzt und der dritte Parameter wird nicht aus Rauschen geschätzt.
Aufgabenauswahl
Aufgaben werden nach Fisher-Information beim aktuellen θ sortiert. Eine Ausgabegrenze verhindert, dass stets dieselben wenigen Aufgaben an alle Personen derselben Stufe gehen.
Teilpunkte
Die Punktzahlen sind kontinuierlich. Vor der Aktualisierung wird jeder Rohwert um die Beherrschungsschwelle der Aufgabe neu abgebildet; der ursprüngliche Wert bleibt daneben erhalten.
Kalibrierung
Eine neue Aufgabe ist zunächst vorläufig: Ihre Ausgabe ist begrenzt und ihre Antworten zählen nicht für reguläre Fähigkeitsschätzungen, bis genügend Daten zur Neukalibrierung der Schwierigkeit vorliegen.
Vorerst ein θ
In dieser Version ist Fähigkeit ein zusammengesetzter Einzelwert. Jede Antwort trägt Dimensionsmerkmale für die Auswertung. Ein echtes mehrdimensionales Modell ist der nächste Schritt, keine aktuelle Behauptung.

Studienteilnahme

Entscheiden Sie vor Studienbeginn, ob Sie teilnehmen möchten

Der Client legt erst dann eine Simulatorsitzung oder Spielerkennung an, wenn eine Person der Teilnahme an dieser wissenschaftlichen Studie aktiv zustimmt.

Erforderliche Studiendaten

Kompiliertes Blockly Program IR, Aufgabenversion, Punktzahl sowie technische Sitzungs- oder Einreichungskennungen, die für Wiedergabe und Analyse erforderlich sind.

Optionale Angaben

Die Hauptsprache wird nur als grober Code wie zh oder en gespeichert, die aktuelle UTC-Abweichung in Minuten. „An der Studie teilnehmen“ aktiviert beide Angaben; unter „Weitere Einstellungen“ lassen sie sich einzeln abschalten.

Nicht gezielt erhoben

Wir erheben keine Browser-Fingerprints, genauen IANA-Zeitzonennamen, abgeleiteten Standorte, Werbekennungen oder seitenübergreifenden Trackingprofile.

Grad der Anonymisierung

Studienaufzeichnungen können Sitzungskennungen enthalten, und der Server führt übliche Sicherheitsprotokolle. Die Daten sind deshalb de-identifiziert, aber nicht vollständig anonym.

Modi

Allein üben oder gegen den Raum antreten

Einzelübung

Ohne Zeitlimit: Arbeitsfläche, eine Aufgabe und beliebig viele Versuche.

  • Starten, pausieren, fortsetzen, einzelne Befehle ausführen, stoppen oder zurücksetzen. Das Programm bleibt nach dem Zurücksetzen erhalten.
  • „Testen“ bewertet das Programm ohne Darstellung in Millisekunden, statt die Animation abzuwarten.
  • Die Vorschau der Zielfrisur kann während der Arbeit ein- oder ausgeblendet werden.

Wettkampfrunde

Alle im Raum erhalten gleichzeitig dieselbe Aufgabe.

  • Ein festes Zeitfenster nach der Serveruhr, nicht nach der Uhr eines Spielers.
  • Bis zum Rundenende sieht niemand eine Punktzahl, auch nicht die eigene.
  • Beliebig oft erneut einreichen; nur der beste Versuch zählt.
  • Programme werden serverseitig wiedergegeben. Ein schnellerer Laptop bringt keinen Vorteil.

Ohne konfiguriertes Backend bewertet der Browser Wettkampfrunden gegen skriptgesteuerte Bots. Menü, Lobby und Rangliste kennzeichnen sie klar als Übung. Offline kann gespielt werden, doch eine lokale Punktzahl wird nie als offizielles Ergebnis dargestellt.

Mit Rust entwickelt

Rust von der Server-Wiedergabe bis zur eingebetteten Roboter-Firmware

Rust ist in HCR kein dekoratives Etikett. Es implementiert den Bewertungsdienst, die adaptive Engine, die Protokollverarbeitung und das eingebettete no_std-Gateway.

Serverseitige WiedergabeProtokollRust-Firmware (Ziel)
Rust in HCR entdecken

Technische Grundlage

Vier Komponenten, ein Protokoll

Simulator

HCR_Simulator_Frontend

React · TypeScript · Vite · React Three Fiber · Blockly

Der gesamte Demo-Ablauf läuft clientseitig. Ohne konfiguriertes Backend sendet er keinerlei Netzwerkanfragen.

Service

hcr-backend

Rust · MQTT over WebSocket · HTTP binding

Gibt Programme serverseitig wieder, betreibt die adaptive Aufgabenbank und verwaltet Rundenfristen und Ranglisten.

Protokoll

hcr-backend/schema

hcr.v1 · JSON and CBOR

Jede Nachricht besitzt einen Umschlag und wird per ULID zugeordnet. Nebenversionen dürfen nur ergänzen; Empfänger verwerfen Unbekanntes, statt daran zu scheitern.

Hardware

hcr-fw

Rust (no_std) · ESP8266 · Arduino C++ as a hardware library

Ein physischer Arm mit fünf Servos. Rust verantwortet Startlogik, Routing, HTTP/JSON und Servozustand; C++ bleibt hinter einer byteorientierten C-ABI. MQTT ist im Gateway noch nicht implementiert.

Ausprobieren

Adaptives Programmieren, Spiel, Simulation und Bildung auf einer Plattform.

Es muss kein Roboter gekauft werden. Eine ganze Klasse kann gleichzeitig und auf passendem Niveau lernen. Lesen Sie die Studieninformationen, entscheiden Sie über die Teilnahme und öffnen Sie die erste Aufgabe.