国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【ROS】如何讓ROS中節(jié)點(diǎn)獲取數(shù)據(jù) III --參數(shù)服務(wù)器通信及ros常用工具指令介紹

這篇具有很好參考價(jià)值的文章主要介紹了【ROS】如何讓ROS中節(jié)點(diǎn)獲取數(shù)據(jù) III --參數(shù)服務(wù)器通信及ros常用工具指令介紹。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

【ROS】如何讓ROS中節(jié)點(diǎn)獲取數(shù)據(jù) III --參數(shù)服務(wù)器通信及ros常用工具指令介紹

Halo,這里是Ppeua。平時(shí)主要更新C語言,C++,數(shù)據(jù)結(jié)構(gòu)算法…感興趣就關(guān)注我吧!你定不會(huì)失望。


【ROS】如何讓ROS中節(jié)點(diǎn)獲取數(shù)據(jù) III --參數(shù)服務(wù)器通信及ros常用工具指令介紹

0.參數(shù)服務(wù)器概念

相較于之前的通信模型,參數(shù)服務(wù)器是最為簡(jiǎn)單的。在之前的模型中,ROSMASTER都是扮演一個(gè)幫二者連接在一起的橋梁。
【ROS】如何讓ROS中節(jié)點(diǎn)獲取數(shù)據(jù) III --參數(shù)服務(wù)器通信及ros常用工具指令介紹
而在參數(shù)服務(wù)器中:ROSMASTER變?yōu)榱艘粋€(gè)存儲(chǔ)消息的容器,供使用者自行完成增刪查改的操作.

其設(shè)計(jì)僅為存儲(chǔ)非二進(jìn)制的簡(jiǎn)單數(shù)據(jù),若需要高性能操作,建議采用其他通信方式.

容器中可存儲(chǔ)的參數(shù)類型:

  1. 32-bit integers
  2. booleans
  3. strings
  4. doubles
  5. iso8601 dates
  6. lists
  7. base64-encoded binary data
  8. 字典

1.參數(shù)服務(wù)器增加/修改參數(shù):

  1. 初始化節(jié)點(diǎn)
  2. 使用set_param函數(shù)進(jìn)行增加/修改

set_param有點(diǎn)類似hash:若參數(shù)服務(wù)器中無這個(gè)值,則增加,若有則修改為最新的值

import rospy

rospy.init_node("param")

#設(shè)置整形
rospy.set_param("p_int",10)

#設(shè)置浮點(diǎn)型
rospy.set_param("p_double",3.14)

#設(shè)置bool值
rospy.set_param("p_bool",True)

#設(shè)置string
rospy.set_param("p_string","hello python")

#設(shè)置List
rospy.set_param("p_list",["hello","haha","xixi"])

#設(shè)置字典
rospy.set_param("p_dict",{"name":"hulu","age":8})

【ROS】如何讓ROS中節(jié)點(diǎn)獲取數(shù)據(jù) III --參數(shù)服務(wù)器通信及ros常用工具指令介紹

2.參數(shù)服務(wù)器查找參數(shù)

常用的有以下幾個(gè)函數(shù):

  1. get_param(key,value)
    當(dāng)鍵存在的時(shí)候返回對(duì)應(yīng)值,若不存在則返回默認(rèn)值
    get_param_cached(key,value)
    與上方用法相同,只不過這個(gè)效率更高,其會(huì)現(xiàn)在緩存里查找,類似于操作系統(tǒng)內(nèi)存中快表的作用
    radius2=rospy.get_param_cached("radius_p",0.5)
    
    radius=rospy.get_param("radius_p",0.5)
    
  2. get_param_names()
    獲取當(dāng)前參數(shù)列表中所有的參數(shù)名并返回
    names=rospy.get_param_names()
    
    for name in names:
    
     print(name)
    
  3. has_param(key)
    判斷參數(shù)列表中是否有某一個(gè)參數(shù),
    返回Bool值
    flag1=rospy.has_param("radius_p")
    
     if flag1:
    
         print("存在")
    
     else :
    
         print("不存在")
    
  4. search_param(key)
    尋找是否有這個(gè)消息,若無則返回None,若有則返回這個(gè)key
    key=rospy.search_param("radius_p")
    
    print(key)
    

3.參數(shù)服務(wù)器刪除參數(shù):

  1. delete_param(key)
    刪除指定的key

