10. Feb. 2021

Ein Prototyp für intelligente Multi-Agenten-Produktion II

Wie könnte eine intelligente Produktion im Zeitalter von Industrie 4.0 aussehen? Im zweiten Teil dieser Serie zeigen wir anhand von unserem Prototypen, wie man die Konzepte von Multi-Agenten-Systemen für eine intelligente Produktion nutzen kann.
Senior Software Engineer

Autor:in

Frederic Jacob

20210210_Prototyp2_Preview

Produktionsstationen werden lebendig

Im ersten Teil der zweiteiligen Beitragsserie habe ich die Vision einer intelligenten Produktion im Jahr 2071 erläutert und beschrieben, wie diese mithilfe von Multi-Agenten-Systemen erreicht werden könnte. Nun wird es darum gehen, wie wir die zugrundeliegenden Konzepte prototypisch umgesetzt haben.

Unser Szenario

Ziel unseres Projektes war es, über einen Prototypen zu demonstrieren, wie eine intelligente Produktion als Multi-Agenten-System umgesetzt werden könnte. Zur vollständigen Repräsentation des Produktionsprozesses in unserem Szenario mit mehreren Agenten nutzen wir eine Simulation.

Im Rahmen des Projekts ging es uns aber gerade auch darum, zu prüfen, wie ein Multi-Agenten-Produktionssystem mit echter Hardware realisiert werden kann. Wir wollten erforschen, welche Herausforderungen sich bei einer Hardware-Umsetzung ergeben und wie diese gelöst werden können.

Daher stellt die verwendete Simulation ein virtuelles Pendant unserer genutzten Hardware dar. Sie ermöglichte es uns, Entwicklung und Tests zu beschleunigen – gleichzeitig legten wir sie so aus, dass sie ohne größere Anpassungen der Software mit der eigentlichen Hardware ausgetauscht werden kann, sobald alle dafür nötigen Mechaniken und Mechanismen entwickelt sind. Im Verlauf des Artikels werde ich deshalb explizit auf die konkreten Hardwarekomponenten eingehen, auf die unsere Implementierung ausgelegt ist. Neben der simulierten Produktion haben wir zusätzlich einen realen autonomen Roboter mit der Zielhardware realisiert, welcher von der entwickelten Software angesteuert wird. Zum Ende des Artikels werde ich diesen näher beschreiben.

rohe Fliese nach Kundenwunsch gefräst und zweimal lackiert
20210210_Prototyp2_Fliesen-Szenario

Als Basis für unseren Prototypen entschieden wir uns für ein modellhaftes Szenario, in dem eine intelligente Produktion von Fliesen stattfindet. Die Idee dahinter: Kunden übermitteln einen „Bauplan“ ihrer selbst gestalteten Wunsch-Fliese mit einer individueller Form und Farbe an ein (fiktives) Produktionsunternehmen. In Abbildung 1 wünscht sich ein Kunde eine Fliese, welche eine Herzform sowie zwei unterschiedliche Farben besitzt.

Das Besondere am Agenten-Ansatz im Vergleich zu einer klassischen Produktion besteht darin, dass nicht von vornherein bekannt ist, wie die Herstellung des Produkts stattzufinden hat. Der Kunde gibt nur die gewünschten Eigenschaften vor – die nötigen Arbeitsschritte dazu muss das Multi-Agenten-System selbst ableiten. In der Abbildung ist ein möglicher Arbeitsablauf für die gewünschte Fliese dargestellt. Genauso gut könnte aber auch erst lackiert werden oder die Farben in einer anderen Reihenfolge aufgetragen werden.

Grundsätzlich kann der übermittelte Bauplan auf eine beliebige Weise umgesetzt werden, solange das gewünschte Produkt hergestellt wird.

Als Produktionsstationen kommen in unserem Prototypen drei fahrbare und frei im Raum positionierbare Roboter-Plattformen von Romi zum Einsatz. Jeder der Roboter übernimmt eine bestimmte Rolle in der Produktion: ein Transporter besitzt einen Greifarm und kann Fliesen aufnehmen und an anderer Stelle ablegen. Ein Lackierer ist dafür zuständig, Fliesen mit Farben und Mustern zu versehen und ein Fräser dafür, Fliesen in eine individuelle Form zu schneiden.

Wie im vorigen Teil dieses Artikels beschrieben stellt die Umgebung der Agenten ein wichtiges Element bei der Entwicklung des Gesamtsystems dar. Diese besteht bei uns zum einen aus einem begrenzten Bereich, der Produktionshalle. Den Ausgangspunkt der intelligenten Produktion durch die Agenten bildet ein Förderband, welches rohe Fliesen zur Weiterverarbeitung durch die mobilen Produktionsstationen bereitstellt. Eine Lichtschranke registriert, wann immer eine neue rohe Fliese zur Abholung durch den Transporter-Agenten bereitsteht.

