<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # ROS簡單介紹 ROS 1.0(簡稱: ROS)歷經10年的發展,已經積累了非常非常豐富且穩定的功能包集、各類工具和完備的教程。在未來即便是ROS2.0大行其道,仍會有機制保證ROS 2.0代碼與現有ROS代碼共存。例如,ROS仍然還可以通過message bridges等方式與ROS2.0一起工作。 <br> ROS 2.0未來將成為機器人應用程序開發的終極SDK。相比于ROS1.0,它使用更先進的分布式架構,更高的可靠性,以及對實時性和嵌入式設備的支持。最大的不同在于采用了數據分發服務(DDS)技術,DDS適用于實時分布式嵌入式系統。2016年有一篇會議論文。Exploring the performance of ROS2。 分析了ROS2.0的性能。但是目前,網上的教程大多數是ROS的,ROS2的教程很少,而且程序包也沒有ROS豐富。 <br> ## 為什么會出現ROS 2.0 ? 歸結起來,分為三個原因:1.歷史原因;2. 出現了新的需求;3.出現了新的技術。 <br> #### 1.歷史原因 ROS始于2007年11月,最早是“柳樹車庫”用于PR2機器人的開發。同時希望ROS能用于其他機器人。為了便于多研究所合作,避免重復造輪子,所以柳樹車庫花費大量精力定義了抽象級別(通常是通過消息的接口),允許軟件重用。 其解決思路是: 1、 讓多個程序分別完成特定任務, 能夠相互通信, 并且定義好常用的格式讓大家使用基于面向服務 Service-oriented; 2、 ROS 提供構建環境,讓大家能夠較容易的使用他人的工作, 容易交換代碼 ; 按照當時以及能夠想到的機器人現狀,ROS主要設計指向是: 1. 單個機器人; 2. 板載工作站級別的計算資源; 3. 沒有實時性需求; 4. 理想的網絡連接; 5. 應用于學術研究; 6. 強調最大的靈活性,沒有過多的約定或者禁止。 然而,ROS設計初衷是用于家用服務機器人,出乎意料的是:ROS被應用于各式各樣的機器人:輪式機器人、腿式機器人、工業手臂、室外無人車輛、自動駕駛汽車、飛行器、無人艇……。 而且ROS設計初衷是用于學術研究,然而出乎意料的是:大量基于ROS的產品進入市場,包括制造業機器人、農業機器人、商業清潔機器人,甚至NASA將運行ROS的Robonaut 2部署到國際空間站。 隨著應用場景的擴大,導致產生了一系列新的需求。 <br> ### 2.出現了新的需求 以下是ROS目前感覺不足的領域,也是ROS2.0意圖解決的問題。 1. 多個機器人組成的集群; ROS的單master結構就蛋疼了。 2. 小型嵌入式平臺,甚至“裸奔”的微控制器;依賴于Ubuntu的ROS太重了。 3. 實時系統:包括進程間和跨機器通信,ROS做不到。 4. 非理想的網絡;ROS延遲很大,甚至斷網再連接時會掛。 5. 生產制造等環境:ROS可靠性還不夠。 6. 為一些新特性,如部署的生命周期管理和靜態配置,提供清晰的模式和支持工具。 <br> ### 3.出現了新的技術 ROS的核心是匿名發布-訂閱中間件系統,從2007年開始,在ROS這些相關領域產生了一些更新、更好、值得借鑒使用的技術,如: 1. Zeroconf; 2. Protocol Buffers; 3. ZeroMQ (and the other MQs); 4. Redis; 5. WebSockets; and 6. DDS (Data Distribution Service) ![](https://img.kancloud.cn/df/eb/dfeb7619b68249e113736dd6796d50dd_1490x742.png) <br> ## ROS與ROS2的差異性 ### 通信模型 ROS: 1. talker 注冊 2. listener 注冊 3. ROS Master 進行信息匹配 4. listener 發送鏈接請求 5. talker 確認請求 6. 建立連接 7. talker 給 listener 發數據 <br> ROS2: 1. 參與者(Domain Participant):一個參與者Participant就是一個容器,對應于一個使用DDS的用戶,任何DDS的用戶都必須通過Participant來訪問全局數據空間。 2. 發布者(Publisher):數據發布的執行者,支持多種數據類型的發布,可以與多個數據寫入器(DataWriter)相聯,發布一種或多種主題(Topic)的消息。 3. 訂閱者(Subscriber):數據訂閱的執行者,支持多種數據類型的訂閱,可以與多個數據讀取器(DataReader)相聯,訂閱一種或多種主題(Topic)的消息。 4. 數據寫入器(DataWriter):應用向發布者更新數據的對象,每個數據寫入器對應一個特定的Topic,類似于ROS1中的一個消息發布者。 5. 數據讀取器(DataReader):應用從訂閱者讀取數據的對象,每個數據讀取器對應一個特定的Topic,類似于ROS1中的一個消息訂閱者。 6. 主題(Topic):這個和ROS1中的Topic概念一致,一個Topic包含一個名稱和一種數據結構。 7. QoS Policy:Quality of Service,質量服務原則,這個模塊在ROS1中可從沒見過,看名稱就猜測應該是負責數據質量的。QoS是DDS中非常重要的一環,控制了各方面與底層的通訊機制,主要從時間限制、可靠性、持續性、歷史記錄幾個方面,滿足用戶針對不同場景的數據應用需求 <br> ### ROS/ROS2 架構圖 ![ROS/ROS2 架構圖](https://img.kancloud.cn/9c/99/9c9915470b5997c2f9e53dcdfb69e973_872x485.png) ## 總結 在學習方面,如果是剛剛入門的同學,可以先拿ROS來入門,因為現在有很多ROS的入門學習資料方便快速入門;再對ROS有了一定的了解后再來學習ROS2.0更加深入、優秀的知識。 <br> Enjoy it. [機器人實驗室 https://roboticslab.cn](https://roboticslab.cn)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看