日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

理解ROS服务和参数---ROS学习第6篇

發布時間:2025/4/16 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 理解ROS服务和参数---ROS学习第6篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 1.ROS服務
  • 2.使用rosservice
    • 2.1 rosservice list
    • 2.2 rosservice type
    • 2.3 rosservice call
  • 3. 使用rosparam
    • 3.1 rosparam list
    • 3.2 rosparam set和rosparam get
    • 3.3 rosparam dump和rosparam load

1.ROS服務

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

2.使用rosservice

rosservice可以很容易地通過服務附加到ROS客戶端/服務器框架上。rosservice有許多可用于服務的命令,如下所示:

rosservice list 輸出活躍服務的信息
rosservice call 用給定的參數調用服務
rosservice type 輸出服務的類型
rosservice find 按服務的類型查找服務
rosservice uri 輸出服務的ROSRPC uri

2.1 rosservice list

$ rosservice list

list命令顯示turtlesim接待您提供9個服務:reset, clear, spawn, kill, turtle1/set_pen, /turtle1/teleport_absolute, /turtle1/teleport_relative, turtlesim/get_loggers, turtlesim/set_logger_level。同時還有兩個與rosout節點相關的服務:/rosout/get_loggers和/rosout/set_logger_level。

我們使用rosservice type命令進一步查看clear(清除)服務

2.2 rosservice type

用法:

rosservice type [service]

查看clear服務的類型

kandi@ubuntu:~$ rosservice type /clear
std_srvs/Empty

服務的類型為Empty(空),這表明調用這個服務時不需要參數(即,它在發出請求時不發送數據,在接收響應時也不接收數據)。下面我們使用rosservice call命令調用此服務。

2.3 rosservice call

用法:

rosservice call [service] [args]

因為clear服務的類型是Empty,所以調用時無需帶參數

$ rosservice call /clear

跟想象的一樣,它清楚了turtlesim_node背景上的運動軌跡

我們看看服務具有參數的情況。查看spawn(產卵)服務的信息:

kandi@ubuntu:~$ rosservice type /spawn | rossrv show


這個服務讓我們可以在給定的位置和角度生成一只新的烏龜。name字段是可選的,這里我們不設具體的名字,讓turtlesim自動創造一個

kandi@ubuntu:~$ rosservice call /spawn 2 2 0.2 “”
name: “turtle2”
kandi@ubuntu:~$ rosservice call /spawn 10 10 0.2 “”
name: “turtle3”

3. 使用rosparam

rosparam能讓我們在ROS參數服務器(Parameter Server)上存儲和操作數據。參數服務器能夠存儲整形(integer)、浮點(float)、布爾(boolean)、字典(dictionaries)和列表(list)等數據類型。rosparam使用YAML標記語言的語法。一般而言,YAML的表述很自然:1是整形,1.0是浮點型,true是布爾型,[1,2,3]是整形組成的列表,[a:b,c:d]是字典。rosparam有很多命令可以用來操作參數,如下所示:

rosparam set 設置參數
rosparam get 獲取參數
rosparam load 從文件中加載參數
rosparam dump 向文件中轉儲參數
rosparam delete 刪除參數
rosparam list 列出參數名

3.1 rosparam list

kandi@ubuntu:~$ rosparam list
/rosdistro
/roslaunch/uris/host_ubuntu__46587
/rosversion
/run_id
/turtlesim/background_b
/turtlesim/background_g
/turtlesim/background_r
kandi@ubuntu:~$

可以看出turtlesim節點在參數服務器上有3個參數用于設定背景顏色
讓我們使用rosparam set來試著改變一個參數值。

3.2 rosparam set和rosparam get

用法:

rosparam set [param_name]
rosparam get [param_name]

現在我們修改背景顏色的藍色和紅色通道值:

kandi@ubuntu:~$ rosparam get /turtlesim/background_b
255
kandi@ubuntu:~$ rosparam get /turtlesim/background_r
69
kandi@ubuntu:~$ rosparam set /turtlesim/background_b 60
kandi@ubuntu:~$ rosparam get /turtlesim/background_b
60
kandi@ubuntu:~$ rosparam set /turtlesim/background_r 150
kandi@ubuntu:~$ rosservice call /clear

看到的turtlesim如下:

然后我們來查看參數服務器上其他參數的值,獲取背景的綠色通知的值:

kandi@ubuntu:~$ rosparam get /turtlesim/background_g
86

業可以用rosparam get /來顯示參數服務器上的多有內容:

你可能希望將其存儲在一個文件中,以便下次可以重新加載它。這通過rosparam
很容易就可以實現

3.3 rosparam dump和rosparam load

用法:

rosparam dump [file_name] [namespace]
rosparam load [file_name] [namespace]

在這里,我們將所有的參數寫入params.yaml文件:

$ rosparam dump params.yaml

甚至可以將yaml文件重載入新的命名空間,例如copy_turtle:

kandi@ubuntu:~$ rosparam load params.yaml copy_turtle
kandi@ubuntu:~$ rosparam get /copy_turtle/turtlesim/background_b
60

至此,我們已經了解ROS服務和參數的工作原理。

總結

以上是生活随笔為你收集整理的理解ROS服务和参数---ROS学习第6篇的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。