Blog

Eine kurze Einführung zu Agile Robots und Idealworks Edge AI Stack für maximale Kompatibilität.

/ 7 Min. zu lesen

„KI ist wie eine fünfschichtige Torte“. Und eine zentrale Schicht, mit der wir uns bei Agile Robots und Idealworks beschäftigen, ist die Edge-Inferenz. Fünf Komponenten sind entscheidend für eine erfolgreiche Modellbereitstellung mit maximaler Zuverlässigkeit im Produktivbetrieb: Hardware, BSP, Inferenz-Pipeline, Serving-Frameworks und Modellquantisierung. In diesem Abschnitt des Blogs gehen wir kurz darauf ein, wie Agile Robots und seine Tochtergesellschaft Idealworks seit 2018 jede dieser Schichten im Rahmen ihrer GPU-Revolution entwickelt haben, wobei der Schwerpunkt darauf lag, durch Software- und Pipeline-Optimierungen auf bestehenden Plattformen mehr Leistung zu erzielen.

1. Hardware

Im Jahr 2018 entschied sich Idealworks für den NVIDIA Jetson AGX Xavier als zentrale Rechenplattform für seine Roboter. Damals war dies eine zukunftsweisende Entscheidung; später ließ sich das System auf Produktionsumgebungen an mehreren Standorten skalieren.

Im Jahr 2026 stellt sich die Frage, ob ältere Hardware noch einen Beitrag zu modernen KI-Workloads leisten kann. Unsere Antwort lautet „Ja“: Indem wir bestehende Geräte mit Software aufrüsten, reduzieren wir den Hardware-Wechsel und verlängern gleichzeitig die Nutzungsdauer der eingesetzten Plattformen.

Während die Verlängerung der Lebensdauer bestehender Xavier-Implementierungen weiterhin im Mittelpunkt steht, bereiten wir uns gleichzeitig auf Plattformen der nächsten Generation wie NVIDIA Jetson AGX Thor vor. Die Beibehaltung einer gemeinsamen Software-Grundlage über Hardware-Generationen hinweg ermöglicht es uns, Bereitstellungspipelines wiederzuverwenden und gleichzeitig immer leistungsfähigere Edge-KI-Workloads zu ermöglichen. 

2. BSP und benutzerdefiniertes Betriebssystem

Ein Yocto-basiertes benutzerdefiniertes Betriebssystem, das das von der Community gepflegte „meta-tegra“-BSP-Repository nutzt, reduziert den Overhead, verbessert die Speichernutzung und erhöht die Sicherheit. Seit Juli 2026 beschleunigt der offizielle Support von NVIDIA für „meta-tegra“ in JetPack 7.2 die Integration. 

3. Inferenz-Pipeline

Der Bereitstellungsstack ist auf Leistung und Ressourceneffizienz optimiert. Der Bereitstellungsstack nutzt moderne Build- und Paketierungsverfahren, die auf Reproduzierbarkeit und eine effiziente Edge-Bereitstellung ausgelegt sind.

Die Gruppe leistet zudem über „https://github.com/idealworks/bazel-public-registry“ Beiträge zu Open-Source-Bazel-Modulen.

Der Inferenz-Workflow umfasst zwei Phasen:

  • Prototyping: Entwickler iterieren schnell in Python und nutzen TensorRT für Optimierungen auf CUDA-Ebene. Auf Xavier musste TensorRT 8.5.2 parallel zu ROS2 Jazzy und Python 3.12 laufen, weshalb das Team eine angepasste TensorRT-Version aus Open-Source-Komponenten erstellte, um eine engere Integration zu erreichen: https://github.com/nvidia/tensorrt.
  • Produktreife: Die endgültigen Inferenzprodukte werden aus Gründen der Leistung, der Speichersteuerung und der nativen CUDA-Kernel-Unterstützung in C++ implementiert. Laufzeitbibliotheken werden über Bazel abgerufen, verknüpft, gepackt und bereitgestellt. 

4. Inferenz-Framework

TensorRT ist zusammen mit Isaac ROS NITROS das bevorzugte Inferenz-Framework für hochleistungsfähige Robotik-Workloads. Die zentrale Herausforderung besteht darin, moderne Architekturen wie Vision Transformers auf älterer Xavier-Hardware zu unterstützen. Dieselben Optimierungsprinzipien behalten auch auf neueren Plattformen ihre Relevanz. Während Geräte wie der Jetson AGX Thor deutlich mehr Rechenleistung bieten, sind eine effiziente Inferenz durch TensorRT, Quantisierung, Graphenoptimierung und modellbewusste Beschleunigung für Echtzeit-Robotik-Anwendungen weiterhin unerlässlich.

Anstatt auf die Leistung von TensorRT zu verzichten oder alles als benutzerdefinierte Operationen neu zu schreiben, kombinierte das Team die TensorRT-Beschleunigung mit gezielten Plugins für nicht unterstützte Graphenoperationen. 

1. Das Problem

VLMs auf dem Jetson AGX Xavier können unter hoher Latenz und geringem Durchsatz leiden, der oft unter 10 Tokens pro Sekunde liegt. Um auch ältere Rechenressourcen sinnvoll zu nutzen, untersuchte das Team die Aufteilung von Modellschichten: Dabei sollte das, was Xavier lokal bewältigen kann, dort verbleiben, während Engpässe – beginnend mit Vision-Encodern – auf neuere Inferenzplattformen ausgelagert werden sollten.

Während des Konvertierungsprozesses von PyTorch über ONNX zu TensorRT schlug die Pipeline fehl, da TensorRT 8.5.2 – die in unserer Xavier-Konfiguration maximal unterstützte Version – die ONNX-Operation „LayerNormalization“ nicht erkannte. 

 

2. Die Lösung

