Zum Hauptinhalt springen

Der Simulator

Ein kostenloser 3D-Roboterarm-Simulator mit Blockly

Lernen Sie Roboterprogrammierung online in einem browserbasierten digitalen Zwilling. Erstellen Sie links Blockly-Programme, simulieren Sie in der Mitte einen Arm mit fünf Gelenken und prüfen Sie rechts Kollisionen und Punkte.

Der Roboterarm

Fünf Gelenke in einer Kette

Im Servo-Modus wird jeweils ein Gelenk auf einen absoluten Winkel bewegt, den die Lernenden bestimmen. Die zertifizierte Cutter-Grid-Übung ist die Ausnahme: Bewegungen im festen Weltkoordinatensystem werden vor der Ausführung durch deterministische Inverskinematik kompiliert.

Reihenfolge der Gelenkkette, Drehachse, Winkelbereich, Anfangswinkel und Geschwindigkeit
JointAxisRangeInitialSpeed
BasisdrehungbaseYawX30° … 150°90°60°/s
Schulterrolle (nur Simulation)shoulderRoll-45° … 45°0°45°/s
SchultershoulderY30° … 150°90°45°/s
EllenbogenelbowZ17.5° … 162.5°90°60°/s
HandgelenkwristB0° … 180°90°75°/s

X, Y, Z, B und die geparkte Schneidachse E beginnen beim Home-Wert der Firmware von 90°. Shoulder Roll existiert nur in der Simulation und beginnt bei 0°. Geometrische Versätze bilden diesen Hardwarezustand auf genau eine sichere dargestellte Pose ab; es gibt keine verborgene zweite Startpose.

Die Blöcke

Drei Servo-Blöcke plus zertifizierte Cutter-Grid-Bewegungen

Der Servo-Modus nutzt Winkel-, Warte- und Wiederholungsblöcke. Cutter Grid ergänzt sechs feste Weltrichtungen und ganzzahlige Distanzen. Blockly erzeugt validierte Program IR statt JavaScript; der Planer friert vor der Wiedergabe eine deterministische Gelenkbahn ein.

set <joint> to <angle>°

Bewegt ein Gelenk auf einen absoluten Winkel. Die Gelenkliste stammt aus der Aufgabe; ein Winkel außerhalb des Bereichs wird vor dem Start abgelehnt.

wait <ms>

Hält die aktuelle Pose. Zulässig sind 0 bis 5000 Millisekunden.

repeat <n> times

Führt die enthaltenen Blöcke 1- bis 20-mal aus. Eine Schleife zählt als ein Block statt als n Blöcke und verbessert dadurch vor allem den Effizienzwert.

Sicherheitsabstand zum Kopf

Eine abgelehnte Bewegung statt einer Kollision

Der Kopf besteht nicht aus Voxeln und kann nicht geschnitten werden. Vor jeder Befehlsausführung prüft der Simulator den gesamten Werkzeugweg fortlaufend gegen die Kopfgeometrie. Diese geometrische Einschränkung verhindert, dass schnelle Bewegungen eine Toleranz des Physikmodells durchdringen.

Erkennt die Bahnprüfung einen Kontakt, hält der Lauf in der letzten sicheren Pose an. Der verursachende Block wird hervorgehoben und die Simulation wechselt in einen behebbaren Fehlerzustand. Die Darstellung verbirgt keine Korrektur: Beim Stopp zeigt die Oberfläche den verantwortlichen Block.

Was das Protokoll meldet

12:04:31 Lauf gestartet · Aufgabe neat-short-haircut

12:04:31 shoulderRoll → 15°

12:04:32 shoulder → 72°

12:04:33 elbow → 10° abgelehnt · Kopfsicherheitsabstand · letzte sichere Pose wird gehalten

12:04:33 Zustand → Fehler (behebbar) · Block 3

Bewertung

Zusammensetzung der Punktzahl

Drei Teilwerte werden jeweils auf 0 bis 100 begrenzt und mit festen Gewichten kombiniert. Angezeigt wird eine Dezimalstelle; intern bleibt die volle Genauigkeit erhalten.

Vollständigkeit

×0.60

|Target ∩ Result| / |Target ∪ Result| × 100

Voxel-IoU gegenüber der Zielfrisur. Zu viel und zu wenig Schneiden werden genau gleich bestraft.

Effizienz

×0.25

