我正在尝试在 Ubuntu 中使用 Point Grey Firefly-MV USB 相机。我按照 Point Grey 的说明操作,但得到的是全黑图像(是的,镜头盖已取下)。有人知道如何在 Ubuntu 中启动和运行 Firefly MV 吗?任何演示代码都会有所帮助(在 GUI 中显示来自相机的图像源)。
谢谢!
答案1
2011 年 5 月 16 日:问题解决,请参阅下面的更新!
好吧,经过多次尝试(以及新电脑的构建),我已经安装了 ROS、OpenCV 和 libdc1394,并且(显然)它们运行正常。我编写了一个 ROS 启动文件,该文件应该可以启动摄像头并在电脑的一个窗口中显示输出。但是,当我运行此启动文件时,我从 libusb 和 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
随后 ROS 出现 (预期的) 错误:
[ERROR] [1305210297.868750292]: [camera] device open failed: [Camera1394::open]: No cameras found
我假设这与 udev 规则有关,但我不确定如何修复它(我一般不熟悉如何处理 udev 规则)。
如果有帮助,以下是特定设备的权限:
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
================================================================
好的,问题解决了!问题是我的设备需要一条 udev 规则。我创建了一个,现在相机运行良好。以下是我所做的:
首先,我lsusb
插入相机来确定相机的 USB 供应商和产品 ID:
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
我关注的设备是顶部的 Point Grey Research 设备。我记下了 ID 号1e10:2000
。
plugdev
从那里,我需要创建一个 udev 规则,以便在插入时将设备添加到组中:
bradpowers@bp-rosdev:~$ sudo gedit /etc/udev/rules.d/10-pointgrey.rules
在此文件中,我输入了以下内容:
# udev rules file for Point Grey Firefly-MV
BUS=="usb", SYSFS{idVendor}=="1e10", SYSFS{idProduct}=="2000", GROUP="plugdev"
保存并重新启动后,启动我的 roslaunch 文件效果很好。感谢 Andy Barry 如此迅速地打电话并解决问题。