【詞條正解——工業百條】ROS 是一個開源的機器人作業系統,能夠集成大規模的不同機器人的通信層,其主要目標是通過知識共享加速機器人的研究和工業應用。它允許個人修改高級外設,如運動控制、感知和路徑規劃工具等。在ROS 的幫助下,軟體開發人員能夠方便地模擬機器人的行為,省去了製造或購買實體機器人所需的高昂費用,並通過藉助免費開源庫中的現有代碼來快速構建自己的應用程式場景。在未來,動態的和更具協作性的工業生產環境將使得具有適應性的機器人擁有巨大的市場。
如果沒有ROS,就沒有最近流行的無人服務、物流機器人、飛行器及自動駕駛,正是機器人操作平臺ROS 為這些技術帶來了飛速的進步。ROS 並非其字面意義上的作業系統,而更多的是一個中間件,它能夠讓你根據現有的代碼知識構建你的想法,並共享各種模塊來解決一些常見問題,從而使機器人更快、更經濟、更高效地工作。本文講述了ROS 自其誕生以來的故事,主要探討了現有市場玩家對於開源的不同看法,展示了目前相關的實用案例及技術上存在的難點。文章的最後總結了關於這些矛盾如何解決的前景,以及ROS 未來的發展可能性。
別重新發明車輪
ROS 起源於斯坦福人工智慧機器人(STAIR),這是一個由Andrew Ng 領頭並組織相關研究人員而推出的項目,旨在將多種AI 功能(如視覺、操縱、導航等)整合到單個機器人中。由於大量的重複編程非常浪費時間,這些研究人員想建立一個基於現有資源的某種東西——停止重新發明車輪。STAIR 的與眾不同之處在於,人們可以在保持系統整體不變的情況下使用不同的子系統。儘管系統這個概念對於不同的使用者來說是不同的——這是高效使用大批量機器人項目的一個先決條件。
這些史丹福大學研究人員在募資時,遇到了谷歌出身的企業家斯科特·哈桑(Scott Hassan)。哈桑於2006 年創立了一家機器人技術公司Willow Garage,投入了大量資金。2009 年,這家公司發布了ROS 的第一個原始碼開放Beta 版,在第二年發布了正式版。
隨後,Willow Garage 加大了公關力度,在各個主流的國際機器人大會上也非常活躍。ROS 社區取得了快速發展,與此同時,ROS 軟體包的數量也在快速增長(ROS軟體包:具有各種應用項目的軟體,如導航)。2011 年和2012 年,ROS 逐漸成為機器人領域的一個巨大炒作話題。Willow Garage 推出了更多基於ROS 的機器人(TurtleBot)。在這個階段,每隔6 個月就會出現新版本且功能更強大的ROS 系統,代碼的質量也在穩步提高。因為沒有看到商業化的趨勢,當時也有人質疑Willow Garage 關於ROS 的動機。2013 年,斯科特·哈桑並不看好服務機器人能帶來的收益,隨後從Willow Garage 撤資,並在當年晚些時候關閉了該公司。
開源機器人基金會(OSRF)正式負責接管了ROS 的後續開發。當時負責ROS的團隊規模很小,也沒有大的投資方參與。憑藉著世界各地的開發人員對ROS 的開發和使用所形成的開發者社區,ROS 得以倖存並延續至今。
自2014 年起,ROS 社區發展迅猛
由於技術的持續改進,機器學習取得突破,以及對於靈活且小規模工業應用的需求愈發旺盛,機器人領域從2014 年開始再次得到了學術研究機構和風險投資的重視。
今天,ROS 社區比以往任何時候都更加活躍。它已擁有大約3000 名有積極貢獻的活躍社區成員。這些成員來自各個國家,其中大部分來自美國、中國、德國和日本。他們貢獻了總計超過450 萬行重要的代碼,據推測,這相當於169 名全職開發人員8.5 年的工作量。
截至2017 年7 月,根據維基關於ROS 的問答數量,ROS 社區的參與度在一年內大約提高15%。同時wiki.ros.org 網站的編輯和瀏覽量也上漲了30%。圖1展示了可應用於不同場景的軟體包逐年下載數量的變化。
圖1 軟體包下載數量的變化
學術著作《ROS:一個開源的機器人作業系統》的被引用量清晰地展現了社區和ROS 的合作進程,這篇論文由M·Quigley 和史丹福大學計算機科學系、Willow Garage 和南加州大學計算機科學系在2009 年聯合發表。發表至今已逾8 年,但其引用量自2016 年以來激增了40%。
實際中ROS 應用的增長也被相關數據所證實。圖2中的數據曲線代表兼容ROS的機器人的數量,展現了ROS 應用的快速增長。
圖2 ROS 應用的增長趨勢
在中國,ROS 也開始逐漸流行開來。目前從數量上來看,中國用戶是訪問ROS網站的第二大團體,並且份額正逐漸增加,如圖3所示。
圖3 各國訪問ROS 網站份額對比
ROS 架構中所蘊含的哲學目標
自創立之初,ROS 的架構便是基於由創始人定下的「哲學目標」:
(1)點對點(Peer-to-peer)。
(2)基於工具(Tools-based)。
(3)多語言(Multi-lingual)。
(4)簡潔(Thin)。
(5)免費且開源(Free and Open-Source)。
使用ROS 的系統涉及許多在對等拓撲中運行時需要連接的進程。為了防止計算機異構網絡溢出中央伺服器的流量,ROS 通過緩衝和對等連接在很大程度上緩解了這些風險。創始成員選擇了「微內核設計」,即將大型工具拆分成更小的單元,以提高處理複雜機器人環境所需的靈活性和穩定性,但同時效率有所降低。要實現消息的良好交流,語言環境是決定性的因素。因此,ROS 使用一種簡單的、與語言無關的接口定義語言(IDL),它自動將所支持的語言標準化為一個通用代碼,從而實現「混合和匹配」。為ROS 提倡的「更簡單的代碼提取」和「沒有或幾乎沒有包裝」的外部存儲庫的應用鋪平了道路。因此,不同中間件之間的不兼容性及「獨立庫」對ROS 的依賴性保持較低。
ROS 成功的關鍵無疑是開源。無私、無直接經濟報酬、致力於公益的想法看起來可能是罕見而天真的。儘管有意識地進行無償的知識共享、起初的困難很難想像,但這已經被早先成功的Linux 計算機作業系統證明是可行的。被調整過的Linux 正運行著高度複雜和與安全相關的諸多系統,如核電站的控制及如今多達150 萬臺Android智慧型手機。
ROS 的倡導者們認為,ROS 的發展也會遵循同樣的軌跡。根據OSRF 執行長Brian Gerkey 的說法,Linux 在Windows 環境下是一個「蹩腳的暴發戶」。而在機器人技術方面,ROS 卻是「先行者」。事實上,微軟最初試圖建立自己的機器人平臺——「微軟機器人開發工作室」,但最終因為ROS 在這一領域太過強勢,微軟不得不停止其自主工作室的開發。
工業網際網路和深度學習的基礎
ROS 還支持分布式系統,在這個系統中數十個進程可以在數臺機器上並行運行。一種名為ROSLink 的新協議已經被提出,它結合了搭載ROS 的機器人與物聯網,其目標是構建一張包含物理對象、車輛及諸如傳感器和制動器之類的其他設備的網絡。利用ROS,可以使用精確的物理模擬來測試不同的算法,包括深度學習,而不需要昂貴的硬體投資。ROS 與不同的機器人模擬器兼容,這對於原型設計、新算法驗證,以及機器人在不同使用場景和環境下智能行為的培訓至關重要。其中最常用的模擬器是Gazebo,它是ROS 的一部分。Gazebo 已被廣泛應用於學術界和工業界,以促進機器人從研究階段到實際應用的發展。
目前使用案例
ROS 的首批應用主要是在移動機器人方面。這些機器人不光用在傳統的研究和學術領域,同時在一些創業公司中也可以發現它們的身影:
(1)美國國家航空航天局(NASA):作為太空和航天領域的關鍵參與者,它選擇用廉價和方便的ROS 來開發它的「Swarmie」項目。在這個致力於未來火星任務的關鍵項目中,NASA 在基於ROS 的簡單機器人上模擬螞蟻的協作行為。
(2)Fetch:很可能是最著名的初創公司,由一幫前Willow Garage 人員創立。它推出了專為物流行業設計的Fetch 機器人系統,以提高倉庫效率。它的實驗室地面機器人就是基於ROS 界面來實現各種控制器的集成。該公司開發了一種雙重方法:用一個小且靈活的採摘機器人——「Fetch」,由一個更大的推車式機器人——「Freight」來支持。通過這種雙重方法,將多個物品運輸到指定的送貨點,也可以加入多個來自不同廠商的機器人來完成。這種相互作用歸根結底還是得益於ROS 框架。
此外,還有一個很好的例子:Delft 大學在Amazon Picking Challenge 上大獲全勝。他們的勝利來自通過利用ROS來幫助資源有限的年輕研究員們開發先進的解決方案。通過ROS,機器人能夠自主地將物品從標準貨架上移動到包裡,或從包裡轉移到標準貨架上。根據Delft 團隊成員Kanter van Deurzen 的說法,他們成功的決定性因素是將「最高標準的各個組成部分」作為與「一體化系統」相結合的「多學科方法」。這種整合的方法是通過使用基於ROS 的軟體而實現的。Delft 大學也正在歐盟範圍內推動ROS-I 軟體組件達到一個更高的水平,這個任務被稱作ROSIN。除了Delft 大學,合作機構還包括德國的Fraunhofer 製造工程與自動化研究所和Fachhochschule Aachen大學、哥本哈根IT 大學,以及來自瑞典的機器人公司ABB 和來自西班牙的Tecnalia研究所。
在中國,ROS 為眾多新興的服務機器人公司奠定了基礎:
(1)Ecovacs 和iRobot(清潔機器人)。
(2)索亞機器人(迎賓機器人)。
儘管ROS 在中國服務機器人的使用範圍很廣,但迄今為止,對於ROS 的學術貢獻還不大。
值得一提的是,ROS 也被用於自動駕駛。例如,寶馬的335 I G 自動駕駛概念,以及百度的Apollo 平臺都是基於定製化的ROS。
目前ROS 在工業領域應用相對較少
目前ROS 的工業級使用率遠低於學術界或服務機器人領域,主要有以下兩個原因。
1
技術方面
工業機器人製造商主要提到了ROS 在實時性和穩定性方面的弱點,以及數據安全問題。這些都可能對製造商產生負面的品牌影響。
ROS 軟體的安全性主要取決於早期貢獻者的責任感。開發內部軟體時,其整個生命周期都需要控制和維護,並需要儲存完整的檔案。相比之下,開源軟體是由鬆散組織的開發人員開發的,他們相互信任程度較低,對於檔案保存的標準也較低。此外,對於使用開源的最終用戶來說,與單一製造商或集成商建立合法的雙向關係很難,因為他們和開發者之間缺乏有約束力的服務協議。據Fraunhofer 製造工程與自動化研究所(IPA)研究員Theo Jacobs 的說法,除了經過驗證的軟體版本,解決方案可能是由一小組程式設計師維護的自包含模塊。但通過使用來自主題密鑰驗證消息的發送者和聽眾的認證,可能可以確其保機密性。
一些專家也擔心,ROS 從未被設計用於工業機器人的傳統典型應用,例如噴塗,點焊或弧焊。例如,大多數工業機器人軟體都可以調整焊機上的電壓和電流通道,以確保達到最佳效果——這不屬於ROS 的範疇。然而,通過ROS 可以更容易找到一些新的解決方案,例如:如果工程師想要噴塗出一個之前機器人從未見過的幾何圖形,ROS 可以相對容易地為搭載有工業視覺的噴塗機器人生成相應路徑。
2
經濟方面
主要的行業參與者擔心其業務模式被淡化。開放自己投入了大量研發資源所獲得的核心知識並非是他們所願意的。他們所特有的硬體可能會失去其優勢,並且可能被其他更便宜的硬體輕鬆替換,而這些便宜的硬體還可以通過ROS 來增強外設。
在一定程度上,可以將這種困境與蘋果的iOS 和Google 的Android 所採取的做法類比:
(1)蘋果對App Store 始終保持相對嚴格的控制,並且一直是iOS 終端設備的唯一硬體供應商。這有助於建立一個快速、穩定和相對安全的系統。其用戶群通常會非常快速地更新軟體,從而能夠更容易地修復錯誤和解決安全問題。缺點是用戶基數較小,未來能為機器學習提供的數據較少。
(2)相比之下,Android 採取了一種相當開放的方式,這帶來了更廣的用戶群體,並且這些用戶群體可以從各種終端設備中進行選擇。但是,這是以反覆出現的接口問題為代價的,並且終端設備和軟體之間會存在適配錯誤。設備分化和從第三方安裝應用程式使得Android 作業系統易受安全問題的困擾。高度的設備分化也使得Android系統的維護和缺陷修複比iOS 更困難。
到目前為止,蘋果控制其平臺的模式非常成功。與20 世紀90 年代Macintosh 不同的是,現今廣大的iOS 用戶使得這種模式為蘋果帶來頗豐的收益。與此同時,幾乎沒有一家專注於Android 生態系統的硬體公司能夠長期盈利。
那為什麼工業機器人製造商們要開放他們的平臺,並提供他們產品控制系統的接口呢?
不同機器人製造商對這個問題的看法存在分歧。發那科和庫卡系統相對來說比較封閉,其他廠商則採取更加開放的態度:
(1)儘管對通過ROS 提供自由的第三方訪問也存在著一些擔憂,但Yaskawa Motoman 通過高級外設,利用他們的機器人的潛力推動了它早期開源的行動,特別是雙臂機器人在自動化裝配任務中的使用日益增加。Motoman 認為,搭建一座與他人之間的橋梁將提高互操作性,並從而吸引更多客戶。
(2)類似的是,作為ROS-I 項目的一部分,工業機器人巨頭ABB 為其協作組裝機器人Yumi 開放了ROS 接口。
關於Motoman SIA20D、ABB 的YuMi 和Universal Robots UR5 等小型機器人,它們不再進行昂貴的研發過程,而是直接使用3D 感知工具來增強其功能。在不久的將來,為特定需求而編寫的軟體將隨著業界需求從高容量、可重複的流程轉變為結合了動態軌跡算法和傳感器的智慧機器人而變得更有實際價值。
Bosch 的研發部門開始允許他們的工程師「快速、方便地對其系統進行可視化、檢查、記錄和模擬」,以便創造更大的效益,這展現了ROS 的另一個機會。前Bosch研究員現任Mayfield Robotics 的聯合創始人兼首席運 .官Sarah Ostentoski 認為,以這種方式使用ROS,將使它成為一種「雙向流動的管道」,公司願意與社區分享他們的進步,社區也可以憑藉它在學術系統中的流行度幫助公司網羅更多ROS 方面的人才。
更大的驚喜在更遠的將來
ROS 在過去的幾年中增長迅猛,並且在可預見的未來幾年中將發揮更重要的作用。
首先是日益增長的服務機器人公司的需求。在接下來的十年裡,我們將會看到第一輛自動駕駛汽車成功上路。屆時將會出現一批我們今天無法設想的機器人和應用程式。正如Willow Garage 最早成員之一Tully Foote 在2007 年年末承諾的那樣,在未來,「你將能夠使用任何開源軟體,只需結合你的商業模式做一些小小的改動,就能開啟你的創業之旅」。ROS 社區的發展將前所未有地使有創意的設計師和創業者們站在巨人的肩膀上。
其次,工業市場上的應用也將越來越多。然而目前,對於ROS 仍然有限的工作能力和是否應該放棄傳統的成功商業模式,工業機器人製造商們仍持有一定理性的顧慮。不過,與此同時,ROS 正在以相對簡單的方式來靈活設計解決方案,以此拓展整個行業的邊界。
在此背景下,ROS-Industrial Consortium 已經向前邁進了一步。這個機構由付費會員組成,其中大多數是大型工業企業,它們正在投入知識和資金,以加大機器人的能力範圍並提高質量。這其中的重點是用資本來引導研究重點,這樣可以更加有效並且公平地分配資源,並最終分享結果。雖然進入這一協會的資本壁壘與開源社區的原則相矛盾,但是它是獨立開發者的試錯運動和企業在參與開源擴張的同時又能保證自身原有利益之間的一種妥協,所有高昂的研發費用都是為了整個行業的共同利益。通過所謂的聚焦技術項目(FTP),這個行業的蛋糕需要先被做大,即便需要付費成員來決定其味道。
最後,備受矚目的ROS 2.0 的Beta 版本正在測試當中。它應該解決現有的安全問題,並提高適用於大型項目的技術能力。實際上,這個版本是為了應對「非理想網絡」和現實中的生產環境而建立的,它使得在ROS 中進行實時控制的進程和機器間能夠直接通信。對於ROS 1.0 在意料之外、情理之中的走紅,其後繼者應該為靜態配置提供清晰的模式和支持配置,從而擴大在工業領域中所佔的一席之地。
本文首發於微信公眾號:知識自動化。文章內容屬作者個人觀點,不代表和訊網立場。投資者據此操作,風險請自擔。
(責任編輯:趙豔萍 HF094)