ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

The yaml is not associated with any particular node, but more to do with namespaces. That is, a yaml that looks like:

settings:  # Arbitrary settings
  camera:
    format: "jpeg"
  wheels:
    max_speed: 3.0
    min_speed: 0.2

would create three values in the parameter service. If you type in rosparam list, you would get:

/settings/camera/format
/settings/wheels/max_speed
/settings/wheels/min_speed

(You can get the actual values with `rosparam get [param]').

The point of this is that a node can get any of these parameters. In your launch file, instead of putting the <rosparam> tag inside the node (which I understand you have), you can have it at the top. Something like:

<launch>
  <rosparam file="$(find package1)/config/settings.yaml" command="load" />
  <node pkg="package1" type="node1" name="node1" />
</launch>

The yaml is not associated with any particular node, but more to do with namespaces. That is, a yaml that looks like:

settings:  # Arbitrary settings
  camera:
    format: "jpeg"
  wheels:
    max_speed: 3.0
    min_speed: 0.2

would create three values in the parameter service. If you type in rosparam list, you would get:

/settings/camera/format
/settings/wheels/max_speed
/settings/wheels/min_speed

(You can get the actual values with `rosparam rosparam get [param]').[param]).

The point of this is that a node can get any of these parameters. In your launch file, instead of putting the <rosparam> tag inside the node (which I understand you have), you can have it at the top. Something like:

<launch>
  <rosparam file="$(find package1)/config/settings.yaml" command="load" />
  <node pkg="package1" type="node1" name="node1" />
</launch>

The yaml is not associated with any particular node, but more to do with namespaces. That is, a yaml that looks like:

settings:  # Arbitrary settings
  camera:
    format: "jpeg"
  wheels:
    max_speed: 3.0
    min_speed: 0.2

would create three values in the parameter service. If you type in rosparam list, you would get:

/settings/camera/format
/settings/wheels/max_speed
/settings/wheels/min_speed

(You can get the actual values with rosparam get [param]).

The point of this is that a node can get any of these parameters. In your launch file, instead of putting the <rosparam> tag inside the node (which I understand you have), you can have it at the top. Something like:

<launch>
  <rosparam file="$(find package1)/config/settings.yaml" command="load" />
  <node pkg="package1" type="node1" name="node1" />
</launch>