top of page
AutorenbildMichael Schebek

Wie KI und LLMs die Robotik für alle zugänglich machen

In der heutigen Welt erleben wir einen rasanten Fortschritt in den Bereichen der künstlichen Intelligenz (KI) und der Automatisierung. Insbesondere Large Language Models (LLMs) wie das ursprünglich in [1] beschriebene Modell und moderne Versionen wie Chat-GPT haben das Potenzial, die Art und Weise, wie wir Roboter und Anlagen programmieren, grundlegend zu verändern.


Traditionell erforderte die Programmierung von Robotern und automatisierten Anlagen umfangreiches Expertenwissen. Speziell in klein- und mittelständischen Betrieben, die nicht über dieses spezialisierte Know-how verfügen, stellte dies eine erhebliche Einstiegshürde dar. Der Aufwand, Experten der jeweiligen Domänen einzusetzen, war sowohl zeit- als auch kostenintensiv.


Hier kommen LLMs ins Spiel und drehen die altbekannte Sichtweise auf den Kopf. Diese Modelle können dynamisch auf verschiedene Fragestellungen antworten und sogar Programmcode generieren. Dieser Code kann dann verwendet werden, um Roboter oder Anlagen zu bewegen bzw. zu programmieren. Das Besondere daran ist, dass das LLM in der Lage ist, aus vorher geteilten Informationen über die Anlage und deren Umgebung nützliche Rückschlüsse zu ziehen und daraus funktionierenden Programmcode zu erstellen.


Der Einsatz von LLMs in der Programmierung von Industrieanlagen und Robotern bietet eine Vielzahl von Vorteilen:


  1. Flexibilität und Vielseitigkeit: LLMs sind äußerst flexibel und können für eine breite Palette von Anwendungen eingesetzt werden. Sie ermöglichen es, komplexe Aufgaben in der Roboterprogrammierung zu automatisieren, ohne dass tiefgehendes Expertenwissen erforderlich ist.

  2. Kosteneinsparungen: Unternehmen, deren Kerngeschäft in anderen Branchen liegt, können durch den Einsatz von LLMs erhebliche Kosten sparen. Die Notwendigkeit, teure Experten hinzuzuziehen, entfällt weitgehend.

  3. Zugänglichkeit: LLMs senken die Hemmschwelle für die Nutzung neuer Technologien. Auch Unternehmen ohne Fachexpertise in der Roboterprogrammierung können so leichter Zugang zu Automatisierungstechnik finden.


Stellen Sie sich vor, Sie könnten eine komplette Anlage über ein einfaches Interface in natürlicher Sprache programmieren. Kein umständliches Codieren mehr, keine aufwändigen Schulungen – Sie sagen dem System einfach, was es tun soll, und es setzt Ihre Anweisungen um. Diese Vision wird dank LLMs zur Realität.


Methodik zur Programmierung von Robotern und Anlagen mit LLMs


Die Programmierung von Robotern und kompletten Anlagen unter Verwendung eines LLM erfordert einen strukturierten Ansatz. Hierbei sind mehrere Schritte notwendig, um sicherzustellen, dass die Steuerung korrekt und effizient erfolgt.


  1. Kommunikation des Anwendungsfalls in natürlicher Sprache Der erste Schritt besteht darin, dem Chatbot, der durch das LLM betrieben wird, in verständlicher, natürlicher Sprache den Anwendungsfall zu erklären. Dies umfasst die Beschreibung der gewünschten Aufgaben und Abläufe, die der Roboter oder die Anlage ausführen soll.

  2. Manuelle Definition von Positionen für bewegte Anwendungen Für Anwendungen, die Bewegungen erfordern, müssen die Positionen der Maschinen und Roboter manuell definiert werden. Diese Schritt gewährleistet, dass die räumlichen Koordinaten und Bewegungsabläufe präzise festgelegt sind.

  3. Überprüfung der Befehle vor dem Start Bevor der Anlagenablauf gestartet wird, ist es unerlässlich, dass die Befehle durch die Nutzerin oder den Nutzer überprüft werden. Dies dient dazu, Fehler zu vermeiden und die Sicherheit und Effizienz des Systems zu gewährleisten.



In der nachfolgenden Abbildung 1 wird die grobe schematische Vorgehensweise zur Programmierung eines Roboters mithilfe eines LLM dargestellt.

