精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

ROS中XMLRPC是什么

麥辣雞腿堡 ? 來源:古月居 ? 作者:古月居 ? 2023-09-14 17:40 ? 次閱讀

XMLRPC是什么?

關于ROS節點建立連接的技術細節,官方文檔說的非常簡單,在這里ROS Technical Overview。沒有基礎的同學看這個介紹必然還是不懂。

在ROS中,節點與節點之間的通信依靠節點管理器(master)牽線搭橋。

master像一個中介,它介紹節點們互相認識。一旦節點們認識了以后,master就完成自己的任務了,它就不再摻和了。

這也是為什么你啟動節點后再殺死master,節點之間的通信依然保持正常的原因。

使用過電驢和迅雷而且研究過BitTorrent的同學對master的工作方式應該很熟悉,master就相當于Tracker服務器,它存儲著其它節點的信息

我們每次下載之前都會查詢Tracker服務器,找到有電影資源的節點,然后就可以與它們建立連接并開始下載電影了。

那么master是怎么給節點牽線搭橋的呢?ROS使用了一種叫XMLRPC的方式實現這個功能。

XMLRPC中的RPC的意思是遠程過程調用(Remote Procedure Call)。

簡單來說,遠程過程調用的意思就是一個計算機中的程序(在我們這就是節點啦)可以調用另一個計算機中的函數,只要這兩個計算機在一個網絡中。

這是一種聽上去很高大上的功能,它能讓節點去訪問網絡中另一臺計算機上的程序資源。

XMLRPC中的XML我們在1.1節講消息序列化時提到了,它就是一種數據表示方式而已。

所以合起來,XMLRPC的意思就是把由XML表示的數據發送給其它計算機上的程序運行。

運行后返回的結果仍然以XML格式返回回來,然后我們通過解析它(還原回純粹的數據)就能干別的事了。

想了解更多XMLRPC的細節可以看這個XML-RPC:概述。

舉個例子,一個XMLRPC請求是下面這個樣子的。因為XMLRPC是基于HTTP協議的,所以下面的就是個標準的HTTP報文。

POST / HTTP/1.1
User-Agent: XMLRPC++ 0.7
Host: localhost:11311
Content-Type: text/xml
Content-length: 78


< ?xml version="1.0"? >
< methodCall >
   < methodName >circleArea< /methodName >
      < params >
         < param >
            < value >< double >2.41< /double >< /value >
         < /param >
      < /params >
< /methodCall >

如果你沒學過HTTP協議,看上面的語句可能會感到陌生。《圖解HTTP》這本小書可以讓你快速入門。

HTTP報文比較簡單,它分兩部分,前半部分是頭部,后半部分是主體。

頭部和主體之間用空行分開,這都是HTTP協議規定的標準。

上面主體部分的格式就是XML,見的多了你就熟悉了。

所以,XMLRPC傳遞的消息其實就是主體部分是XML格式的HTTP報文而已,沒什么神秘的。

對應客戶端一個XMLRPC請求,服務器端會執行它并返回一個響應,它也是一個HTTP報文,如下。

它的結構和請求一樣,不再解釋了。所以,XMLRPC跟我們上網瀏覽網頁的過程其實差不多。

HTTP/1.1 200 OK
Date: Sat, 06 Oct 2001 23:20:04 GMT
Server: Apache.1.3.12 (Unix)
Connection: close
Content-Type: text/xml
Content-Length: 124


< ?xml version="1.0"? >
< methodResponse >
   < params >
      < param >
         < value >< double >18.24668429131< /double >< /value >
      < /param >
   < /params >
< /methodResponse >
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 節點
    +關注

    關注

    0

    文章

    217

    瀏覽量

    24386
  • 管理器
    +關注

    關注

    0

    文章

    242

    瀏覽量

    18491
  • ROS
    ROS
    +關注

    關注

    1

    文章

    276

    瀏覽量

    16967
