You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/ros_node_idl.md
+13-1Lines changed: 13 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -70,8 +70,20 @@ If ROS 2 provided a way for upstream package authors to specify the interface re
70
70
### Other motivations
71
71
72
72
Outside of security, there are several fascinating possibilities unlocked by having such an interface.
73
+
73
74
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
+
75
87
Another example of the usefulness of having a static interface is the ability to create graphical tools for putting a ROS system together.
76
88
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.
0 commit comments