較為簡(jiǎn)單就不演示用法了,之后會(huì)有一個(gè)實(shí)戰(zhàn)項(xiàng)目涉及

4.常用指令

會(huì)使用到之前配置使用的話題通信與服務(wù)通信.

使用這些命令可以在機(jī)器人運(yùn)行時(shí)動(dòng)態(tài)的查看各節(jié)點(diǎn)之間的關(guān)系及消息載體

  • rosnode:節(jié)點(diǎn)
  • rostopic:話題
  • rosservice:服務(wù)
  • rosmsg:msg消息
  • rossrv:srv消息
  • rosparam:操作參數(shù)服務(wù)器

4.1 rosnode

我們先啟動(dòng)下之前配置好的自定義msg的sub與pub節(jié)點(diǎn),具體配置可以查看這篇文章話題通信案例

rosrun lesson2 demo02_pub.py
rosrun lesson2 demo02_sub.py

【ROS】如何讓ROS中節(jié)點(diǎn)獲取數(shù)據(jù) III --參數(shù)服務(wù)器通信及ros常用工具指令介紹

直接使用rosnode可以查看參數(shù)列表
【ROS】如何讓ROS中節(jié)點(diǎn)獲取數(shù)據(jù) III --參數(shù)服務(wù)器通信及ros常用工具指令介紹

  1. rosnode ping 測(cè)試到節(jié)點(diǎn)的連接狀態(tài)

    rosnode ping /person_pub
    

    這里/pub_person為發(fā)送消息的節(jié)點(diǎn),僅為一個(gè)演示
    【ROS】如何讓ROS中節(jié)點(diǎn)獲取數(shù)據(jù) III --參數(shù)服務(wù)器通信及ros常用工具指令介紹

  2. rosnode list 列出活動(dòng)節(jié)點(diǎn)

    rosnode list
    

    使用這個(gè)命令可以查看當(dāng)前活動(dòng)的節(jié)點(diǎn)
    【ROS】如何讓ROS中節(jié)點(diǎn)獲取數(shù)據(jù) III --參數(shù)服務(wù)器通信及ros常用工具指令介紹

  3. rosnode info 打印節(jié)點(diǎn)信息

    ronode info /person_pub
    ronode info /person_sub
    

    這里打印出了發(fā)送與接受節(jié)點(diǎn)的信息,包含了以下內(nèi)容

    1. 節(jié)點(diǎn)名稱
    2. 使用話題
    3. 接受/發(fā)送方

    合理的使用可以更方便理清節(jié)點(diǎn)間的關(guān)系

【ROS】如何讓ROS中節(jié)點(diǎn)獲取數(shù)據(jù) III --參數(shù)服務(wù)器通信及ros常用工具指令介紹

  1. rosnode machine 列出指定設(shè)備上節(jié)點(diǎn)
  2. rosnode kill 殺死某個(gè)節(jié)點(diǎn)
    rosnode kill /sub_person
    
    kill了訂閱節(jié)點(diǎn)
  3. rosnode cleanup 清除不可連接的節(jié)點(diǎn)
    有時(shí)ctrl+c之后會(huì)導(dǎo)致部分節(jié)點(diǎn)不可使用,但仍在list中,此時(shí)可以用這個(gè)指令刷新一下

4.2 rostopic

先啟動(dòng)上方使用的兩個(gè)節(jié)點(diǎn)
直接在終端中輸入rostopic可以查看所有可以使用的指令
【ROS】如何讓ROS中節(jié)點(diǎn)獲取數(shù)據(jù) III --參數(shù)服務(wù)器通信及ros常用工具指令介紹

  1. rostopic list 顯示當(dāng)前在使用的所有話題

    rostopic list
    

    【ROS】如何讓ROS中節(jié)點(diǎn)獲取數(shù)據(jù) III --參數(shù)服務(wù)器通信及ros常用工具指令介紹

    例如這里使用的話題是/che

  2. rostopic echo扮演接收方的工作,可以在屏幕上打印出話題信息

    rostopic echo topic
    

    【ROS】如何讓ROS中節(jié)點(diǎn)獲取數(shù)據(jù) III --參數(shù)服務(wù)器通信及ros常用工具指令介紹

    例如這里可以驗(yàn)證發(fā)布方的信息是否正確

  3. rostopic info/type兩個(gè)用處相同,顯示話題通信的消息類型,其中info包含了type類型

    rostopic info topic
    

    例如這里使用的是Person msg消息類型

  4. rostopic find 尋找使用某消息類型的話題

    rostopic find lesson2/Person
    

    【ROS】如何讓ROS中節(jié)點(diǎn)獲取數(shù)據(jù) III --參數(shù)服務(wù)器通信及ros常用工具指令介紹

    例如這里尋找使用lesson2/Person消息類型的話題是什么

  5. rostopic pub 向某一話題發(fā)布消息

    rostopic pub topic
    

    例如這里向訂閱節(jié)點(diǎn)發(fā)布信息

