近來找到的實習主要是做智能車控制,用到的也就是ROS機器人操作系統,ROS需要運行在一個操作系統上,這個操作系統常用的就是Linux,而公司用的就是Ubuntu,所以Ubuntu-ROS組合就是實習的主要學習內容了。所以我就新開了一個坑,網絡上ROS的資源很豐富,我在此只是用以分享學習筆記。
1. ROS基本介紹
ROS是主流的機器人操作系統
官方將ROS解釋為框架、工具、功能和社區。
ROS實際上相當于一個 軟件工具集 ,采用分布式框架,通信框架是其主要組成部分,可將多個單獨設計的進程(節點)組合起來并同時運行。
各節點可實現各種不同的功能,并通過ROS這一橋梁實現相互通信。這樣的特點使其拓展性好,復用率高,極大地提高了龐大和冗雜的機器人設計過程的效率。
ROS能給開發人員提供可視化界面工具,包含諸如Gazebo、Rviz等用于仿真和調試的基本工具,以及各種基礎程序包(控制、路徑、規劃等),只需在其上設計所要實現的特殊功能的部分并將它們組合起來即可。
2. 為什么選擇Ubuntu系統
軟件是機器人的核心。
機器人應用軟件需要運行在一個操作系統上, 該操作系統可以提供與機器人作動器和傳感器通信的功能 。基于Linux的操作系統在與底層硬件交互的過程中具有極大的靈活性,并且提供相關許可允許用戶根據機器人應用對其進行修改。在這種應用背景下,Ubuntu快速響應能力、輕量級屬性及高度安全性的優點得以展現。
當前,Ubuntu-ROS組合已成為機器人編程的一個理想選擇。
3. ROS框架
從根本上說,ROS是兩個程序或進程間通信的框架。
For example,如果程序A想要向程序B發送數據,并且程序B也想要向程序A發送數據,那么可以輕松地用ROS實現這項工作。
一個機器人可能有許多傳感器、作動器和計算單元。怎樣才能做到控制這么多作動器及這么多傳感器數據呢?我們可以只用一個程序完成這些嗎?這當然可以。但是這并不是一個好方法。
更好的解決方案是我們可以編寫多個獨立的程序來處理傳感器數據、向作動器發送控制指令,但是這就需要在這些程序之間進行數據交換,而這恰恰就是我們使用ROS的場景。
4. ROS中兩個程序之間的通信如何完成
兩個程序分別被標記為節點1和節點2。當程序啟動時,節點便會和名為ROS Master的ROS程序通信。節點將所有信息發給ROS Master,包括它發送和收到的消息類型、本節點路由信息等。發送信息的節點稱為發布節點(Publisher Nodes),接收信息的節點稱為訂閱節點(Subscriber Nodes)。ROS Master擁有在計算機上正在運行的所有發送節點和接收節點的信息。如果節點1發送某個名為A的數據,而節點2正好訂閱了該消息,那么ROS Master就向兩個節點廣播彼此的節點信息(注意:不是消息)以幫助它們建立連接,這樣兩個節點就可以互相通信了。
ROS節點可以彼此間互相傳送不同類型的數據,這些數據可以包含像整數、浮點數、字符串等這類簡單類型的數據。這些節點間相互傳遞的不同類型的數據稱為 ROS消息(Messages) 。有了ROS消息,我們就可以在節點之間傳遞各種類型的數據了。這些消息通過一種類似于數據總線或者路徑標識的媒介進行傳播,我們稱為ROS話題(Topics)。每一條話題都有自己的名字,比如一個可以傳輸字符串數據的名為“chatter”的話題。
如果一個ROS節點想通過話題廣播消息,那么它只需要給ROS話題發送消息即可,消息中就包含了消息的數據類型(所以不用另外告知topics 數據的類型)。
圖4-12中,節點1和節點2就是通過ROS話題發送和接受消息的。當ROS Master交換完兩個節點的信息之后,兩個節點間消息的發送和接收過程就開始了。
5. ROS中的一些名詞
ROS節點(Node) :使用ROS API進行運算的進程。
ROS主機(Master) :連接ROS節點的媒介程序。
** ROS參數服務器(Parameter Server)** :指通常與ROS Master一起運行的一個程序。使用者在此服務器上存儲不同的參數,所有的節點都可以訪問它,使用者可以設置參數的保密性。如果某個參數是公共的,那么所有節點都可以訪問;但如果某個參數具有私有屬性,那么只有特定的節點才可以訪問這個參數。
ROS話題(Topic) :即“總線”,ROS節點可以通過該總線發送或接收信息。一個節點可以發布或者接收任意數量的話題。
ROS消息(Message) :消息基本上都是通過話題傳送的。ROS含有許多內建的消息類型,當然使用者也可以定義他們自己的消息類型。
-
機器人
+關注
關注
211文章
28455瀏覽量
207263 -
操作系統
+關注
關注
37文章
6836瀏覽量
123360 -
Ubuntu
+關注
關注
5文章
563瀏覽量
29824 -
ROS
+關注
關注
1文章
278瀏覽量
17022
發布評論請先 登錄
相關推薦
評論