【ROS2 入门】ROS 2 参数服务器(parameters)概述

news2024/11/24 3:47:01

        大家好,我是虎哥,从今天开始,我将花一段时间,开始将自己从ROS1切换到ROS2,在上一篇中,我们一起了解ROS 2中Topic, 这一篇,我们主要会围绕ROS中另外一个重要的概念“Parameters ”,了解如何在ROS 2中获取、设置、保存和重新加载参数。

目录

1 、启动模拟节点

2、ros2 param list(参数列表)

3、 ros2 param get(获取参数值)

4、 ros2 param set(设置参数值)

5 、ros2 param dump(参数转存)

6 、Load parameter file(参数载入)


        参数是节点的配置值。可以将参数视为节点设置。节点可以将参数存储为整数、浮点数、布尔值、字符串和列表。在ROS 2中,每个节点都维护自己的参数。所有参数都可动态重新配置,并基于ROS 2服务构建。节点具有用于定义其默认配置值的参数。可以从命令行获取和设置参数值。也可以保存参数设置以在新任务中重新加载。

1 、启动模拟节点

到现在,你应该可以轻松地启动turtlesim。打开一个终端,执行如下命令:

ros2 run turtlesim turtlesim_node

打开一个新的终端,启动遥控节点:

ros2 run turtlesim turtle_teleop_key

2、ros2 param list(参数列表)

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

ros2 param list

您将看到节点子节点空间/teolep_turtle和/turtlesim,后跟每个节点的参数:

nvidia@ubuntu:~$ ros2 param list
/teleop_turtle:
  scale_angular
  scale_linear
  use_sim_time
/turtlesim:
  background_b
  background_g
  background_r
  use_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

我们将得到如下回复:

nvidia@ubuntu:~$ ros2 param get /turtlesim background_g
Integer value is: 86

现在您知道background_g包含一个整数值。如果在background_r和background_b上运行相同的命令,将分别获得值69和255。

nvidia@ubuntu:~$ ros2 param get /turtlesim background_r
Integer value is: 69
nvidia@ubuntu:~$ ros2 param get /turtlesim background_b
Integer value is: 255

4、 ros2 param set(设置参数值)

要在运行时更改参数的值,请使用以下命令:

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

让我们改变/turtlesim的背景色:

ros2 param set /turtlesim background_r 150

turtlesim窗口的背景应改变颜色:

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

5 、ros2 param dump(参数转存)

您可以使用以下命令将节点的所有当前参数值“转储”到一个文件中,以供以后保存:

ros2 param dump <node_name>

要保存/turtlesim参数的当前配置,请输入以下命令:

ros2 param dump /turtlesim

将得到如下回复:

nvidia@ubuntu:~$ ros2 param dump /turtlesim
Saving to:  ./turtlesim.yaml

您将在工作区运行的目录中找到一个新文件。如果打开此文件,您将看到以下内容:

#文件内容如下
turtlesim:
  ros__parameters:
    background_b: 255
    background_g: 86
    background_r: 150
    use_sim_time: false

如果您希望在将来重新加载具有相同参数的节点,转储参数非常有用。

6 、Load parameter file(参数载入)

刚才我们转存了某个节点的所有参数,如果你想以这个参数打开一个新的节点,执行如下命令:

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

这是启动turtlesim时始终使用的命令,添加了标志--ros args和--params文件,后跟要加载的文件。

停止正在运行的turtlesim节点,以便您可以尝试使用保存的参数重新加载它,方法是:

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

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

以上就是我今天要分享的内容。纠错,疑问,交流: 911946883@qq.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/165400.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

图的拓扑排序(AOV网络)

