使用 ros2 param 命令行工具 [待校准@6597]

ROS 2中的参数可以通过一组服务获取、设置、列出和描述,如 the concept document 中所述。 ros2 param 命令行工具是围绕这些服务调用的包装,使从命令行操作参数变得容易。 [待校准@6598]

ros2 param list [待校准@6599]

此命令将列出给定节点上的所有可用参数,如果未给出节点,则列出所有可发现节点上的所有可用参数。 [待校准@6600]

获取给定节点上的所有参数: [待校准@6601]

ros2 param list /my_node

要获取系统中所有节点上的所有参数 (这在复杂的网络上可能需要很长时间): [待校准@6602]

ros2 param list

ros2 param get [待校准@6603]

此命令将获取特定节点上特定参数的值。 [待校准@6604]

获取节点上参数的值: [待校准@6605]

ros param get /my_node use_sim_time

ros2 param set [待校准@6606]

此命令将在特定节点上设置特定参数的值。对于大多数参数,新值的类型必须与现有类型相同。 [待校准@6607]

设置节点上参数的值: [待校准@6608]

ros param set /my_node use_sim_time false

在命令行中传递的值在YAML中,允许使用任意YAML表达式。然而,这也意味着某些表达将会被解释,而不是预期。例如,如果节点 my_node 上的参数 my_string 是string型,以下将不起作用: [待校准@6609]

ros param set /my_node my_string off

这是因为YAML将 "off" 解释为bool,而 my_string 是string。 [待校准@6610]

ros2 param delete [待校准@6611]

此命令将从特定节点中删除参数。但是,请注意,这只能删除动态参数 (未声明的参数)。有关更多信息,请参见 the concept document[待校准@6612]

ros param delete /my_node my_string

ros2 param describe [待校准@6613]

此命令将提供特定节点上特定参数的文本描述: [待校准@6614]

ros param describe /my_node use_sim_time

ros2 param dump [待校准@6615]

此命令将以YAML文件格式打印出特定节点上的所有参数。然后可以使用此命令的输出重新运行具有相同参数的节点: [待校准@6616]

ros param dump /my_node

ros2 param load [待校准@6617]

此命令会将参数的值从YAML文件加载到特定节点中。也就是说,此命令可以在运行时重新加载由 ros2 param dump 转储的值: [待校准@6618]

ros param load /my_node my_node.yaml