Um die Positionen der Agenten zu bestimmen, ist in Vogelperspektive über der Produktionshalle eine Kamera angebracht. Damit die aktuellen Koordinaten der Roboterplattformen im aufgenommenen Bild berechnet werden können, ist jede dieser Plattformen mit einem sogenannten ArUco bestückt, welcher mit einem QR-Code vergleichbar ist. Über die Pixelkoordinaten der ArUcos im Bild in Verbindung mit einer zuvor erfolgten Kalibrierung des Systems können die realen Koordinaten der Agenten in der Produktionshalle berechnet werden.

20210210_Prototyp2_Kamera Vogelperspektive

Doch wie erhalten Agenten Kenntnis über ihre Position in der Produktionshalle, nachdem diese berechnet wurden? Wie bekommen sie mit, dass eine neue Fliese zur Bearbeitung bereitsteht? Und wie kommen überhaupt Produktionsaufträge in das System?

20210210_Prototyp2_MQTT

MQTT als Herzstück der Kommunikation

Um Informationen zu übermitteln, verwenden wir in unserem Szenario das Kommunikationsprotokoll MQTT (Message Queuing Telemetry Transport). MQTT funktioniert nach dem Publish-Subscribe-Prinzip, läuft über das Netzwerk und wird häufig im Bereich der Heimautomatisierung, aber auch in echten industriellen Anwendungen eingesetzt. Auf hierarchisch strukturierbaren Kommunikationskanälen, sogenannten Topics, kann jeder Kommunikationsteilnehmer Nachrichten veröffentlichen, die wiederum von anderen interessierten Teilnehmern (Subscribern) empfangen werden.

Über MQTT veröffentlicht die Kamera regelmäßig auf einem bestimmten Topic die Positionen aller drei Roboter, die von den zugehörigen Agenten ausgelesen und verwendet werden. Über ein weiteres Topic werden Signale der Lichtschranke am Ende des Förderbands registriert. Die Agenten selbst können sich über MQTT gegenseitig Nachrichten schicken, um miteinander zu kooperieren. Außerdem werden Produktionsaufträge ebenfalls über MQTT ins System geleitet: diese gehen in einer JSON-Struktur als Textnachrichten ein, welche die Eigenschaften des jeweiligen Produkts enthalten, das produziert werden soll.

Kurze Reaktionszeit vs. komplexe Logik

Eine besondere Herausforderung in unserem System war die Verbindung einer schnellen und unmittelbaren Reaktion der Hardware mit der komplexeren Logik zur Entscheidungsfindung des Multi-Agenten-Systems. Wir teilten die Logik des Systems dafür auf zwei Schichten auf:

Die Roboterplattformen sind in unserem Prototypen mit Arduinos bestückt, auf denen hardwarenahe und vergleichsweise simple Logik als C-Programm läuft – beispielsweise zum Auslesen von Sensoren (z.B. die aktuelle Drehzahl des Motors) und Ansteuerung von Aktoren wie den Motorsteuerungen der Fahrplattform und des Greifarms. Diese hardwarenahe Schicht erhält über MQTT lediglich einfache Befehle zum direkten Ansteuern der Aktoren und sendet im Gegenzug – ebenfalls über MQTT – Statusinformationen zurück.

Die Entscheidungslogik der Agenten hingegen ist in Java implementiert und läuft separat von den Roboterplattformen auf einem minimalen Linux-Betriebssystem, welches auf einem smarten Industrierouter der Firma INSYS installiert ist. Die Agenten sind jeweils über das BDI-Konzept realisiert und mit dem Java-Framework Jadex Active Components implementiert. (Wer mehr zum BDI-Konzept wissen möchte, sei auf den ersten Teil dieses Artikels verwiesen.)

Auch diese komplexere Schicht der Agenten-Logik ist über MQTT an die anderen Teile des Systems angebunden. Auf diesem Weg werden Informationen mit der hardwarenahen Schicht der Roboter ausgetauscht – die Software jedes Agenten steuert seinen zugehörigen Roboter über MQTT an.

Verarbeitung von Produktionsaufträgen

Wie zuvor beschrieben gehen Produktionsaufträge im JSON-Format über MQTT ein. Um diese Aufträge zu verarbeiten, gilt es, eine geeignete Form der Organisation des Systems zu finden, über welche die gewünschten Produkte hergestellt werden.

Die in einem Produktionsauftrag enthaltenen Eigenschaften des Produkts werden dazu in einem ersten Schritt ausgelesen und in eine interne Datenstruktur gewandelt. In dieser Struktur sind die nötigen Aufgaben (Tasks) enthalten, die zur Herstellung des Produkts durchzuführen sind. Darüber hinaus werden Informationen darüber mit abgespeichert, wie einzelne Tasks voneinander abhängen. Soll eine Fliese mit einer bestimmten Form und Farbe hergestellt werden, muss zunächst eine rohe Fliese abgeholt werden. Danach sind zwei Tasks durch geeignete Agenten durchzuführen: die rohe Fliese muss in die passende Form gefräst und anschließend lackiert werden.

