今天寶可夢社群日大當機,眼看2點就要結束了又延長到4點,我就決定不抓了,還是回來寫鐵人賽實在 XD
好的那麼今天又進入新的一個名詞啦,也就是parameter
,依照字面上的意思,就是跟參數有關啦!ros master
底下內建了一個parameter server
,就是用來控管參數的,但是不是一般的參數喔! 他管理的是全域變數,更正確地說,是管理我們希望能隨時調整的一些變數。以我們之前寫過的hello world為例,他每間隔一秒會執行一次print("hello world")
,但如果今天我們不想讓他間隔一秒呢? 如果我希望他可以間隔2秒,或是10秒呢? 那我每次就要重新去修改一次code裡面關於時間間隔的部分,如果是用c++寫的還要重新編譯過才能執行,這樣怎麼想都太不方便啦! 所以才會有這個parameter server
的誕生。
使用rosparam
或rosparam -h
就可以查看有哪些跟parameter server
有關的指令囉:
其中比較常用到的應該就是list、set和get了,因為蠻簡單的,就直接在這邊一起講吧!
ps: 使用的時候要記得先執行roscore
,因為這個parameter server
是建在master
底下的,所以master
要先執行以後才能對parameter server
做控制喔! 雖然我目前看來每個指令都馬跟master
有關,因此不管怎樣先執行roscore
就對了 XD
$ rosparam list
這個指令應該已經用到爛掉了,簡而言之,就是用來看現在有哪些已經建立好的參數啦!
$ rosparam set <parameter_name> <value>
這個指令就是用來建立新參數,或是幫某個參數設定一個新的值,例如我想建立一個可以調整印出hello world
時間間隔的參數,就用這個指令建立一個叫作print_frq
的參數,並將該參數的值設定為10,表示他會以10秒/次的頻率印出hello world
。
可以看到在我設定完以後,使用list就可以看到多了一個/print_frq
的參數。
$ rosparam get <parameter_name>
這個指令可以看到某個特定的參數裡面的值是多少,所以用這個指令去看我們剛建好的/print_frq
,就可以看到他回傳10,也就是我們剛剛設定的值囉!
好的,現在我們已經建立好自己的parameter
囉! 下一篇就來介紹要怎麼在node中使用這些parameter
。