Eine Stereokamera ist ein Gerät mit mehreren Kameras und Funktionen, das ähnlich wie das menschliche Sehen die Links-Rechts-Parallaxe nutzt. Ihr Hauptzweck besteht darin, Entfernungsinformationen in Echtzeit zu erfassen.
Die in diesem Test verwendete Stereokamera war die Orbbec Gemini 335L. Wie im Bild zu sehen ist, besteht sie aus mehreren Komponenten, darunter Infrarotkameras und ein Laserprojektor.
Wir konnten bestätigen, dass sich ein solches System mit einer Stereokamera und einem Raspberry Pi relativ einfach umsetzen lässt.

1. Was kann eine Stereokamera leisten?
Das Prinzip einer Stereokamera ist einfach.
So wie Menschen mit beiden Augen Entfernungen wahrnehmen, berechnet eine Stereokamera anhand der Differenz, also der Parallaxe, zwischen den Bildern zweier Kameras, wie weit ein Objekt entfernt ist.
Da die Kamera selbst über einen Chip zur Datenverarbeitung verfügt, ist die Verarbeitungslast auf dem angeschlossenen Host-Gerät relativ gering. Dadurch eignet sie sich auch für Geräte mit begrenzter Rechenleistung, etwa einen Raspberry Pi.
Ein weiterer Vorteil ist, dass der Anschluss über ein einziges USB-Kabel erfolgt. Das senkt die Hürde für Einführung und Tests.
1) Abstandsmessung und Hinderniserkennung
In industriellen Anwendungen können Stereokameras beispielsweise auf autonomen mobilen Robotern (AMR) in Fabriken oder im Arbeitsbereich von Roboterarmen eingesetzt werden. Über die Stereokamera kann das System in Echtzeit erfassen, „was sich vorne befindet“ und „wie viele Zentimeter es entfernt ist“. Diese Informationen können für Steuerungsaufgaben genutzt werden, etwa um Hindernisse zu erkennen, Anlagen anzuhalten oder eine Ausweichroute zu wählen. Stereokameras ermöglichen auch in Umgebungen mit häufig wechselnden Lichtbedingungen einen präzisen Betrieb.
2) Dimensionsmessung
Mit einer Stereokamera lassen sich Länge, Breite und Höhe von Paketen auf einem Förderband automatisch und berührungslos messen.
In Lagern und Logistikzentren entfällt dadurch die manuelle Größenmessung durch Mitarbeitende. Das verbessert die Arbeitseffizienz und reduziert Messfehler. Die erfassten Daten können außerdem für weitere Automatisierung und Analysen genutzt werden.
3) Personenerkennung und Bewegungsflussanalyse
Mit Depth-Informationen, also Tiefeninformationen, sind quantitative Erkennungen möglich, die mit Farbbildern allein nur schwer umzusetzen sind.
Zum Beispiel lassen sich der Auslastungsgrad von Bereichen und Bewegungsflüsse von Personen erfassen, indem menschliche Bewegungen erkannt werden.
Da Tiefe farblich dargestellt wird und keine identifizierbaren Personenbilder erforderlich sind, lässt sich das System leichter datenschutzfreundlich betreiben.
Es kann nicht nur in Fabriken, sondern auch in kommerziellen Einrichtungen eingesetzt werden.
4) Qualitätsprüfung
In der Fertigung kann die Prüfung von Teilen oder Produkten teilweise vom Erfahrungsstand der Mitarbeitenden abhängen. Durch den Einsatz einer Stereokamera können Prüfungen auf Basis von 3D-Daten durchgeführt werden, wodurch die Erkennung von Abweichungen gleichmäßiger wird.
In Kombination mit normalen Kamerabildern lassen sich auch Farbabweichungen gleichzeitig erkennen, was die Prüfgenauigkeit erhöhen kann. Dadurch ist auch eine höhere Prüfgeschwindigkeit zu erwarten.
5) Schnelle Verifizierung mit Raspberry Pi 5
Vor dem produktiven Einsatz kann die Verifizierung schnell mit einem kostengünstigen Gerät wie dem Raspberry Pi 5 durchgeführt werden. Dazu müssen lediglich das passende SDK und die Viewer-Software installiert werden. Auch der Anschluss erfolgt über ein einziges USB-Kabel.
Für kleinere Einsatzorte kann ein industrieller Raspberry Pi allein bereits für den praktischen Betrieb ausreichen.
Sonstiges
Die Orbbec-Gemini-Serie unterstützt ROS 2 und kann daher auch direkt für die Robotikentwicklung eingesetzt werden.
2. Testumgebung und Viewer
Wir haben die Kamera in der folgenden Umgebung getestet.
Testumgebung
- Raspberry Pi 5
- Raspberry Pi OS 64-bit (Bookworm)
- Orbbec Gemini 335L (Stereokamera)
- Firmware 1.4.60
- SDK v2.2.8
- OrbbecViewer
OrbbecViewer
Mit dem separat vom SDK heruntergeladenen OrbbecViewer konnten wir über den linken Bereich und die oberen Menüschaltflächen fünf Hauptfunktionen schnell ausprobieren.

