0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ROS是如何設(shè)計的 ROS客戶端庫

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

實現(xiàn)通信的代碼在ros_comm包中,如下。

其中clients文件夾一共有127個文件,看來是最大的包了。

現(xiàn)在我們來到了ROS最核心的地帶。

圖片

圖片

客戶端這個名詞出現(xiàn)的有些突然,一個機器人操作系統(tǒng)里為什么需要客戶端。

原因是,節(jié)點與主節(jié)點master之間的關(guān)系是client/server,這時每個節(jié)點都是一個客戶端(client),而master自然就是服務(wù)器端(server)。

那客戶端庫(client libraries)是干什么的?就是為實現(xiàn)節(jié)點之間通信的。

雖然整個文件夾中包含的文件眾多,但是我們?nèi)绻凑找欢ǖ拿}絡(luò)來分析就不會眼花繚亂。

節(jié)點之間最主要的通信方式就是基于消息的。為了實現(xiàn)這個目的,需要三個步驟,如下。

弄明白這三個步驟就明白ROS的工作方式了。這三個步驟看起來是比較合乎邏輯的,并不奇怪。

消息的發(fā)布者和訂閱者(即消息的接收方)建立連接;

發(fā)布者向話題發(fā)布消息,訂閱者在話題上接收消息,將消息保存在回調(diào)函數(shù)隊列中;

調(diào)用回調(diào)函數(shù)隊列中的回調(diào)函數(shù)處理消息。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 通信
    +關(guān)注

    關(guān)注

    18

    文章

    6032

    瀏覽量

    135993
  • 客戶端
    +關(guān)注

    關(guān)注

    1

    文章

    290

    瀏覽量

    16687
  • ROS
    ROS
    +關(guān)注

    關(guān)注

    1

    文章

    278

    瀏覽量

    17009
收藏 人收藏

    評論

    相關(guān)推薦

    在Android中使用ROS

    由于ROS提供了Android的對應(yīng)的開發(fā),我們可以方便的在Android中開發(fā)相應(yīng)的ROS客戶端程序。下面介紹一下在Android中使用ROS
    發(fā)表于 05-16 19:16

    ROS與STM32是如何進行通信的

    角速度、實際線速度STM32ROS之前運行的ROS項目都是在終端編譯,用vim或者gedit修改代碼,很不方便,函數(shù)跳轉(zhuǎn)查看都沒辦法實現(xiàn)。所以今天先安裝一個IDE試試
    發(fā)表于 08-11 07:25

    ROS與樹莓派進行通信

    成了兩個類而已。asio_server類運行于樹莓派上作為服務(wù)器,asio_client運行于PC上作為客戶端。剛開始寫的代碼僅僅是客戶端發(fā)送,服務(wù)器端接收這么簡單。但后來一想,樹莓派不是還要返回數(shù)據(jù)給R...
    發(fā)表于 09-06 07:26

    什么是ROS?如何學(xué)習(xí)ROS

    什么是ROS?如何學(xué)習(xí)ROS?
    發(fā)表于 11-11 07:21

    ROS簡介

    目錄一、ROS簡介1、什么是ROS2、ROS產(chǎn)生、發(fā)展和壯大的原因和意義二、在Ubuntu系統(tǒng)中,安裝對應(yīng)版本的ROS軟件1、確定Ubuntu配置2、添加
    發(fā)表于 12-17 08:24

    什么是ROS?ROS產(chǎn)生、發(fā)展和壯大的原因和意義

    機器人操作系統(tǒng)(ROS)入門(嵌入式系統(tǒng)應(yīng)用開發(fā))一、ROS 基本問題1. 什么是 ROS2. ROS 產(chǎn)生、發(fā)展和壯大的原因和意義二、安裝 ROS
    發(fā)表于 12-17 06:08

    你知道ROS客戶端Client的編程該怎樣去編寫嗎

    你知道ROS客戶端Client的編程該怎樣去編寫嗎?
    發(fā)表于 02-14 07:12

    怎樣通過ROS Arduino程序去點亮LED燈呢

    roscore:然后,運行rosserial客戶端應(yīng)用程序, 其中為你安裝rosserial的工作空間,確保使用正確的串口:最后,你可以使用rostopic轉(zhuǎn)換你的LEd狀態(tài)。原作者:liuyu-419812
    發(fā)表于 07-07 10:43

    基于FreeRTOS的micro(微型)ROS

    。 一、關(guān)于ROS ROS:Robot Operating System,,即機器人操作系統(tǒng)。 和普通OS不一樣的是,ROS主要是針對機器人,是基于操作系統(tǒng)之上,提供一系列程序和工具
    的頭像 發(fā)表于 09-25 14:16 ?2359次閱讀
    基于FreeRTOS的micro(微型)<b class='flag-5'>ROS</b>

    ROS與STM32通信

    角速度、實際線速度STM32ROS之前運行的ROS項目都是在終端編譯,用vim或者gedit修改代碼,很不方便,函數(shù)跳轉(zhuǎn)查看都沒辦法實現(xiàn)。所以今天先安裝一個IDE試試
    發(fā)表于 12-24 19:00 ?11次下載
    <b class='flag-5'>ROS</b>與STM32通信

    深度解析開源無人機ROS開發(fā)方案

    rospy 是 ROS 的純 Python 客戶端。rospy 客戶端 API 使 Python 程序員能夠快速與 ROS主題、服務(wù)和參數(shù)
    發(fā)表于 07-08 17:02 ?2646次閱讀

    如何初始化ROS并創(chuàng)立鏈接

    ROS1完成了介紹。 對ROS的Simulink支持包括一個Simulink塊,用于為指定的主題發(fā)送和接收
    的頭像 發(fā)表于 11-15 17:26 ?517次閱讀
    如何初始化<b class='flag-5'>ROS</b>并創(chuàng)立鏈接

    Unity與ROS鏈接介紹

    對于ROS而言,其最常用的就是Topic話題以及Service兩個了。之前我們在了解Unity Robotics Hub時候就了解到基本的Unity和ROS的通訊,下面我們來詳細(xì)介紹一下Unity
    的頭像 發(fā)表于 11-17 17:22 ?1008次閱讀
    Unity與<b class='flag-5'>ROS</b>鏈接介紹

    ROS的擴展有哪些方法

    也是毫不夸張的。 ROS的擴展即ROS universe,是全球范圍的代碼,有不同國家的ROS社區(qū)組織開發(fā)和維護。 有的是代碼,如OpenCV、PCL等;
    的頭像 發(fā)表于 11-21 18:12 ?707次閱讀

    ros的基本概念是什么

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