4.3 rosmsg

rosmsg是用于顯示有關(guān) ROS消息類型的 信息的命令行工具
也與上方相同,可以直接輸入rosmsg就會(huì)顯示出可用指令

  1. rosmsg list 列出所有消息類型
    【ROS】如何讓ROS中節(jié)點(diǎn)獲取數(shù)據(jù) III --參數(shù)服務(wù)器通信及ros常用工具指令介紹

  2. rosmsg show / info列出當(dāng)前消息類型中包含的具體類型

    rosmsg show msg
    

    【ROS】如何讓ROS中節(jié)點(diǎn)獲取數(shù)據(jù) III --參數(shù)服務(wù)器通信及ros常用工具指令介紹


  3. rosmsg package列出某個(gè)包下的所有消息

    rosmsg package pack
    

    【ROS】如何讓ROS中節(jié)點(diǎn)獲取數(shù)據(jù) III --參數(shù)服務(wù)器通信及ros常用工具指令介紹

    列出來turtlesim里的所有消息類型

  4. rosmsg packages列出包含某消息的功能包

    rosmsg package pack
    

    列出包含turtlesim/Pose消息類型的所有包
    【ROS】如何讓ROS中節(jié)點(diǎn)獲取數(shù)據(jù) III --參數(shù)服務(wù)器通信及ros常用工具指令介紹

4.4 rosservice

用來查詢相關(guān)服務(wù)信息
我們先啟動(dòng)下之前配置好的自定義srv的server與client節(jié)點(diǎn),具體配置可以查看這篇文章

rosrun lesson3_srv demo01_client.py
rosrun lesson3_srv demo01_server.py

在終端輸入rosservice也可以看到參數(shù)列表
【ROS】如何讓ROS中節(jié)點(diǎn)獲取數(shù)據(jù) III --參數(shù)服務(wù)器通信及ros常用工具指令介紹

  1. rosservice list列出參數(shù)服務(wù)列表
    【ROS】如何讓ROS中節(jié)點(diǎn)獲取數(shù)據(jù) III --參數(shù)服務(wù)器通信及ros常用工具指令介紹

  2. rosservice call調(diào)用服務(wù)
    這里調(diào)用/sum2 tab補(bǔ)齊 傳入兩個(gè)參數(shù)

    rosservice call /sum2
    

    【ROS】如何讓ROS中節(jié)點(diǎn)獲取數(shù)據(jù) III --參數(shù)服務(wù)器通信及ros常用工具指令介紹

  3. rosservice args查看srv消息具體參數(shù)

    rosservice args /sum2
    

    【ROS】如何讓ROS中節(jié)點(diǎn)獲取數(shù)據(jù) III --參數(shù)服務(wù)器通信及ros常用工具指令介紹

其余使用方法和上面相同

4.5 rossrv

與rosmsg差不多,也是查看srv的具體類型
【ROS】如何讓ROS中節(jié)點(diǎn)獲取數(shù)據(jù) III --參數(shù)服務(wù)器通信及ros常用工具指令介紹

4.6 rosparam

我們先啟動(dòng)下turtle 方便驗(yàn)證
【ROS】如何讓ROS中節(jié)點(diǎn)獲取數(shù)據(jù) III --參數(shù)服務(wù)器通信及ros常用工具指令介紹

rosrun turtlesim turtlesim_node
  1. rosparam list列出參數(shù)列表
    【ROS】如何讓ROS中節(jié)點(diǎn)獲取數(shù)據(jù) III --參數(shù)服務(wù)器通信及ros常用工具指令介紹

  2. rosparam set設(shè)置具體參數(shù)數(shù)值

    rosparam set 參數(shù)類型
    

    【ROS】如何讓ROS中節(jié)點(diǎn)獲取數(shù)據(jù) III --參數(shù)服務(wù)器通信及ros常用工具指令介紹

  3. rosparam get獲得具體參數(shù)數(shù)值

  4. rosparam delete刪除參數(shù)

  5. rosparam load將參數(shù)加載到磁盤中

  6. rosparam dump從磁盤中加載參數(shù)文章來源地址http://www.zghlxwxcb.cn/news/detail-443436.html