- Color
- Depth
- IR Left/Right
- IMU
- PointCloud
Color
Color bezeichnet das normale Kamerabild. Es wird selten allein verwendet, sondern meist zusammen mit Depth, um visuell zu prüfen, welches Objekt sich in welcher Entfernung befindet.
Es eignet sich außerdem zur Kontrolle von Bildeinstellungen wie Belichtung, Weißabgleich und Auflösung. Es ist das grundlegende Kamerabild.

Depth
Depth zeigt Entfernungsinformationen in Pseudofarben an. Im Beispielprogramm werden weiter entfernte Bereiche rot und nähere Bereiche blau dargestellt. Bereiche, in denen keine Messung möglich war, wurden schwarz angezeigt.

IR Left/Right
IR Left/Right zeigt die Bilder der linken und rechten Infrarotkameras, die für die Stereoberechnung verwendet werden. Diese Bilder dienen als Ausgangsdaten für Depth.

IMU
IMU steht für Inertial Measurement Unit, also inertiale Messeinheit.
Sie liefert Werte von Beschleunigungssensor und Gyroskop, mit denen Neigung und Vibration der Kamera erkannt werden. Diese Werte sind nützlich, wenn die Kamera auf beweglichen Objekten wie Robotern oder Drohnen montiert wird.
PointCloud
PointCloud ist eine 3D-Darstellung von Depth als Sammlung von Punkten in XYZ-Koordinaten. Sie kann verwendet werden, um die Form eines Raums zu erfassen.
3. Einrichtung von SDK und Viewer
Vor der Installation der benötigten Komponenten prüfen wir zunächst, ob die Stereokamera verbunden ist.
Nach dem Anschließen des USB-Kabels lässt sich mit dem Befehl lsusb bestätigen, dass die Gemini 335L erkannt wird.
In der Ausgabe ist die Gemini 335L eindeutig zu sehen.
lsusb
Bus 002 Device 002: ID 2bc5:0804 Orbbec 3D Technology International, Inc Orbbec Gemini 335L
Außerdem sollte mit dem Befehl lsusb -t geprüft werden, ob die Verbindung über USB 3.0 (5000M) erfolgt.
Da Bus 002 die Orbbec Gemini 335L war, sehen wir, dass Bus 02 mit 5000M arbeitet.
lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
|__ Port 1: Dev 2, If 0, Class=Video, Driver=uvcvideo, 5000M
|__ Port 1: Dev 2, If 1, Class=Video, Driver=uvcvideo, 5000M
|__ Port 1: Dev 2, If 2, Class=Video, Driver=uvcvideo, 5000M
|__ Port 1: Dev 2, If 3, Class=Video, Driver=uvcvideo, 5000M
|__ Port 1: Dev 2, If 4, Class=Video, Driver=uvcvideo, 5000M
|__ Port 1: Dev 2, If 5, Class=Video, Driver=uvcvideo, 5000M
|__ Port 1: Dev 2, If 6, Class=Human Interface Device, Driver=usbhid, 5000M
Nach dem Download von SDK und Viewer führen wir das im SDK enthaltene Setup-Skript aus und konfigurieren die udev-Regeln. Beides sind Shell-Skripte.
Nach Abschluss von Installation und Build kann der Betrieb mit dem Viewer oder den Beispielprogrammen geprüft werden.
Download und Einrichtung von SDK v2.2.8
Nach unserer Prüfung ist das empfohlene SDK für Firmware 1.4.60 die Version v2.2.8. SDK v1.x unterstützt Firmware bis v1.3.25; hierfür ist SDK v1.10.12 empfohlen.
Da die in diesem Test verwendete Kamera Firmware 1.4.60 hatte, haben wir das empfohlene SDK v2.2.8 verwendet.
Zum Zeitpunkt der Erstellung dieses Artikels waren Firmware 1.6.0.0 und SDK v2.7.6 die neuesten Versionen.
Für diese Arbeit haben wir einen Projektordner mit dem Namen ~/stereo-cam erstellt.
Laden Sie OrbbecSDK und Viewer herunter und entpacken Sie sie.
# SDK-Paket (Bibliotheken, Beispiele, Header)
OrbbecSDK_v2.2.8_202502141816_e0ad10e5_linux_aarch64.zip
# Viewer (eigenständige GUI)
OrbbecViewer_v2.2.8_202502141834_3a70bf7_linux_aarch64.zip
Entpacken Sie beide Dateien.
mkdir ~/stereo-cam
cd ~/stereo-cam
wget https://github.com/orbbec/OrbbecSDK_v2/releases/download/v2.2.8/OrbbecSDK_v2.2.8_202502141816_e0ad10e5_linux_aarch64.zip
wget https://github.com/orbbec/OrbbecSDK_v2/releases/download/v2.2.8/OrbbecViewer_v2.2.8_202502141834_3a70bf7_linux_aarch64.zip
unzip OrbbecSDK_v2.2.8_*.zip
unzip OrbbecViewer_v2.2.8_*.zip
Führen Sie das Setup-Skript im Ordner des SDK v2.2.8 aus.
Dieses Skript baut auch die Beispiele und erstellt die udev-Regeln.
cd ~/stereo-cam/OrbbecSDK_v2.2.8_202502141816_e0ad10e5_linux_aarch64
sudo chmod +x setup.sh
./setup.sh
Während des Vorgangs erscheinen Fragen. Beide können mit yes beantwortet werden.
4. Befehle zum Starten der Beispielanwendungen
Achtung: Da die Kamera Laserlicht emittiert, schauen Sie nicht direkt in die Kamera.
Wenn Viewer oder Beispieldateien auf dem tatsächlichen Gerät ausgeführt werden, können sie mit den folgenden Befehlen gestartet werden.
Die Beispielprogramme befinden sich im Verzeichnis /bin innerhalb des SDK-Ordners, während der Viewer direkt im OrbbecViewer-Ordner liegt.
LIBGL_ALWAYS_SOFTWARE=1 ./OrbbecViewer
LIBGL_ALWAYS_SOFTWARE=1
Diese Option führt OpenGL mit CPU-Software-Rendering statt mit GPU-Hardware-Rendering aus.
In den Standardeinstellungen des Raspberry Pi 5 ist Hardware-OpenGL aktiviert. In unserer Umgebung haben wir diese Option jedoch angegeben, da OrbbecViewer die Wayland-Sitzung nicht ordnungsgemäß unterstützte.
Mit ./OrbbecViewer allein lässt sich die Anwendung zwar starten, der Hauptanzeigebereich bleibt jedoch schwarz.