In der Software unseres Prototypen fragen Agenten, die gerade nichts zu tun haben, selbstständig über MQTT nach neuen Tasks, welche zu ihren individuellen Fähigkeiten (Fräsen, Lackieren oder Transportieren) passen. Je nachdem, welche Tasks gerade noch nicht bearbeitet werden und keine Abhängigkeiten zu anderen Tasks aufweisen, wird ein freier Task ausgewählt und einem anfragenden Agenten zugewiesen.

Damit Aufgaben von Agenten sinnvoll gemeinsam bearbeitet werden können, kooperieren Agenten miteinander. Ein Agent, der für seine Aufgabe die Hilfe eines bestimmten anderen Agenten benötigt, stellt über MQTT eine entsprechende Anfrage an diesen. Infolgedessen „sprechen“ die Agenten miteinander, um sich abzustimmen.

20210210_Prototyp2_Produktionsaufträge

Hat der andere Agent gerade nichts zu tun, gehen die beiden Agenten eine zeitweilige Kooperation ein, während der sie direkt miteinander kommunizieren und relevante Informationen zur Durchführung der gemeinsamen Aufgabe austauschen. Dieser Mechanismus wird zum Beispiel verwendet, um eine Fliese zwischen zwei Roboterplattformen auszutauschen.

Ist ein Produkt fertig hergestellt (d.h. alle nötigen Arbeitsschritte wurden durchgeführt), wird die fertige Fliese vom Transporter an einen dafür vorgesehen Platz gebracht. Die Fertigstellung wird über eine MQTT-Nachricht signalisiert. Von außen kann dann ausgelesen werden, dass ein bestimmter Produktionsauftrag abgeschlossen wurde. In einer realen Fabrik könnten daraufhin weitere Schritte wie der Weitertransport der hergestellten Fliese zum Kunden durchgeführt werden.

Wir brauchen Ihre Einwilligung

Dieser Inhalt wird von YouTube bereitgestellt. Wenn Sie den Inhalt aktivieren, werden ggf. personenbezogene Daten verarbeitet und Cookies gesetzt.

Hardware-Agent in Action

Auch wenn der vollständige Prozess der Produktion mit mehreren Agenten vom Eingang eines Auftrags bis zum fertigen Produkt bislang „nur“ in einer Simulation verfolgt werden kann, setzen wir die entwickelte Software bereits zur Ansteuerung eines echten Roboters ein.

In der nebenstehenden Preview ist ein Transporter-Agent zu sehen, der als BDI-Agent autonom agiert. Die angrenzende Modellfabrik von Fischertechnik liefert über ein Förderband Werkstücke an, was über eine Lichtschranke registriert wird. Der Agent fährt daraufhin selbstständig an den Ausgabeort des Förderbands, nimmt das Werkstück über einen Greifarm auf und legt es anschließend an einem anderen Ort ab. Wer wissen möchte, wie das Ganze in Aktion aussieht, kann sich das Video anschauen.

Wie geht es weiter?

Mit der Entwicklung eines Prototypen in Simulation und Hardware sind wir einen wichtigen Schritt dabei gegangen, die Machbarkeit einer Multi-Agenten-Produktion zu demonstrieren.

Multi-Agenten-Systeme sind – gerade auf dem Gebiet der industriellen Produktion – ein komplexes Feld, bei dem viele unterschiedliche Elemente und Ebenen von Hardware und Software miteinander zu integrieren sind. Die Ansätze von Agenten und Multi-Agenten-Systemen bieten allerdings das Potential, die bisherige industrielle Fertigung ganz neu zu denken und Produkte flexibel und ohne starre Produktionsabläufe herzustellen.

Damit die in Teil eins des Artikels vorgestellte Vision aus dem Jahr 2071 Realität werden kann, benötigt die Industrie neue und wegweisende Konzepte und Lösungen. Um diesem Ziel ein Stück näher zu kommen, haben wir mit unserem Prototypen das Multi-Agenten-Konzept auf die Produktion übertragen. Das entwickelte System wollen wir in Zukunft erweitern, optimieren und noch stärker in einen Gesamtkontext der industriellen Fertigung einbinden. Außerdem planen wir, noch gezielter auf reale industrielle Bedürfnisse einzugehen und industrienahe Hardware zu verwenden.

Wir werden weiter in Richtung einer intelligenten Produktion forschen und ausloten, was die Industrie von morgen benötigt, um die Zukunft in diesem Bereich mitzugestalten. Eine Zukunft, in der das, was heute noch nach Science-Fiction klingt, wahr werden könnte.