Revision history [back]

I'll answer only a few of your questions directly, the other should be clear from the information on the linked pages.

What is the order that roslaunch parses and loads parameters? I understand that roslaunch doesn't guarantee the order of nodes launched, but are there some guarantees for parameters, specifically related to nodes?

According to the roslaunch/XML page, section 1. Evaluation order:

roslaunch evaluates the XML file in a single pass. Includes are processed in depth-first traversal order. Tags are evaluated serially and the last setting wins. Thus, if there are multiple settings of a parameter, the last value specified for the parameter will be used. [..]

So, single pass, depth-first, last setting wins. iiuc, this also holds for parameters from yaml files.

Are all parameters in the file (and possibly all included launch files) loaded before all the nodes? For example: p1, and p4 loaded before test_node.

According to roslaunch/XML, section Setting parameters:

You can also set parameters on the Parameter Server. These parameters will be stored on the Parameter Server before any nodes are launched.

So yes, parameters are read (and pushed) first, then nodes are started. Afaict.

I'll answer only a few of your questions directly, the other others should be clear from the information on the linked pages.

What is the order that roslaunch parses and loads parameters? I understand that roslaunch doesn't guarantee the order of nodes launched, but are there some guarantees for parameters, specifically related to nodes?

According to the roslaunch/XML page, section 1. Evaluation order:

roslaunch evaluates the XML file in a single pass. Includes are processed in depth-first traversal order. Tags are evaluated serially and the last setting wins. Thus, if there are multiple settings of a parameter, the last value specified for the parameter will be used. [..]

So, single pass, depth-first, last setting wins. iiuc, this also holds for parameters from yaml files.

Are all parameters in the file (and possibly all included launch files) loaded before all the nodes? For example: p1, and p4 loaded before test_node.

According to roslaunch/XML, section Setting parameters:

You can also set parameters on the Parameter Server. These parameters will be stored on the Parameter Server before any nodes are launched.

So yes, parameters are read (and pushed) first, then nodes are started. Afaict.

I'll answer only a few of your questions directly, the others should be clear from the information on the linked pages.

What is the order that roslaunch parses and loads parameters? I understand that roslaunch doesn't guarantee the order of nodes launched, but are there some guarantees for parameters, specifically related to nodes?

According to the roslaunch/XML page, section 1. Evaluation order:

roslaunch evaluates the XML file in a single pass. Includes are processed in depth-first traversal order. Tags are evaluated serially and the last setting wins. Thus, if there are multiple settings of a parameter, the last value specified for the parameter will be used. [..]

So, single pass, depth-first, last setting wins. iiuc, this also holds for parameters from yaml files.

Are all parameters in the file (and possibly all included launch files) loaded before all the nodes? For example: p1, and p4 loaded before test_node.

According to roslaunch/XML, section 5.3 Setting parameters:

You can also set parameters on the Parameter Server. These parameters will be stored on the Parameter Server before any nodes are launched.

So yes, parameters are read (and pushed) first, then nodes are started. Afaict.

I'll answer only a few of your questions directly, the others should be clear from the information on the linked pages.

What is the order that roslaunch parses and loads parameters? I understand that roslaunch doesn't guarantee the order of nodes launched, but are there some guarantees for parameters, specifically related to nodes?

According to the roslaunch/XML page, section 1. Evaluation order:

roslaunch evaluates the XML file in a single pass. Includes are processed in depth-first traversal order. Tags are evaluated serially and the last setting wins. Thus, if there are multiple settings of a parameter, the last value specified for the parameter will be used. [..]

So, single pass, depth-first, last setting wins. iiuc, this also holds for parameters from yaml files.

Are all parameters in the file (and possibly all included launch files) loaded before all the nodes? For example: p1, and p4 loaded before test_node.

According to roslaunch/XML, section 5.3 Setting parameters:

You can also set parameters on the Parameter Server. These parameters will be stored on the Parameter Server before any nodes are launched.

So yes, parameters are read (and pushed) first, then nodes are started. Afaict.

If there are multiple parameters with the same name, which one will overwrite the other? For example, if p4 had the same name as p1, which one wins?

From roslaunch/XML/rosparam, section 1. <rosparam> tag:

The load command is considered additive: if you declare a dictionary or namespace of parameters, those parameters will be added to any other parameters declared for that namespace. Similarly, load commands can override parameters previously declared. [..]

I'll answer only a few of your questions directly, the others should be clear from the information on the linked pages.

What is the order that roslaunch parses and loads parameters? I understand that roslaunch doesn't guarantee the order of nodes launched, but are there some guarantees for parameters, specifically related to nodes?

According to the roslaunch/XML page, section 1. Evaluation order:

roslaunch evaluates the XML file in a single pass. Includes are processed in depth-first traversal order. Tags are evaluated serially and the last setting wins. Thus, if there are multiple settings of a parameter, the last value specified for the parameter will be used. [..]

So, single pass, depth-first, last setting wins. iiuc, this also holds for parameters from yaml files.

Are all parameters in the file (and possibly all included launch files) loaded before all the nodes? For example: p1, and p4 loaded before test_node.

According to roslaunch/XML, section 5.3 Setting parameters:

You can also set parameters on the Parameter Server. These parameters will be stored on the Parameter Server before any nodes are launched.

