Open clalancette opened 3 years ago
Hi @clalancette,
I saw a request on Twitter for people to help with closing issues in this repository. I thought I would try to play my part since I am a user of ROS who has yet to contribute to the project. I'd be happy to be assigned to this issue and to work on it starting next week.
@peterdavidfagan That is fantastic, thanks for volunteering! I've gone ahead and assigned it to you. Hopefully the notes above are enough to get you started; do feel free to ask questions here (though I'm not personally an expert in ROSTime, so we may need to call in some backup).
Once you have something done, please open a pull request and we can review it. Thanks again.
Sounds great thanks @clalancette looking forward to contributing to the docs.
I just wished to provide a brief update on this, the past weeks have been quite busy for me so and I had a bit of an irregular schedule so I didn't have the opportunity to start working on this tutorial. Now that my schedule has become more regular again I have looked to schedule time to start this work sometime this week. I hope to provide further updates later this week.
This is still on my list to do but I am a small bit behind on other items so it will be after I clear these that I have time to work on this.
Understanding how time works in ROS 2 can be challenging, especially when dealing with simulation. We should have a tutorial which goes over how ROS 2 deals with time, both real and simulated.
We have the following outline and notes already about ROS time
Conceptual
Tutorial
Background
ROS Time is a time abstraction that supports speeding up, slowing down, pausing, stopping and restarting time when running a simulation or experiment (ROS Time Concepts page)
Simulated time: gets the time from a message being published on a topic - can be artificially sped up, slowed down, paused, stopped, etc
System time: the time your computer thinks it is
It’s important to use rostime because so that your code is more reusable and it’s easier to incorporate with other pieces of ros code
In this tutorial were going to give you a script that creates a sin wave - this emulates your time dependent data source. Its a made up signal that doesnt serve any real world purpose. It’s a signal, represented by publishing an integer over time, then we’re gonna mess with time
We're going to see how to turn on simulated time using rostime and affect the flow of time and see how using ros time vs system time reacts
Goal
Use a generic example to demonstrate features of ROS Time, and understand its benefit over system time
OR
Learn how to apply ROS Time to your own nodes, and therefore be able to manipulate time in playback and simulations seamlessly
Quick points
Main points
Steps
Summary
This tutorial has taught you how to… (does this tutorial teach any “how to” applicable steps or is it more for the sake of showing what ROS Time does, where in reality ROS Time will normally just work on its own in the background when people playback bags or simulations?)