[ros-users] camera_calibration

Blaise Gassend blaise at willowgarage.com
Wed Apr 7 17:43:45 UTC 2010


The strategy I use with the WGE100 cameras might be useable here.

With the wge100 cameras, the triggering is done in the PR2's real time
loop. The controller that handles the triggering publishes a topic with
the timestamps at which triggers were sent.

In the wge100 driver, you have the option of subscribing to that topic.
When the wge100 driver is subscribed to that topic, it uses a trigger
matcher (timestamp_tools package, not documented yet, but cleanly
written and should be really easy to figure out by glancing at the code)
to match trigger timestamps to times at which images were received. The
trigger matcher is custom made to do a good job of this even if frames
timestamps aren't very accurate, and are sometimes delayed because of
high load. It then publishes the image with the timestamp it got from
the the topic instead of the timestamp at which it received the image.

How could this apply to 1394 cameras? Have one instance of the driver
publish a timpestamp topic (you can probably just use the camera_info
topic for this -- don't use the image topic, you don't want an extra
node subscribing to that much data). Have the other instance of the
driver subscribe to the timestamp topic and use the trigger matcher.

Assuming that your cameras are actually synchronized by virtue of being
on the same bus, this should give you an ideal setup.

On Wed, 2010-04-07 at 13:26 -0400, Eric Perko wrote:
> I can't speak for how Patrick's cameras work, but for anyone else like
> me using PGR Flea2 or Firefly 1394 cameras, they claim to
> autosychronize if they are on the same 1394 bus (haven't gotten around
> to testing this, so I'm basing this on the spec sheet and promotional
> materials from PGR). If anyone knows this to be false, please let me
> know. My assumption in this case would be that it would actually be
> possible to match up two frames that should have been captured within
> 125us of each other and avoid motion-dependent differences between the
> two cameras. Mainly, I would like to be able to reuse the existing
> camera1394 (or any other camera driver that implements the
> camera_driver API) and not have to implement a separate stereo driver
> for the case when I am using a pair in stereo.
> 
> Perhaps we actually need a node that could take two camera driver
> nodes that provide a polled_camera interface and that polls them
> synchronously. This node could also provide a plugin type API for
> custom external triggering logic if required. Something like a general
> stereo_driver node. Does anything similar exist already?
> 
> - Eric
> 
> On Wed, Apr 7, 2010 at 12:53 PM, Blaise Gassend <blaise at willowgarage.com> wrote:
> > With two threads this morning discussing calibration with unsynchronized
> > cameras, I can't help wondering how well the camera_calibration code
> > will work if the cameras aren't being triggered simultaneously. If
> > camera_calibration decides to use a pair of frames in which the
> > checkerboard was moving, I imagine that you might be trying to match
> > checkerboards that were actually at different positions, which would
> > certainly lead to poor calibration.
> >
> > I have no idea if this is a reasonable worry to have, and James could
> > probably say more about this than I could. I imagine that motion blur
> > would tend to discourage the use of frames in which the target is
> > moving.
> >
> > On Tue, 2010-04-06 at 15:31 -0500, Patrick Beeson wrote:
> >> I'm trying to calibrate two identical 1394 cameras that are sitting next
> >> to each other.  The stereo calibration from camera_calibration converges
> >> to VERY bad R and T matrices, rotating the frames and
> >> the warping the images drastically.  I've tried several times, with no luck.
> >>
> >> _______________________________________________
> >> ros-users mailing list
> >> ros-users at code.ros.org
> >> https://code.ros.org/mailman/listinfo/ros-users
> >
> >
> > _______________________________________________
> > ros-users mailing list
> > ros-users at code.ros.org
> > https://code.ros.org/mailman/listinfo/ros-users
> >
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users





More information about the ros-users mailing list