Closed hidmic closed 5 years ago
FYI I just collapsed the <params>
tag into the <param>
to make things slightly more homogeneous and thus easier to deal with in the implementation (which I'm thinking of and drafting some considerations and hints for).
We should also add in launch.frontend a way of allowing overriding exposed actions and substitutions (which is a little tricky).
Hmm, I see why, but I wonder if what this is actually telling us is that we need namespaced tags e.g. <ros::group/>
vs. <group/>
in XML.
I think that we can delete it from the design document at the moment, and address it in a follow up.
I'm also inclined to defer this till the next iteration, along with event handlers.
Hmm, I see why, but I wonder if what this is actually telling us is that we need namespaced tags e.g.
<ros::group/>
vs.<group/>
in XML.
That sounds like a great idea. I would like to see a using tag too (<using name="ros"/>
). Handling overrides will be easy.
I'm also inclined to defer this till the next iteration, along with event handlers.
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 <group>
then I think you guys have identified one way which is to have <group>
and <ros::group>
where the latter can override the first if you do something like <using name="ros::group"/>
or <using namespace="ros"/>
. Another option would be to extend <group>
directly, so that if you have launch_ros_xml
, it adds acceptable attributes to <group>
, like the ns
one, through some extensibility interface.
I think we could have something like this:
<group> <push_ros_namespace namespace="my_namespace"/> ... </group>
Yes, that one would be easy to implement, and less verbose than my option.
If we really want to have it as an attribute of
<group>
then I think you guys have identified one way which is to have<group>
and<ros::group>
where the latter can override the first if you do something like<using name="ros::group"/>
or<using namespace="ros"/>
. Another option would be to extend<group>
directly, so that if you havelaunch_ros_xml
, it adds acceptable attributes to<group>
, like thens
one, through some extensibility interface.
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 push_ros_namespace
action. I think we can merge the document as-is and update it later.
+1 to push_ros_namespace
for now and deferring namespace/extension discussions to the next iteration.
With https://github.com/ros2/launch/pull/272 and https://github.com/ros2/launch/pull/273, we will have exactly the functionality described in this document.
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.