16.6.0
Description
Abstract
In this pull-request, I introduce noise v3 configuration for /perception/object_recognition/detection/objects topic.
The noise v3 configuration is an extension of v2 and has exactly the same noise capabilities, but now you can have multiple v3 noise configurations, allowing you to apply different noise configurations to specific entity groups.
The video below shows each detected entity is applied a different type of noise by noise v3.
noise_v3.mp4
Background
In previous noise configurations, we set one noise configuration to all detected entities.
But users want to set different configurations for defferent entity types.
Details
For noise configuration details, please see Parameter.md.
workaround to use unknown name ros2 parameters
In noise v3 configurations, config name is user-defined.
So, we cannot hard-code the full name of parameters.
Without prior declaration, we cannot even know the existence of parameters read from YAML through the rclcpp API, so not being able to know the full path in advance was a major implementation limitation.
To get around this problem, I use automatically_declare_parameters_from_overrides option in rclcpp::NodeOptions.
By using this option, it becomes possible to use parameters without prior declaration, and you can find out the user-defined namespace names just by looking at the list of parameters.
References
Destructive Changes
None
Known Limitations
None