web-dev-qa-db-fra.com

Comment faire fonctionner OpenCV et Firefly MV?

J'essaie de démarrer avec la caméra USB Point Grey Firefly-MV sous Ubuntu. J'ai suivi les instructions de Point Grey et j'ai obtenu des images complètement noires (oui, le capuchon de l'objectif est désactivé). Quelqu'un a-t-il une bonne idée de la manière de se familiariser avec le Firefly MV sous Ubuntu? Tout code de démonstration serait également utile (affichez le flux d’images de la caméra dans une interface graphique).

Merci!

5
Bradley Powers

16 mai 2011: Problème résolu, voir mise à jour ci-dessous!

Bon, après avoir beaucoup bousculé et poussé (et une nouvelle version d'ordinateur), j'ai installé ROS, OpenCV et libdc1394 et je fonctionne (apparemment) correctement. J'ai écrit un fichier de lancement ROS qui devrait démarrer l'appareil photo et afficher le résultat dans une fenêtre de mon ordinateur. Cependant, lorsque j'exécute ce fichier de lancement, libusb et libdc1394 génèrent les erreurs suivantes:

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

Suivie d'une erreur (attendue) de ROS:

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

Je suppose que cela a à voir avec les règles udev, mais je ne sais pas comment le résoudre (je ne suis pas habitué à jouer avec les règles udev en général).

Si cela vous aide, voici les autorisations pour le périphérique particulier:

bradpowers@bp-rosdev:~/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, problème résolu! Le problème était que mon appareil avait besoin d'une règle udev. J'en ai créé un et la caméra fonctionne très bien maintenant. Voici ce que j'ai fait:

Tout d'abord, j'ai utilisé lsusb avec l'appareil photo branché pour déterminer les identifiants de fournisseur et de produit USB de mon appareil photo:

bradpowers@bp-rosdev:~$ 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

L’appareil qui m’intéresse est l’appareil Point Grey Research en haut. J'ai copié le numéro d'identification, 1e10:2000.

À partir de là, je devais créer une règle udev pour ajouter le périphérique au groupe plugdev une fois branché:

bradpowers@bp-rosdev:~$ Sudo gedit /etc/udev/rules.d/10-pointgrey.rules

Dans ce fichier, j'ai entré ce qui suit:

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

Après la sauvegarde et le redémarrage, le lancement de mon fichier roslaunch a bien fonctionné. Merci à Andy Barry pour un appel téléphonique et une solution si rapide.

3
Bradley Powers