Sie gehen zur LogiMat 2025? Treffen Sie uns dort.

nomagi-Logo

Tricks und Tipps zur Verwendung der RealSense D400-Serie

1 j0oeqreeuddqlfduiwj8va
Artikel teilen:

Bei Nomagic arbeiten wir viel mit Kameras der RealSense D400-Serie (vor allem mit der D415). Diese Kameras sind sehr beliebt, weil sie RGB- und Tiefeninformationen zu einem vernünftigen Preis liefern können - zehnmal billiger als industrielle Tiefenkameras. Als Stereovision-Kamera mit einem statischen Muster ermöglicht die D415 den gleichzeitigen Betrieb mehrerer Kameras ohne Interferenzen. Während die Tiefenqualität idealerweise besser sein könnte (andererseits berechnet RealSense die Tiefe in Echtzeit bei hohen Bildraten), war das Hauptproblem, auf das wir gestoßen sind, dass die Kameras zeitweise nicht funktionierten. Diese Probleme wurden oft durch die Komplexität unseres Bildverarbeitungssystems verschlimmert, bei dem mehrere Kameras gleichzeitig mit dem System verbunden sind. Im Folgenden stellen wir einige effektive Möglichkeiten vor, diese Probleme zu lösen.


Probleme und grundlegende Abhilfe - Umstecken der Kameras

Nachdem der ROS-Knotenprozess für die Kamera beendet wurde, konnte die Kamera beim nächsten Versuch, sie zu verwenden, oft nicht mehr ausgeführt werden. Gelegentlich funktionierte die Kamera auch während der Ausführung nicht mehr. In solchen Fällen wurden Fehlermeldungen zu E/A- oder Protokollfehlern angezeigt, oder die Kamera verschwand einfach aus dem rs-enumerate-devices und lsusb. Durch erneutes Anschließen der Kamera konnte das Problem in der Regel behoben werden (in einem Fall mussten wir jedoch den Computer neu starten, wie unten beschrieben). Wir verwendeten Hubs mit Stromversorgung, und das Umstecken des Kabels zwischen Kamera und Hub war immer eine zuverlässige Lösung. Das Umstecken des Kabels zwischen dem Hub und dem PC funktionierte jedoch nur in einigen Fällen. Dies deutet darauf hin, dass mindestens zwei verschiedene Arten von Problemen im Spiel sind - weitere Einzelheiten finden Sie im nächsten Abschnitt.

In einem Experiment haben wir vier Kameras an ein System angeschlossen und ihre ROS-Knoten 6.631 Mal hintereinander neu gestartet. Wir beobachteten 45 Fälle, in denen eine der vier Kameras nicht wieder auftauchte (etwa 1%). Details zu diesem Problem finden Sie in diesem Fehlerbericht, wobei die Ergebnisse stark variieren können - an manchen Tagen liefen die Kameras viel besser, an anderen schlechter.


Verfeinerte Workarounds

Da es nicht möglich ist, die Kameras aus der Ferne auszustecken, wenden wir zwei zusätzliche Tricks an:

  1. Zurücksetzen der USB-Controller
    Dies kann mit Hilfe eines Skripts geschehen, das das Abziehen des Kabels zwischen dem PC und einem mit Strom versorgten Hub effektiv simuliert. Diese Methode funktioniert jedoch nur in einigen Fällen.
  2. Ausschalten des Computers
    Mit einem Weckalarm können wir den Computer herunterfahren und automatisch wieder einschalten lassen. Dieses Skript stellt sicher, dass das System vor dem Neustart vollständig heruntergefahren wird, da ein unvollständiges Herunterfahren verhindert, dass der Computer wieder online geht.

Diese Umgehungslösungen helfen zwar kurzfristig, sind aber für Produktionsumgebungen nicht geeignet. Deshalb haben wir nach robusteren Lösungen gesucht.


Aktualisieren der Firmware

Die Standard-Firmware 5.8.15, die mit den Kameras geliefert wird, neigt zu Problemen mit zeitweiligen Ausfällen. Ein Upgrade auf die 5.9.x-Serie behebt viele dieser Probleme, wobei die 5.10.x-Serie sogar noch mehr Stabilität bietet.


Sicherstellen einer USB3-Verbindung

Gelegentlich kann es vorkommen, dass eine Kamera im USB2-Modus angeschlossen wird (selbst wenn sie an einen USB3-Anschluss angeschlossen ist), was zu einer erheblich eingeschränkten Funktionalität führt. So ist es beispielsweise nicht mehr möglich, sowohl Tiefen- als auch Infrarotbilder zu erfassen oder höhere Auflösungen und Bildraten zu erzielen. Um den Verbindungstyp zu überprüfen, führen Sie lsusb -t. Jede Kamera sollte als vier Einträge mit einer Geschwindigkeit von 5000M. Wenn Sie nur drei Einträge sehen bei 480Mist ein erneutes Anschließen der Kamera erforderlich.


Verwalten von Bandbreitenbeschränkungen

