Improve topic naming for better module partitioning #2614
Unanswered
VRichardJP
asked this question in
Feature requests
Replies: 0 comments 1 reply
-
Thank you for your suggestion.
I also had a conversation and suggested the interface topic name to AWF with @mitsudome-r. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I have observed that modules input/output topics are not always clearly defined/identifiable.
For example in
sample_sensor_kit_launch
, the lidar preprocessing pipeline generates pointclouds over the following pipeline:/sensing/lidar/*/pointcloud_raw*
/sensing/lidar/*/self_cropped/pointcloud*
/sensing/lidar/*/mirror_cropped/pointcloud*
/sensing/lidar/*/rectified/pointcloud*
/sensing/lidar/*/outlier_filtered/pointcloud*
/sensing/lidar/concatenated/pointcloud
Without reading the code, it is difficult to guess that
/sensing/lidar/top/outlier_filtered/pointcloud*
is the output of the pipeline for the top lidar sensor.Because the pipeline output topic is currently the topic name of the last filter in the pipeline, it forces other modules to refer to the "filter output" instead of the "pipeline output". For example, the localization module explicitly refers to
/sensing/lidar/top/rectified/pointcloud
, while the perception module refers to/sensing/lidar/concatenated/pointcloud
and the obstacle segmentation refers to/sensing/lidar/*/outlier_filtered/pointcloud
Beside the fact the localization module does not even use the last topic of the pipeline, this design breaks modularity: if I change the lidar preprocessing pipeline, I will have to modify many other modules as well.
One simple solution is to keep a consistent topic naming convention across modules. For example, using depth to "hide" detail and intermediate results:
/sensing/lidar/top/raw/pointcloud
/sensing/lidar/top/filterA/pointcloud
/sensing/lidar/top/filterB/pointcloud
<- intermediate cloud for top sensor/sensing/lidar/top/pointcloud
<- top sensor cloud/sensing/lidar/pointcloud
<- merged cloudHere, neither the content of the lidar preprocessing pipeline nor the sensor kit would matter for other modules since they would only refer to
/sensing/lidar/top/pointcloud
and/sensing/lidar/pointcloud
.I have mostly focused on
/sensing/lidar/*
related modules, but others may also suffer from similar clarity issue.Beta Was this translation helpful? Give feedback.
All reactions