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要好用一點