Netidee Blog Bild
Funktionen, Blöcke und Code
Wie unsere grafischen Funktionsblöcke entstehen (27.02.2021)
Förderjahr 2019 / Project Call #14 / ProjektID: 4647 / Projekt: netRob

Unser derzeitiger Fokus im Projekt liegt auf der grafischen Roboterprogrammierung. Wie schon erwähnt, verwenden wir hierfür Blockly von Google (https://developers.google.com/blockly).

Diese grafische Programmiersprache inklusive visuellem Code-Editor ermöglicht es Programmierkonzepte von Schleifen, Variablen und logischen Ausdrücken etc. einfach mittels Drag-and-Drop von sogenannten Funktionsblöcken zu erstellen ohne sich um korrekte Syntax sorgen zu müssen. Deswegen lässt sich Blockly ideal als Werkzeug für erste Programmiererfahrung nutzen. Blockly läuft übrigens vollständig im Web-Browser und ist weiters als Open-Source Bibliothek ideal für unsere Zwecke.

Unter der Haube generiert Blockly Programmcode in jeglicher Programmiersprache – in unserem Falle natürlich wieder Javascript für den Browser. An dieser Stelle setzt unsere derzeitige Entwicklung an, indem wir uns für netRob viele Gedanken gemacht haben, welche visuellen Funktionsblöcke zur Roboterprogrammierung für unsere Nutzer zur Verfügung stehen sollen. Unsere eigenen Funktionsblöcke erweitern dabei die Standardblöcke von Blockly welche beispielsweise den Umgang mit Variablen, Schleifen, etc. ermöglichen. Diese von uns definierten Funktionsblöcke umfassen somit eine Beschreibung des jeweiligen Funktionsblocks als auch welchen Code der jeweilige Funktionsblöck generieren soll.

Im Wesentlichen haben wir 4 Hauptgruppen an Funktionsblöcken spezifiziert: Bewegungsblöcke, Toolblöcke und Blöcke für Vektor- und Rotationsfunktionen. Die Bewegungsblöcke sollen elementare Bewegungen über kürzeste Pfade oder entlang von Linien/Kreisen über absolute Koordinaten mit Tool-Ausrichtung ermöglichen beziehungsweise Tool-Verschiebungen relativ zur aktuellen Pose. Toolblöcke ermöglichen die Interaktion mit einem/mehreren verschiedenen Werkzeugen wie beispielsweise Parallelgreifern oder Sauggreifern. Nachdem die verschiedenen Bewegungen stark auf Vektoren und Vektoroperationen aufbauen, wird hierfür ein eigener Datentyp für Vektoren und Rotationen benötigt. Das spannendste dabei ist natürlich die intuitive Definition der Blöcke, sodass beispielsweise komplexe 4x4-Matrix-Multiplikationen, wie sie bei der Kombination zweier Roboterposen vorkommen, über simple Funktionsblöcke einfach verständlich verwendbar sind - ohne fortgeschrittenes algebraisches Verständnis.

CAPTCHA
Diese Frage dient der Überprüfung, ob Sie ein menschlicher Besucher sind und um automatisierten SPAM zu verhindern.

    Weitere Blogbeiträge

    Datenschutzinformation
    Der datenschutzrechtliche Verantwortliche (Internet Privatstiftung Austria - Internet Foundation Austria, Österreich) würde gerne mit folgenden Diensten Ihre personenbezogenen Daten verarbeiten. Dies ist für die Nutzung der Website nicht notwendig, ermöglicht aber eine noch engere Interaktion mit Ihnen. Falls gewünscht, treffen Sie bitte eine Auswahl: