Skip to content
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

Feature Request: Option to use a cached launch description #721

Open
john-maidbot opened this issue Jul 17, 2023 · 0 comments
Open

Feature Request: Option to use a cached launch description #721

john-maidbot opened this issue Jul 17, 2023 · 0 comments
Assignees
Labels

Comments

@john-maidbot
Copy link

Feature request

Feature description

Please correct me if this line of thought is misguided (or if such a feature already exists), but my understanding of the launch process is when a user calls ros2 launch, that executes a (potentially large) number of substitutions based on the provided launch description(s) to convert the launch description into a list of processes (and their resolved arguments) that need to be started/executed.

I am working with a ROS2 project with a decently large ROS2 launch setup, and what I believe I am seeing is a considerable amount of time being spent in this pre-launch phase (i.e. after i run launch, there is a big delay before the processes actually start). However, in a realistic scenario where the launch description the pre-launch phase is creating does not need to change between calls to ros2 launch (e.g. a robot that will be turned on and off many times), I think there would be a considerable time savings in caching the previous launch description and providing users with the option to use that rather than going through the pre-launch phase again.

Implementation considerations

Has this been considered in the past? Was there a reason it was not implemented?

A big question is how exactly can the launch description be cached for future use. Maybe some near-final by-product of the prelaunch phase can can be stored as a binary file (e.g. pickled). And users could pass a --cached argument to request that the file be used?

I am also not yet deeply familiar with the pipeline the launch description goes through before node processes actually get started. So it is unclear to me at what point this caching should/could occur.

Any feedback is greatly appreciated.

Thanks for taking the time to read through this! 😃

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants