Sensors all have slightly different timestamps even though their data is from the same sim update step. Perhaps this is desirable behavior, adds realistic noise to the system, so a fix could be made optional, though in my case I'm building an Odometry message out of gyro, gps, & inertial sensors so I'd like them to be exactly synchronized rather than approximately.
Using an approximate time sync message filter in ros is a workaround, but I'd rather synchronize right at the source.
It looks easy enough so I'll do it myself in a few days, though it'll be a lot of 1-2 changes across many files to provide a stamp to every publish method.
Steps to Reproduce
Put multiple sensors on a vehicle and publish them to ros.
Expected behavior
Exact same timestamps from sensors with same update period.
Describe the Bug
Sensors all have slightly different timestamps even though their data is from the same sim update step. Perhaps this is desirable behavior, adds realistic noise to the system, so a fix could be made optional, though in my case I'm building an Odometry message out of gyro, gps, & inertial sensors so I'd like them to be exactly synchronized rather than approximately.
Using an approximate time sync message filter in ros is a workaround, but I'd rather synchronize right at the source.
Instead of assigning a new ros::Time::now() per sensor right before it publishes (https://github.com/cyberbotics/webots/blob/master/projects/default/controllers/ros/RosGyro.cpp#L40), set a single timestamp in the root sensor update method and pass it down to each sensor publish.
It looks easy enough so I'll do it myself in a few days, though it'll be a lot of 1-2 changes across many files to provide a stamp to every publish method.
Steps to Reproduce
Put multiple sensors on a vehicle and publish them to ros.
Expected behavior
Exact same timestamps from sensors with same update period.
Screenshots
None
System
Additional context
None