行業(yè)新聞

機器人的操作系統(tǒng)ROS

來源:??????2017/12/26 17:15:42??????點擊:

一、簡介

ROS是Robot Operating System(機器人操作系統(tǒng))的簡寫,是一個面向機器人的開源元操作系統(tǒng)(open-source,meta-operating system)。它能夠提供類似傳統(tǒng)操作系統(tǒng)的諸多功能,如硬件抽象、底層設備控制、進程間消息傳遞和程序包管理等。此外,它還提供相關工具和庫,用于獲取、編譯、編輯代碼以及在多個計算機之間運行程序完成分布式計算。ROS的運行架構是一種使用ROS通信模塊實現(xiàn)模塊間P2P的松耦合的網(wǎng)絡連接的處理架構,它執(zhí)行若干種類型的通訊,包括基于服務的同步RPC(遠程過程調用)通訊、基于Topic的異步數(shù)據(jù)流通訊,還有參數(shù)服務器上的數(shù)據(jù)存儲。
 

二、特點

ROS的主要特點可以歸納為以下幾條:

(1)點對點設計

ROS通過點對點設計以及服務和節(jié)點管理器等機制可以分散由于計算機視覺和語音識別等功能帶來的實時計算壓力,這種設計能適應服務機器人遇到的調戰(zhàn)。

(2)不依賴編程語言

ROS支持多種現(xiàn)代高級編程語言,C++、Python和Lisp語言已經(jīng)在ROS中實現(xiàn)編譯,并得到應用,Octave和Java的測試庫也已經(jīng)實現(xiàn)。為了支持多語言編程,ROS采用了一種語言中立的接口定義語言(language-neutral interface definition language,IDL )來實現(xiàn)各模塊之間的消息傳送。

(3)精簡與集成

ROS建立的系統(tǒng)具有模塊化的特點,各模塊中的代碼可以單獨編譯,而且編譯使用的CMake工具使它很容易的就實現(xiàn)精簡的理念。ROS基本將復雜的代碼封裝在庫里,只是創(chuàng)建了一些小的應用程序為ROS顯示庫的功能,這就允許了對簡單的代碼超越原型進行移植和重新使用。作為一種新加入的有優(yōu)勢,單元測試當代碼在庫中分散后也變得非常的容易,一個單獨的測試程序可以測試庫中很多的特點。

ROS不修改用戶的主函數(shù),所以代碼可以被其他的機器人軟件使用。其優(yōu)點是ROS很容易和其他的機器人軟件平臺集成。例如,在計算機視覺方面,ROS已經(jīng)與OpenCV實現(xiàn)集成。在驅動、導航和模擬器方面,ROS已經(jīng)與Player系統(tǒng)實現(xiàn)集成。在規(guī)劃算法方面,ROS也已與OpenAVE系統(tǒng)實現(xiàn)集成。

(4)便于測試

為機器人開發(fā)軟件比其他軟件開發(fā)更具挑戰(zhàn)性,主要是因為調試準備時間長,且調試過程復雜。況且,因為硬件維修、經(jīng)費有限等因素,不一定隨時有機器人可供使用。ROS提供兩種策略來解決上述問題。
 

1.精心設計的ROS系統(tǒng)框架將底層硬件控制模塊和頂層數(shù)據(jù)處理與決策模塊分離,從而可以使用模擬器替代底層硬件模塊,獨立測試頂層部分,提高測試效率。

2.ROS另外提供了一種簡單的方法可以在調試過程中記錄傳感器數(shù)據(jù)及其他類型的消息數(shù)據(jù),并在試驗后按時間戳回放。通過這種方式,每次運行機器人可以獲得更多的測試機會。例如,可以記錄傳感器的數(shù)據(jù),并通過多次回放測試不同的數(shù)據(jù)處理算法

(5)開源

ROS遵從BSD協(xié)議,這給了使用者很大的自由,使開發(fā)者可以清楚的查看、自由的使用源代碼,如果有需要,可以根據(jù)不同的系統(tǒng)及硬件環(huán)境對源代碼進行修改,或者進行二次開發(fā)。

(6)強大的庫及社區(qū):

ROS提供了廣泛的庫文件實現(xiàn)以機動性、操作控制、感知為主的機器人功能。同時由于其開源特性,ROS的支持與發(fā)展依托著一個強大的社區(qū)。其官方網(wǎng)站尤其關注兼容性和支持文檔,提供了一套“一站式”的方案使得用戶得以搜索并學習來自全球開發(fā)者數(shù)以千計的ROS程序包。

三、小結

隨著技術的發(fā)展及人們需求的提高,機器人集成了越來越多的功能、傳感器,對用戶來說這越來越方便,但對開發(fā)者來說恰恰相反,功能的增加帶來開發(fā)與集成難度迅速上升,機器人操作系統(tǒng)的出現(xiàn)有效緩解了這種問題。從計算機和智能手機的發(fā)展過程來看,合適與成熟的操作系統(tǒng)是智能機器人行業(yè)大規(guī)模發(fā)展和在人們的生活中普及的必要條件??梢灶A見,未來幾年將會出現(xiàn)眾多機器人操作系統(tǒng),在經(jīng)過充分的發(fā)展競爭后將會有為數(shù)不多的幾個操作系統(tǒng)會發(fā)展壯大并占據(jù)絕大部分市場,就像曾經(jīng)的計算機操作系統(tǒng)和現(xiàn)在的手機操作系統(tǒng)。