1. 程式人生 > >ROS學習之路(一)認識ROS

ROS學習之路(一)認識ROS

    機器代替人力走進各行各業解放人類已經成為一種不可遏制的趨勢,ROS便是用來控制這些機器的比較流行的平臺,類似於手機中的Android。

    ROS建立在Linux系統之上,有點像Linux的一種特殊軟體。裡面有很多庫,可以用來執行不同功能。

    我們經常會遇到這樣的情況,機器在下面執行著(比如一輛裝有攝像頭、雷達等感測器的小車),後臺電腦這可以接收並顯示小車傳過來的資料,這就是一種典型的分散式系統,ROS負責通過一些庫來控制小車,通過一些庫來處理資料,通過底層的ROS通訊機制實現多臺裝置之間的相互通訊。

    下面是ROS中的一些基本概念:

1.節點(Node):

    相當於作業系統中的程序,之所以叫節點,是因為如果把一個工作過程畫成圖來表示,那這些程序就是圖中的節點。

2.訊息(Message):

    人與人之間說的話就是訊息,在ROS中被定義為具體的資料結構了(比如,兩臺機器之間說的話就是一個int加一個float),用來傳遞自定義的資料。

3.話題(Topic):

    就像微信公眾號(但不完全一樣,後面到話題的文章會有具體解釋),後臺一批人員負責把文章放上去,讀者們就可以到公眾號中查看了,就是一個釋出(Publish)和訂閱(Subscribe)的過程。

4.服務(Service):

    應該說是一對一服務,嘿嘿。我問一句,服務人員答一句,性感荷官線上答疑,咳咳。“我”是一個節點,“服務人員”是另一個節點,兩者建立起了實時通訊。

5.節點管理器:

    顧名思義,就是管理節點的一個管理員吧,就像電話發明沒多久那時候的接線員,一個節點如果想和其他節點通訊,首先自己得在“接線員”那註冊一個“號碼”,其次得知道對方的基本資訊,比如叫什麼名字,住在哪等等,然後“接線員”根據資訊找到了對方的“號碼”,然後就可以建立連線打電話了。