ROS2学习笔记(五)从turtlesim学习ROS2参数

从turtlesim学习ROS2参数

前言

学习ROS2的路,并不能通过学习ROS1代替,因为ROS2的“内核”不同于ROS1,必须认认真真从头开始重新学习。

Ubuntu版本:20.04

ROS版本:Foxy

学习笔记回顾

1.ROS2 param

不管是ROS1还是ROS2,参数都是很重要的知识点,其主要是对节点功能的配置,在ROS2中每个节点都有自己的参数。

2.首先启动小海龟模拟器

$ ros2 run turtlesim turtlesim_node
$ ros2 run turtlesim turtle_teleop_key

3.ros2 param list

该命令可以用来查看当前节点所有的参数,在新终端中输入以下命令:

$ ros2 param list
----
/teleop_turtle:
  qos_overrides./parameter_events.publisher.depth
  qos_overrides./parameter_events.publisher.durability
  qos_overrides./parameter_events.publisher.history
  qos_overrides./parameter_events.publisher.reliability
  scale_angular
  scale_linear
  use_sim_time
/turtlesim:
  background_b
  background_g
  background_r
  qos_overrides./parameter_events.publisher.depth
  qos_overrides./parameter_events.publisher.durability
  qos_overrides./parameter_events.publisher.history
  qos_overrides./parameter_events.publisher.reliability
  use_sim_time

因为我们开了两个节点,所以可以看到节点/teleop_turtle/turtlesim,后面是每个节点所有的参数。

每个节点都有use_sim_time参数。

4.ros2 param get

该命令可以获取参数的类型和当前值,命令格式:

$ ros2 param get <node_name> <parameter_name>

我们通过获取background_g参数来获取背景颜色中的绿色值。

$ ros2 param get /turtlesim background_g
----
Integer value is: 86

可以看到返回的类型是整数,值为86。
当然,获取background_rbackground_b都是同理。

5.ros2 param set

改命令可以更改运行的参数,命令格式如下:

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

这时,我们可以尝试更改小海龟模拟器的背景颜色red的值:

$ ros2 param set /turtlesim background_r 150
----
Set parameter successful

返回看到successful说明参数设置成功,效果如下所示:
在这里插入图片描述

set命令并不能永久更改参数值,只能在当前进程中保存。

6.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

7.加载参数文件

可以使用如下命令格式将参数文件加载到当前运行的节点中去:

$ ros2 param load <node_name> <parameter_file>

./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 use_sim_time successful

启动成功后,此时模拟器的背景和上面手动修改的一模一样的颜色。

总结

这就是ROS2中的参数,我们可以通过命令行get或set参数值,还可以利用文件保存和加载参数。

Reference:

https://docs.ros.org/en/foxy/Tutorials/Parameters/Understanding-ROS2-Parameters.html

结语

本文也是基于笔者的学习和使用经验总结的,主观性较强,如果有哪些不对的地方或者不明白的地方,欢迎评论区留言交流~

为了能和读者进一步讨论问题,建立了一个微信群,方便给大家解答问题,也可以一起讨论问题。
加群链接

おすすめ

転載: blog.csdn.net/xiaokai1999/article/details/118915839