Echtzeit bereit

Bild: @Rawpixel.com/adobestock.com / Kithara Software GmbH

Kithara setzt hierbei auf drei Schlüsseltechnologien, um den Echtzeitanspruch auch für datenintensive Highend-Bildverarbeitung zu erfüllen. Diese fügen sich nahtlos in das Funktionsspektrum des Echtzeitsystems Kithara RealTime Suite ein, welches kamerabasierte Bilderfassung, Bildverarbeitung und Automatisierung im selben Echtzeitkontext auf Windows-PCs vereint.

Die Anwendungsmöglichkeiten und damit der Marktanteil von 10GigE-Vision-Kameras nehmen rasant zu und auch darüber hinaus bieten einige Hersteller bereits Kameras mit 25-, 50- und selbst 100GBit-Interfaces an. Damit solch hohe Ethernet-Datenraten in Verbindung mit „harten“ Echtzeiteigenschaften überhaupt nutzbar sind, benötigen Echtzeitbetriebssysteme jedoch die entsprechende Treiberunterstützung, da die Standard-Hardware-Treiber nicht echtzeitfähig sind.

Kithara verwendet hierfür die eigens entwickelten Echtzeit-Ethernet-Treiber, mit denen fast alle Controller von Intel und Realtek innerhalb von Kithara RealTime Suite nutzbar sind. Auf diesen aufbauend wurden optimierte GigE-Vision-Treiber implementiert. Der Ausfall von Bilddatenpaketen wird hier mit ausreichend dimensionierten Pufferspeichern auf Basis dieser Netzwerktreiber zuverlässig verhindert und sorgt so auch bei hohen Bildraten für eine lückenlose Erfassung. Die deterministische Reaktion auf eingetroffene Bilder erfolgt im Kontext der Echtzeitumgebung innerhalb weniger Mikrosekunden. Dabei legt Kithara großen Wert auf die stetige Weiterentwicklung dieser Treiber, um beispielsweise auch mit aktuellen Ethernet-Controllern möglichst zeitnah Schritt zu halten und für eine nahezu lückenlose Hardware-Unterstützung zu sorgen. So wurden vor kurzem die ersten Echtzeit-Treiber für den 100GBit-Ethernet-Controller E810 von Intel veröffentlicht, mit denen man auch für Durchsatzraten modernster GigE-Vision-Kamerasysteme gewappnet ist. Die über QSFP28 angeschlossenen Karten lassen sich auf diese Weise mit garantierten Reaktionszeiten bei geringem Jitter ansteuern. Damit sind im Echtzeitkontext nahezu alle erweiterten Übertragungsgeschwindigkeiten nutzbar, sei es durch schnelle Einzelkameras, Link Aggregation oder den Einsatz mehrerer Kameras.

CPU entlasten mit Framegrabber

Gerade diese immer häufiger verwendeten Multi-Kamerasysteme stellen allerdings oft große Anforderungen an die verknüpften Hostrechner. Der Betrieb mehrerer Kameras bei hohen Bilddatenraten kann schnell zu ausgelasteten CPUs führen – ein kritischer Zustand für Entwicklungs- und Testsysteme, bei denen wichtige Rechnerressourcen auch für andere parallel laufende Hard- und Software bereitstehen müssen. Obwohl für GigE Vision grundsätzlich keine spezialisierte Hardware benötigt wird, da Bilddaten üblicherweise von der Netzwerkkarte empfangen werden, kann es in solchen Anwendungsfällen dennoch von Vorteil sein, einen dedizierten Framegrabber einzusetzen.

Hierfür hat Kithara in Kooperation mit PLC2 Design spezielle Echtzeittreiber für den Framegrabber PGC-1000 entwickelt. Diese PCIe-Karte mit mehreren 10Gbps-Ethernet-Schnittstellen lagert Kompression und Dekompression erfasster Bilddaten auf programmierbare Hardware aus, sodass die CPU selbst während datenintensiver Machine-Vision-Prozesse fast vollständig entlastet wird. Damit wird nicht nur wichtige Rechenleistung freigegeben, sondern auch eine stabilere Echtzeitleistung innerhalb des Kithara-Echtzeitsystems erreicht. Typischer Anwendungsbereich hierfür sind moderne Validierungssysteme in der ADAS-Entwicklung. Zudem ist mit der Karte auch verlustfreie Kompression möglich, was besonders relevant für Entwickler ist, die eine Vielzahl an Algorithmen für Bildverarbeitung und Machine Learning anwenden und dafür möglichst präzise Bilddatensätze benötigen. Die Verwendung mehrerer Kameras mit hohen Bilddatenraten und verlustfreier Kompression kann natürlich mit dem Erzeugen entsprechend hoher Datenmengen einhergehen.

Bilddatenspeicherung mit RAID 0

Das Erfassen solch großer Mengen an Bilddaten erfordert deshalb auch die Implementierung eines optimierten Speichersystems, um Flaschenhälse zu vermeiden. Im Anwendungsfall eines Echtzeitbetriebssystems wie Kithara RealTime Suite bedeutet dies nicht nur das Sicherstellen ausreichend hoher Datenraten und genügend Speicherplatz, sondern auch, dass bei allen Speicherprozessen einen definierte Reaktionszeit garantiert nicht überschritten wird. Damit Anwender für diese Aufgabe auch auf handelsübliche Speichermedien zurückgreifen können, hat Kithara eine speziell entwickelte Storage-Funktion in das Echtzeitssystem eingebaut. Über NVMe-SSDs sind sowohl Schreib- als auch Lesevorgänge deterministisch durchführbar. Die Treiber sorgen zudem dafür, dass im Durchschnitt deutlich höhere Datentransfergeschwindigkeiten im Dauerbetrieb erreicht werden, als üblicherweise mit regulären Betriebssystemen möglich wäre. Derart schnelles, verzögerungsfreies Lesen großer Datenmengen ist beispielsweise bei bildgestützten Hardware-in-the-Loop-Simulationen notwendig, wo extrem realitätsgetreue Bedingungen präzise aufgerufen und wiedergegeben werden müssen.

Da eine einzelne SSD zum Speichern von Bilddaten oft nicht ausreicht, kann zusätzlich auf RAID-Controller zur Vervielfachung der Durchsatzrate zurückgegriffen werden. Mit einer integrierten Erweiterung der Storage-Funktion lassen sich bis zu acht SSDs im RAID-0-Verbund zusammenschalten, um Bandbreite und Speicherkapazität zu multiplizieren, bei gleichbleibenden Echtzeiteigenschaften und Leistungsmerkmalen. Je nach Anforderung ist die Stripe-Tiefe, also die Anzahl der aneinander angrenzenden Datenblöcke innerhalb einer RAID-0-Anordnung, frei konfigurierbar.

www.kithara.com

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert