機(jī)器人操作系統(tǒng)ROS原理及應(yīng)用 課件 21 服務(wù)_第1頁(yè)
機(jī)器人操作系統(tǒng)ROS原理及應(yīng)用 課件 21 服務(wù)_第2頁(yè)
機(jī)器人操作系統(tǒng)ROS原理及應(yīng)用 課件 21 服務(wù)_第3頁(yè)
機(jī)器人操作系統(tǒng)ROS原理及應(yīng)用 課件 21 服務(wù)_第4頁(yè)
機(jī)器人操作系統(tǒng)ROS原理及應(yīng)用 課件 21 服務(wù)_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

服務(wù)(service)Service通信

topic是ROS中的一種單向的異步通信方式。有些時(shí)候單向的通信滿足不了通信要求這種情況下,就需要有另外一種請(qǐng)求-響應(yīng)式的通信模型——service(服務(wù))

service方式在通信模型上與topic不同。Service通信是雙向的,它不僅可以發(fā)送消息,同時(shí)還會(huì)有反饋。所以service包括兩部分,一部分是請(qǐng)求方(Clinet)[客戶],另一部分是應(yīng)答方/服務(wù)提供方(Server)。通信時(shí),客戶(Client)發(fā)送一個(gè)request(請(qǐng)求),要等待server處理,然后反饋回一個(gè)reply/response(回復(fù)/應(yīng)答),這樣通過(guò)“請(qǐng)求-應(yīng)答”的機(jī)制完成整個(gè)服務(wù)通信

Service工作原理

service是同步通信方式,所謂同步就是節(jié)點(diǎn)A(請(qǐng)求方)發(fā)布請(qǐng)求后會(huì)在原地等待響應(yīng),直到節(jié)點(diǎn)B(服務(wù)方)處理完了請(qǐng)求并且完成了響應(yīng),節(jié)點(diǎn)A才會(huì)繼續(xù)執(zhí)行。節(jié)點(diǎn)A在等待響應(yīng)的過(guò)程中是處于阻塞狀態(tài)。這樣的通信模型沒(méi)有頻繁的消息傳遞,沒(méi)有沖突與高系統(tǒng)資源的占用,只有接受請(qǐng)求才執(zhí)行服務(wù),簡(jiǎn)單高效

Service工作原理

Service與topic異同遠(yuǎn)程過(guò)程調(diào)用(RemoteProcedureCall,RPC),可以簡(jiǎn)單通俗的理解為在一個(gè)進(jìn)程里調(diào)用另一個(gè)進(jìn)程的函數(shù)Service工作原理

1、使用命令rosservice2、編寫client/server程序server

rosservice命令作用rosservicelist列出所有服務(wù)rosserviceinfo[服務(wù)名]查看一個(gè)服務(wù)的數(shù)據(jù)類型rosservicecall[服務(wù)名]

[參數(shù)]命令行調(diào)用服務(wù)rosservice相關(guān)命令作用rossrvshow[服務(wù)數(shù)據(jù)類型]查看服務(wù)的數(shù)據(jù)類型構(gòu)成rosnodeinfo[節(jié)點(diǎn)名]查看特點(diǎn)節(jié)點(diǎn)提供的服務(wù)、話題等信息Service的使用方式

查看烏龜節(jié)點(diǎn)服務(wù)、話題信息

rosnodeinfo/turtlesim

發(fā)布了3個(gè)topic訂閱1個(gè)topic提供的服務(wù)了解海龜?shù)墓?jié)點(diǎn)信息

rosservicelist列出所有服務(wù)(包含仿真海龜提供的服務(wù))

清除仿真烏龜軌跡殺烏龜復(fù)位/重置烏龜生成一個(gè)新烏龜設(shè)置軌跡的顏色、寬度移動(dòng)烏龜?shù)街付ㄗ鴺?biāo)和朝向通過(guò)設(shè)置線速度和角度移動(dòng)烏龜了解海龜節(jié)點(diǎn)提供的Service rosserviceinfo[服務(wù)名]提供服務(wù)的節(jié)點(diǎn)服務(wù)的數(shù)據(jù)類型調(diào)用該服務(wù)需要的參數(shù)查看服務(wù)信息(數(shù)據(jù)類型與參數(shù))