Die Lösung bestand darin, die optimierten Operatoren von TensorRT beizubehalten und ein benutzerdefiniertes nvinfer-Plugin für „LayerNormalization“ hinzuzufügen. Der Einfachheit halber wird das Plugin im Beispiel mit CMake und CUDA erstellt, wobei die Taktikauswahl von TensorRT für unterstützte Operationen beibehalten wird. 

1. Auswahl der Plugin-Schnittstellenversion 

Für TensorRT 8.5.2 auf Xavier erweitert das Plugin IPluginV2 über IPluginV2DynamicExt. Neuere TensorRT-Versionen gehen in Richtung IPluginV3, doch die Kompatibilität mit Xavier erfordert die ältere Schnittstelle. Referenz: https://docs.nvidia.com/deeplearning/tensorrt/latest/inference-library/plugins-api-migration.html

2. Identifizierung der problematischen Operation im ONNX-Graphen 

Netron wurde verwendet, um den ONNX-Graphen zu untersuchen, nicht unterstützte Operationen zu lokalisieren und die erforderlichen Eingaben, Ausgaben, Attribute, Formen und Datentypen zu erfassen: https://github.com/lutzroeder/netron

3. Implementierung unserer benutzerdefinierten Plugin-Klasse 

Die Plugin-Implementierung erweitert zwei Hauptklassen:

  • IPluginV2DynamicExt: Definiert das Verhalten des Plugins, einschließlich Tensorformen, unterstützter Formate, Serialisierung und der Methode ` enqueue( )`, die den CUDA-Kernel startet. Es unterstützt dynamische Formen und Broadcast-Verhalten, was für Bildverarbeitungs-Workloads nützlich ist.
  • IPluginCreator: Registriert das Plugin bei TensorRT und erstellt es beim Laden einer serialisierten Engine neu. Es stellt Metadaten wie Name und Version bereit, implementiert `createPlugin()` und verbindet den Creator mit der Plugin-Registrierung von TensorRT.

Der C++-Wrapper verbindet TensorRT mit der CUDA-Implementierung. Die Methode „ enqueue( )“ startet den LayerNormalization-Kernel, der die mathematische Operation direkt auf der GPU ausführt.

Der CUDA-Kernel implementiert die LayerNormalization, und die Plugin-Bibliothek wird über CMake mit nvcc kompiliert.

Nach der Kompilierung wird das Plugin während der Konvertierung an TensorRT übergeben, wodurch die normale Taktikauswahl für unterstützte Schichten und der Fallback auf das benutzerdefinierte Plugin für „LayerNormalization“ ermöglicht werden. 

4. TensorRT-Konvertierung und Laufzeit

Die Engine exportiert und läuft erfolgreich, indem sie die kompilierte Plugin-Bibliothek übergibt, zum Beispiel: --plugin=libsiglip2_layernorm_plugin.so.

Zur Laufzeit muss das Plugin explizit geladen werden. In Python kann die .so-Datei mit ctypes geladen werden; ein pybind-Wrapper ist nicht erforderlich. 

 

5. Optimierung der Bereitstellung 

Hardware-Upgrades allein reichen selten aus, um eine produktionsreife Leistung zu erzielen. Moderne generative KI-Workloads lassen sich oft durch inferenzorientierte Optimierungen beschleunigen, die redundante Berechnungen reduzieren. Beispielsweise können cachegestützte Ansätze wie MagCache die Iterationen zur Rauschunterdrückung in Diffusionsmodellen erheblich reduzieren und gleichzeitig die Ausgabequalität aufrechterhalten. In Kombination mit TensorRT und moderner Edge-Hardware tragen diese Techniken dazu bei, fortschrittliche generative KI näher an Echtzeit-Robotikanwendungen heranzuführen. 
Mit dem Übergang zum Jetson AGX Thor (128 GB LPDDR5X, bis zu 2.070 FP4-TFLOPS) eröffnet sich deutlich mehr Rechenkapazität für ressourcenintensive Physical-AI-Modelle: Optimierungen wie MagCache reduzieren die Denoising-Schritte um 50 % ohne erkennbaren Qualitätsverlust, sodass Aufgaben zuverlässig in weniger als drei Minuten (2:37 min) abgeschlossen werden können, bei einer durchschnittlichen Denoising-Zeit pro Full-Chunk von 1,5 Sekunden. 

6. Benchmarking der Operatoren 

Die Leistung der Operatoren wurde mit NVIDIA Nsight Systems auf eigenständigen Kerneln profiliert: https://docs.nvidia.com/nsight-systems/UserGuide/index.html. Eine Anleitung zu CUDA-Kerneln ist unter https://docs.nvidia.com/cuda/cuda-programming-guide/index.html verfügbar.

Bei der Weiterentwicklung der Edge-KI geht es nicht nur um den Einsatz schnellerer Hardware. Ebenso wichtig ist die kontinuierliche Verbesserung des Software-Stacks, um modernste Modelle von Drittanbietern nahtlos zu integrieren. Bei Agile Robots und Idealworks steht dieser Ansatz im Mittelpunkt: Wir erweitern die Fähigkeiten bestehender Plattformen, um diese externen Modelle zu integrieren, und bereiten uns gleichzeitig auf Systeme der nächsten Generation vor – durch effiziente Bereitstellungs-Pipelines, optimierte Inferenz-Frameworks und moderne KI-Beschleunigungstechniken, die speziell auf die Integration von KI-Modellen von Drittanbietern zugeschnitten sind.

 

Über die Autoren

Jad Yammine – Senior AI Engineer, Idealworks  

Laurenz von Czettritz – Team Lead Product Management AI, Agile Robots

Anthony Rizk – Co-founder & Research and Engineering Manager, AI, Robotics & Simulation, Idealworks