Abbildung 1: Die Nutzerin oder der Nutzer interagiert über eine grafische Bedienoberfläche mit dem Large Language Model. Dabei werden die Informationen, die vom LLM an die Nutzer zurückgegeben werden, auf relevante Inhalte gefiltert. So erhält die Nutzerin oder der Nutzer, auch ohne Expertenwissen, die für die Programmierung relevanten und verständlichen Informationen.
Abbildung 1: Die Nutzerin oder der Nutzer interagiert über eine grafische Bedienoberfläche mit dem Large Language Model. Dabei werden die Informationen, die vom LLM an die Nutzer zurückgegeben werden, auf relevante Inhalte gefiltert. So erhält die Nutzerin oder der Nutzer, auch ohne Expertenwissen, die für die Programmierung relevanten und verständlichen Informationen.


Interaktion zwischen LLM und Robotersteuerung

Das LLM sendet die generierten Roboterbefehle direkt oder indirekt an die Robotersteuerung bzw. an eine speicherprogrammierbare Steuerung (SPS). Da viele vortrainierte LLMs bei der gleichen Eingabe unterschiedliche Ausgaben erzeugen können, ist es notwendig, die Ausgaben des LLMs zu filtern und zu prüfen.


Übersetzung in spezifischen Maschinencode

Ein häufiges Problem besteht darin, dass verschiedene Roboter- und Maschinenhersteller unterschiedliche Programmiersprachen verwenden, um Bewegungsbefehle an die Maschinen zu senden. Um eine konsistente Ansteuerung zu gewährleisten, ist ein Übersetzer erforderlich, der den generischen Robotercode vom LLM in spezifischen Maschinencode für die Bewegungs- und Steuerabläufe transformiert.


Die detaillierte Beschreibung der Methodik umfasst die Nutzer-, Programm- und Maschinenebene, wie in Abbildung 2 dargestellt.


Abbildung 2: Abbildung 2: Gesammtkonzept: Die Nutzer*in schreibt über eine grafische Oberfläche mit dem Sprachmodell solange bis ein gewünschtes Ergebniss vor- handen ist. Dieses Ergebnis wird in Roboterprogrammcode übersetzt und an die Robotersteuerung gesendet. Optional ist die Ausführung des Programm- codes in einer Simulation zu sehen, bevor der reale Roboter diese durchführt.
Abbildung 2: Gesamtkonzept - Die Nutzerin oder der Nutzer schreibt über eine grafische Oberfläche mit dem Sprachmodell solange bis ein gewünschtes Ergebniss vorhanden ist. Dieses Ergebnis wird in Roboterprogrammcode übersetzt und an die Robotersteuerung gesendet. Optional ist die Ausführung des Programmcodes in einer Simulation zu sehen, bevor der reale Roboter diese durchführt.

Ergebnisse


Die Nutzer*in beschreibt die Aufgabe in natürlicher Sprache und diese wird danach von dem LLM in Programmcode übersetzt, welcher die Roboter und Maschinen programmiert. Damit diese Vorgehensweise Erfolg zeigt, muss das LLM wissen welche Befehle möglich sind. Als Beispiel ist im folgenden eine initiale Anfrage an Chat-GPT 3.5 (Version 04/2024) in englischer Sprache zu sehen um einen Roboter zu programmieren. Dieser Industrieroboter besitzt einen Greifer und es sind bereits Positionen in der Robotersteuerung programmiert. Diese Anfrage wird automatische vom Nutzer verborgen an das LLM gesendet, um zu gewährleisten, dass dieses bei nachfolgenden Anfragen korrekt antwortet.


Beispiel einer initiale Anfrage an Chat-GPT (für die Nutzer verborgen):


"Generate python code for a robot pick and place application. There is only one class robot. robot has only 3 methods robot.move(pos) , robot.openGripper() and robot.closeGripper(). No other functions or methods are available. The Home position is called homePos. The picking position is called pickupPos and the placing position is called placePos. Output exactly one function func(robot) every time you generate code. The function func(robot) takes exactly one argument robot which is defined elsewhere. Here is a template and example for a working pick and place application:


def func(robot):

robot.move(homePos)

robot.openGripper()

robot.move(pickupabovePos)

robot.move(pickupPos)

robot.closeGripper()

