Für Roboterentwickler stellt sich zunehmend die Frage, welche Rechenbausteine alle notwendigen Anforderungen erfüllen: Skalar- oder Vektorprozessoren oder doch FPGAs?

Für Roboterentwickler stellt sich zunehmend die Frage, welche Rechenbausteine alle notwendigen Anforderungen erfüllen: Skalar- oder Vektorprozessoren oder doch FPGAs? (Bild: AdobeStock 183009025, josefkubes)

Softwareentwickler, die Robotikanwendungen entwickeln, kämpfen zunehmend damit, die Performance-Anforderungen zu erfüllen, Echtzeit-Determinismus zu gewährleisten und für entsprechende Sicherheit und Zuverlässigkeit zu sorgen. Die universelle Verwendbarkeit der skalaren (CPU-)Prozessorarchitekturen, die das Herzstück der Systeme bilden, und die begrenzte Skalierbarkeit der Leistung sind zunehmend hinderlich, wenn es darum geht, die vielfältigen Anforderungen zu erfüllen, die an aktuelle Industrieroboter gestellt werden. Zu den häufigen Problemen gehören zeitliche Ineffizienzen, die sich auf den Determinismus auswirken, zu hoher Stromverbrauch und Sicherheitsprobleme. Ein besonderes Sicherheitsproblem besteht darin, dass sich die Hardware nicht rekonfigurieren lässt, um den Schutz vor neu entstehenden Cyber-Bedrohungen zu gewährleisten.

Eine neue Generation von Computerplattformen, die besser für die Anforderungen der Robotik geeignet sind, ist im Kommen. Diese Module bestehen aus heterogenen Verarbeitungselementen, die es Robotikern ermöglichen, flexible Rechenarchitekturen aufzubauen. In diesem Artikel werden die verschiedenen Rechenressourcen untersucht, die Robotikern zur Verfügung stehen, darunter CPUs, DSPs, GPUs, FPGAs und ASICs. Jede dieser Ressourcen hat spezifische Stärken und wird daher bei der Weiterentwicklung der Robotik-Technologie eine wichtige Rolle spielen.

Rechnertechnologien: Skalarprozessoren (CPUs)

CPUs können als skalare Recheneinheiten komplexe Algorithmen mit verschiedenen Entscheidungsbäumen und einem breiten Satz von Bibliotheken effizient verarbeiten. Obwohl CPUs sehr flexibel sind und Multi-Core-Prozessoren verschiedene Aufgaben gleichzeitig ohne Störungen oder Koordinierungsprobleme bewältigen können, ist die zugrundeliegende Hardware starr. Die meisten CPUs arbeiten immer noch nach dem Prinzip der speicherprogrammierten Computer, bei denen Daten aus dem Speicher zum Prozessor gebracht, bearbeitet und dann in den Speicher zurückgeschrieben werden. Im Mittelpunkt der Architektur steht die arithmetische Logikeinheit (ALU), die bei jeder Operation Daten ein- und auslagern muss. Grundsätzlich arbeitet jede CPU sequentiell, d.h. eine Anweisung nach der anderen, und es sind in der Regel viele Schritte erforderlich, um eine Aufgabe zu erledigen.

Trotz dieser Nachteile spielen skalare CPUs in heutigen Roboterarchitekturen eine grundlegende Rolle. Sie eignen sich gut für die Koordinierung des Informationsflusses zwischen den verschiedenen Subsystemen und Komponenten für Sensorik, Aktorik und Kognition.

Bild 1: Skalare CPUs eignen sich in der Robotik gut für die Koordinierung des Informationsflusses zwischen den verschiedenen Subsystemen und Komponenten für Sensorik, Aktorik und Kognition.
Bild 1: Skalare CPUs eignen sich in der Robotik gut für die Koordinierung des Informationsflusses zwischen den verschiedenen Subsystemen und Komponenten für Sensorik, Aktorik und Kognition. (Bild: AdobeStock 211069139, angkhan)