So yes, parameters are read (and pushed) first, then nodes are started. Afaict.

If there are multiple parameters with the same name, which one will overwrite the other? For example, if p4 had the same name as p1, which one wins?

From roslaunch/XML/rosparam, section 1. <rosparam> tag:

The load command is considered additive: if you declare a dictionary or namespace of parameters, those parameters will be added to any other parameters declared for that namespace. Similarly, load commands can override parameters previously declared. [..]

I'll answer only a few of your questions directly, the others should be clear from the information on the linked pages.

• What is the order that roslaunch parses and loads parameters? I understand that roslaunch doesn't guarantee the order of nodes launched, but are there some guarantees for parameters, specifically related to nodes?

• If there are multiple parameters with the same name, which one will overwrite the other? For example, if p4 had the same name as p1, which one wins?

According to the roslaunch/XML page, section 1. Evaluation order:

roslaunch evaluates the XML file in a single pass. Includes are processed in depth-first traversal order. Tags are evaluated serially and the last setting wins. Thus, if there are multiple settings of a parameter, the last value specified for the parameter will be used. [..]

So, single pass, depth-first, last setting wins. iiuc, this also holds for parameters from yaml files.

• Are all parameters in the file (and possibly all included launch files) loaded before all the nodes? For example: p1, and p4 loaded before test_node.

According to roslaunch/XML, section 5.3 Setting parameters:

You can also set parameters on the Parameter Server. These parameters will be stored on the Parameter Server before any nodes are launched.

So yes, parameters are read (and pushed) first, then nodes are started. Afaict.

• If there are multiple parameters with a parameter has the same name, name as one in a yaml file, which one will overwrite the other? For example, if p4 p2 or p3 had the same name as p1, a parameter in test.yaml, which one wins?

From roslaunch/XML/rosparam, section 1. <rosparam> tag:

The load command is considered additive: if you declare a dictionary or namespace of parameters, those parameters will be added to any other parameters declared for that namespace. Similarly, load commands can override parameters previously declared. [..]

I'll answer only a few of your questions directly, the others should be clear from the information on the linked pages.

• What is the order that roslaunch parses and loads parameters? I understand that roslaunch doesn't guarantee the order of nodes launched, but are there some guarantees for parameters, specifically related to nodes?
• If there are multiple parameters with the same name, which one will overwrite the other? For example, if p4 had the same name as p1, which one wins?

According to the roslaunch/XML page, section 1. Evaluation order:

roslaunch evaluates the XML file in a single pass. Includes are processed in depth-first traversal order. Tags are evaluated serially and the last setting wins. Thus, if there are multiple settings of a parameter, the last value specified for the parameter will be used. [..]

So, single pass, depth-first, last setting wins. iiuc, this also holds for parameters from yaml files.

• Are all parameters in the file (and possibly all included launch files) loaded before all the nodes? For example: p1, and p4 loaded before test_node.

According to roslaunch/XML, section 5.3 Setting parameters:

You can also set parameters on the Parameter Server. These parameters will be stored on the Parameter Server before any nodes are launched.

So yes, parameters are read (and pushed) first, then nodes are started. Afaict.

• If a parameter has the same name as one in a yaml file, which will overwrite the other? For example, if p2 or p3 had the same name as a parameter in test.yaml, which one wins?

From roslaunch/XML/rosparam, section 1. <rosparam> tag:

The load command is considered additive: if you declare a dictionary or namespace of parameters, those parameters will be added to any other parameters declared for that namespace. Similarly, load commands can override parameters previously declared. [..]

I'll answer only a few of your questions directly, the others should be clear from the information on the linked pages.

• What is the order that roslaunch parses and loads parameters? I understand that roslaunch doesn't guarantee the order of nodes launched, but are there some guarantees for parameters, specifically related to nodes?
• If there are multiple parameters with the same name, which one will overwrite the other? For example, if p4 had the same name as p1, which one wins?

According to the roslaunch/XML page, section 1. Evaluation order:

roslaunch evaluates the XML file in a single pass. Includes are processed in depth-first traversal order. Tags are evaluated serially and the last setting wins. Thus, if there are multiple settings of a parameter, the last value specified for the parameter will be used. [..]

So, single pass, depth-first, last setting wins. iiuc, this also holds for parameters from yaml files.

• Are all parameters in the file (and possibly all included launch files) loaded before all the nodes? For example: p1, and p4 loaded before test_node.

According to roslaunch/XML, section 5.3 Setting parameters:

You can also set parameters on the Parameter Server. These parameters will be stored on the Parameter Server before any nodes are launched.

So yes, parameters are read (and pushed) first, then nodes are started. Afaict.Afaict I would expect this to be the same for included files.

• If a parameter has the same name as one in a yaml file, which will overwrite the other? For example, if p2 or p3 had the same name as a parameter in test.yaml, which one wins?

From roslaunch/XML/rosparam, section 1. <rosparam> tag:

The load command is considered additive: if you declare a dictionary or namespace of parameters, those parameters will be added to any other parameters declared for that namespace. Similarly, load commands can override parameters previously declared. [..]

If you have any more questions, I'd refer you to the roslaunch/XML and roslaunch wiki pages.