操作系统:Ubuntu 18.04
所有的ROS节点都带有一组参数来允许其属性的重配置。例如配置节点的name/namespace,使用的topic/service名称等。
名称重映射
在节点中的名称(例如topic/service名称)可以被重映射,使用的语法为:=。而节点自己的名字/名字空间可以使用__node:= 和__ns:=来完成。
这些都是静态映射,配置后会影响节点的整个生命周期。
例子
如下的例子将talker节点变为my_talker节点。发布的topic从chatter改名为my_topic。用于限定topic/service的名字空间被设为/demo,这样使用topic时就变为/demo/my_topic,而非全局化的/my_topic。
ros2 run demo_nodes_cpp talker __ns:=/demo __node:=my_talker chatter:=my_topic
如果在一个进程中运行多个节点(例如使用composition),可以通过加上节点名前缀来进行参数的重映射。例如:
ros2 run composition manual_composition talker:__node:=my_talker listener:__node:=my_listener
Logger配置
在logging部分查看__log_level参数的使用。
参数
当前支撑通过yaml文件来从命令行进程参数设置。
例如:
talker:
ros__parameters:
some_int: 42
a_string: "Hello world"
some_lists:
some_integers: [1, 2, 3, 4]
some_doubles : [3.14, 2.718]
然后运行:
ros2 run demo_nodes_cpp talker __params:=demo_params.yaml
其他的节点就可以检索该节点的参数,例如:
$ ros2 param list talker
a_string
some_int
some_lists.some_doubles
some_lists.some_integers