Skip to content

Commit ef5018b

Browse files
artivisKyle Fazzari
authored andcommitted
flesh a little more other motiv
Fleshing a little more the 'Other motivations' section
1 parent 2da495a commit ef5018b

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

articles/ros_node_idl.md

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,20 @@ If ROS 2 provided a way for upstream package authors to specify the interface re
7070
### Other motivations
7171

7272
Outside of security, there are several fascinating possibilities unlocked by having such an interface.
73+
7374
For example, consider how this could impact [ROS 2 launch][launch_ros].
74-
It would be able to statically (i.e. before running anything) determine if parameter names or remappings are incorrect, among other similar sanity checks.
75+
Benefiting from the declared interface(s), it would be able to execute many kind of static assertions (i.e. at launch-time, before running anything) upon the whole system to be launched.
76+
Such assertions could include:
77+
- Check for duplicates.
78+
- Check for multiple publishers on a single topic.
79+
- Check for message type mismatch.
80+
- Check for qos mismatch.
81+
- Check for orphan connections (e.g. a listener is connected to a topic with no publisher).
82+
- Determine if remappings are incorrect.
83+
- Determine if parameter names are incorrect.
84+
85+
These assertions results would then be summarized in a logging file for later debugging.
86+
7587
Another example of the usefulness of having a static interface is the ability to create graphical tools for putting a ROS system together.
7688
Yet another example would be an additional feature in `ros2 pkg create` that would allow a developer to hand it an IDL and have it generate scaffolding for a node with that interface.
7789

0 commit comments

Comments
 (0)