理解ROS服務和參數

服務(services)是節點之間通訊的另一種方式。服務允許節點發送請求(request) 並獲得一個響應(response)

rosservice list,列出當前的服務

 rosservice type clear 查看clear服務的類型。
clear類型是std_srvs/Empty,這種表示clear不需要發送參數,也沒有接收的響應。
rosservice call clear 調用clear命令,清除畫板 如果正在運動過程中清除,會報一個異常

root@ben-virtual-machine:~# rosservice call clear

Unhandled exception in thread started by <bound method Thread.__bootstrap of <Thread(Thread-4, stopped daemon 140226454353664)>>
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 774, in __bootstrap
    self.__bootstrap_inner()
  File "/usr/lib/python2.7/threading.py", line 814, in __bootstrap_inner
    (self.name, _format_exc()))
  File "/usr/lib/python2.7/traceback.py", line 241, in format_exc
    etype, value, tb = sys.exc_info()
AttributeError: 'NoneType' object has no attribute 'exc_info'
 

生成一個新烏龜,在對應的位置上,名字默認

rosservice call spawn 2 2 0.2 ""

 

rosparam使得我們能夠存儲並操作ROS 參數服務器(Parameter Server)上的數據。

參數服務器能夠存儲整型、浮點、布爾、字符串、字典和列表等數據類型。rosparam使用YAML標記語言的語法。一般而言,YAML的表述很自然:1 是整型, 1.0是浮點型, one是字符串, true是布爾, [1, 2, 3]是整型列表, {a: b, c: d}是字典. rosparam有很多指令可以用來操作參數,如下所示:

使用方法:

rosparam set            設置參數
rosparam get            獲取參數
rosparam load           從文件讀取參數
rosparam dump           向文件中寫入參數
rosparam delete         刪除參數
rosparam list           列出參數名
rosparam get / 可以顯示所有參數 

存儲參數到yaml格式的文件中
rosparam dump params.yaml

你甚至可以將yaml文件重載入新的命名空間,比如說copy空間:

$ rosparam load params.yaml copy

 

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