call for an official ROS USB camera package

classic Classic list List threaded Threaded
28 messages Options
12
Reply | Threaded
Open this post in threaded view
|

call for an official ROS USB camera package

Jack O'Quin
I think it would help for the ROS community to support an official
usb_camera package, like we did for camera1394. The potential user
base is large.

There seem to be several good drivers available in various
repositories. Paradoxically, that can make it harder for users to
decide which to use. A combined, fully documented and reviewed
implementation would make that easier and save time for most camera
users.

If Eric, Ken, or someone else knowledgeable about these devices would
be willing to do the technical work, I can help move it through the
release review process. Maybe we could get it done in time for
inclusion in Diamondback. Although this is late in the release cycle,
no other core ROS components depend on it.

Even if not completely ready for the initial Diamondback distribution,
it might make sense to release such a package later as an enhancement.
--
 joq
_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|

Re: call for an official ROS USB camera package

Bill Morris
On Sun, 2010-12-19 at 12:46 -0600, Jack O'Quin wrote:

> I think it would help for the ROS community to support an official
> usb_camera package, like we did for camera1394. The potential user
> base is large.
>
> There seem to be several good drivers available in various
> repositories. Paradoxically, that can make it harder for users to
> decide which to use. A combined, fully documented and reviewed
> implementation would make that easier and save time for most camera
> users.
>
> If Eric, Ken, or someone else knowledgeable about these devices would
> be willing to do the technical work, I can help move it through the
> release review process. Maybe we could get it done in time for
> inclusion in Diamondback. Although this is late in the release cycle,
> no other core ROS components depend on it.
>
> Even if not completely ready for the initial Diamondback distribution,
> it might make sense to release such a package later as an enhancement.

I have about 10 different USB cameras to test, and I'm willing to help
with writing code for this effort.

The only question is do we start from scratch or do we use an existing
driver?

_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|

Re: call for an official ROS USB camera package

Jack O'Quin
On Sun, Dec 19, 2010 at 2:02 PM, Bill Morris <[hidden email]> wrote:

> On Sun, 2010-12-19 at 12:46 -0600, Jack O'Quin wrote:
>> I think it would help for the ROS community to support an official
>> usb_camera package, like we did for camera1394. The potential user
>> base is large.
>>
>> There seem to be several good drivers available in various
>> repositories. Paradoxically, that can make it harder for users to
>> decide which to use. A combined, fully documented and reviewed
>> implementation would make that easier and save time for most camera
>> users.
>>
>> If Eric, Ken, or someone else knowledgeable about these devices would
>> be willing to do the technical work, I can help move it through the
>> release review process. Maybe we could get it done in time for
>> inclusion in Diamondback. Although this is late in the release cycle,
>> no other core ROS components depend on it.
>>
>> Even if not completely ready for the initial Diamondback distribution,
>> it might make sense to release such a package later as an enhancement.
>
> I have about 10 different USB cameras to test, and I'm willing to help
> with writing code for this effort.

That would be wonderful! Thanks.

Perhaps some of the other package authors would also be willing to
help. It should save us all work in the long run.

> The only question is do we start from scratch or do we use an existing
> driver?

When we started a similar effort for 1394 cameras, I tried all the
drivers I knew about, and people made additional suggestions on the
list. The first step was to decide which code base to start with, and
then incorporate good ideas from the others.

Although I have not quite gotten there yet with camera1394, I believe
everyone would prefer a BSD license to the GPL. However, if the best
or only immediately available solution is GPL, that would still be
better than none.

Ultimately, choice of code base should be up to the maintainer.
--
 joq
_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|

Re: call for an official ROS USB camera package

Ken Conley
On Sun, Dec 19, 2010 at 12:40 PM, Jack O'Quin <[hidden email]> wrote:
> Although I have not quite gotten there yet with camera1394, I believe
> everyone would prefer a BSD license to the GPL. However, if the best
> or only immediately available solution is GPL, that would still be
> better than none.

This becomes more important with nodelets.  For camera1394, can this
be resolved by contacting the authors to re-license as LGPL or BSD?

 - Ken
_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|

Re: call for an official ROS USB camera package

