Propose ROS 2 launch front-end design hints.#208
Conversation
Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
wjwwood
left a comment
There was a problem hiding this comment.
Looks like a good start to me.
As for which implementation to use, the one I mostly closely identified with was FDM+, though perhaps this document is just not compelling enough. We might need to discuss off-line to hash out more detail.
Also, a big thing that is missing (but possibly orthogonal to these approaches) is substitutions and how they would be handled.
Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
And I think that's exactly why I skipped them in the first place. The document now covers a bit on how substitutions could be handled. PTAL! And thanks for reviewing it in the first place! |
articles/160_roslaunch_frontend.md
Outdated
|
|
||
| ### Forward Description Mapping (FDM) | ||
|
|
||
| In FDM, the parser relies on a schema and well-known rules to map an static description (markup) to implementation specific instances (objects). |
There was a problem hiding this comment.
| In FDM, the parser relies on a schema and well-known rules to map an static description (markup) to implementation specific instances (objects). | |
| In FDM, the parser relies on a schema and well-known rules to map a static description (markup) to implementation specific instances (objects). |
articles/160_roslaunch_frontend.md
Outdated
|
|
||
| *+* Straightforward to implement. | ||
|
|
||
| *+* Launch implementations are completely unaware of the static description existence and its parsing process (to the extent that type agnostic instantiation mechanisms are available). |
There was a problem hiding this comment.
| *+* Launch implementations are completely unaware of the static description existence and its parsing process (to the extent that type agnostic instantiation mechanisms are available). | |
| *+* Launch implementations are completely unaware of the existence of the static description formats and their parsing processes (to the extent that type agnostic instantiation mechanisms are available). |
articles/160_roslaunch_frontend.md
Outdated
|
|
||
| *-* Launch system implementations are aware of the parsing process, being completely involved with it if sugars are to be provided. | ||
|
|
||
| *+* Allows leveraging the strenghts of each markup language. |
There was a problem hiding this comment.
| *+* Allows leveraging the strenghts of each markup language. | |
| *+* Allows leveraging the strengths of each markup language. |
articles/160_roslaunch_frontend.md
Outdated
|
|
||
| *+* Allows leveraging the strenghts of each markup language. | ||
|
|
||
| *-* Opens the door to big differences in the representation of launch entities across different front end, and even within a given one by allowing the users to introduce multiple custom representations for the same concepts (e.g. a list of numbers). |
There was a problem hiding this comment.
| *-* Opens the door to big differences in the representation of launch entities across different front end, and even within a given one by allowing the users to introduce multiple custom representations for the same concepts (e.g. a list of numbers). | |
| *-* Opens the door to big differences in the representation of launch entities across different front ends, and even within a given one by allowing the users to introduce multiple custom representations for the same concept (e.g. a list of numbers). |
Signed-off-by: ivanpauno <ivanpauno@ekumenlabs.com>
Signed-off-by: ivanpauno <ivanpauno@ekumenlabs.com>
|
@hidmic I addressed the comments, and updated it to match better with the actual implementation (it was actually matching pretty well). |
articles/160_roslaunch_frontend.md
Outdated
|
|
||
| *-* No markup language specific sugars are possible. | ||
| REVISIT(hidmic): IMHO explicitly disallowing this is a good thing, it makes for more homogeneus descriptions and avoids proliferation of multiple representation of the same concepts (e.g. a list of strings). | ||
|
|
articles/160_roslaunch_frontend.md
Outdated
| *Python* | ||
| ```python | ||
| @launch.expose('some-action') # Infers it's an Action | ||
| @launch.frontend.expose_action('some-action') # Infers it's an Action |
There was a problem hiding this comment.
@ivanpauno I think we should remove # Infers it's an Action.
articles/160_roslaunch_frontend.md
Outdated
| ) | ||
|
|
||
| @launch.expose('some-subst') # Infers it's a Substitution | ||
| @launch.frontend.expose_substitution('some-subst') # Infers it's a Substitution |
There was a problem hiding this comment.
@ivanpauno I think we should remove # Infers it's a Substitution.
Signed-off-by: ivanpauno <ivanpauno@ekumenlabs.com>
|
I think this PR is ready. We will deal with event_handlers in the next iteration, but I didn't delete reference to them as this is a design hints document. |
* wip * more work in progress * more work done on the calling conventions section * added context section, still a WIP * updated event sections * event filters * fixup even handler subsection * typos * add subsections about the system description (language agnostic) * Proposal for launching dynamically composable nodes (#206) * Proposal for dynamically composed nodes * allow multiple extra_arguments * Allow node_name and namespace to be empty * Human readable error message * Update articles/150_roslaunch.md Co-Authored-By: sloretz <shane.loretz@gmail.com> * Assign nodes unique ids, but still forbid duplicates * Update articles/150_roslaunch.md Co-Authored-By: sloretz <shane.loretz@gmail.com> * Update articles/150_roslaunch.md Co-Authored-By: sloretz <shane.loretz@gmail.com> * Section to list * More generic wording about container processes * namespace -> node_namespace * _launch/ -> ~/_container/ Signed-off-by: Shane Loretz <sloretz@osrfoundation.org> * Propose ROS 2 launch front-end design hints. (#208) Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com> Signed-off-by: ivanpauno <ivanpauno@ekumenlabs.com> * Adds ROS 2 launch XML format design document (#207) Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com> Signed-off-by: ivanpauno <ivanpauno@ekumenlabs.com> * Update ROS launch documentation (frontend documents) (#247) Signed-off-by: ivanpauno <ivanpauno@ekumenlabs.com> * review fixup Signed-off-by: William Woodall <william@osrfoundation.org> * clarify lifecycle transition due to review comment Signed-off-by: William Woodall <william@osrfoundation.org> * provide rationale for shutdown procedure Signed-off-by: William Woodall <william@osrfoundation.org> * Add launch XML substitution for a packages share directory (#254) * Add launch XML substitution for a packages share directory Rename find-pkg to find-pkg-prefix. Add find-pkg-share substitution for the share directory. Signed-off-by: Jacob Perron <jacob@openrobotics.org> * remove some old rfc's and general cleanup for first merge Signed-off-by: William Woodall <william@osrfoundation.org>
This is a proposal on how to go about implementing something like #207 in an extensible way. Approaches described in here are a combination of ideas I had and ideas that @wjwwood had and shared with me, thus the dual authorship.
I hope that by the time this gets merged we either have chosen one of these approaches or came up with a another one to actually implement.