min(100, ReferenceProgramCost / ProgramCost × 100)

Die Programmkosten sind die Zahl der Quellblöcke plus 0,25 je ausgeführtem Befehl. Eine Schleife ist daher günstiger als dieselben einzeln notierten Bewegungen.

Zeit

×0.15

min(100, ReferenceTimeMs / EstimatedDurationMs × 100)

Aus Gelenkweg und Geschwindigkeit geschätzt, niemals im Browser gemessen. Ein langsamer Laptop kostet keine Punkte.

Endpunktzahl

0.60 × Completion + 0.25 × Efficiency + 0.15 × Time

Liefert ein Anbieter Gewichte, deren Summe nicht 1 ergibt, meldet der Simulator einen klaren Fehler, statt sie unbemerkt zu normalisieren.

Kalibrierte Referenz: Ordentlicher Kurzhaarschnitt

Reference blocks5
Reference program cost6.25
Reference time5645 ms

Das Startprogramm erreicht mindestens 80 Punkte für den Abschluss und lässt bewusst Raum für Verbesserungen. Es zu erreichen ist nicht die Obergrenze.

Steuerung

Programm ausführen

Starten
Startet im Anfangszustand der Aufgabe.
Pausieren / Fortsetzen
Hält die Uhr an und setzt sie fort, ohne die Pose zu verlieren.
Einzelschritt
Führt im Leerlauf oder pausierten Zustand genau einen atomaren Befehl aus.
Stoppen
Beendet den Lauf, ohne eine Punktzahl zu speichern. Das Feld zeigt nur den vorläufigen Abschlussgrad.
Zurücksetzen
Setzt die Simulation zurück und behält das Programm bei.
Testen
Bewertet das Programm mit derselben Engine und demselben Ergebnis unsichtbar innerhalb weniger Millisekunden.

Offen dargestellt

Was noch fehlt

Diese Einschränkungen jetzt aufzuführen ist besser, als sie erst im Unterricht zu entdecken.

  • Konten und gespeicherte Arbeitsbereiche
  • Generische Laufzeit-Inverskinematik außerhalb des zertifizierten Cutter-Grid-Planers
  • Scherenbetätigung oder Physik-Engine
  • Realistische Haarsträhnen (der Simulator verwendet Voxel)
  • Selbstkollision des Roboters
  • Eine eigene Mobilversion
  • MQTT-Übertragung in der App (spezifiziert, noch nicht verbunden)
  • Anmeldung und verifizierte Spieleridentitäten

Fragen

Häufig gefragt

Müssen wir einen Roboter kaufen?
Nein. Das eigentliche Produkt ist der Simulator im Browser. Der physische Arm existiert und die Firmware ist offen, doch der Unterricht setzt keinen eigenen Roboter voraus.
Auf welchen Geräten läuft es?
Verwenden Sie Chrome oder Edge auf einem Desktop mit etwa 1280×720 oder mehr. Die 3D-Arbeitsfläche ist für Tastatur und Zeiger ausgelegt; eine eigene Mobilversion gibt es nicht.
Kann man die Punktzahl manipulieren?
In einer Wettkampfrunde wird das Programm auf dem Server wiedergegeben; dessen Punktzahl gilt. Browsermeldungen werden nicht vertraut, und die Ausführungszeit wird aus Gelenkwegen berechnet statt gemessen. Hardwareunterschiede können das Ergebnis daher nicht verändern.
Kann der Roboter den Kopf treffen?
Nein. Der Sicherheitsabstand wird mit einer kontinuierlichen geometrischen Bahnprüfung kontrolliert, nicht mit einer toleranzbehafteten Physiksimulation. Bei Kontakt bleibt der Arm in seiner letzten sicheren Pose und wechselt in einen behebbaren Fehlerzustand.
Wird ein Konto benötigt?
Für Einzelübungen nicht. Konten und gespeicherte Arbeitsbereiche sind noch nicht umgesetzt; die folgende Liste zeigt die übrigen Lücken.
Ist das Projekt fertig?
Der öffentliche Web-Client und die Rust-API sind bereitgestellt. Servo-Ablauf, Cutter-Grid-Übungen und -Lektionen sowie Solo- und Versus-Modus sind spielbar und unter Chrome und Edge abgenommen. Konten, gespeicherte Arbeitsbereiche, MQTT in der App und dedizierte Mobilunterstützung fehlen noch.