Jack O'Quin
On Sun, Dec 19, 2010 at 2:46 PM, Ken Conley <[hidden email]> wrote:
> On Sun, Dec 19, 2010 at 12:40 PM, Jack O'Quin <[hidden email]> wrote:
>> Although I have not quite gotten there yet with camera1394, I believe
>> everyone would prefer a BSD license to the GPL. However, if the best
>> or only immediately available solution is GPL, that would still be
>> better than none.
>
> This becomes more important with nodelets.  For camera1394, can this
> be resolved by contacting the authors to re-license as LGPL or BSD?

Perhaps.

There are only three source files left with GPL licenses. One is easy
to replace. Unfortunately, the other two have many authors.

I'll see if I can contact them all.

PS. I am unclear about the exact legal status of a dynamically loaded
plugin. Can someone please explain the details?
--
 joq
_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|

Re: call for an official ROS USB camera package

Ken Conley
On Sun, Dec 19, 2010 at 12:51 PM, Jack O'Quin <[hidden email]> wrote:
>> This becomes more important with nodelets.  For camera1394, can this
>> be resolved by contacting the authors to re-license as LGPL or BSD?
>
> Perhaps.
>
> There are only three source files left with GPL licenses. One is easy
> to replace. Unfortunately, the other two have many authors.
>
> I'll see if I can contact them all.

Let me know if we can help.  Nate is at WG and may be able to contact
some of the old authors.

> PS. I am unclear about the exact legal status of a dynamically loaded
> plugin. Can someone please explain the details?

http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins

 - Ken
_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|

Re: call for an official ROS USB camera package

Eric Perko
In reply to this post by Jack O'Quin
On Sun, Dec 19, 2010 at 3:40 PM, Jack O'Quin <[hidden email]> wrote:
On Sun, Dec 19, 2010 at 2:02 PM, Bill Morris <[hidden email]> wrote:
> On Sun, 2010-12-19 at 12:46 -0600, Jack O'Quin wrote:
>> I think it would help for the ROS community to support an official
>> usb_camera package, like we did for camera1394. The potential user
>> base is large.
>>
>> There seem to be several good drivers available in various
>> repositories. Paradoxically, that can make it harder for users to
>> decide which to use. A combined, fully documented and reviewed
>> implementation would make that easier and save time for most camera
>> users.
>>
>> If Eric, Ken, or someone else knowledgeable about these devices would
>> be willing to do the technical work, I can help move it through the
>> release review process. Maybe we could get it done in time for
>> inclusion in Diamondback. Although this is late in the release cycle,
>> no other core ROS components depend on it.
>>
>> Even if not completely ready for the initial Diamondback distribution,
>> it might make sense to release such a package later as an enhancement.
>
> I have about 10 different USB cameras to test, and I'm willing to help
> with writing code for this effort.

That would be wonderful! Thanks.

Perhaps some of the other package authors would also be willing to
help. It should save us all work in the long run.

I'd definitely be interested in helping out.
 

> The only question is do we start from scratch or do we use an existing
> driver?

When we started a similar effort for 1394 cameras, I tried all the
drivers I knew about, and people made additional suggestions on the
list. The first step was to decide which code base to start with, and
then incorporate good ideas from the others.

I like this plan. My biggest question right now is what exactly is the difference between the UVC based drivers (uvc_cam, uvc_camera) and the Bosch usb_cam driver (or is there any) at the driver level? Also, there are a few other drivers listed in http://www.iheartrobotics.com/2010/05/testing-ros-usb-camera-drivers.html that might be good to check on.
 

Although I have not quite gotten there yet with camera1394, I believe
everyone would prefer a BSD license to the GPL. However, if the best
or only immediately available solution is GPL, that would still be
better than none.

I would also prefer BSD, though that gets trickier with the UVC stuff. The reason uvc_cam is GPL is that it is using code from (or at least extremely heavily inspired by) the excellent guvcview tool, which is GPL.

- Eric
 

Ultimately, choice of code base should be up to the maintainer.
--
 joq
_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users


_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|

Re: call for an official ROS USB camera package

Dejan Pangercic
In reply to this post by Bill Morris
Hi Bill,

> I have about 10 different USB cameras to test, and I'm willing to help
> with writing code for this effort.
Could you give us a list of these cameras maybe? Just to see if we
maybe got more and could help testing as well.

cheers, d.
D.
_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|

