[ros-users] call for an official ROS USB camera package

Eric Perko wisesage5001 at gmail.com
Mon Jun 6 22:33:56 UTC 2011


On Mon, Jun 6, 2011 at 6:03 PM, Bill Morris <morris at ee.ccny.cuny.edu> wrote:

> On Mon, 2011-06-06 at 14:53 -0700, Patrick Mihelich wrote:
> > On Mon, Jun 6, 2011 at 2:26 PM, Bill Morris <morris at ee.ccny.cuny.edu>
> > 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 reminds me that in testing I found that the calibrations are
> different at different resolutions and frame rates.
>
> At least one Logitech camera has a "feature" that it changes it's FOV at
> different frame rates.
>
> So something like this may be more appropriate
> ~/.ros/calibration/usb_camera-046d08210001-640x480 at 30.yaml
>

This sounds like a motivation for adding more substitution args to the URL.
For example, "/tmp/calibration_$NAME_$RESOLUTION_$FRAMERATE.yaml". However,
I feel like this could expand quickly (for example, what about some value
for focus for variable focus cameras?), so it could get tricky unless there
is a small set of parameters that influence when we can use a given
calibration or not. Remember that for each of these substitution args, we
would have to add a getter/setter function to the camera_info_manager API.

For those cameras that change FOV based on framerate, can the FOV value be
read out? Seems like framerate in general shouldn't affect when you can use
a given calibration, so it would be better to record the FOV itself. And
obviously none of this really helps with things like PointGrey firewire
cameras that have separate lenses that can be manually adjusted for things
like focus, so we need to not break those use cases of camera_info_manager.

So is there a small set of parameters that determine when a calibration is
valid? If so, what are they?

On Mon, 2011-06-06 at 14:53 -0700, Patrick Mihelich wrote:



+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.


As far as changing the default directory to $ROS_HOME from /tmp, that seems
fine with me. We do still need to preserve the setting of a directory from
launch files - for example, I would probably set my directories up like
"$(find
my_robot_configuration_package)/camera_calibrations/$NAME/$RESOLUTION.yaml"
and keep that checked into my VCS. Let's not "streamline away" a feature
that some people (like myself) actually like :)

- Eric
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ros.org/pipermail/ros-users/attachments/20110606/59d0c6a8/attachment-0002.html>


More information about the ros-users mailing list