ros-drivers / pointgrey_camera_driver

ROS driver for Pt. Grey cameras, based on the official FlyCapture2 SDK.
128 stars 180 forks source link

Not detecting Bumbleebee2 #6

Closed mcross8 closed 10 years ago

mcross8 commented 10 years ago

Hello,

I'm following the instructions on http://wiki.ros.org/pointgrey_camera_driver for using the Bumblebee2 camera. Packages install quite happily. However, when attempting to list the cameras, 'rosrun pointgrey_camera_driver list_cameras', it doesn't find the connected device. The prompt suggests to restart udev and replug the camera.

It's at this point that nothing changes; the attached camera isn't found. When I 'udevadm monitor', it shows the device being removed, and then added, when I unplug and replug in the camera.

I can run the camera1394stereo package and it connects happily enough; however I'm interested in trying this package because, well, I'm using it with products from Clearpath!

I guess my 2 questions are:

1) What is the package looking for when attempting to list cameras? Mine shows up as 'fw1' in /dev.

2) What else am I doing wrong?

Thanks! Matt

mikepurvis commented 10 years ago

Hi! Thanks for giving the a try— sorry it's not doing the right thing for you.

The way this driver is structured is very different from camera1394; we're primarily just calling through to the libflycapture library supplied by Pt. Grey, which we've found to be more efficient than camera1394, as well as supporting camera features not available in the generic interface. If the device is appearing in /dev, then it's still possible there's a permissions problem. A quick way to check this is to try executing everything as root:

sudo su
source /opt/ros/hydro/setup.bash
rosrun pointgrey_camera_driver list_cameras

If it works that way, then the udev rules file needs to be tweaked to properly recognize your camera. Would welcome a pull request to that effect!


Oh, one other thing— I'm assuming you're on Ubuntu 12.04, with a 3.2 or 3.8 kernel. Is that correct?

mcross8 commented 10 years ago

Thanks! You are correct; executing everything as root made it all work as intended. Now, here's where my Linux skills start to fade. The udev keys for the device are as listed:

KERNEL=="fw1"
SUBSYSTEM=="firewire"
DRIVER==""
ATTR{guid}=="0x00b09d0100d61c64"
ATTR{units}=="0x00a02d:0x000102"
ATTR{is_local}=="0"
ATTR{vendor}=="0x00b09d"
ATTR{vendor_name}=="Point Grey Research"

So, I added the following line, and a couple of variants, to the 71-pgr.rules file without much success:

KERNEL=="fw*" SUBSYSTEM=="firewire", ATTR{vendor}=="0x00b09d", MODE="0666"

Beyond that, I'm not really sure how to tweak the udev rules so that my camera is recognized / listed when I'm not root. What should I be looking for / adding to the udev rules to get the camera to be recognized?

Thanks! Matt

mcross8 commented 10 years ago

Oh, one more thing: Ubuntu 12.04, ROS Hydro, kernal 3.13

mikepurvis commented 10 years ago

This is a bit of a blunt instrument, but please try out the following:

KERNEL=="fw*", MODE="0666", GROUP="pgrimaging"

Make sure you reload the udev rules and replug the device as well.

mcross8 commented 10 years ago

Like most blunt instruments, that seemed to do the job. Also, just found my typo in my above noted rules line:

KERNEL=="fw" SUBSYSTEM=="firewire", ATTR{vendor}=="0x00b09d", MODE="0666" should have an extra comma: KERNEL=="fw", SUBSYSTEM=="firewire", ATTR{vendor}=="0x00b09d", MODE="0666" and adding in the group: KERNEL=="fw*", SUBSYSTEM=="firewire", ATTR{vendor}=="0x00b09d", MODE="0666", GROUP="pgrimaging"

which also seems to be working fine now.

Thanks again! Matt

mikepurvis commented 10 years ago

Okay, perfect. Will leave this ticket open until I've fixed the issue in the repo.

l0g1x commented 9 years ago

Im not sure if this is just something with my computer, but i am still receiving the same error on Ubuntu 14.04 indigo. I can reproduce

sudo su source /opt/ros/hydro/setup.bash rosrun pointgrey_camera_driver list_cameras

and it works fine. Coriander works perfectly fine too, and so does camera1394stereo. udevinfo doesnt work for me on 14.04 and udevadm doesnt produce the useful attributes like udevinfo does.

device shows up under /dev/fw1 as well. Not sure what to do here.

sviisc commented 9 years ago

I am also facing the same problem for Ubuntu 12.04. I have installed ros-hydro driver "pointgrey_camera_driver". When I try to run the nodes to connect to the camera, I am getting the following error messages (with and with out specifying serial number):

  1. PointGreyCamera::connect Failed to get first connected camera | FlyCapture2::ErrorType 19Failed to get the camera from the index
  2. PointGreyCamera::connect Could not find camera with serial number: 10210007. Is that camera plugged in? | FlyCapture2::ErrorType 19Failed to get the camera from the serial number.

What is surprising is that if I am running everything as a superuser, I am able to access cameras properly with no errors.

What am I doing wrong, please help me out here.

My /lib/udev/rules.d contains the standard file 40-ros-hydro-pointgrey-camera-driver.rules:- ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="2000", MODE="0666", GROUP="pgrimaging" ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="2001", MODE="0666", GROUP="pgrimaging" ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="2002", MODE="0666", GROUP="pgrimaging" ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="2003", MODE="0666", GROUP="pgrimaging" ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="2004", MODE="0666", GROUP="pgrimaging" ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="2005", MODE="0666", GROUP="pgrimaging" ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="3000", MODE="0666", GROUP="pgrimaging" ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="3001", MODE="0666", GROUP="pgrimaging" ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="3004", MODE="0666", GROUP="pgrimaging" ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="3005", MODE="0666", GROUP="pgrimaging" ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="3006", MODE="0666", GROUP="pgrimaging" ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="3007", MODE="0666", GROUP="pgrimaging" ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="3008", MODE="0666", GROUP="pgrimaging" ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="300A", MODE="0666", GROUP="pgrimaging" ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="300B", MODE="0666", GROUP="pgrimaging" ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="3100", MODE="0666", GROUP="pgrimaging" ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="3101", MODE="0666", GROUP="pgrimaging" ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="3102", MODE="0666", GROUP="pgrimaging" ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="3103", MODE="0666", GROUP="pgrimaging" ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="3104", MODE="0666", GROUP="pgrimaging" ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="3105", MODE="0666", GROUP="pgrimaging" ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="3106", MODE="0666", GROUP="pgrimaging" ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="3107", MODE="0666", GROUP="pgrimaging" ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="3108", MODE="0666", GROUP="pgrimaging" ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="3109", MODE="0666", GROUP="pgrimaging" ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="3300", MODE="0666", GROUP="pgrimaging" KERNEL=="raw1394", MODE="0666", GROUP="pgrimaging" KERNEL=="video1394", MODE="0666", GROUP="pgrimaging" KERNEL=="fw", SUBSYSTEM=="firewire", ATTR{vendor}=="0x00b09d", MODE="0666", GROUP="pgrimaging" KERNEL=="fw*", SUBSYSTEM=="firewire", ATTR{vendor}=="0x00a02d", MODE="0666", GROUP="pgrimaging"