-
Notifications
You must be signed in to change notification settings - Fork 632
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create a hardware-based timer observation timestamp calculator #791
Comments
I think this could be combined with #481. Maybe something similar to the ROS2 TimeSource. |
Hmm... thanks for the pointer! But I think that this ROS2 class is actually solving a different problem, isn't it? If TimeSource does that, please let me know! |
Perhaps it's slightly different. "It is possible that the user may have access to an out of band time source which can provide better performance than the default source the /clock topic. It might be possible that for their use case a more advanced algorithm would be needed to propagate the simulated time with adequate precision or latency with restricted bandwidth or connectivity. The user will be able to switch out the time source for the instance of their Time object as well as have the ability to override the default for the process." Here's a concrete example I was thinking of a system based on ROS and DJI hardware. Perhaps it's easier just to use the DJI's clock across the entirety of the application since DJI has gone through the effort of synchronizing all the data for you. All the algorithms probably should use the DJI clock timestamps. All the telemetry you're receiving from DJI is going to use their clock, so constantly converting between FC time and system time is just burdensome. For some application, system time is unnecessary if you're using that external time source. Unfortunately, ROS loves to timestamp everything with ros::Time::now(), not DJI time and ROS1 probably won't get TimeSources. That will be good in ROS2 when they have a working implementation of the TimeSource concept. Algorithms in ROS almost exclusively use the header.stamp, so it should be fairly easy to retrofit nodes to use TimeSource, but it seems like it's still in its infancy and I think there is still a lot of work to do. DJI's example of how to use FC time in ROS is rather basic and doesn't use any fancy time source. Here's how they publish the FC time of the trigger. Here's also ROS's TimeReference message. I wonder how something like |
Purpose:
Motivation:
Example numbers:
So, we need a better mechanism for solid sensor drivers.
To-do:
The text was updated successfully, but these errors were encountered: