uzh-rpg / rpg_dvs_ros

ROS packages for DVS
MIT License
300 stars 155 forks source link

clarification: EventMsg timestamp meaning #56

Closed tobidelbruck closed 6 years ago

tobidelbruck commented 6 years ago

Sorry for this newbie question, but it's related to trying to develop a jAER player for these great rosbag files.

Does the line 576 in driver.cpp https://github.com/uzh-rpg/rpg_dvs_ros/blob/master/davis_ros_driver/src/driver.cpp

e.ts = reset_time_
                                + ros::Duration().fromNSec(caerPolarityEventGetTimestamp64(event, polarity) * 1000);

mean that the event time stamp from the libcaer/ros driver event is the absolute time (since 1970) in ROS seconds? I.e. it is not the raw camera timestamp in us since some arbitrary timestamp reset?

I see that resettime is assigned as resettime = ros::Time::now();

Presuming that the camera timestamps are reset around the time that resettime is assigned, it would mean the the event timestamps are approximately the actual world time, except for crystal oscillator frequency inaccuracy and drift. Is this correct?

Apologies if this question has already been asked and answered.

eliasm commented 6 years ago

Yes, this is correct. Events carry an absolute timestamp and, over time, there will be temporal drift between the timestamps of the host computer and the timestamps of the events, frames, and IMU readings.