libuvc_camera works as a universal camera ROS driver for
UVC compliant cameras (webcams in particular). Using it with the integrated webcam on my laptop (
Kudu Pro by System76), I added in `/etc/udev/rules.d/99-uvc.rules` this line:
SUBSYSTEMS=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="5986", ATTRS{idProduct}=="055c", MODE="0666"
Figuring out needed some tweaks as follows; mainly because I did not know the manufacturer name of the camera:
1. `lsusb` command result doesn't indicate the type of the device:
:
Bus 001 Device 002: ID 8087:8008 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 004: ID 5986:055c Acer, Inc
:
Turned out later that the Acer one was what I was looking for, who knows.
2. Hacky enough, I ran
cheese. Make sure the camera image is displayed on its window, then go to "Preference" --> "WebCam" tabg --> Device. I found the manufacturer is acutally called BisonCam.
3. Hacker doesn't stop yet. Look into `dmesg` command's result. Since this is usually long, I saved it as a file. I found a few lines that include string `Bison`, in which I found the vendor and product id:
[ 2.973758] uvcvideo: Found UVC 1.00 device BisonCam, NB Pro (5986:055c)
After this, I wrote `/etc/udev/rules.d/99-uvc.rules` as above and also made a launch file for libuvc_camera:
<launch>
<node ns="camera" pkg="libuvc_camera" type="camera_node" name="cam_kudu1">
<param name="vendor" value="0x5986"/> <!-- check lsusb -->
<param name="product" value="0x055c"/> <!-- check lsusb -->
<param name="width" value="640"/>
<param name="height" value="480"/>
<param name="video_mode" value="yuyv"/>
<param name="frame_rate" value="30"/>
<param name="camera_info_url" value="file:///tmp/cam.yaml"/>
<param name="auto_exposure" value="3"/>
</node>
</launch>