解讀機器人操作系統——ROS
ROS為Robot Operating System(機器人操作系統)的簡寫,是一個面向機器人的開源元操作系統(open-source,meta-operating system)。它能夠提供類似傳統操作系統的諸多功能,如硬體抽象、底層設備控制、進程間消息傳遞和程序包管理等。此外,它還提供相關工具和庫,用於獲取、編譯、編輯代碼以及在多個計算機之間運行程序完成分布式計算。ROS的運行架構是一種使用ROS通信模塊實現模塊間P2P的松耦合的網路連接的處理架構,它執行若干種類型的通訊,包括基於服務的同步RPC(遠程過程調用)通訊、基於Topic的非同步數據流通訊,還有參數伺服器上的數據存儲。
歷史
ROS起源於2007年前後斯坦福大學人工智慧實驗室的STAIR(Stanford Artificial Intel ligence Robot)項目與WillowGarage公司的個人機器人項目(Personal Robotics project)之間的合作。在2009年初推出了ROS0.4,現在所用系統的框架在這個版本中已初具雛形。經過近一年的測試後,於2010年初推出了ROS1.0版,並在當年三月份推出了正式發行版本:ROSBoxTurtle,到現在(2016年5月)已經發行了10個版本,最新版本是ROSKineticKame。比較有趣的是,ROS各版本均以龜作為發行代號,至今已設計出10種造型奇特的「ROS龜」。
從2008年至2013年,ROS主要由WillowGarage公司管理維護,但這並不意味著ROS是封閉的系統,相反,它是由眾多學校及科研機構聯合開發及維護的,這種聯合開發模式也為ROS系統生態的構建與壯大帶來有力的促進。2013年,WillowGarage公司被Suitable Technologies公司收購,此前幾個月,ROS的開發和維護管理工作被移交給了新成立的開源基金會Open Source Robotics Foundation。
特點
ROS的主要目標是為機器人研究和開發提供代碼復用的支持。ROS是一個分布式的進程(即「節點」)框架,這些進程被封裝在易於被分享和發布的程序包和功能包中。ROS也支持一種類似於代碼儲存庫的聯合系統,這個系統也可以實現工程的協作及發布。可以使一個工程的開發和實現從文件系統到用戶介面完全獨立決策(不受ROS限制)。同時,所有的工程都可以被ROS的基礎工具整合在一起。
ROS在某些程度上和其他常見的機器人架構有些相似之處,如:Player、Orocos、CARMEN、Orca和MicrosoftRoboticsStudio。對於簡單的無機械手的移動平台來說,Player是非常不錯的選擇。ROS則不同,它被設計為適用於有機械臂和運動感測器的移動平台(傾角激光、雲台、機械臂感測器)。與Player相比,ROS更有利於分布式計算環境。當然,Player提供了較多的硬體驅動程序,ROS則在高層架構上提供了更多的演算法應用(如集成OpenCV的視覺演算法)。
ROS的主要特點可以歸納為以下幾條:
(1)點對點設計
ROS通過點對點設計以及服務和節點管理器等機制可以分散由於計算機視覺和語音識別等功能帶來的實時計算壓力,這種設計能適應服務機器人遇到的調戰。
(2)不依賴編程語言
ROS支持多種現代高級編程語言,C++、Python和Lisp語言已經在ROS中實現編譯,並得到應用,Octave和Java的測試庫也已經實現。為了支持多語言編程,ROS採用了一種語言中立的介面定義語言(language-neutralinterfacedefinitionlanguage,IDL)來實現各模塊之間的消息傳送。
(3)精簡與集成
ROS建立的系統具有模塊化的特點,各模塊中的代碼可以單獨編譯,而且編譯使用的CMake工具使它很容易的就實現精簡的理念。ROS基本將複雜的代碼封裝在庫里,只是創建了一些小的應用程序為ROS顯示庫的功能,這就允許了對簡單的代碼超越原型進行移植和重新使用。作為一種新加入的有優勢,單元測試當代碼在庫中分散後也變得非常的容易,一個單獨的測試程序可以測試庫中很多的特點。
ROS不修改用戶的主函數,所以代碼可以被其他的機器人軟體使用。其優點是ROS很容易和其他的機器人軟體平台集成。例如,在計算機視覺方面,ROS已經與OpenCV實現集成。在驅動、導航和模擬器方面,ROS已經與Player系統實現集成。在規劃演算法方面,ROS也已與OpenAVE系統實現集成。
(4)便於測試
為機器人開發軟體比其他軟體開發更具挑戰性,主要是因為調試準備時間長,且調試過程複雜。況且,因為硬體維修、經費有限等因素,不一定隨時有機器人可供使用。ROS提供兩種策略來解決上述問題。
1.精心設計的ROS系統框架將底層硬體控制模塊和頂層數據處理與決策模塊分離,從而可以使用模擬器替代底層硬體模塊,獨立測試頂層部分,提高測試效率。
2.ROS另外提供了一種簡單的方法可以在調試過程中記錄感測器數據及其他類型的消息數據,並在試驗後按時間戳回放。通過這種方式,每次運行機器人可以獲得更多的測試機會。例如,可以記錄感測器的數據,並通過多次回放測試不同的數據處理演算法。
(5)開源
ROS遵從BSD協議,這給了使用者很大的自由,使開發者可以清楚的查看、自由的使用源代碼,如果有需要,可以根據不同的系統及硬體環境對源代碼進行修改,或者進行二次開發。
(6)強大的庫及社區:
ROS提供了廣泛的庫文件實現以機動性、操作控制、感知為主的機器人功能。同時由於其開源特性,ROS的支持與發展依託著一個強大的社區。其官方網站尤其關注兼容性和支持文檔控制工程網版權所有,提供了一套「一站式」的方案使得用戶得以搜索並學習來自全球開發者數以千計的ROS程序包。
小結
隨著技術的發展及人們需求的提高,機器人集成了越來越多的功能、感測器,對用戶來說這越來越方便,但對開發者來說恰恰相反,功能的增加帶來開發與集成難度迅速上升,機器人操作系統的出現有效緩解了這種問題。從計算機和智能手機的發展過程來看,合適與成熟的操作系統是智能機器人行業大規模發展和在人們的生活中普及的必要條件。可以預見,未來幾年將會出現眾多機器人操作系統,在經過充分的發展競爭後將會有為數不多的幾個操作系統會發展壯大並佔據絕大部分市場,就像曾經的計算機操作系統和現在的手機操作系統。
本文來自:控制工程網
如文章涉及版權,請聯繫我們刪除。歡迎來稿、歡迎廣大科幻愛好者和專家學者來稿
掃一掃關注 科幻:
※大劇雲集!盤點年度電視人物之死 《行屍走肉》格倫《西部世界》福特上榜
※這些 2016 年火遍全球的機器人,你都知道嗎?
※死於自己發明的10個人
※有了它倆 就能造《星球大戰》里的死星
※中國本是魔法大國 奈何魔杖都做了筷子
TAG:科幻 |
※海通安恆助力「CSV專題培訓」解讀計算機化系統驗證
※混亂特工收官BOSSSTEELTOE怎麼打 打法技巧全面解讀
※解讀裝置作品的創作ARTBANK簽約藝術家科林特
※愛創造一切,DAZZLE FASHION與劉雯為你解讀愛的定義
※復刻版ARDEN、CHEVIOT和EATON音箱解讀
※STEMI診療指南解讀精粹
※中國航發AEOS生產製造體系解讀
※YOHO!:NIGO 解讀個人KAWS收藏史
※CRISPR「大脫靶」真的是「大危機?學者深度解讀:「危機」將推動行業發展
※職業與全民參與並行 CS:GO官方賽事體系解讀
※從LINE FRIENDS多角度解讀「IP消費品」
※腦洞無限!解讀《生化危機6》MOD
※致力服務第九藝術,BenQ ZOWIE GEAR年度新品發布會解讀
※CEO全方位解讀FD-SOI
※人工智慧正式入侵時尚界!看看 IBM 的 Watson 系統是如何解讀紐約時裝周的
※人工智慧正式入侵時尚界!看看 IBM的Watson 系統是如何解讀紐約時裝周的
※「解讀谷歌TFX」基於TensorFlow可大規模擴展的機器學習平台
※大熱「自拍神器」 解讀HUAWEI nova 2系列自拍樣張
※工匠精神的全新解讀!創維AIR系列Q7開箱體驗