it-swarm.com.de

Wie bekomme ich OpenCV und Firefly MV zum Laufen?

Ich versuche, mit der USB-Kamera Point Grey Firefly-MV in Ubuntu zu beginnen. Ich habe die Anweisungen von Point Grey befolgt und vollständig schwarze Bilder erhalten (Ja, der Objektivdeckel ist abgenommen). Hat jemand eine gute Idee, wie man mit dem Firefly MV in Ubuntu startet? Jeder Demonstrationscode wäre ebenfalls hilfreich (Anzeige des Bild-Feeds von der Kamera in einer GUI).

Vielen Dank!

5
Bradley Powers

16. Mai 2011: Problem behoben, siehe Update unten!

Okay, nach langem Stöbern und Stupsen (und einem neuen Computer Build) habe ich ROS, OpenCV und libdc1394 installiert und (anscheinend) funktioniert es richtig. Ich habe eine ROS-Startdatei geschrieben, die die Kamera starten und die Ausgabe in einem Fenster auf meinem Computer anzeigen soll. Wenn ich diese Startdatei ausführe, erhalte ich jedoch die folgenden Fehler von libusb und libdc1394:

libusb couldn't open USB device /dev/bus/usb/002/007: Permission denied.
libusb requires write access to USB device nodes.
libdc1394 warning: usb: Failed to open device for config ROM
libdc1394 warning: Failed to get config ROM from usb device
libusb couldn't open USB device /dev/bus/usb/002/007: Permission denied.
libusb requires write access to USB device nodes.
libdc1394 warning: usb: Failed to open device for config ROM
libdc1394 warning: Failed to get config ROM from usb device
libusb couldn't open USB device /dev/bus/usb/002/007: Permission denied.
libusb requires write access to USB device nodes.
libdc1394 warning: usb: Failed to open device for config ROM
libdc1394 warning: Failed to get config ROM from usb device

Gefolgt von einem (erwarteten) Fehler von ROS:

[ERROR] [1305210297.868750292]: [camera] device open failed: [Camera1394::open]: No cameras found

Ich gehe davon aus, dass dies mit udev-Regeln zu tun hat, bin mir aber nicht sicher, wie ich das beheben soll (ich bin nicht vertraut damit, mich mit udev-Regeln im Allgemeinen herumzuschlagen).

Wenn es hilft, sind hier die Berechtigungen für das bestimmte Gerät:

[email protected]:~/ros/launch$ ls -la /dev/bus/usb/002/007
crw-rw-r-- 1 root root 189, 134 2011-05-12 08:16 /dev/bus/usb/002/007

================================================ ==============

Ok, Problem gelöst! Das Problem war, dass mein Gerät eine udev-Regel benötigte. Ich habe eine erstellt, und die Kamera funktioniert jetzt hervorragend. Folgendes habe ich getan:

Zuerst habe ich lsusb mit angeschlossener Kamera verwendet, um den USB-Anbieter und die Produkt-IDs für meine Kamera zu ermitteln:

[email protected]:~$ lsusb
Bus 002 Device 009: ID 1e10:2000 Point Grey Research, Inc. 
Bus 002 Device 008: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 002 Device 007: ID 05ac:0220 Apple, Inc. Aluminum Keyboard (ANSI)
Bus 002 Device 006: ID 05ac:1006 Apple, Inc. Hub in Aluminum Keyboard
Bus 002 Device 005: ID 05ac:921c Apple, Inc. 
Bus 002 Device 004: ID 0cf3:3002 Atheros Communications, Inc. 
Bus 002 Device 003: ID 05ac:911c Apple, Inc. 
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Das Gerät, mit dem ich mich befasse, ist das Point Grey Research-Gerät an der Spitze. Ich habe die ID-Nummer aufgeschrieben, 1e10:2000.

Von dort aus musste ich eine udev-Regel erstellen, um das Gerät der Gruppe plugdev hinzuzufügen, wenn es eingesteckt ist:

[email protected]:~$ Sudo gedit /etc/udev/rules.d/10-pointgrey.rules

In dieser Datei habe ich Folgendes eingegeben:

# udev rules file for Point Grey Firefly-MV
BUS=="usb", SYSFS{idVendor}=="1e10", SYSFS{idProduct}=="2000", GROUP="plugdev"

Nach dem Speichern und einem Neustart hat das Starten meiner Roslaunch-Datei hervorragend funktioniert. Vielen Dank an Andy Barry für einen Anruf und eine schnelle Lösung.

3
Bradley Powers