rossrvshow[類型名]查看服務(wù)的數(shù)據(jù)類型定義

調(diào)用服務(wù)(無(wú)參數(shù))1、清除軌跡rosservicecall

/clear

調(diào)用服務(wù)示例1 調(diào)用服務(wù)(無(wú)參數(shù))2、重置復(fù)位rosservicecall

/reset

調(diào)用服務(wù)示例2

調(diào)用服務(wù)(有參數(shù))3、生成新烏龜rosservicecall

/spawn550turtle2

先輸命令rosservicecall/spawn然后按TAB自動(dòng)補(bǔ)全參數(shù)格式然后移動(dòng)光標(biāo)輸入?yún)?shù)值

移動(dòng)光標(biāo),輸入服務(wù)調(diào)用命令的各個(gè)參數(shù)值調(diào)用服務(wù)生成新烏龜,坐標(biāo)為(5,5),朝向0,烏龜名稱為“turtle2”

注意:冒號(hào)后有空格方法一:直接輸入命令方法二:使用TAB鍵補(bǔ)全調(diào)用服務(wù)示例3

調(diào)用服務(wù)(有參數(shù))4、殺烏龜rosservicecall

/killturtle1

先輸命令rosservicecall/kill然后按TAB自動(dòng)補(bǔ)全參數(shù)格式

移動(dòng)光標(biāo),輸入要?dú)⒌舻臑觚斆畹拿Qturtle1冒號(hào)后有空格方法一:直接輸入命令方法二:使用TAB鍵補(bǔ)全調(diào)用服務(wù)示例4

調(diào)用服務(wù)(有參數(shù))5、設(shè)置軌跡的顏色、寬度rosservicecall/turtle1/set_pen{255,0,0,5,0}先輸命令rosservicecall/kill然后按TAB自動(dòng)補(bǔ)全參數(shù)格式

移動(dòng)光標(biāo),輸入要設(shè)置的顏色和寬度冒號(hào)后有空格方法二:使用TAB鍵補(bǔ)全調(diào)用服務(wù)設(shè)置軌跡線顏色為紅色、寬度為5方法一:直接輸入命令,參數(shù)用花括號(hào)包含,逗號(hào)分隔調(diào)用服務(wù)示例5

調(diào)用服務(wù)(有參數(shù))6、移動(dòng)烏龜?shù)街付ㄗ鴺?biāo)和朝向

rosservicecall/turtle1/teleport_absolute{10,10,1.57}移動(dòng)光標(biāo),輸入要設(shè)置的坐標(biāo)和朝向冒號(hào)后有空格方法二:使用TAB鍵補(bǔ)全調(diào)用服務(wù)移動(dòng)烏龜?shù)剑?0,10),朝向?yàn)?0°方法一:直接輸入命令,參數(shù)用花括號(hào)包含,逗號(hào)分隔調(diào)用服務(wù)示例6

調(diào)用服務(wù)(有參數(shù))7、設(shè)置線速度、角度移動(dòng)烏龜rosservicecall/turtle1/teleport_relative{5,1.57}移動(dòng)光標(biāo),輸入要設(shè)置的線速度和角度冒號(hào)后有空格技巧:使用TAB鍵補(bǔ)全方法一:直接輸入命令,參數(shù)用花括號(hào)包含,逗號(hào)分隔調(diào)用服務(wù)示例7

使用rostopic、rosservice命令繪制以下圖形

調(diào)用服務(wù)示例8:繪制笑臉

使用rostopic命令繪制以下圖形分析:整個(gè)圖形由不連續(xù)的幾段圖形構(gòu)成,需要控制烏龜分別繪制。繪制完成其中一段后,殺掉烏龜,然后在下一段需要繪制圖形的坐標(biāo)點(diǎn)生成一只新的烏龜繪制相應(yīng)的圖形,直至全部圖形繪制完成。A(5,5)O(5,7)B(4,8)C(6

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論