Ask Your Question
0

Hide topics for "internal use" in nodelet pipeline from external subscribers?

asked 2019-10-07 06:40:40 -0600

moooeeeep gravatar image

updated 2019-10-07 06:42:15 -0600

I am considering to set up nodelet-based processing pipeline for pointclouds, including the nodelet-based filters described here http://wiki.ros.org/pcl_ros/Tutorials...

In order to record log data, we basically record everything currently (i.e., rosbag record -a).

I fear this approach will cause an (avoidable) performance overhead, as every intermediate filtering step (e.g., passthrough filtering z, then box filtering A, box filtering B, then merging the results and publishing derived information) is published and recorded externally, adding up serialization and deserialization of intermediate pointclouds, while we are actually only interested in logging the overall result of the pipeline.

Should we move towards a whitelist-based approach to log recording? Or is there a way to declare certain topics in a nodelet manager "for internal use only" and hide them from external subscribers (like rosbag record -a)?

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted
1

answered 2019-10-07 06:47:36 -0600

gvdhoorn gravatar image

updated 2019-10-07 07:02:26 -0600

Or is there a way to declare certain topics in a nodelet manager "for internal use only" and hide them from external subscribers (like rosbag record -a)?

No, afaik there is no support for flagging topics as such.

rosbag interrogates the ROS master and asks it for all topics that are being published (here). The master then responds here.

There is nothing that makes "nodelet topics" special as far as the master is concerned (they are registered in the same way as non-nodelet topics), so it would have no way to distinguish them from the others and all appear in the list returned by the master.

Should we move towards a whitelist-based approach to log recording?

Perhaps a blacklist would be more scalable:

$ rosbag record --help
[..]
  -x EXCLUDE_REGEX, --exclude=EXCLUDE_REGEX
                        exclude topics matching the follow regular expression
                        (subtracts from -a or regex)
edit flag offensive delete link more

Comments

Thanks! I guess I will introduce an "internal_use_only" namespace to the intermediate topics and blacklist it for logging then.

moooeeeep gravatar imagemoooeeeep ( 2019-10-07 07:04:44 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2019-10-07 06:40:40 -0600

Seen: 17 times

Last updated: Oct 07