ROS2學習之旅(7)——理解ROS2 Graph中的引數
引數是節點的配置值,可以將引數視為節點設定,節點可以以整數、浮點數、布林值、字串和列表的形式儲存引數。在ROS2中,每個節點保持自己的引數。所有引數都是動態、可重新配置的,在ROS2服務的基礎上構建。
1.準備
執行/turtlesim
和/teleop_turtle
兩個節點,分別在兩個終端執行:
ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key
此時,出現視窗:
2.ros2 param list
為了檢視節點具有那些引數,可以執行:
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視窗的背景顏色,下面對此進行設定。
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
是一個整數值。
4.ros2 param set
為了改變引數值,可以使用:
ros2 param set <node_name> <parameter_name> <value>
改變turtlesim
的背景顏色:
ros2 param set /turtlesim background_r 150
此時,終端返回:
Set parameter successful
並且turtlesim
的背景顏色發生改變:
使用set
命令設定引數只會在當前會話中更改它們,而不是永久更改。但是,可以儲存設定,並在下次啟動節點時重新載入它們。
5.ros2 param dump
可以“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
如果將來用相同的引數重新載入節點,轉儲引數將非常有用。
6.載入引數檔案
要使用儲存的引數值啟動節點,可以使用:
ros2 run <package_name> <executable_name> --ros-args --params-file <file_name>
以啟動turtlesim
為例:
ros2 run turtlesim turtlesim_node --ros-args --params-file ./turtlesim.yaml
此時,出現視窗:
7.總結
節點有引數來定義它們的預設配置值,可以從命令列獲取和設定引數值,還可以將引數設定儲存到一個檔案中,以便在將來的使用中重新載入。
如果給您帶來幫助,希望能給點個關注,以後還會陸續更新有關機器人的內容,點個關注不迷路~歡迎大家一起交流學習。
都看到這了,點個推薦再走吧~
未經允許,禁止轉載。