至此參數(shù)服務(wù)器通信及ros常用工具指令介紹結(jié)束

到了這里,關(guān)于【ROS】如何讓ROS中節(jié)點(diǎn)獲取數(shù)據(jù) III --參數(shù)服務(wù)器通信及ros常用工具指令介紹的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • ROS-參數(shù)服務(wù)器(python)方向的基本實(shí)現(xiàn)流程及代碼演示

    ROS-參數(shù)服務(wù)器(python)方向的基本實(shí)現(xiàn)流程及代碼演示

    首先是創(chuàng)造工作空間等等這里就不再贅述,下文使用的工作空間叫 ilove02_01_ws;功能包名字叫做:ilovezero2。 參數(shù)服務(wù)器的一套簡(jiǎn)單流程就是圍繞:增刪改查;這四個(gè)字組成的。 其中由增改這兩個(gè)字組成一個(gè)主體文件,后面就叫它為 set文件。實(shí)行查與刪功能的文件后面我就分

    2024年01月21日
    瀏覽(20)
  • ajax 如何從服務(wù)器上獲取數(shù)據(jù)?

    ajax 如何從服務(wù)器上獲取數(shù)據(jù)?

    在Web開發(fā)中,AJAX(Asynchronous JavaScript and XML)是一種常用的技術(shù),用于在不重新加載整個(gè)頁面的情況下,從服務(wù)器獲取數(shù)據(jù)并更新網(wǎng)頁的某一部分。使用AJAX,你可以創(chuàng)建異步請(qǐng)求,從而提供更快的響應(yīng)和更好的用戶體驗(yàn)。 要使用AJAX從服務(wù)器獲取數(shù)據(jù),你需要執(zhí)行以下步驟:

    2024年02月21日
    瀏覽(20)
  • 【ROS】如何讓ROS中節(jié)點(diǎn)實(shí)現(xiàn)數(shù)據(jù)交換Ⅰ--ROS話題通信

    【ROS】如何讓ROS中節(jié)點(diǎn)實(shí)現(xiàn)數(shù)據(jù)交換Ⅰ--ROS話題通信

    Halo,這里是Ppeua。平時(shí)主要更新C語言,C++,數(shù)據(jù)結(jié)構(gòu)算法…感興趣就關(guān)注我吧!你定不會(huì)失望。 roscore 啟動(dòng)ros核心節(jié)點(diǎn) roscd 將工作空間切換到指定ros功能包 catkin_create_pkg 將工作空間切換到指定ros功能包 ** rqt_graph 啟動(dòng)節(jié)點(diǎn)間的關(guān)系圖 rosrun 包名 節(jié)點(diǎn)名稱 啟動(dòng)節(jié)點(diǎn) ( rosrun

    2024年02月02日
    瀏覽(29)
  • 怎么在ros中怎么在一個(gè)節(jié)點(diǎn)總把一個(gè)矩陣保存為一個(gè)參數(shù)到參數(shù)管理器中,然后在另一個(gè)節(jié)點(diǎn)中讀取這個(gè)參數(shù)

    在ROS中,可以通過Parameter Server在節(jié)點(diǎn)之間共享參數(shù)。要在一個(gè)節(jié)點(diǎn)中保存矩陣作為參數(shù),可以使用set_param()函數(shù): 這里我們把NumPy矩陣轉(zhuǎn)換成列表后保存。在另一個(gè)節(jié)點(diǎn)中讀取這個(gè)參數(shù): get_param()會(huì)返回保存的參數(shù),我們把它重新轉(zhuǎn)換成NumPy矩陣。這樣就可以通過Parameter Server在ROS節(jié)

    2024年02月14日
    瀏覽(20)
  • 邊緣計(jì)算節(jié)點(diǎn)BEC典型實(shí)踐:如何快速上手PC-Farm服務(wù)器?

    邊緣計(jì)算節(jié)點(diǎn)BEC典型實(shí)踐:如何快速上手PC-Farm服務(wù)器?

    百度智能云邊緣計(jì)算節(jié)點(diǎn)BEC(Baidu Edge Computing)基于運(yùn)營商邊緣節(jié)點(diǎn)和網(wǎng)絡(luò)構(gòu)建,一站式提供靠近終端用戶的彈性計(jì)算資源。邊緣計(jì)算節(jié)點(diǎn)在海外覆蓋五大洲,在國內(nèi)覆蓋全國七大區(qū)、三大運(yùn)營商。BEC通過就近計(jì)算和處理,大幅度優(yōu)化響應(yīng)時(shí)延、降低中心帶寬成本。 通過創(chuàng)建

    2024年02月12日
    瀏覽(16)
  • JAVA如何獲取服務(wù)器ip

    該方法返回的是默認(rèn)的本地地址,可能是服務(wù)器上某個(gè)網(wǎng)絡(luò)接口的IP地址,但不一定是我們期望獲取的IP地址。 為了獲取正確的IP地址,可以使用其他方法來獲取服務(wù)器上所有的網(wǎng)絡(luò)接口,并遍歷每個(gè)網(wǎng)絡(luò)接口來獲取對(duì)應(yīng)的IP地址。可以使用 NetworkInterface 類來實(shí)現(xiàn)此功能,如下

    2024年02月07日
    瀏覽(22)
  • 磐維數(shù)據(jù)庫panweidb單節(jié)點(diǎn)服務(wù)器在centos7.9安裝(研發(fā)環(huán)境)

    磐維數(shù)據(jù)庫panweidb單節(jié)點(diǎn)服務(wù)器在centos7.9安裝(研發(fā)環(huán)境)

    使用omm用戶登錄到openGauss包安裝的主機(jī),解壓openGauss壓縮包到安裝目錄(假定安裝目錄為/opt/panweidb/soft,請(qǐng)用實(shí)際值替換)。 假定解壓包的路徑為/opt/panweidb/soft,進(jìn)入解壓后目錄下的simpleInstall。 執(zhí)行install.sh腳本安裝openGauss。 上述命令中,-w是指初始化數(shù)據(jù)庫密碼(gs_initdb指

    2024年02月06日
    瀏覽(40)
  • ZooKeeper技術(shù)細(xì)節(jié)_zookeeper and 服務(wù)器 and 客戶端 and 數(shù)據(jù)節(jié)點(diǎn)

    ZooKeeper技術(shù)細(xì)節(jié)_zookeeper and 服務(wù)器 and 客戶端 and 數(shù)據(jù)節(jié)點(diǎn)

    方法入?yún)ventType指定觸發(fā)事件的類型:data變更還是childNodes變更等。 將KeeperState、EventType、Path new 到WatchedEvent實(shí)例中 根據(jù)Path路徑從watchTable中找到所有對(duì)應(yīng)的Watcher,為空continue,不為空時(shí)再iterator.remove掉,這樣Watcher觸發(fā)一次就失效了 從Map中找到的所有Watcher執(zhí)行一遍其process方

    2024年04月22日
    瀏覽(17)
  • 如何查看服務(wù)器各項(xiàng)指標(biāo)的配置-具體指令-服務(wù)器配置參數(shù)詳解-大模型訓(xùn)練推薦配置單服務(wù)器和服務(wù)器之間顯卡直通疊加擴(kuò)容

    要查看服務(wù)器的各項(xiàng)組件配置,您可以執(zhí)行以下步驟: 操作系統(tǒng)信息 : 使用命令 uname -a (Linux/Unix)或 systeminfo (Windows)來查看操作系統(tǒng)的版本和內(nèi)核信息。 CPU 信息 : 在Linux/Unix系統(tǒng)上,運(yùn)行 lscpu 命令來查看CPU的詳細(xì)信息。 在Windows系統(tǒng)上,您可以使用 wmic cpu get caption 命

    2024年02月09日
    瀏覽(20)
  • nestjs:nginx反向代理服務(wù)器后如何獲取請(qǐng)求的ip地址

    問題: ? ? ? ? 如題 參考: ????????nodejs+nginx獲取真實(shí)ip-騰訊云開發(fā)者社區(qū)-騰訊云 ????????「轉(zhuǎn)」從限流談到偽造 IP nginx remote_addr ? ? ? ?? 解決辦法: 1.設(shè)置nginx ? ? ? ? 對(duì)于代理部分,對(duì)http header添加Host、X-Real-IP、X-Forwarded-For(最重要) ???????? 2.nestjs使用

    2024年02月13日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包