ROS2--笔记4--通过命令行给节点传递参数

操作系统: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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值