文章目录

  • 背景
  • 1. 准备环境
  • 2. ros2 param list 命令
  • 3. ros2 param get 命令
  • 4. ros2 param set 命令
  • 5. ros2 param dump 命令
  • 6. ros2 param load 命令
  • 7. 在节点启动时加载参数文件

参考官方文档: Understanding parameters

背景

参数是一个节点的配置值。你可以把参数看成是节点的设置。节点可以将参数存储为整数、浮点数、布尔值、字符串和列表。在ROS 2中,每个节点都维护自己的参数。关于参数的更多背景,请看About parameters in ROS 2。

1. 准备环境

打开一个新的终端并运行:

ros2 run turtlesim turtlesim_node

打开另一个终端并运行:

ros2 run turtlesim turtle_teleop_key

2. ros2 param list 命令

要查看属于你的节点的参数,打开一个新的终端并输入命令:

ros2 param list

你会看到节点命名空间,/teleop_turtle 和 /turtlesim ,后面是每个节点的参数。

/teleop_turtle:qos_overrides./parameter_events.publisher.depthqos_overrides./parameter_events.publisher.durabilityqos_overrides./parameter_events.publisher.historyqos_overrides./parameter_events.publisher.reliabilityscale_angularscale_linearuse_sim_time
/turtlesim:background_bbackground_gbackground_rqos_overrides./parameter_events.publisher.depthqos_overrides./parameter_events.publisher.durabilityqos_overrides./parameter_events.publisher.historyqos_overrides./parameter_events.publisher.reliabilityuse_sim_time

每个节点都有参数use_sim_time;这不是turtlesim独有的。

根据它们的名字,看起来 /turtlesim 的参数使用RGB颜色值来确定turtlesim窗口的背景颜色。

要确定一个参数的类型,你可以使用 ros2 param get 命令。

3. ros2 param get 命令

要显示一个参数的类型和当前值,使用命令:

ros2 param get <node_name> <parameter_name>

例如找出 /turtlesim 的参数 background_g 的当前值:

ros2 param get /turtlesim background_g

返回值如下:

Integer value is: 86

现在你知道 background_g 是整数值。

如果你对 background_r 和 background_b 运行同样的命令,你将分别得到69和255的数值。

4. ros2 param set 命令

要在运行时改变一个参数的值,使用命令:

ros2 param set <node_name> <parameter_name> <value>

例如改变 /turtlesim 的背景颜色:

ros2 param set /turtlesim background_r 150

你的终端应该返回信息:

Set parameter successful

并且你的 turtlesim 窗口的背景应该会改变颜色。

用set命令设置参数只会在你当前的会话中改变它们,而不是永久性的。然而,你可以保存你的设置,并在下次启动节点时重新加载它们。

5. ros2 param dump 命令

你可以通过使用这条命令查看一个节点的所有当前参数值:

ros2 param dump <node_name>

该命令默认打印到标准输出(stdout),但你也可以将参数值重定向到一个文件中,以便以后保存。要把你目前对 /turtlesim 的参数配置保存到文件 turtlesim.yaml 中,请输入命令:

ros2 param dump /turtlesim > turtlesim.yaml

你会在你的shell运行的工作目录中发现一个新文件。如果你打开这个文件,你会看到以下内容:

/turtlesim:ros__parameters:background_b: 255background_g: 86background_r: 150qos_overrides:/parameter_events:publisher:depth: 1000durability: volatilehistory: keep_lastreliability: reliableuse_sim_time: false

如果你想在将来用相同的参数重新加载节点,导出参数就会很方便。

6. ros2 param load 命令

你可以使用命令从文件中向当前运行的节点加载参数:

ros2 param load <node_name> <parameter_file>

要把用 ros2 param dump 生成的 turtlesim.yaml 文件加载到 /turtlesim 节点的参数中,请输入命令:

ros2 param load /turtlesim turtlesim.yaml

你的终端将返回信息:

Set parameter background_b successful
Set parameter background_g successful
Set parameter background_r successful
Set parameter qos_overrides./parameter_events.publisher.depth failed: parameter ‘qos_overrides./parameter_events.publisher.depth’ cannot be set because it is read-only
Set parameter qos_overrides./parameter_events.publisher.durability failed: parameter ‘qos_overrides./parameter_events.publisher.durability’ cannot be set because it is read-only
Set parameter qos_overrides./parameter_events.publisher.history failed: parameter ‘qos_overrides./parameter_events.publisher.history’ cannot be set because it is read-only
Set parameter qos_overrides./parameter_events.publisher.reliability failed: parameter ‘qos_overrides./parameter_events.publisher.reliability’ cannot be set because it is read-only
Set parameter use_sim_time successful

只读参数只能在启动时修改,之后不能修改,这就是为什么对 "qos_overrides "参数有一些警告。

7. 在节点启动时加载参数文件

要使用你保存的参数值启动同一个节点,请使用:

ros2 run <package_name> <executable_name> --ros-args --params-file <file_name>

