ros2 / ros2_documentation

ROS 2 docs repository
https://docs.ros.org/en/rolling
Creative Commons Attribution 4.0 International
549 stars 1.06k forks source link

Tutorials: Write a ROSTime concept article and tutorial #1175

Open clalancette opened 3 years ago

clalancette commented 3 years ago

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?)

peterdavidfagan commented 2 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.

clalancette commented 2 years ago

@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.

peterdavidfagan commented 2 years ago

Sounds great thanks @clalancette looking forward to contributing to the docs.

peterdavidfagan commented 2 years ago

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.

peterdavidfagan commented 2 years ago

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.