通过命令行向节点传递 ROS 参数
所有 ROS 节点都有一组参数,允许对各种属性进行重新配置。例如,配置节点的名称/命名空间、使用的主题/服务名称以及节点上的参数。所有 ROS 特有的参数都必须在 --ros-args
旗子
玫瑰2 运行 我的包 节点可执行 --ros-args ...
更多详情,请参阅 本设计文件.
名称重映射
节点内的名称(如主题/服务)可使用以下语法重新映射 -r 旧 name>:=<new name>;
.节点本身的名称/命名空间可以使用 -r 节点:=<新 网站 name>;
和 -r ns:=<new 网站 命名空间
.
请注意,这些重映射是 "静态 "重映射,因为它们适用于节点的整个生命周期。目前还不支持在节点启动后对名称进行 "动态 "重新映射。
参见 本设计文件 以获取更多关于参数重映射的详细信息(目前尚未提供所有功能)。
示例
以下调用将导致 话匣子
节点名下启动的节点 我的发言人
出版名为 我的主题
而不是默认的 唠叨
.命名空间必须以斜线开头,设置为 /demo
这意味着主题是在该命名空间中创建的 (/demo/my_topic
),而不是全球 (/my_topic
).
玫瑰2 运行 演示节点 话匣子 --ros-args -r __ns:=/demo -r __节点:=我的发言人 -r 唠叨:=我的主题
向特定节点传递重映射参数
如果在一个进程中运行多个节点(如使用 组成),重映射参数可以使用特定节点的名称作为前缀传递给该节点。例如,下面的代码将把重映射参数传递给指定的节点:
玫瑰2 运行 构成 手动合成 --ros-args -r talker:__node:=我的发言人 -r listener:__node:=我的监听器
下面的示例将同时更改节点名称和重新映射主题(节点和名称空间的更改始终会被应用 之前 主题重映射):
玫瑰2 运行 构成 手动合成 --ros-args -r talker:__node:=我的发言人 -r my_talker:chatter:=我的主题 -r listener:__node:=我的监听器 -r my_listener:chatter:=我的主题
记录仪配置
可以使用 --日志级
命令行参数。可执行文件日志文件名前缀包括可执行文件中的所有节点,可通过以下方式指定 --日志文件名
命令行参数。更多信息,请参阅 日志页面.
参数
直接从命令行设置参数
您可以使用以下语法直接从命令行设置参数:
玫瑰2 运行 包名 可执行名称 --ros-args -p 参数名:=参数值
例如,您可以运行
玫瑰2 运行 演示节点 参数黑板 --ros-args -p some_int:=42 -p "a_string:=Hello world"; -p "some_lists.some_integers:=[1, 2, 3, 4]"; -p "some_lists.some_doubles:=[3.14, 2.718]";
其他节点可以检索参数值,例如
$ 玫瑰2 停止 清单 参数_黑板 a_string qos_overrides./parameter_events.publisher.depth qos_overrides./parameter_events.publisher.durability qos_overrides./parameter_events.publisher.history qos_overrides./parameter_events.publisher.reliability some_int some_lists.some_doubles some_lists.some_integers use_sim_time
从 YAML 文件设置参数
参数可以通过 yaml 文件的形式在命令行中设置。
参见此处 以获取 yaml 文件语法示例。
例如,将以下内容保存为 demo_params.yaml
:
参数黑板:
参数:
some_int: 42
a_string: 您好 世界";
一些列表:
一些整数: [1, 2, 3, 4]
some_doubles : [3.14, 2.718]
然后在节点中用 declare_parameter 或 声明参数或 将节点设置为自动声明参数 如果它们是通过命令行覆盖传入的。
然后运行以下程序:
玫瑰2 运行 演示节点 参数黑板 --ros-args --参数文件 demo_params.yaml
其他节点可以检索参数值,例如
$ 玫瑰2 停止 清单 参数_黑板 a_string qos_overrides./parameter_events.publisher.depth qos_overrides./parameter_events.publisher.durability qos_overrides./parameter_events.publisher.history qos_overrides./parameter_events.publisher.reliability some_int some_lists.some_doubles some_lists.some_integers use_sim_time