實現(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)推薦
由于ROS提供了Android的對應(yīng)的開發(fā)庫,我們可以方便的在Android中開發(fā)相應(yīng)的ROS客戶端程序。下面介紹一下在Android中使用ROS
發(fā)表于 05-16 19:16
角速度、實際線速度STM32端ROS端之前運行的ROS項目都是在終端編譯,用vim或者gedit修改代碼,很不方便,函數(shù)跳轉(zhuǎn)查看都沒辦法實現(xiàn)。所以今天先安裝一個IDE試試
發(fā)表于 08-11 07:25
成了兩個類而已。asio_server類運行于樹莓派上作為服務(wù)器,asio_client運行于PC上作為客戶端。剛開始寫的代碼僅僅是客戶端發(fā)送,服務(wù)器端接收這么簡單。但后來一想,樹莓派不是還要返回數(shù)據(jù)給R...
發(fā)表于 09-06 07:26
什么是ROS?如何學(xué)習(xí)ROS?
發(fā)表于 11-11 07:21
目錄一、ROS簡介1、什么是ROS2、ROS產(chǎn)生、發(fā)展和壯大的原因和意義二、在Ubuntu系統(tǒng)中,安裝對應(yīng)版本的ROS軟件1、確定Ubuntu配置2、添加
發(fā)表于 12-17 08:24
機器人操作系統(tǒng)(ROS)入門(嵌入式系統(tǒng)應(yīng)用開發(fā))一、ROS 基本問題1. 什么是 ROS2. ROS 產(chǎn)生、發(fā)展和壯大的原因和意義二、安裝 ROS
發(fā)表于 12-17 06:08
你知道ROS客戶端Client的編程該怎樣去編寫嗎?
發(fā)表于 02-14 07:12
roscore:然后,運行rosserial客戶端應(yīng)用程序, 其中為你安裝rosserial的工作空間,確保使用正確的串口:最后,你可以使用rostopic轉(zhuǎn)換你的LEd狀態(tài)。原作者:liuyu-419812
發(fā)表于 07-07 10:43
。 一、關(guān)于ROS ROS:Robot Operating System,,即機器人操作系統(tǒng)。 和普通OS不一樣的是,ROS主要是針對機器人,是基于操作系統(tǒng)之上,提供一系列程序庫和工具
發(fā)表于 09-25 14:16
?2359次閱讀
角速度、實際線速度STM32端ROS端之前運行的ROS項目都是在終端編譯,用vim或者gedit修改代碼,很不方便,函數(shù)跳轉(zhuǎn)查看都沒辦法實現(xiàn)。所以今天先安裝一個IDE試試
發(fā)表于 12-24 19:00
?11次下載
rospy 是 ROS 的純 Python 客戶端庫。rospy 客戶端 API 使 Python 程序員能夠快速與 ROS主題、服務(wù)和參數(shù)
發(fā)表于 07-08 17:02
?2646次閱讀
ROS1完成了介紹。 對ROS的Simulink支持包括一個Simulink塊庫,用于為指定的主題發(fā)送和接收
發(fā)表于 11-15 17:26
?517次閱讀
對于ROS而言,其最常用的就是Topic話題以及Service兩個了。之前我們在了解Unity Robotics Hub時候就了解到基本的Unity和ROS的通訊,下面我們來詳細(xì)介紹一下Unity
發(fā)表于 11-17 17:22
?1008次閱讀
也是毫不夸張的。 ROS的擴展即ROS universe,是全球范圍的代碼,有不同國家的ROS社區(qū)組織開發(fā)和維護。 有的是庫代碼,如OpenCV、PCL等;
發(fā)表于 11-21 18:12
?707次閱讀
基本概念: ROS是一個用于在不同進程間匿名的發(fā)布、訂閱、傳遞信息的中間件。 ROS2系統(tǒng)的核心部分是ROS網(wǎng)絡(luò)(ROS Graph)。 ROS
發(fā)表于 11-27 11:21
?1808次閱讀
評論