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.
| Joint | Axis | Range | Initial | Speed |
|---|---|---|---|---|
| BasisdrehungbaseYaw | X | 30° … 150° | 90° | 60°/s |
| Schulterrolle (nur Simulation)shoulderRoll | — | -45° … 45° | 0° | 45°/s |
| Schultershoulder | Y | 30° … 150° | 90° | 45°/s |
| Ellenbogenelbow | Z | 17.5° … 162.5° | 90° | 60°/s |
| Handgelenkwrist | B | 0° … 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.25min(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.15min(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
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.