Wenn die Anwendung auf einem Raspberry Pi 5 in einer Wayland-Umgebung nicht direkt am Gerät, sondern von einem anderen Rechner über SSH gestartet wird, muss ebenfalls das Display angegeben werden.
Der Grund ist, dass die SSH-Sitzung nicht direkt auf die GPU zugreifen kann.
DISPLAY=:0 LIBGL_ALWAYS_SOFTWARE=1 ./OrbbecViewer
Hinweis:
In einer X11-Umgebung kann es zusätzlich erforderlich sein, Optionen wie XAUTHORITY=$HOME/.Xauthority QT_QPA_PLATFORM=xcb hinzuzufügen.
5. Hinweise
Die folgenden Punkte sollten beim Testen beachtet werden.
- Da die Kamera Laserlicht emittiert, achten Sie darauf, dass es nicht direkt in die Augen von Personen gelangt.
- Depth-Streaming funktioniert möglicherweise nicht auf bestimmter Hardware außer dem in diesem Test verwendeten Raspberry Pi 5.
- Je nach Firmware-Version muss die kompatible SDK-Version geprüft werden.
- Je nach Kamera-Firmware-Version konnten wir auch mit einigen v1-SDK-Versionen, etwa SDK v1.0.27, den Betrieb bestätigen.
Wir haben am Gerät geprüft, ob der verwendete Display-Server Wayland oder X11 ist.
echo $XDG_SESSION_TYPE
echo $WAYLAND_DISPLAY
# Ergebnis
wayland
wayland-0
Die Kompatibilität unterscheidet sich je nach Raspberry-Pi-Modell und dessen Standardeinstellungen.
Gleichzeitig unterscheiden sich verfügbare Dateien und Skripte auch je nach Kombination aus Firmware der Stereokamera und SDK-Version.
Detaillierte Informationen finden Sie in der offiziellen Dokumentation: https://www.orbbec.com/docs/orbbec-gemini-330-series-documentation/
Beitrag von Raspida
Raspida betreibt raspida.com, eine Raspberry-Pi-Informationswebsite, die auch für Nicht-Ingenieure verständlich und angenehm zu lesen ist. Auf Grundlage langjähriger praktischer Erfahrung mit Raspberry Pi veröffentlicht die Website zahlreiche nützliche Informationen und Themen sowohl für erfahrene Raspberry-Pi-Nutzer als auch für Personen, die gerade erst Interesse daran entwickeln. Raspida veröffentlicht auf der PiLink-Website technische Blogartikel über industrielle Raspberry-Pi-Produkte.

