ROS2官網教程學習筆記理解ROS2參數服務器篇

學習目標:瞭解如何獲得、設置、保存修改參數

背景

參數是節點的配置參數值。你可以認爲參數是節點配置的一部分。參數爲整數,浮點數,布爾值,字符串和列表。在ROS2中,每個節點都有自己的參數。所有參數都是可動態重新配置的,並且是基於ROS2服務構建的。

準備條件

需要Turtlesim

學習內容

1. 運行節點

和之前一樣啓動兩個需要用的節點

ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key

2. ros2 param list

通過下面的命令我們可以查看每個節點的參數,這個相比ros1個人感覺還是方便不少

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

3. ros2 param get

通過下面命令我們可以得到一個節點的一個參數的值

ros2 param get <node_name> <parameter_name>

例如我們得到烏龜背景顏色g通道的值

ros2 param get /turtlesim background_g

我們得到下面的結果

Integer value is: 86

4. ros2 param set

我們可以通過下面的命令對參數進行相關的設置

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

例如我們改變烏龜的背景顏色

ros2 param set /turtlesim background_r 150

終端輸出如下的信息

Set parameter successful

然後我們可以看到烏龜界面的背景顏色也發生了相應的變化
在這裏插入圖片描述

5. ros2 param dump

我們可以使用下面的命令將一個節點的參數保存到文件裏

ros2 param dump <node_name>

例如

ros2 param dump /turtlesim

終端會輸出下面的信息

Saving to:  ./turtlesim.yaml

我們可以看到命令將當前節點的參數保存到了當前目錄下一個名爲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>

先把當前烏龜的節點關掉,我們通過下面的命令重新打開這個節點

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

我們發現一個很神奇的事情發生了,烏龜背景的顏色就是剛剛我們設置的顏色

總結

相比ros1,ros2在這部分改進還是挺多的,感覺這樣的參數服務器比ros1要好用一點

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章