服務(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