ROS服務和引數

2021-09-28 16:24:08 字數 2472 閱讀 1965

根據小海龜的例子講解ros服務和引數。

首先啟動:roscore

rosrun turtlesim turtlesim_node

rosrun turtlesim turtle_teleop_key

一:ros服務

服務是節點相互通訊的另一種方式。服務允許節點傳送請求並接收響應。

二:rosservice的使用

rosservice list //列出當前的所有服務個數

rosservice call //回應服務

rosservice type / /print service type

rosservice find // find services by service type

rosservice uri //print service rosrpc uri

當我們使用rosservice list命令時,終端的輸出如下:

/clear

/kill

/reset

/rosout/get_loggers

/rosout/set_logger_level

/spawn

/teleop_turtle/get_loggers

/teleop_turtle/set_logger_level

/turtle1/set_pen

/turtle1/teleport_absolute

/turtle1/teleport_relative

/turtlesim/get_loggers

/turtlesim/set_logger_level

接著我們使用rosservice type命令。

rosservice type命令的格式如下:

roservice type [service]

例如:rosservice type /clear

輸出結果為:

txj@txj:~$ rosservice type /clear

std_srvs/empty

可以看出,輸出的服務資料型別是空的,表示當它傳送請求的時候,沒有傳送資料,接收響應的時候,也沒有接收到資料。

下一步,我們使用rosservice call命令

該命令的語法格式為:

rosservice call [service]

例如:rosservice call /clear

輸出結果是,我們發現小海龜的運動軌跡被清除了。

三:使用rosparam

rosparam允許你在ros引數伺服器上儲存和操縱資料。引數服務可以儲存整型、浮點型、布林型、字典和列表等型別的資料。

用法:rosparam set set parameter

rosparam get get parameter

rosparam load load parameters from file

rosparam dump dump parameters to file

rosparam delete delete parameter

rosparam list list parameter names

首先,我們來看一下有哪些引數儲存在引數伺服器上?

rosparam list

輸出的結果為:

txj@txj:~$:rosparam list

/background_b

/background_g

/background_r

/rosdistro

/roslaunch/uris/host_txj__33805

/rosversion

/run_id

可以看出,turtlesim節點有3個引數在引數伺服器上用於設定視窗的背景色,現在我們使用rosparam set來改變乙個引數的值看一下有什麼變化。

rosparam set /background_r 150

上面的命令改變了引數的值,現在我們還需要呼叫/clear服務來使更改的引數值生效。

rosservice call /clear

可以看到小海龜的背景顏色改變了。

我們還可以將引數伺服器上的所有內容轉儲到自命名的檔案中:

rosparam dump params.yaml

params.yaml檔案被儲存在當前終端目錄下。

如果直接開啟檔案改變裡面的引數,然後在終端下執行:rosparam load params.yaml 和rosservice call /clear 可以看到小海龜的背景顏色也是會改變的。

我們還可以將params.yaml檔案的內容載入到新的命名空間:

roaparam load params.yaml copy

接著,我們來獲取新的命名空間中的引數的值:

rosparam get /copy/background_b

輸出結果為:

txj@txj:~$ rosparam get /copy/background_g

86

ROS 服務和引數

2rosservice 24 rosservice find 25 rosservice uri 3rosparam 服務 services 是節點之間通訊的另一種方式。服務允許節點傳送請求 request 並獲得乙個響應 response rosservice可以很輕鬆的使用 ros 客戶端 伺服...

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服務和引數的分析

目錄 準備 ros services 使用rosservice rosservice list 輸出可用服務的資訊 rosservice call 呼叫帶引數的服務 rosservice type 輸出服務型別 rosservice find 依據型別尋找服務find services by ser...