Como faço para que o OpenCV e o Firefly MV funcionem?

4

Estou tentando começar com a câmera USB Point Grey Firefly-MV no Ubuntu. Eu segui as instruções do Point Grey e obtive imagens completamente pretas (Sim, a tampa da lente está desligada). Alguém tem uma boa idéia de como se levantar e correr com o MV Firefly no Ubuntu? Qualquer código de demonstração também seria útil (exiba o feed de imagem da câmera em um gui).

Obrigado!

    
por Bradley Powers 09.05.2011 / 04:16

1 resposta

2

16 de maio de 2011: problema resolvido, consulte a atualização abaixo!

Tudo bem, depois de muito cutucando e cutucando (e uma nova compilação de computador) eu obtive ROS, OpenCV e libdc1394 instalados e (aparentemente) funcionando corretamente. Eu escrevi um arquivo de inicialização do ROS que deve iniciar a câmera e exibir a saída em uma janela no meu computador. No entanto, quando executo este arquivo de inicialização, recebo os seguintes erros da libusb e 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

Seguido por um erro (esperado) de ROS:

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

Suponho que isso tenha a ver com as regras do udev, mas não tenho certeza de como corrigi-lo (não estou familiarizado com o uso de regras do udev em geral).

Se isso ajudar, veja as permissões para o dispositivo em particular:

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, problema resolvido! O problema era que meu dispositivo precisava de uma regra do udev. Eu criei um, e a câmera funciona muito bem agora. Aqui estava o que eu fiz:

Primeiro, usei lsusb com a câmera conectada para determinar o fornecedor de USB e os IDs de produto da minha câmera:

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

O dispositivo que me preocupa é o dispositivo Point Grey Research no topo. Eu copiei o número de ID, 1e10:2000 .

De lá, precisei criar uma regra do udev para adicionar o dispositivo ao grupo plugdev quando conectado:

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

Neste arquivo, eu digitei o seguinte:

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

Após salvar e reiniciar, iniciar meu arquivo roslaunch funcionou muito bem. Obrigado a Andy Barry por um telefonema e solução tão rapidamente.

    
por Bradley Powers 12.05.2011 / 16:34