ROS學習之路(一)認識ROS
機器代替人力走進各行各業解放人類已經成為一種不可遏制的趨勢,ROS便是用來控制這些機器的比較流行的平臺,類似於手機中的Android。
ROS建立在Linux系統之上,有點像Linux的一種特殊軟體。裡面有很多庫,可以用來執行不同功能。
我們經常會遇到這樣的情況,機器在下面執行著(比如一輛裝有攝像頭、雷達等感測器的小車),後臺電腦這可以接收並顯示小車傳過來的資料,這就是一種典型的分散式系統,ROS負責通過一些庫來控制小車,通過一些庫來處理資料,通過底層的ROS通訊機制實現多臺裝置之間的相互通訊。
下面是ROS中的一些基本概念:
1.節點(Node):
相當於作業系統中的程序,之所以叫節點,是因為如果把一個工作過程畫成圖來表示,那這些程序就是圖中的節點。
2.訊息(Message):
人與人之間說的話就是訊息,在ROS中被定義為具體的資料結構了(比如,兩臺機器之間說的話就是一個int加一個float),用來傳遞自定義的資料。
3.話題(Topic):
就像微信公眾號(但不完全一樣,後面到話題的文章會有具體解釋),後臺一批人員負責把文章放上去,讀者們就可以到公眾號中查看了,就是一個釋出(Publish)和訂閱(Subscribe)的過程。
4.服務(Service):
應該說是一對一服務,嘿嘿。我問一句,服務人員答一句,性感荷官線上答疑,咳咳。“我”是一個節點,“服務人員”是另一個節點,兩者建立起了實時通訊。
5.節點管理器:
顧名思義,就是管理節點的一個管理員吧,就像電話發明沒多久那時候的接線員,一個節點如果想和其他節點通訊,首先自己得在“接線員”那註冊一個“號碼”,其次得知道對方的基本資訊,比如叫什麼名字,住在哪等等,然後“接線員”根據資訊找到了對方的“號碼”,然後就可以建立連線打電話了。