Vektorprozessoren

Vektorprozessoren (DSPs, GPUs) sind effizienter bei einer engeren Auswahl von parallelisierbaren Rechenfunktionen, haben aber aufgrund der unflexiblen Speicherhierarchie Nachteile bei Latenz und Effizienz. GPU-Architekturen enthalten eine große Anzahl von Kernen, die für die Ausführung einiger weniger spezifischer Aufgaben optimiert sind. Es ist für sie am effizientesten, diese gleichzeitig und simultan auszuführen. Daher überwinden Vektorprozessoren einen der größten Nachteile von CPUs in der Robotik durch ihre Fähigkeit, große Datenmengen parallel zu verarbeiten.

Programmierbare Logik (FPGAs)

Im Gegensatz zu Prozessoren, die allgemeine Verarbeitungseinheiten und Speicherstrukturen enthalten, lassen sich programmierbare Logikbausteine (FPGAs) genau nach Bedarf anpassen, um eine bestimmte Rechenfunktion auszuführen. Obwohl dies für latenzkritische Echtzeitanwendungen sehr effektiv ist, bedeutet dies einen zusätzlichen Programmieraufwand. Außerdem haben Rekonfiguration und Neuprogrammierbarkeit im Vergleich zu Skalar- und Vektorprozessoren längere Kompilierzeiten.

Roboterentwickler können FPGAs verwenden, um Laufzeit-rekonfigurierbare Roboterhardware zu erstellen, die per Software umprogrammierbar und anpassbar sind. Diese Engines können Datenflussberechnungen schnell und effizient durchführen und eignen sich daher gut für Anwendungen wie die Anbindung von Sensoren und Aktuatoren sowie für Netzwerkaspekte. Entwickler können auch benutzerdefinierte Hardwarebeschleunigungs-Kernel erstellen, um Datenverarbeitungsaufgaben zu bewältigen, die sie sonst Vektorprozessoren zuweisen müssten.

Anwendungsspezifische integrierte Schaltungen (ASICs)

Bei einem ASIC lassen sich die Verarbeitungselemente wie bei einem FPGA maßgeschneidert realisieren. Einmal festgelegt, können diese jedoch nicht mehr verändert werden. Diese feste Architektur ermöglicht eine sehr hohe Leistung und Energieeffizienz sowie die niedrigsten Preise bei Massenproduktion in großen Stückzahlen. Andererseits kann die Entwicklung von ASICs Monate oder sogar Jahre dauern und lässt keine Änderungen zu. Sie lassen sich nicht anpassen, um sicherzustellen, dass der Roboter mit zukünftigen Produktivitätssteigerungen Schritt hält.

Anpassungsfähigkeit ist wichtig, denn die Algorithmen und Architekturen von Robotern entwickeln sich immer noch schnell weiter. Ein ASIC-basierter Beschleuniger könnte deutlich hinter den neuesten Algorithmen zurückbleiben. Angesichts der Zeit, die für die Entwicklung des ASICs benötigt wird, könnte dies schon bald nach – oder sogar vor – der Produktionsaufnahme der Fall sein. In der gegenwärtigen Phase der Robotertechnologie ist ihr Einsatz begrenzt.

Adaptives Computing in der Robotik nutzen

Roboter sind Netzwerke aus Netzwerken, die in der gesamten Maschine kontinuierlich Daten austauschen, von den Sensoren über die Recheneinheiten bis hin zu den Aktuatoren an den Extremitäten. Diese Netzwerke lassen sich als das Nervensystem des Roboters vorstellen, das den Austausch von Informationen erleichtert. Wie beim menschlichen Nervensystem hängt dieser Austausch entscheidend von der deterministischen Leistung und der Reaktionsfähigkeit in Echtzeit ab, wenn sich der Roboter kohärent verhalten soll. Dies ist mit Skalar- und Vektorprozessoren mit ihren festen Architekturen nur schwer zu gewährleisten.