Re: call for an official ROS USB camera package

Billy Okal
I am working with a USB cam as well, and wouldn't mind testing, so the list of cameras could be useful here

billy

On 21 December 2010 15:33, Dejan Pangercic <[hidden email]> wrote:
Hi Bill,

> I have about 10 different USB cameras to test, and I'm willing to help
> with writing code for this effort.
Could you give us a list of these cameras maybe? Just to see if we
maybe got more and could help testing as well.

cheers, d.
D.
_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users



--
Billy Okal
Jacobs University Bremen
----------------------------------------------------------------------------------------------------------------------
"Science without Religion is Lame and Religion without Science is Blind", Albert Einstein

_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|

Re: call for an official ROS USB camera package

Bill Morris
In reply to this post by Dejan Pangercic
On Tue, 2010-12-21 at 15:33 +0100, Dejan Pangercic wrote:
> Hi Bill,
>
> > I have about 10 different USB cameras to test, and I'm willing to help
> > with writing code for this effort.
> Could you give us a list of these cameras maybe? Just to see if we
> maybe got more and could help testing as well.
>
> cheers, d.
> D.

Quickcam 9000 pro (two different revisions)
Minoru Stereo USB Cam
OmniVision Technologies, Inc. OV2640 Webcam (Dell built-in webcam)
Logitech C600
Logitech C510
Logitech C910
Suyin Corp. vid 0x064e pid 0xa128 (Dell built-in webcam)
Old Creative Labs Live! Cam

I could probably find some more if I looked hard enough.

_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|

Re: call for an official ROS USB camera package

Manabu Saito
Hi All,

Is there any update?
I wonder if we can use the official usb camera driver in the
diamondback's camera_drivers stack.

Manabu Saito

2010/12/22 Bill Morris <[hidden email]>:

> On Tue, 2010-12-21 at 15:33 +0100, Dejan Pangercic wrote:
>> Hi Bill,
>>
>> > I have about 10 different USB cameras to test, and I'm willing to help
>> > with writing code for this effort.
>> Could you give us a list of these cameras maybe? Just to see if we
>> maybe got more and could help testing as well.
>>
>> cheers, d.
>> D.
>
> Quickcam 9000 pro (two different revisions)
> Minoru Stereo USB Cam
> OmniVision Technologies, Inc. OV2640 Webcam (Dell built-in webcam)
> Logitech C600
> Logitech C510
> Logitech C910
> Suyin Corp. vid 0x064e pid 0xa128 (Dell built-in webcam)
> Old Creative Labs Live! Cam
>
> I could probably find some more if I looked hard enough.
>
> _______________________________________________
> ros-users mailing list
> [hidden email]
> https://code.ros.org/mailman/listinfo/ros-users
>
>
_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|

Re: call for an official ROS USB camera package

Nicholas Butko
It would actually be incredibly useful if this worked for OSX, for example by using libusb.

The native operating system interface for accessing usb cameras is shockingly bad, and buggy.

--Nick


On Feb 17, 2011, at 1:25 AM, Manabu Saito wrote:

> Hi All,
>
> Is there any update?
> I wonder if we can use the official usb camera driver in the
> diamondback's camera_drivers stack.
>
> Manabu Saito
>
> 2010/12/22 Bill Morris <[hidden email]>:
>> On Tue, 2010-12-21 at 15:33 +0100, Dejan Pangercic wrote:
>>> Hi Bill,
>>>
>>>> I have about 10 different USB cameras to test, and I'm willing to help
>>>> with writing code for this effort.
>>> Could you give us a list of these cameras maybe? Just to see if we
>>> maybe got more and could help testing as well.
>>>
>>> cheers, d.
>>> D.
>>
>> Quickcam 9000 pro (two different revisions)
>> Minoru Stereo USB Cam
>> OmniVision Technologies, Inc. OV2640 Webcam (Dell built-in webcam)
>> Logitech C600
>> Logitech C510
>> Logitech C910
>> Suyin Corp. vid 0x064e pid 0xa128 (Dell built-in webcam)
>> Old Creative Labs Live! Cam
>>
>> I could probably find some more if I looked hard enough.
>>
>> _______________________________________________
>> ros-users mailing list
>> [hidden email]
>> https://code.ros.org/mailman/listinfo/ros-users
>>
>>
> _______________________________________________
> ros-users mailing list
> [hidden email]
> https://code.ros.org/mailman/listinfo/ros-users

