Roboter HaBuRo1 Video Stream

Vom Robuter über WLAN zum PC

mjpg-streamer

Zurück


Für Video-Streaming wird WLAN benötigt. Wenn du mit dem Roboter draußen auf der Liegewiese einer Badeanstalt rumkurvst dann ist Schluss mit Video! Kein WLAN! Jedoch kann man Einzelbilder oder Videosequenzen auf einen USB-Speicher speichern. Aber was bringt das! Du hast keine Kamerakontrolle auf deinem Tablet und anstelle einer schönen Frau siehst du Löwenzahn. Spaß beiseite, Ernst aus der Ecke. Die Leistungsfähigkeit der Raspberry Pi Kamera ist erstaunlich. Auf dem Firefox Browser siehst du klasse Videos und mit einem hervorragenden Zeitverhalten. Alle drei Servos können vom Windows Tablet präzise gesteuert werden. Dafür stehen GUI-Schieberegler zur Verfügung. Das Internet füllt das Alte- und Neue Testament mit Beschreibungen über Video-Streaming, jedoch in Verbindung mit eine Fülle von weiteren zusätzlichen Steuerungsaufgaben für den HaBuRo ist der "mjpg-streamer" die beste Wahl. Der Installationsaufwand ist jedoch komplex.

Video Stream Video4Linux-Treiber, Version 2 (v4l2). Dieser Treiber reduziert die Datenmenge, die über das Netzwerk übertragen werden muss, erheblich und es kommt zu weniger Aussetzern im Live-Stream
Video Stream Livestream von der Kamera des Roboters HaBuRo1. Die Kamera, mit Servomotoren ausgerüstete, kann Videos im Radius von 360° aufnehmen. Das obige Bild zeigt die ersten Tests.


Der Video-Streaming-Server „mjpg-streamer“ übernimmt die Aufgabe, Kamerabilder vom Roboter-Auto über das WLAN zu übertragen. Damit das funktioniert müssen einige Bibliotheken installiert und konfiguriert werden:

sudo apt-get update
sudo apt-get upgrade
sudo reboot
sudo apt-get install subversion
sudo apt-get install libjpeg8-dev
sudo apt-get install imagemagick

Nach dieser Vorbereitung kannst du jetzt den „mjpg-streamer“ herunterladen. Das Programm „mjpg-streamer“ soll in den Ordner /opt/ installiert werden! Wechsle über das Terminal-Fenster in den Ordner /opt/ und erstelle einen neuen Ordner „mjpg-streamer“. Du bleibst im Ordner: /opt/mjpg-streamer/ und führst folgenden Befehl aus:

sudo svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer/

Symbolischen Link ausführen: Die Datei „videodev.h“, die der mjpg-streamer benötigt, wurde vom Linux Betriebssystem „Raspbian“ des Raspberry Pi durch „videodev2.h ersetzt. Damit der mjpg-streamer die entsprechende videodev2.h-Datei als videodev.h-Datei auch finden kann, muss eine Verknüpfung zwischen beiden Dateien erzeugt werden. Dies geschieht in Form eines symbolischen Links. Es folgt der Befehl dafür:

sudo ln -s /usr/include/linux/videodev2.h /usr/include/linux/videodev.h

Jetzt den mjpg-streamer mit folgenden Befehl installieren: sudo make install. Damit das Live-Video-Streaming richtig klappt und der mjpg-streamer den Video-Stream optimal einlesen kann, muss der Video4Linux-Treiber in der Version 2 (v4l2) geladen werden. Siehe Bild oben links. Ab jetzt muss die Kamera angeschlossen und aktiv sein. Führe folgenden Befehl aus:

sudo modprobe bcm2835-v4l2

Richtige Schreibweise: Achte darauf, dass zwischen der 4 und der 2 der Buchstabe „l“ (wie „leise“) und nicht die Ziffer eins "1" steht. Möchtest du überprüfen, ob das Modul bcm2835-v4l2 geladen wurde, führe den Befehl: sudo lsmod aus. Es erscheint im Terminalfenster eine Liste mit allen geladenen Modulen. In der sollte das Modul bcm2835-v4l2 enthalten sein. Damit du das Modul bcm2835-v4l2 nicht bei jedem Neustart manuell neu laden musst kann man es in einer Art Autostart aufnehmen. Im Verzeichnis /etc/ liegt eine Datei „Modules“. Öffne mit sudo nano /etc/modules und füge folgende Zeile ein: bcm2835-v4l2.

mjpg-streamer konfigurieren: Öffne die Datei /opt/mjpg-streamer/start.sh mit dem Editor nano. Suche die Zeile:

./mjpg-streamer -i "./input_uvc.so" -o "./output_http.so -w ./www"

füge in die Zeile folgende Ergänzung ein: -d /dev/video0 -r 800x640 -f 25. Nach der Anpassung sollte die Zeile wie folgt aussehen:

./mjpg-streamer -i "./input_uvc.so -d /dev/video0 -r 800x640 -f 25 " -o "./output_http.so -w ./www"

Mit dieser Anpassung hast du dem mjpg-streamer die Raspberry Pi Kamera als Aufnahmegerät zugewiesen (-d /dev/video0) und die Auflösung (-r 800x640) sowie die Framerate (-f 25) des Videos festgelegt. Das Streaming wird mit sudo ./start.sh aktiviert. Auf der Seite des Raspberry Pi ist jetzt alles erledigt. Du kannst jetzt im Webbrowser deines PCs das Livevideo der Raspberry Pi Kamera über folgender URL aufrufen:

IP-Adresse des Raspberry Pi:8080




Eine Skript und eine Python-Klasse für den mjpg-streamer: Das Skript "mjpg-streamer" wird in Python gekapselt. Die Klasse "KamStream" wird als eigenständigen Thread im Python-Hautprogramm aufgerufen. Die Kamera funktioniert jedoch nur, wenn eine WLAN-Verbindung besteht.


Video Stream Video Stream Video Stream
Zurück