camera1394 timestamps for Point Grey USB cameras
I've started to look at using camera1394 for my Point Grey Firefly MV USB camera. This camera implements 1394-over-USB and seems to work fine with camera1394 as far as I can tell, with one exception: The timestamps on the output are incorrect. They are typically sometime in January 1970 :)
---
header:
seq: 191
stamp:
secs: 34
nsecs: 533856000
frame_id: /camera
Looking at the code it seems that the timestamp is generated using data from the camera:
image.header.stamp = ros::Time((double) frame->timestamp / 1000000.0);
I'm not sure why the timestamp is nonzero--it could just be from uninitialized memory. These cameras _do_ have an option to output some kind of timestamp, and I have enabled it, but in their own tool ("FlyCapture2"), the "seconds" and "microseconds" fields are zero even with this option enabled. There are however some other fields, "1394 cycle time seconds", "1394 cycle time count", and "1394 cycle time offset" but this seems to be time since capture started, not since the epoch.
Anyhow the question is, has anyone else using these cameras found a way to have the true timestamp included in the image/camera_info header?
UPDATE: Here is what is printed when camera1394_node is started:
$ rosrun camera1394 camera1394_node _guid:=00b09d010090a878
[ INFO] [1299180874.481328850]: Found camera with GUID b09d010090a878
[ INFO] [1299180874.481629395]: camera model: Point Grey Research Firefly MV FMVU-03MTM
[ INFO] [1299180874.490429490]: [00b09d010090a878] opened: 640x480_mono8, 15 fps, 400 Mb/s
[ INFO] [1299180874.528790077]: feature exposure value not available from device
[ WARN] [1299180874.612162273]: [00b09d010090a878] calibration does not match video mode (publishing uncalibrated data)