On Mon, Mar 15, 2010 at 12:27 PM, Dan Lazewatsky <lazewatskyd@cse.wustl.edu> wrote:
1) The images are being published independently by two nodes, so they never have the same timestamp, and thus will never get matched up. Is there a way to give TimeSynchronizer a threshold so it will match two message that are close enough?

Romain's approximate time synchronizer is probably the quickest and easiest way to get up and running.

The most principled solution (but also requiring more setup) is to use the same external trigger for both cameras to ensure they capture frames simultaneously. That's what we do for the stereo cameras on the PR2. If the cameras are out of sync, you will not get good stereo for dynamic scenes (if you care about that).

2) Based on #1, using the raw transport actually shouldn't work. The reason it currently does is because cvToImgMsg doesn't fill in the header, so all timestamps are 0. I can manually set the timestamps/headers before sending off the message, but isn't cv_bridge supposed to do this?

You need to fill the header.stamp and header.frame_id fields manually. cv_bridge has no way of knowing that information.

Cheers,
Patrick