ROS2学习笔记6--认识ros2参数parameters
Posted 鸿_H
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ROS2学习笔记6--认识ros2参数parameters相关的知识,希望对你有一定的参考价值。
概要:这篇主要认识ros2参数parameters
环境:ubuntu20.04,ros2-foxy,vscode
2.1.6认识ros2参数parameters(原文:https://docs.ros.org/en/foxy/Tutorials/Parameters/Understanding-ROS2-Parameters.html
)
>>
教程>>
认识ros2参数parameters
你正阅读的是ros2较老版本(Foxy),但仍然支持的说明文档.想查看最新版本的信息,请看galactic版本链接( https://docs.ros.org/en/galactic/Tutorials.html
)
认识ros2参数parameters
目标:学习如何获取,设置,保存和加载ros2参数
课程等级:初级
时长:5min
目录
1.背景
2.预备知识
3.步骤
3.1设置
3.2 ros2 param list
3.3 ros2 param get
3.4 ros2 param set
3.5 ros2 param dump
3.6 Load parameter file
4.总结
5.下一步
1.背景
参数是节点的配置数值.你可以认为参数(设计)就是节点的设置.节点保存的参数可以是整数,浮点型,布尔型,字符串型和列表型.在ros2
里面,每个节点都有自己的参数.所有的参数都是可动态重置的,并且由ros2
服务来实现.
2.预备知识
这课程使用turtlesim
小乌龟包
老规矩,别忘记在新打开终端source
一下配置文件(环境变量)(个人,如果ros2
的环境变量写到启动脚本.bashrc
里面,没必要再source
一次了).
3.步骤
3.1设置
打开两个终端,分别运行turtlesim
的两个节点/turtlesim
和/teleop_turtle
:
ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key
3.2 ros2 param list
为了查看节点的参数,新开一个终端并输入如下指令:
ros2 param list
你会看见节点命名空间,/teleop_turtle
和/turtlesim
,后面就是每个节点拥有的参数:
/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
颜色数值决定小乌龟仿真窗口的背景颜色.
你可以使用指令ros2 param get
去获取参数的类型
3.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
.
3.4 ros2 param set
运行时改变参数的量值,可以使用指令:
ros2 param set <node_name> <parameter_name> <value>
让我们改变一下/turtlesim
的背景颜色:
ros2 param set /turtlesim background_r 150
终端会返回:
Set parameter successful
你的小乌龟仿真窗口背景颜色会改变:
使用set
指令改变参数量值只是当前生效,并不是永久的.然而,你可以保存你的配置,下次启动节点时再加载.
3.5 ros2 param dump
你可以转存节点当前所有参数量值到一个文件里面,方便日后使用,使用的指令是:
ros2 param dump <node_name>
为了保存/turtlesim
节点当前的参数设置,输入指令:
ros2 param dump /turtlesim
你的终端会返回:
Saving to: ./turtlesim.yaml
你会发现工作空间目录下生成一个新文件,如果你打开该文件,你会看见如下内容:
turtlesim:
ros__parameters:
background_b: 255
background_g: 86
background_r: 150
use_sim_time: false
如果以后你还想加载这些节点使用相同的参数,就手动转存这些参数吧.
3.6 Load parameter file
启动节点使用保存的参数量值,可使用:
ros2 run <package_name> <executable_name> --ros-args --params-file <file_name>
这是和你一开始小乌龟仿真时候的指令一样,这里增加了--ros-args
和--params-file
标签来加载所需的文件.
退出turtlesim
节点,重启该节点并加载保存的参数,可以使用指令:
ros2 run turtlesim turtlesim_node --ros-args --params-file ./turtlesim.yaml
小乌龟仿真窗口正常出现,但紫色背景是之前设置的.
4.总结
节点使用参数来定义默认的配置值.你可以通过命令行使用get
(获取)和set
(设置)参数值.你也可以把参数设置保存成文件,以后可以重新加载.
5.下一步
跳转到ros2
通信方法,下一课程学习动作actions
.
其他
参数parameter
是节点node
的配置值.(个人理解,参数就是一个节点的属性具体体现)
个人认为重点:
ros2 param get <node_name> <parameter_name> #获取节点参数
ros2 param set <node_name> <parameter_name> <value> #设置参数的量值
ros2 param dump <node_name> #将节点的配置参数保存成文件
ros2 run <package_name> <executable_name> --ros-args --params-file <file_name>#启动执行文件并加载保存的参数文件
这课程是在等毕业证那十几天搞的,室友问,现在在线翻译这么强大,为啥还在这里瞎折腾呢?我说,我的目地是好好认真看一下,了解一下,自己折腾,目前是我想到最好的办法来获得最佳效果,即使这翻译有点别扭,哈哈哈.
#####################
不积硅步,无以至千里
好记性不如烂笔头
感觉有点收获的话,麻烦大大们点赞收藏哈
以上是关于ROS2学习笔记6--认识ros2参数parameters的主要内容,如果未能解决你的问题,请参考以下文章