ROS實踐入門(四)使用服務與引數伺服器

2021-09-27 10:32:48 字數 2698 閱讀 8745

****:ziyuanw#foxmail.com(#換成@)

除了上篇文章中節點之間通過訊息通訊之外,服務是使節點之間相互通訊的另一種方法。服務允許節點傳送請求和接收響應。

命令工具:

rosservice [parameter]
可接受引數:

①rosservice  list:列出活動服務

②rosservice  call/service:根據命令列引數呼叫服務

③rosservice  find msg-type:根據服務型別查詢服務

④rosservice  info /service:輸出服務資訊

⑤rosservice  args/service:輸出服務引數

⑥rosservice  type/service:輸出服務型別

⑦rosservice  uri/service:輸出rosrpc uri 服務

同樣以小海龜案例做演示:

開啟ctrl+shift+t兩個新終端,執行小海龜案例:

roscore
rosrun turtlesim turtlesim_node
ctrl+shift+t開啟第三個終端,鍵盤方向鍵控制小海龜移動:

rosrun turtlesim turtle_teleop_key
ctrl+shift+t開啟第四個終端,檢視服務列表:

rosservice type /clear
呼叫服務:

rosservice call /clear
會發現剛才小海龜的移動軌跡線被清除了。

檢視服務型別:

rosservice type /spawn
檢視訊息引數:

rossrv show turtlesim/spawn
呼叫服務:在不同方向的另外乙個位置建立另外乙隻名為"my_turtle"的小海龜。

rosservice call /spawn 4 4 0.4 "my_turtle"
儲存著所有當前工作空間節點均可訪問的資料。ros中使用rosparam工具來對其進行管理。

rosparam [param]
可用引數如下:①rosparam  list:列出所有引數

②rosparam  get  /:獲取引數值《預設後獲得所有引數值》

③rosparam   set parameter value:設定引數值

④rosparam  load file:從檔案載入引數

⑤rosparam  dump [filename]:將引數轉儲到檔案

⑥rosparam  delete parameter:刪除引數

檢視引數列表:

rosparam list
檢視所有引數值:

設定畫布背景色r通道為255:

rosparam set /background_r 255
執行修改了引數的值,需要呼叫清除服務使得修改後的引數生效:

儲存引數伺服器:

rosparam dump myparam.yaml
載入資料引數檔案:

rosparam load [file_name] [namespace]
載入資料引數到命名空間(我這裡起名為new):

rosparam load myparam.yaml new
檢視新的引數空間中引數(因為載入的引數來自我儲存的myparam.yaml,所以引數值相同):

至此,使用服務與引數伺服器基本完畢。

ROS入門 1 10 理解ROS服務和引數

目錄 ros services 使用rosservice rosservice list rosservice type rosservice call using rosparam rosparam list rosparam set and rosparam get rosparam dump ...

初探ros 六 服務與引數

服務是節點之間可以相互通訊的另一種方式。服務允許節點傳送請求並接收響應。rosservice可以通過服務輕鬆附加到ros的客戶端 服務框架。rosservice有許多可用於服務的命令,如下所示 rosservice list 列印資訊活動服務 rosservice call 使用所提供的引數呼叫服務...

ROS引數伺服器(引數使用詳細介紹)

引數伺服器是可通過網路訪問的共享的多變數字典。它是節點儲存引數的地方 用於配置引數 全域性共享引數。引數伺服器使用網際網路傳輸,在節點管理器中執行,實現整個通訊過程。它使用xmlrpc資料型別為引數賦值,包括以下型別 32位整數 布林值 字串 雙精度浮點 iso 8601日期 列表 list 基於6...