_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|

Re: call for an official ROS USB camera package

Ken Tossell
I've been working on a libusb-based USB video class (UVC) camera
driver mainly for the reason of supporting OS X and xBSD. I also find
that the Video4Linux-based control system is usually awkward to work
with when it's being used to present UVC controls in a generic way.

It's not ready for testing, but I would be interested in putting it
out for a preliminary API review in order to help guide development. I
think I'll assemble some information and see if the ROS community
would help with that.

 - Ken
_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|

Re: call for an official ROS USB camera package

Jack O'Quin
In reply to this post by Manabu Saito
On Thu, Feb 17, 2011 at 3:25 AM, Manabu Saito <[hidden email]> wrote:
>
> Is there any update?
> I wonder if we can use the official usb camera driver in the
> diamondback's camera_drivers stack.

It will not be in the diamondback camera_drivers stack. I have had no
time to work on it because of pushing that camera_drivers release.
After diamondback has its final release will be a good time to start a
community design and development effort for USB cameras.

I believe we can (and should) provide an "official" version for
E-turtle, with experimental versions available for testing with
Diamondback. There is already a strong consensus that we need one.

As far as stacks are concerned, for E-turtle I hope to break up the
camera_drivers stack into several smaller, separately-versioned
stacks. Some, like camera1394, will probably use the new "unary" stack
packaging. There is no benefit to holding up a WGE100 bug fix (for
example) because camera1394 is not quite ready to release (or
vice-versa). Since these devices are typically not used on the same
robot, there is no reason to strictly synchronize their versions or
force users to download them all to get the one they need.

I believe we will want to continue grouping the various camera drivers
for documentation and interface coordination purposes. Exactly how
remains to be seen.

Comments and different ideas are wecome...
--
 joq
_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|

Re: call for an official ROS USB camera package

Bill Morris
In reply to this post by Ken Tossell
On Thu, 2011-02-17 at 11:00 -0500, Ken Tossell wrote:
> I've been working on a libusb-based USB video class (UVC) camera
> driver mainly for the reason of supporting OS X and xBSD. I also find
> that the Video4Linux-based control system is usually awkward to work
> with when it's being used to present UVC controls in a generic way.

Have you looked at the source for guvcview? It seems to handle V4L
controls pretty well. I know there is at least 2 different ways
autofocus can be controlled for different hardware but I think this was
an issue between UVC 1.0 and UVC 1.1.

I'm not sure V4L is worth throwing out, but OS X and BSD support would
be nice. I think it may be reasonable to have three semi overlapping
official drivers, gscam, a libusb based UVC driver and a V4L based UVC
driver. Those three drivers should support 100% of the usb camera worth
supporting on all of the desired platforms.

> It's not ready for testing, but I would be interested in putting it
> out for a preliminary API review in order to help guide development. I
> think I'll assemble some information and see if the ROS community
> would help with that.

Where possible, I would like the camera controls to be abstracted so
computer vision code can control the brightness of 1394 cameras and usb
cameras the same way.

I would also like to see the driver eventually support exclusive MJPEG
compressed video output direct from the camera so the images can be
streamed over the network without the CPU overhead of decompression and
recompression. The Skype certified webcams are starting to come out and
certification requires hardware compression so we may be able to h.264
or WebM straight out of the camera.

_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|

Re: call for an official ROS USB camera package

Jack O'Quin
In reply to this post by Jack O'Quin
I would like to re-open this discussion...

On Sun, Dec 19, 2010 at 12:46 PM, Jack O'Quin <[hidden email]> wrote:

> I think it would help for the ROS community to support an official
> usb_camera package, like we did for camera1394. The potential user
> base is large.
>
> There seem to be several good drivers available in various
> repositories. Paradoxically, that can make it harder for users to
> decide which to use. A combined, fully documented and reviewed
> implementation would make that easier and save time for most camera
> users.
>
> If Eric, Ken, or someone else knowledgeable about these devices would
> be willing to do the technical work, I can help move it through the
> release review process. Maybe we could get it done in time for
> inclusion in Diamondback. Although this is late in the release cycle,
> no other core ROS components depend on it.