这与你启动 turtlesim 时使用的命令相同,但增加了标志 --ros-args 和 --params-file ,后面是你要加载的文件。

例如:

ros2 run turtlesim turtlesim_node --ros-args --params-file turtlesim.yaml

turtlesim 窗口应该像往常一样出现,但背景是你之前设置的紫色。

在这种情况下,参数在启动时被修改,所以指定的只读参数也将生效。

Understanding parameters:理解参数(Parameter)相关推荐

  1. OOP 术语:Arguments(参量)和 Parameters(参数)的区别(转载)

    Parameter(参数)用来表示"出现在子句(或类型定义)头部的变量", Argument(参量)用来表示"出现在目标(或类型的实例)中的值". 换句话说,A ...

  2. 转发和重定向简介及与之相关的(URL)参数(parameter)、属性(attribute)问题探讨

    转发和重定向简介及与之相关的(URL)参数(parameter).属性(attribute)问题探讨 蜀中孤鹰 2019-07-15 15:55:49 101 收藏 最后发布:2019-07-15 1 ...

  3. 23,verilog之参数parameter介绍

    参数parameter的作用大体与宏定义类似,用来改变一个模块的局部参数,如信号宽度等. 参数parameter的声明有两种格式:一种是verilog-1995,在模块内部声明:另一种是verilog ...

  4. Java反射09 : 参数Parameter学习示例

    超级通道: Java泛型学习系列-绪论 java.lang.reflect.Parameter类提供了用于获取和操作构造器的静态方法. 1.通过Parameter可以做什么 通过Parameter可以 ...

  5. Verilog参数Parameter使用、参数化赋值

    1.参数化Parameter使用 方便后期重用,主要用于位宽.计数器大小.延时大小等的定义. 先说Parameters的三大分类分别是,Module Parameter, Local Paramete ...

  6. SAP PARAMETERS常用参数(User-Command、Function Key、Push Button用法)

    PARAMETERS常用参数 PARAMETERS参数 说明 DEFAULT 'A' 设置初始值 TYPE CHAR10 利用ABAP数据字典的数据类型 LENGTH n 适用于C.N.X.P类型 D ...

  7. 参数(parameter)和属性(attribute)的区别

    参数parameter 属性attribute 区别 来源 parameter来源于用户提交的http请求.以Get方法提交的请求来源于url:以Post提交的请求来源于请求体 web资源中设置的属性 ...

  8. 【Nginx】截取URL中某个参数Parameter

    前言 nginx 1.15.11(下面的代码在此版本测试通过) 截取URL中某个参数Parameter 假设,截取参数method的值.当method=autoGenerateIndex时,截取到au ...

  9. 【Nginx】判断URL中是否存在某个参数Parameter

    前言 nginx 1.15.11(下面的代码在此版本测试通过) 判断URL中是否存在某个参数Parameter 假设,当URL中存在参数method=autoGenerateIndex(区分大小写)时 ...

最新文章

  1. window7环境下ZooKeeper的安装运行及监控查看
  2. 创建一个plugin - drupal 8
  3. 动手实现一个适用于.NET Core 的诊断工具
  4. springboot整合kafka_springboot整合kafka实现消息的发送消费
  5. ssm数据库异常问题
  6. 《ArcGIS Runtime SDK for Android开发笔记》——(15)、要素绘制Drawtools3.0工具DEMO
  7. 如何跟踪发现Linux内核补丁(patch)
  8. python邮箱配置_python flask mail QQ邮箱配置
  9. Spring中的InitializingBean接口
  10. SBT管理java项目
  11. DirectX修复工具增强版
  12. pc端html转换手机端,一种兼容PC端和手机端WEB界面的实现方法与流程
  13. 网络安全事件收集,分析
  14. 迅雷版权限制无法下载破解
  15. Mysql 生成随机数字
  16. 安卓手机管理_北斗ERP进销存管理(销存管理工具)V2.2.4 安卓手机版
  17. 算法模型评价详解:confusion matrix Accuracy Precision Recall F1 调和平均 加权F1 Micro-F1 Macro-F1 PRC ROC AUC
  18. 基于STM32的OLED多级菜单GUI实现(简化版智能手表)
  19. 漏洞挖掘所需能力梳理,查漏补缺(更新中~)
  20. 怎么设置邮箱自动回复?哪个品牌邮箱自动回复设置最简单?

热门文章

  1. 一键复制 html,最简单js代码实现一键复制文字
  2. 我需要30部美或英剧的剧名
  3. ue4 VR 运动控制器(左右手柄)
  4. 强引用置为null,会不会被回收及内存分配及年轻代年老代算法回收
  5. centos7安装mysql失败
  6. 快点来学吧!java保证线程安全的方式
  7. 广义Pareto分布---极值理论的学习3
  8. Linux内核TC工具链路带宽设计--CBQ队列规定
  9. 雷电安卓模拟器修改信息及常用adb命令整理
  10. gpu服务器厂家_嵌入式主板厂家告诉你选择GPU服务器的5大标准