Die maßgeschneiderten, hochparallelen Architekturen, die in FPGAs und ASICs implementiert sind, bieten die Möglichkeit, diese Einschränkungen zu überwinden. Insbesondere FPGAs ermöglichen softwaredefinierte Hardware für Roboter und führen damit zu einer grundlegenden Veränderung des Ansatzes für die Softwareentwicklung in der Robotik. Anstatt Funktionen in der CPU zu programmieren und dabei mit den Einschränkungen zu arbeiten, die durch die vordefinierte Architektur und die Beschränkungen der CPU auferlegt werden, geht es beim Aufbau eines Roboterverhaltens mit FPGAs um die Programmierung einer Architektur, die die gewünschte Aufgabe erfüllt.

Bild 2: Das Kria K26 ist ein SOM das es Entwicklern ermöglicht, die Flexibilität von FPGAs bei der Entwicklung von anpassungsfähigen Robotern richtig zu nutzen.
Bild 2: Das Kria K26 ist ein SOM das es Entwicklern ermöglicht, die Flexibilität von FPGAs bei der Entwicklung von anpassungsfähigen Robotern richtig zu nutzen. (Bild: Xilinx, AMD)

Tools und Hardware

Roboterentwickler benötigen geeignete Tools und Hardware, um die Flexibilität von FPGAs bei der Entwicklung von anpassungsfähigen Robotern mit deterministischem Echtzeitverhalten richtig zu nutzen. Ein System-on-Module (SOM) wie das Xilinx Kria K26 ist ein Beispiel dafür. Es wurde für Edge-Anwendungen entwickelt und verfügt über Hochgeschwindigkeitsschnittstellen, Speicher und Stromversorgung. Es enthält einen Zynq-UltraScale+- MPSoC-System-on-Chip (SoC), der programmierbare Logikzellen und DSP-Slices bietet und skalare und vektorielle Verarbeitungslasten mit einem Quad-Core-Anwendungsprozessorkomplex, einem Dual-Core-Echtzeitprozessor und einer 2D/3D-GPU verarbeitet (Bild 2).

Bild 3: Bibliotheken und Dienstprogramme für die hardwarebeschleunigte Robotik.
Bild 3: Bibliotheken und Dienstprogramme für die hardwarebeschleunigte Robotik. (Bild: Xilinx, AMD)

Zusätzlich zum SOM werden geeignete Bibliotheken und Utilities benötigt, um industrietaugliche Robotiklösungen zu entwickeln. Der Kria Robotics Stack (KRS) in Bild 3 ist eng mit dem Robot Operating System (ROS) verwoben, dem De-facto-Framework für die Entwicklung von Roboteranwendungen, und vereinfacht die Verwendung von Hardwarebeschleunigung. Das SOM bietet native Unterstützung für ROS 2, was die Leistung von Robotik- und Industrieautomatisierungsanwendungen steigert.

Dieser Stack verwendet das ROS-2-Software-Development-Kit (SDK) und arbeitet mit dem ROS-2-Ökosystem zusammen, um mit einem modularen Ansatz Robotersysteme mit deterministischer Echtzeitleistung zu entwickeln. Er nutzt bekannte Techniken wie Quality of Service-Mechanismen und Time Sensitive Networking (TSN) und umfasst Beschleunigungskernels auf Anwendungsebene, ROS-Kommunikations-Middleware und ein Laufzeitwerkzeug, das die Interaktion mit dem FPGA erleichtert. Ein Hypervisor unterstützt die gemischte Kritikalität durch virtuelle Maschinen. (na)

Víctor Mayoral-Vilches, Acceleration Robotics
(Bild: Xilinx, AMD)

Víctor Mayoral-Vilches

Robotics Architect, Acceleration Robotics

Sie möchten gerne weiterlesen?