Homer,
Some numbers on using a webcam with my uvc_cam driver
(they are a little fuzzy since it's been a while since I did
the tests, but it should be about right). No changes to the
driver were made between these tests, and all were running
the same version of Ubuntu (64-bit unless it wasn't
supported, like on the Core Duo). We were doing 640x480 @
30fps and I believe had to do a YUYV to RGB conversion in
the driver because the cameras did not support outputting
RGB (though I can't recall if that is the Logitech Webcam
Pro 9000 or these other crappy, no brand cameras we were
using before the Webcam Pro 9000s).
Anyways, the numbers:
1. Intel Core Duo, somewhere between 2.0 and 2.4 GHz (Mac
Mini, circa 2006-2007): somewhere around 40% CPU per camera.
Basically, what I remember was that we were gonna lose a
whole CPU core to just a pair of cameras and that was
unacceptable.
2. Intel Core 2 Duo, 2.0 GHz (IBM Thinkpad T61, circa
2007): about 10-15% CPU per camera.
3. Intel Core i7 920, 2.66GHz (Custom build, Summer
2009): very low usage, sometimes even showing up at 0% in
the System Monitor. 5-8% tops when it does show up.
As you can see, for whatever reason, the Core 2 kicks the
crap out of the Core Duo. 64-bits vs 32-bits, extra SSE
voodoo, better USB drivers on the T61 than the Mac Mini, who
knows why? Anyways, definitely something to think about.
Also, any webcam that you can use in an RGB mode as opposed
to YUYV where the driver is going to have to spend time
converting from YUYV to RGB will be good.
That said, we've been quite happy with the Webcam Pro
9000s. Let me know if you have any other questions about it.
I'm including the console output of guvcview, which lists
the different image sizes and 1/FPS pairs that the camera
clams to support in different modes (MJPG or YUYV in this
case), in case anyone wonders about that and doesn't have a
Webcam Pro 9000 on hand to find out :)
Hope that helps.
- Eric
guvcview console output:
video device: /dev/video0
/dev/video0 - device 1
Init. UVC Camera (046d:0809) (location:
usb-0000:00:1d.7-5)
{ pixelformat = 'YUYV', description = 'YUV 4:2:2 (YUYV)' }
{ discrete: width = 640, height = 480 }
Time
interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10,
1/5,
{ discrete: width = 160, height = 120 }
Time
interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10,
1/5,
{ discrete: width = 176, height = 144 }
Time
interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10,
1/5,
{ discrete: width = 320, height = 240 }
Time
interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10,
1/5,
{ discrete: width = 352, height = 288 }
Time
interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10,
1/5,
{ discrete: width = 640, height = 360 }
Time
interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10,
1/5,
{ discrete: width = 640, height = 400 }
Time
interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10,
1/5,
{ discrete: width = 768, height = 480 }
Time
interval between frame: 1/25, 1/20, 1/15, 1/10, 1/5,
{ discrete: width = 800, height = 456 }
Time
interval between frame: 1/25, 1/20, 1/15, 1/10, 1/5,
{ discrete: width = 800, height = 504 }
Time
interval between frame: 1/25, 1/20, 1/15, 1/10, 1/5,
{ discrete: width = 800, height = 600 }
Time
interval between frame: 1/25, 1/20, 1/15, 1/10, 1/5,
{ discrete: width = 864, height = 480 }
Time
interval between frame: 1/25, 1/20, 1/15, 1/10, 1/5,
{ discrete: width = 960, height = 720 }
Time
interval between frame: 1/15, 1/10, 1/5,
{ discrete: width = 1280, height = 720 }
Time
interval between frame: 2/15, 1/5,
{ discrete: width = 1280, height = 800 }
Time
interval between frame: 2/15, 1/5,
{ discrete: width = 1600, height = 904 }
Time
interval between frame: 1/5,
{ discrete: width = 1600, height = 1000 }
Time
interval between frame: 1/5,
{ discrete: width = 1600, height = 1200 }
Time
interval between frame: 1/5,
{ pixelformat = 'MJPG', description = 'MJPEG' }
{ discrete: width = 640, height = 480 }
Time
interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10,
1/5,
{ discrete: width = 160, height = 120 }
Time
interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10,
1/5,
{ discrete: width = 176, height = 144 }
Time
interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10,
1/5,
{ discrete: width = 320, height = 240 }
Time
interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10,
1/5,
{ discrete: width = 352, height = 288 }
Time
interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10,
1/5,
{ discrete: width = 640, height = 360 }
Time
interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10,
1/5,
{ discrete: width = 640, height = 400 }
Time
interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10,
1/5,
{ discrete: width = 768, height = 480 }
Time
interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10,
1/5,
{ discrete: width = 800, height = 456 }
Time
interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10,
1/5,
{ discrete: width = 800, height = 504 }
Time
interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10,
1/5,
{ discrete: width = 800, height = 600 }
Time
interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10,
1/5,
{ discrete: width = 864, height = 480 }
Time
interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10,
1/5,
{ discrete: width = 960, height = 720 }
Time
interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10,
1/5,
{ discrete: width = 1280, height = 720 }
Time
interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10,
1/5,
{ discrete: width = 1280, height = 800 }
Time
interval between frame: 1/25, 1/20, 1/15, 1/10, 1/5,
{ discrete: width = 1600, height = 904 }
Time
interval between frame: 1/10, 1/5,
{ discrete: width = 1600, height = 1000 }
Time
interval between frame: 1/10, 1/5,
{ discrete: width = 1600, height = 1200 }
Time
interval between frame: 1/10, 1/5,
checking format: 1196444237
VIDIOC_G_COMP:: Invalid argument
compression control not supported
vid:046d
pid:0809
driver:uvcvideo
Adding control for Pan (relative)
Adding control for Tilt (relative)
Adding control for Pan Reset
Adding control for Tilt Reset
Adding control for Pan/tilt Reset
Adding control for Focus (absolute)
mapping control for Pan (relative)
mapping control for Tilt (relative)
mapping control for Pan Reset
mapping control for Tilt Reset
mapping control for Pan/tilt Reset
mapping control for Focus (absolute)
mapping control for LED1 Mode
mapping control for LED1 Frequency
mapping control for Disable video processing
mapping control for Raw bits per pixel
Hi Homer,
I have had several years of good experience with the
Philips SPC1300NC
both under Windows using RoboRealm and now more
recently under
Ubuntu+ROS using Eric Perko's uvc_cam package (git
clone
https://github.com/ericperko/uvc_cam.git)
and OpenCV. I haven't done
any benchmarking under Linux but under Windows I was
getting as high as
80 fps at 160x120 resolution and manual exposure.
--patrick
On 1/5/2011 6:53 AM, Homer Manalo wrote:
> Thanks! Anyone had used Philips SPC1300NC or
a creative webcam?
>
_______________________________________________
ros-users mailing list
ros-users@code.ros.org
https://code.ros.org/mailman/listinfo/ros-users