文章目录拓扑排序概念实现邻接表(队列)邻接矩阵(栈)总结源代码邻接表邻接矩阵拓扑排序 概念 拓扑排序是对有向无环图的顶点的一种排序. AOV网络 : 在有向图中, 用顶点表示活动或者任务, 弧表示活动或者任务间的优先关系, 则此有向图称为用顶点表示活动的网络(Activity On Ve…

小程序介绍和注册安装

小程序介绍和注册安装微信小程序介绍小程序特点其它平台小程序注册微信小程序开发帐号获取appidappid简介微信开发者工具安装创建一个小程序项目核心步骤微信开发者工具构成微信小程序介绍 简短定义&#xff1a;微信小程序是运行在微信APP中的一个程序。 常见小程序 行程码拼…

UDS诊断系列介绍11-3E服务

本文框架1. 系列介绍1.1 3E服务概述2. 3E服务请求与应答2.1 3E服务请求2.2 3E服务正响应2.3 3E服务否定响应3. Autosar系列文章快速链接1. 系列介绍 UDS&#xff08;Unified Diagnostic Services&#xff09;协议&#xff0c;即统一的诊断服务&#xff0c;是面向整车所有ECU的…

# 【笔记】大话设计模式21-23

【笔记】大话设计模式21-23 文章目录【笔记】大话设计模式21-23单例模式21.1 Example21.2 定义21.3 Show me the code一般单例代码(**懒汉模式**)静态初始化&#xff08;**饿汉模式**&#xff09;21.4 总结22 桥接模式22.1 Example22.2 定义22.3 Show me the code22.4 总结23 命…

Code for VeLO 1: Training Versatile Learned Optimizers by Scaling Up

Code for VeLO 1: Training Versatile Learned Optimizers by Scaling Up 这篇文章将介绍一下怎么用VeLO进行训练。 这篇文章基于https://colab.research.google.com/drive/1-ms12IypE-EdDSNjhFMdRdBbMnH94zpH#scrollToRQBACAPQZyB-&#xff0c;将介绍使用learned optimizer in…

入门力扣自学笔记230 C++ (题目编号:2293)

2293. 极大极小游戏 题目&#xff1a; 给你一个下标从 0 开始的整数数组 nums &#xff0c;其长度是 2 的幂。 对 nums 执行下述算法&#xff1a; 设 n 等于 nums 的长度&#xff0c;如果 n 1 &#xff0c;终止 算法过程。否则&#xff0c;创建 一个新的整数数组 newNums …

【Python百日进阶-数据分析】Day226 - plotly的仪表盘go.Indicator()

文章目录一、语法二、参数三、返回值四、实例4.1 Bullet Charts子弹图4.1.1 基本子弹图4.1.2 添加步骤和阈值4.1.3 自定义子弹4.1.4 多子弹4.2 径向仪表图4.2.1 基本仪表4.2.2 添加步骤、阈值和增量4.2.3 自定义仪表图4.3 组合仪表图4.3.1 组合仪表图4.3.2 单角量规图4.3.3 子弹…

Android 深入系统完全讲解(19)

技术的学习关键点 是什么&#xff1f;思路。 而我这里分享一个学习的经典路线&#xff0c;先厘清总框架&#xff0c;找到思路&#xff0c;然后再逐步击破。 这里关于音视频的就是&#xff1a; 总体分为几部分&#xff1a; 1 绘制 2 编解码格式 3 Android 平台的 FFmpeg 开源移…

Compressed Sensing——从零开始压缩感知

Problem 考虑一个线性方程组求解问题&#xff1a; Axb(1)A x b \tag{1}Axb(1) 其中&#xff0c;A∈RmnA \in\mathbb R^{m\times n}A∈Rmn&#xff0c;x∈Rn1x \in\mathbb R^{n\times 1}x∈Rn1&#xff0c;b∈Rm1b \in\mathbb R^{m\times 1}b∈Rm1且m≪nm \ll nm≪n 这是一个…

【C++11】—— lambda表达式

目录 一、lambda表达式的简介 二、lambda表达式的基本语法 三、lambda表达式的使用方法 四、lambda表达式的底层原理 一、lambda表达式的简介 lambda表达式就类似于仿函数&#xff0c;相比仿函数要更加的简洁&#xff0c;我们看一下下面的代码&#xff1a; //商品类 struct…

【项目实战】使用MybatisPlus乐观锁插件功能

一、背景 当要更新一条记录时&#xff0c;希望这条记录没有被别人更新&#xff0c;可以考虑使用MybatisPlus乐观锁插件功能来实现以上需求。 二、乐观锁介绍 2.1 乐观锁是什么&#xff1f; 乐观锁是一种乐观思想&#xff0c;即认为读多写少&#xff0c;遇到并发的可能性低&…

使用ASM框架创建ClassVisitor时遇到IllegalArgumentException的一种可能解决办法

背景 ASM是java语言中最为广泛使用的插装框架&#xff0c;其优点在于可以动态地在运行时改变java系统的行为&#xff0c;加入我们自己的逻辑。在软件测试领域应用广泛。但是其使用难度很高&#xff0c;一方面使用asm框架需要对java底层知识有较高的了解&#xff0c;另一方面网…

网页共享电脑屏幕与播放(带声音)

这次项目我们是写的一个课堂辅助软件的网页版&#xff0c;其中有一个功能感觉能作为我们项目的一个亮点&#xff0c;就是直播功能&#xff0c;在之前并没有写过这个东西。虽然现在这个功能还不知道怎么写&#xff0c;但是它的流程终归是利用视频流将本地的视频给共享出去&#…

Verilog:【8】基于FPGA实现SD NAND FLASH的SPI协议读写

碎碎念&#xff1a; 终于熬过了期末周&#xff0c;可以开始快乐的开发之旅了。 这一期作为一千粉后的首篇博客&#xff0c;由于之后项目会涉及到相关的部分&#xff0c;因此介绍的是使用FPGA实现SD NAND FLASH的读写操作&#xff0c;以雷龙科技提供的SD NAND FLASH样品为例&…

实证分析权重系数计算大全

在实际研究中&#xff0c;权重计算是一种常见的分析方法&#xff0c;需要结合数据的特征情况进行选择&#xff0c;比如数据之间的波动性是一种信息量&#xff0c;那么可考虑使用CRITIC权重法或信息量权重法&#xff1b;也或者专家打分数据&#xff0c;那么可使用AHP层次法或优序…

直观感受PromQL及其数据类型

由于PromQL内容较多&#xff0c;将内容分为三篇文章讲述&#xff1a; 一、直观感受PromQL及其数据类型 二、PromQL之选择器和运算符 三、PromQL之函数 想必都知道要使用Msql&#xff0c;必须会用SQL&#xff0c;同样要使用Prometheus 就要掌握PromQL&#xff08;Prometheus Que…

【链表】leetcode142.环形链表II(C/C++/Java/Js)

leetcode142.环形链表II1 题目2 思路2.1 判断链表是否有环--快慢指针法2.2 如果有环&#xff0c;如何找到这个环的入口2.3 补充3 代码3.1 C版本3.2 C版本3.3 Java版本3.4 JavaScript版本4 总结1 题目 题源链接 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个…

软测复习05:基于质量特征的测试

作者&#xff1a;非妃是公主 专栏&#xff1a;《软件测试》 个性签&#xff1a;顺境不惰&#xff0c;逆境不馁&#xff0c;以心制境&#xff0c;万事可成。——曾国藩 文章目录性能测试压力测试容量测试健壮性测试安全性测试可靠性测试恢复性测试协议一致性测试兼容性测试安装…

【数据结构】保姆级单链表教程(概念、分类与实现)

目录 &#x1f34a;前言&#x1f34a;&#xff1a; &#x1f348;一、链表概述&#x1f348;&#xff1a; 1.链表的概念及结构&#xff1a; 2.链表存在的意义&#xff1a; &#x1f353;二、链表的分类&#x1f353;&#xff1a; &#x1f95d;三、单链表的实现&#x1f…

​盘点几款国内外安全稳定的域名解析平台​

众所周知&#xff0c;有了域名后想建站使用&#xff0c;必须要先解析域名。域名使用注册商一般会提供域名解析服务&#xff0c;这虽然为用户提供了方便&#xff0c;但功能大多有限&#xff0c;使用第三方域名解析平台就成了非常必要的选择。今天&#xff0c;小编就为大家盘点几…