We started a little too late for Diamondback. But, there is still time
for the next ROS distribution, Electric Emys. Much of the work will be
getting reviews and documentation done in time for the camera_drivers
feature freeze in early July.

But, several knowledgeable people have expressed a willingness to
help. I believe if we get behind it now we can add a fully-supported
USB camera driver to the "official" camera_drivers stack.

Is there any general agreement yet on which of the several USB camera
driver packages we should use as a starting point? Please respond with
pointers to packages to be considered.
--
 joq
_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|

Re: call for an official ROS USB camera package

Bill Morris
On Tue, 2011-05-24 at 16:25 -0500, Jack O'Quin wrote:
> I would like to re-open this discussion...
...

Now that finals are over I should have some time to dedicate to this.
I have cameras for testing and should be able to block out some time for
coding.

I would like to see a system for storing camera calibrations based on
USB VID/PID/Serial identifiers. This should make life easier when
dealing with multiple cameras.

_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|

Re: call for an official ROS USB camera package

Jack O'Quin
On Thu, Jun 2, 2011 at 7:07 AM, Bill Morris <[hidden email]> wrote:

> Now that finals are over I should have some time to dedicate to this.
> I have cameras for testing and should be able to block out some time for
> coding.

Not being a USB camera user, myself, I am not sure what the status of
the various driver packages are.

Is there one particular version most people use?

> I would like to see a system for storing camera calibrations based on
> USB VID/PID/Serial identifiers. This should make life easier when
> dealing with multiple cameras.

The camera_info_manager URL supports any naming scheme desired.
--
 joq
_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|

Re: call for an official ROS USB camera package

Bill Morris
On Fri, 2011-06-03 at 20:33 -0500, Jack O'Quin wrote:
> Not being a USB camera user, myself, I am not sure what the status of
> the various driver packages are.
>
> Is there one particular version most people use?

I have been using a customized version of usb_cam
http://www.ros.org/wiki/usb_cam but I think Ken's uvc_camera is a bit
further along. http://www.ros.org/wiki/uvc_camera

There may be a license issue with the GPL vs BSD.

> > I would like to see a system for storing camera calibrations based on
> The camera_info_manager URL supports any naming scheme desired.

I would like to propose that cameras that can not store calibrations in
memory store the calibrations in $ROS_HOME/calibration/driver-id.cal

For a USB camera the id could be constructed from the VID/PID/Serial
number to create a mostly unique identifier.

  idVendor           0x046d Logitech, Inc.
  idProduct          0x0821
  iSerial                 1

~/.ros/calibration/usb_camera-046d08210001.cal



_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
Reply | Threaded
Open this post in threaded view
|

Re: call for an official ROS USB camera package

Patrick Mihelich
On Mon, Jun 6, 2011 at 2:26 PM, Bill Morris <[hidden email]> wrote:
> > I would like to see a system for storing camera calibrations based on
> The camera_info_manager URL supports any naming scheme desired.

In the unstable version of the OpenNI (Kinect) drivers, I've tried out a system for storing calibrations based on serial number. You can pass in a URL containing "%s", and the driver replaces that with the camera name. The camera name is of the form "[rgb|depth]_[serial#]". For example, if you give the driver a URL "/tmp/calibration_%s.yaml" it might expand to "/tmp/calibration_depth_B00362708888047B.yaml". This makes working with multiple Kinects a lot easier.

That's trivial to implement in a driver, but it would be nice to push the name substitution down into CameraInfoManager just to ensure a consistent API across camera drivers. In other words, have this just work:

info_manager.setCameraName("depth_B00362708888047B");
info_manager.loadCameraInfo("/tmp/calibration_%s.yaml");

I'm not attached to "%s", maybe something like "$NAME" would be clearer.

I would like to propose that cameras that can not store calibrations in
memory store the calibrations in $ROS_HOME/calibration/driver-id.cal

+1 on $ROS_HOME over /tmp. /tmp works, as long as you don't reboot :). Otherwise you have to know and remember to change the URL, which can lead to otherwise unnecessary launch file editing. Let's streamline that away.

Cheers,
Patrick

_______________________________________________
ros-users mailing list
[hidden email]
https://code.ros.org/mailman/listinfo/ros-users
12