Techniken und Tools

Modellbasiert entwickeln im Internet of Things

Seite: 3/4

Firma zum Thema

Eine verteilte Roboter-Steuerung mit Web-User-Interface

Als Beispiel für eine IoT-Anwendung bauen wir eine verteilte Steuerung für einen Roboter-Arm auf. Die Roboter-Hardware ist ein AL5D-Kit von Lynxmotion mit SSC32-Steuerplatine. Abbildung 3 zeigt den Roboterarm; dieser besteht aus fünf Achsen und einer Greifeinheit. Die Steuerplatine dient der komfortablen Ansteuerung der Motoren und ist ihrerseits über ein serielles Protokoll mit einem Hostrechner verbunden. Der Hostrechner kann z.B. ein Raspberry PI, ein beliebiges anderes Microcontroller-System oder ein PC sein.

Der Roboterarm wie in Abbildung 3 dargestellt realisiert folgende Funktionalität:

Bildergalerie
  • Der Greifer kann Objekte festhalten und loslassen.
  • Der Arm kann den Greifer an eine bestimmte kartesische Position bewegen.
  • Der Anstellwinkel und Drehwinkel des Greifers sind in bestimmten Grenzen frei wählbar.

Die Architektur der gesamten IoT-Anwendung ist in Abbildung 4 (siehe Bildergalerie) dargestellt. Die RobotArm-Hardware incl. der Steuerplatine (wie oben beschrieben) wird von einem in Java implementierten Robot Client gesteuert. Die RobotArm-Applikation auf dem Robot-Client-Rechner stellt die Basis-Funktionalität zur Steuerung des Roboters über einen MQTT-Server bereit. Dabei werden MQTT-konform sog. Topics auf dem Server publiziert, durch deren Ansteuerung ein Client den Roboterarm verfahren und den Greifer steuern kann. In einer realen Produktionsumgebung müssten noch Aspekte wie Zugriffssicherheit, Sensorik oder Bildverarbeitung berücksichtigt werden. Um das Beispiel einfach zu halten, beschränken wir uns derzeit auf die reinen Steuerungsaspekte.

Aus Benutzersicht stellt unsere IoT-Anwendung ein webbasiertes User Interface bereit, das die Robotersteuerung auf zwei Ebenen erlaubt:

  • Von einem Benutzer in der Rolle des Maschineneinrichters kann der Roboterarm in seinen grundlegenden Funktionen bedient werden (z.B. Fahren auf Position, Greifen)
  • Von einem Benutzer in der Rolle eines System-Bedieners kann der Roboterarm für die Umsetzung von komplexen Abläufen benutzt werden (z.B. Bewegen eines Objekts von A nach B).

Das User-Interface kann auf einem normalen Web-Browser ablaufen. Es ist über eine Websockets/WAMP-Schnittstelle [9] mit dem GUI Client verbunden. Dieser implementiert die Fachlogik zwischen UI und der über MQTT zur Verfügung gestellten Roboter-Schnittstelle. In unserem Beispiel ist der GUI-Client in JavaScript (kurz: JS) implementiert.

Die IoT-Anwendung ist also physikalisch auf folgende Systeme verteilt:

  • Roboterarm-Hardware
  • Roboterarm-Steuerung und Bereitstellung über MQTT (Robot Client)
  • MQTT-Server
  • Fachlogik und Ansteuerung über MQTT (GUI Client)
  • Browser (benutzerseitig)

(ID:44023335)