Adds ROS 2 launch XML format design document#207
Conversation
Draft for v0.1.0.
- Adds <executable> tag to launch non ROS nodes executables. - Modifies <param> and <params> tags for better usability. - Adds optional default values for $(env ...) substitutions. - Fully documents the XML schema. - Fixes bad Markdown headers layout. Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
- Adds a <let> tag to set launch configuration variables. - Drops $(arg ...) substitution in favor of $(var ...). - Addresses peer review comments. Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
- Adds version attribute for <launch> tag - Moves launch XML schema to its own .xsd file Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
|
FYI I just collapsed the |
Signed-off-by: ivanpauno <ivanpauno@ekumenlabs.com>
Signed-off-by: ivanpauno <ivanpauno@ekumenlabs.com>
There was a problem hiding this comment.
I did some minimal changes in 96307f7 and 44b9054.
I also left some comment about namespaces. Basically, include and group action are part of launch package, which shouldn't include ros related code.
One possible workaround is always doing the following:
<group>
<let name="ros_namespace" value="$(var ros_namespace)/my_namespace"/>
... further include or node actions
</group>That doesn't look quite nice.
The other workaround for this is adding alternative versions of IncludeLaunchDescription and GroupAction in launch_ros which handle this. We should also add in launch.frontend a way of allowing overriding exposed actions and substitutions (which is a little tricky).
@wjwwood @hidmic any opinions?
I think that we can delete it from the design document at the moment, and address it in a follow up.
Hmm, I see why, but I wonder if what this is actually telling us is that we need namespaced tags e.g.
I'm also inclined to defer this till the next iteration, along with event handlers. |
That sounds like a great idea. I would like to see a using tag too (
Sure, I will delete event handlers and ros-namespaces from the document. We can add them in the next iteration. |
|
So it just boil down to this: <group ns="my_ns">
</group>Versus this: <group>
<let name="ros_namespace" value="$(var ros_namespace)/my_namespace"/>
</group>I think we could have something like this: <group>
<push_ros_namespace namespace="my_namespace"/>
...
</group>And that would be sufficient. If we really want to have it as an attribute of |
Signed-off-by: ivanpauno <ivanpauno@ekumenlabs.com>
Yes, that one would be easy to implement, and less verbose than my option.
I think the namespace option would be really nice, because it avoids the possibility of name collisions. But, it's harder to implement. For the moment I will add a |
|
+1 to |
wjwwood
left a comment
There was a problem hiding this comment.
lgtm, with a few comments and one requested style change.
Signed-off-by: ivanpauno <ivanpauno@ekumenlabs.com>
|
With ros2/launch#272 and ros2/launch#273, we will have exactly the functionality described in this 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 pull request is the v0.1.0 draft of an XML format for the ROS 2 launch system.
Currently just mostly keeping portability with ROS 1.It includes all relevant features for the first milestone on ROS 2 launch front-ends.