robot.move(pickupabovePos)

robot.move(home)

robot.move(placePos)

robot.openGripper()

robot.move(homePos)


Use the template to generate the code. Everytime the user asks you to modifiy the code output only the code without any comments or explenations."


Gibt die Nutzer*in nun eine Anfrage ein:

"Fahre den Roboter in seine Home Position und schließe den Greifer"


antwortet Chat-GPT mit folgendem Programmcode:

Abbildung 3: Antwortausgabe von Chat-GPT
Abbildung 3: Antwortausgabe von Chat-GPT

Dieser einfache Programmcode in der Sprache Python wird anschließend von dem Übersetzer in die Maschinensprache transformiert. Der Vorteil hierbei ist, dass die Nutzer*in keinerlei Kenntnis über die Maschinensprache besitzen muss und der Übersetzer im Hintergrund überprüfen kann ob das Programm syntaktisch und formal ausführbar ist oder an das LLM zurückgesendet wird und korrigiert werden muss. Methoden in dem von Chat-GPT generierten Code wie robot.move() und robot.closeGripper() werden im Hintergrund vom Übersetzer interpretiert. Roboterpositionen wie die im Programmcode in Abbildung 3 genannte homePos, müssen vorab allerdings durch die Nutzer*in definiert und verifiziert werden, da das LLM als Sprachmodell keine Informationen über die realen Gegebenheiten haben kann.


Zusammenfassung


Die Programmierung von Robotern und industriellen Anlagen mithilfe von Large Language Models (LLMs) revolutioniert die Automatisierungstechnik. Durch den Einsatz von LLMs können selbst klein- und mittelständische Unternehmen ohne tiefgehendes Expertenwissen effiziente und flexible Automatisierungslösungen implementieren. Der Prozess umfasst die Kommunikation des Anwendungsfalls in natürlicher Sprache, die manuelle Definition von Positionen für bewegte Anwendungen und die Überprüfung der generierten Befehle durch den Nutzer.

Die Vorteile dieser Methodik sind zahlreich: Sie bietet eine enorme Flexibilität, senkt Kosten und macht fortschrittliche Technologien zugänglicher. Das LLM generiert aus den bereitgestellten Informationen relevanten Programmcode, der nach einer Übersetzung in spezifischen Maschinencode an die Robotersteuerung gesendet wird. Eine grafische Benutzeroberfläche erleichtert die Interaktion und stellt sicher, dass die Nutzer nur die für sie relevanten Informationen erhalten.


Ausblick


Der Einsatz von LLMs in der Automatisierungstechnik steht noch am Anfang, doch das Potenzial für zukünftige Entwicklungen ist enorm. In naher Zukunft könnten folgende Fortschritte realisiert werden:


  1. Erweiterte Simulationsmöglichkeiten: Verbesserte Simulationsumgebungen könnten es ermöglichen, die generierten Programme vor ihrer Ausführung auf dem realen Roboter noch detaillierter zu testen und zu optimieren.

  2. Verbesserte Übersetzer: Die Entwicklung von universellen Übersetzern für verschiedene Roboterprogrammiersprachen könnte die Integration von LLMs noch weiter vereinfachen und die Konsistenz der generierten Befehle verbessern.

  3. Intelligentere Modelle: Fortschritte in der KI-Forschung könnten zu noch leistungsfähigeren LLMs führen, die komplexere Aufgaben mit höherer Präzision und Effizienz bewältigen.

  4. Integrierte Sicherheitsmechanismen: Die Implementierung von Sicherheitsfunktionen innerhalb der LLMs könnte die Fehleranfälligkeit weiter reduzieren und die Zuverlässigkeit der generierten Programme erhöhen.

  5. Anpassung an spezifische Branchen: LLMs könnten speziell auf die Bedürfnisse verschiedener Industriezweige angepasst werden, um maßgeschneiderte Automatisierungslösungen zu bieten.


Die fortschreitende Entwicklung und Anwendung von LLMs in der Automatisierungstechnik hat das Potenzial, die Industrie grundlegend zu verändern, indem sie die Barrieren für den Zugang zu fortschrittlichen Automatisierungstechnologien senkt und die Effizienz und Produktivität steigert.

26 Ansichten

Aktuelle Beiträge

Alle ansehen

Kommentare


bottom of page