淺談ROS的產品化探索(四)——生態系統篇

誕生於2007年的ROS,發展速度之迅猛超出了所有人的預料,已經成為一個機器人領域的生態系統,可以提供機器人相關的全方位技術,從硬體到軟體,從框架到功能,從驅動到應用。。。

前邊三篇已經分別從通信機制、開發工具、應用功能這三個方面淺談了筆者對ROS產品化探索的一點總結,本篇就來聊聊最後一個部分——從生態系統的角度來看,ROS可以為機器人產品化提供哪些思路。

什麼是生態系統?

維基百科的解釋是:生態系統(Ecosystem)是指在一個特定環境內,相互作用的所有生物和此環境的統稱。

ROS提供了一個龐大的開源社區,為ROS生態系統提供了基礎環境,眾多機器人的基礎工具和應用功能不斷融入這個系統,並且不斷吸收第三方開源軟體的精華,同時得到全球範圍內眾多開發者的支持,系統中的各部分協調統一、相互促進、共同成長,成為一個整體。

這個ROS生態系統應該是目前最大的機器人知識庫了,在機器人產品化開發中,也必將成為一個重要的資源池。

一、機器人資源

目前國內外常用的機器人平台大部分都已經支持ROS系統,可以在wiki上查找:

robots.ros.org/

就算wiki上找不到的,基本也可以在github上找到其他開發者的分享。如果加上愛好者自己設計、實現的機器人,那就更加數不勝數了。

這些機器人資源對我們有什麼用呢?

1. 機器人硬體設計參考

ROS中的機器人資源都是開源的,包括機器人的模型文件。如果我們需要做機器人設計,完全可以參考這些開源的機器人模型,畢竟包含了不少知名的機器人平台。

2. 輔助機器人原型搭建

使用ROS中已有的功能包,我們可以在自己的機器人上快速搭建功能原型,驗證機器人設計中的問題。

3. 基於應用功能包的二次開發

ROS中的功能包非常豐富,一定可以找到與我們研究方向相關的應用功能,雖然不太可能直接應用在產品開發中,但還是可以減少類似重複造輪子的工作。

4. 演算法驗證

如果我們是演算法工程師,手上又沒有現成的機器人平台,那麼使用ROS中的機器人可以隨便挑隨便選,放在物理模擬環境中,想怎麼用怎麼用,還分文不要。

5. 學習機器人系統

無論我們是機器人方向剛入門的初學者,還是資深工程師,都不可能掌握機器人方方面面的知識,那麼藉助ROS學習更多機器人相關的技能,一定可以事半功倍。

二、功能框架

設計一個完善的機器人系統並不是一件簡單的事情,借用Python的一句名言:人生苦短,我用ROS。ROS中豐富的機器人框架,一定可以給你一些設計、實現上的靈感:

1. 機器人通信框架

ROS1的通信機制部分在機器人產品化中存在很多問題,但並不代表這種通信框架是不可用的,如果我們設計類似的通信功能,一樣可以參考這個模型。

如果你不喜歡這種「中央集權」的通信模型,也可以看一下ROS2的通信模型。

這些通信模型的底層實現是開源透明的,真要拿來二次開發實現商業化,也不是沒有可能。

2. 機器人導航框架

這個框架我們在上一篇已經說過,這裡就不多說了,誰用誰知道。

3. ROS-I框架

工業機器人是機器人中非常重要的一個部分,在工業領域應用廣泛而且成熟。ROS迅猛發展的過程中,也不斷滲入到工業領域,從而產生了一個新的分支——ROS-Industrial(ROS -I)。

工業機器人的品牌眾多,介面也各不統一,ROS-I框架為這些機器人提供了一個統一的控制平台,可以將ROS社區中的眾多資源應用到生產環境中,或許會成為ROS最快落地的一個領域。

4. ros_control框架

硬體平台千差萬別,如何將上層應用快速適配到不同的機器人硬體平台上,也是軟體開發工程師頭疼的一個問題,那就參考一下ros_control框架吧,模擬控制與實物控制輕鬆切換,類似於linux系統底層write、read機制一般的統一介面,可以幫助我們解決不少麻煩。

ROS中還有很多功能框架,都是全球範圍內頂尖開發者的知識結晶,媽媽再也不用擔心我不會機器人設計了。

三、機器人前沿科技

機器人絕對是走在當今科技最前沿的一個領域,更新換代也異常迅速,所以我們不僅要掌握機器人基礎理論和技術,還要時刻關心前沿動態。ROS在機器人領域的地位越來越高,也是我們窺看前沿科技的一個窗口。

1. 機器人前沿

比如這款「百萬級」的仿生手。

比如這款「不會傷人」的KUKA LWR iiwa。

再比如這款「機器僧人」Pepper。

2. 學術前沿

每年機器人頂級期刊和會議上的論文,很多都是基於ROS實現的,部分論文還會把成果和源碼在ROS社區中分享。很多大公司或大牛也經常會把一些機器人演算法在ROS社區分享。這就為我們接觸學術前沿提供了機會,也可以從中汲取不少新的靈感和知識。

比如2016年Google在ROS社區中開源了一種SLAM實現演算法——cartographer,同時也分享了ICRA會議上的相關論文:

research.google.com/pub

再比如基於ROS實現的無人駕駛平台:

ros.org/news/2017/06/si

當然,也少不了當今熱門的人工智慧與ROS的結合:

theconstructsim.com/mac

此外,很多基於ROS實現的論文都可以在這裡找到:

wiki.ros.org/Papers

ROS的生態系統在機器人領域保羅萬象,還有更多資源可以讓我們隨意使用,無論是提高個人技能,還是進行商業開發,都可以讓我們站在巨人的肩膀上看得更遠。這也是ROS最初的設計目標:提高機器人領域的代碼復用率,促進不同組織之間各施所長、合作共贏。

至此,《淺談ROS的產品化探索》系列文章也就告一段落了,筆者使用四篇文章淺談了個人在ROS學習、應用、產品化開發過程中的一些感悟和總結,歡迎各位批評指正。

總而言之,ROS能不能產品化應用,不能用一個「能」或者「不能」簡而概之,而是需要剖析開來具體分析,在應用中取其精華去其糟粕。

祝各位有一段美妙的ROS機器人開發之旅!


更多內容可關注微信公眾號:古月居 (guyue_home)

或訪問古月居網站:

古月居 - 怕什麼真理無窮,進一寸有一寸的歡喜?

www.guyuehome.com


推薦閱讀:

TAG:機器人操作平台ROS | 機器人 |