Closed
Description
Bug report
I used to load a yaml configuration file into a composable node with ROS crystal that is started from a standalone executable. This stopped working after porting to dashing. The lack of parameter file loading examples for composable nodes also makes debugging this more difficult.
Required Info:
- Operating System: Ubuntu 18.04
- Installation type: binary
- Version or commit hash: dashing
- DDS implementation: Fast-RTPS
- Client library (if applicable): rclcpp
Steps to reproduce issue
- create a node, e.g.
AprilTag2Node::AprilTag2Node(rclcpp::NodeOptions options) : Node("apriltag2", "apriltag", options.use_intra_process_comms(true))
- create a config config.yaml with with parameters:
apriltag: # namespace
apriltag2: # node name
ros__parameters:
image_transport: raw
size: 0.162
parameter1: 89
parameter2: 56.89
- load a yaml file like:
ros2 run your_package your_node __params:=<path_to>/config.yaml
Expected behavior
A call to get_parameter_or<double>("size", tag_edge_size, 2.0);
within the node should provide the value of the parameter in the yaml file.
Actual behavior
The default parameter is returned.
Additional information
The main change for porting from crystal to dashing is the adaptation of the node options:
-AprilTag2Node::AprilTag2Node() : Node("apriltag2", "apriltag", true) {
+AprilTag2Node::AprilTag2Node(rclcpp::NodeOptions options) : Node("apriltag2", "apriltag", options.use_intra_process_comms(true)) {
This should keep the namespace intact and not change the behaviour of setting parameters.