收藏 人收藏

    評論

    相關推薦

    系統鏡像Ubuntu_ROS2ROS2是什么意思,帶有ROS2開發環境嗎?

    請問一下,百度文庫資料里面,下圖所示的系統鏡像Ubuntu_ROS2ROS2是什么意思,帶有ROS2開發環境嗎?與前面4GB版本的鏡像有什么區別?
    發表于 03-01 23:06

    如何在ROS2運行小烏龜呢

    ROS2運行小烏龜,其實主要就是安裝兩個工具,turtlesim和rqt。A: 安裝turtlesim。輸入【sudo apt update】輸入【sudo apt install
    發表于 11-05 06:08

    什么是ROS?如何學習ROS

    什么是ROS?如何學習ROS
    發表于 11-11 07:21

    ROS簡介

    目錄一、ROS簡介1、什么是ROS2、ROS產生、發展和壯大的原因和意義二、在Ubuntu系統,安裝對應版本的ROS軟件1、確定Ubunt
    發表于 12-17 08:24

    怎樣去使用ROS的launch啟動文件呢

    怎樣去使用ROS的launch啟動文件呢?ROS的launch啟動文件該怎樣去使用呢?
    發表于 02-14 07:23

    基于FreeRTOS的micro(微型)ROS

    編輯整理:strongerHuang 作者:Francesca Finocchiaro 關注我的讀者應該有部分是做ROS相關的工作,今天就來分享一個基于FreeRTOS的micro(微型)ROS
    的頭像 發表于 09-25 14:16 ?2320次閱讀
    基于FreeRTOS的micro(微型)<b class='flag-5'>ROS</b>

    ROS的序列化實現

    理解了序列化,再回到ROS。我們發現,ROS沒有采用第三方的序列化工具,而是選擇自己實現,代碼在roscpp_core項目下的roscpp_serialization,見下圖。這個功能涉及的代碼量
    的頭像 發表于 09-14 17:26 ?882次閱讀

    ROS是如何實現XMLRPC

    XMLRPC的C++代碼在下載后的ros_comm-noetic-develutilitiesxmlrpcpp路徑下。 還好,整個工程不算太大。XMLRPC分成客戶端和服務器端兩大部分。 咱們先看
    的頭像 發表于 09-14 17:45 ?690次閱讀

    節點是如何調用XMLRPC

    節點間通過XMLRPC建立連接 在一個節點剛啟動的時候,它并不知道其它節點的存在,更不知道它們在交談什么,當然也就談不上通信。 所以,它要先與master對話查詢其它節點的狀態,然后再與其它節點通信
    的頭像 發表于 09-14 17:52 ?747次閱讀
    節點是如何調用<b class='flag-5'>XMLRPC</b>的

    ROS核心框架介紹

    ROS核心框架 對于第一個問題,我也沒仔細研究過源碼,核心代碼基本由python和C++組成,運用了xmlrpc機制,每個運行的節點可以理解成一個進程。進程間通訊有些是共享內存的方式(比如
    的頭像 發表于 11-21 18:07 ?955次閱讀
    <b class='flag-5'>ROS</b>核心框架介紹

    ROS的TF該如何使用

    TF命令行操作 ROS的TF該如何使用呢?我們先通過兩只小海龜的示例,了解下基于坐標系的一種機器人跟隨算法。 小海龜跟隨例程 這個示例需要我們先安裝相應的功能包,然后就可以通過一個launch文件
    的頭像 發表于 11-22 17:24 ?1062次閱讀
    <b class='flag-5'>ROS</b><b class='flag-5'>中</b>的TF該如何使用

    ros的基本概念是什么

    基本概念: ROS是一個用于在不同進程間匿名的發布、訂閱、傳遞信息的中間件。 ROS2系統的核心部分是ROS網絡(ROS Graph)。 ROS
    的頭像 發表于 11-27 11:21 ?1747次閱讀

    ROS2自帶例程測試

    如果你是一個ROS2的開發者,可能對剛才我們使用的ROS2命令比較熟悉,這時你可能也會產生一個問題:我們之前也安裝了ROS2系統,那ROS2的原生功能還可以正常運行么? 我們再來試一試
    的頭像 發表于 11-28 16:29 ?921次閱讀
    <b class='flag-5'>ROS</b>2<b class='flag-5'>中</b>自帶例程測試

    在TogetherROS如何安裝ROS2功能包

    安裝ROS2功能包 接下來,還有一個很重要的配置,那就是安裝ROS2功能包,我們說TogetherROS是基于ROS2深度優化的,很多模塊還是會復用ROS2
    的頭像 發表于 12-01 16:02 ?932次閱讀
    在TogetherROS<b class='flag-5'>中</b>如何安裝<b class='flag-5'>ROS</b>2功能包

    ros怎么設置環境變量

    可以使用的動態的值,用于影響運行程序的行為。環境變量通常包含一些關鍵信息,如路徑、用戶名、顏色選項等。 在ROS,環境變量是重要的,因為它們用于確定ROS如何運行和找到相關文件和程序。 為什么要設置
    的頭像 發表于 12-28 13:52 ?1965次閱讀