Wie in diesem Dokument beschrieben, verbrauchen RealSense-Kameras einen beträchtlichen Teil der theoretischen USB3-Bandbreite von 5000 Mbit/s (die tatsächliche Bandbreite liegt typischerweise bei 3200-3600 Mbit/s). Wenn zu viele Kameras über Hubs an einen einzigen USB-Anschluss angeschlossen werden, kann es aufgrund von Bandbreitenbeschränkungen zu Ausfällen kommen. Selbst bei getrennten USB-Anschlüssen verfügen viele Hauptplatinen nur über einen oder zwei interne USB-Hubs, was bedeutet, dass sich die Anschlüsse dieselbe Bandbreite von 5000 Mbit/s teilen können. Die lsusb -t kann aufzeigen, wie viele Hubs in Gebrauch sind (suchen Sie nach Zeilen mit der Markierung 5000M).

Um die Bandbreite zu erhöhen:

  • Kaufen Sie eine PCIe-Karte mit zusätzlichen USB-Anschlüssen. Hochwertige Karten bieten eine separate Bandbreite für jeden Anschluss, während billigere Karten die Bandbreite für alle Anschlüsse gemeinsam nutzen.
  • Reduzieren Sie die Bildrate oder die Auflösung der Kameras, um den Bandbreitenverbrauch zu senken.

Regelmäßiges Zurücksetzen der Kamera

Das Zurücksetzen der Kamera vor der Verwendung hat sich als sehr effektiv erwiesen, insbesondere bei älteren Firmware-Versionen. Viele Probleme konnten durch programmgesteuertes Zurücksetzen der Kamera gelöst werden, wie in diesem Beispiel gezeigt übergeben.. Durch das Hinzufügen eines solchen Codes zum Startvorgang der Kamera wurden die Fälle, in denen die Initialisierung fehlschlug, erheblich reduziert.


Vorsicht vor dem /dev/media* Device Leakage Bug

Das Zurücksetzen oder Trennen von Kameras kann einen Fehler in einigen Linux-Kerneln aufdecken, einschließlich der in Ubuntu 16.04 LTS verwendeten Version. Wie beschrieben in dieser BerichtBestimmte Kernel-Versionen sind undicht. /dev/media* Geräte beim Trennen der Verbindung. Sobald alle 255 Geräte verbraucht sind, funktionieren die RealSense-Kameras nicht mehr.

Zu den Symptomen gehören:

  • lsusb -t unter Fahrer= anstelle von Treiber=uvcvideo.
  • Kernel-Protokolle mit "media: could not get a free minor".
  • ls /dev/media* mit 255 Einträgen.

Die einzige Abhilfe ist ein Neustart des Systems, obwohl ein Upgrade auf eine Kernel-Version, die nicht von diesem Fehler betroffen ist (z.B. 4.18 oder später), vorzuziehen ist.


Beschädigung der Tiefenkalibrierungsdaten

Wenn Ihr Tiefenstrom verzerrt erscheint, kann dies auf beschädigte Tiefenkalibrierungsdaten hindeuten. Das "Dynamic Calibration Tool" kann die Kalibrierungsdaten wiederherstellen, indem es Intel.Realsense.CustomRW -gund führen Sie anschließend das Kalibrierungsverfahren durch.

Beschädigung der Tiefenkalibrierungsdaten bei der RealSense D400-Serie

Überprüfen Sie Ihre Kabel

Einige Probleme sind auf fehlerhafte Kabel zurückzuführen, insbesondere wenn die Kamera an einem beweglichen Roboterarm montiert ist. Zu den Symptomen gehört, dass eine bestimmte Kamera mit der Zeit immer häufiger ausfällt, bis sie ganz aufhört zu funktionieren. Durch den Austausch des Kabels lässt sich dies in der Regel beheben. Wir verfügen zwar noch nicht über eine zuverlässige Methode zur Erkennung defekter Kabel, aber das Zählen unvollständiger Bilder oder die Verwendung des GetPortErrorCount Befehl (eingeführt in USB 3.1) könnte helfen.

Hinweis: Die theoretische Bandbreite von USB3 von 5000 Mbit/s kann zu Störungen bei 2,5-GHz-Funkgeräten führen. So funktionierte beispielsweise eine drahtlose Tastatur nicht mehr, wenn sie in der Nähe einer RealSense-Kamera angeschlossen war. Abgeschirmte USB-Kabel oder der Verzicht auf solche Geräte in der Nähe können dieses Problem abmildern.


Intel-Support ist hilfreich

Viele der hier beschriebenen Tricks wurden durch Interaktionen mit Intel RealSense-Unterstützungwofür wir dankbar sind. Sie können dort Tickets öffnen und eine schnelle Antwort erwarten.

Mikołaj Zalewski
Przemysław Walczyk

Artikel teilen:

Ihre Zukunft in der Robotik beginnt hier

Setzen Sie sich mit Nomagic in Verbindung und erfahren Sie, wie unsere innovative Technologie Ihre Fulfillment-Prozesse auf die nächste Stufe heben kann.