ROS在工業機器人上的應用?

之前問過一個「ROS在國內前景如何」的問題,發現瀏覽的人挺多,發現對ROS感興趣的人不少,後面就突發奇想.....現在國內主要使用的幾種工業機器人kuka, yaskawa, abb, fanuc都是用著自己的控制系統和交互軟體,這樣企業要維護和重新編程買過的機器人都很不方便,換一個公司的機器人又要重新培訓人員,有些交互界面還非常不友好,這種閉塞又各式各樣的系統極大地降低了效率,如果可以做出一個適用於各種品牌機械臂的控制軟體,應該會受到市場的歡迎,用同一種標準還大大地增加了延展性和兼容性,而ROS正好有這項特徵(雖然有的品牌的介面還在開發中,但我大致看了看都基本能用,而且都開源),初步覺得可以基於ROS的開源庫去寫這個「萬能」的控制軟體,不知道是否有人對這個概念感興趣......希望踴躍發言,別光瀏覽吖........


謝邀。昨天kuka的engineer恰好到實驗室,晚上一起喝酒的時候也順便討論過這個問題。簡單的答案,就是:不行!
從技術的角度,底層的控制器是各個機器人公司的基本的核心技術,這個他們不會選擇開源。很多東西,他們的程序裡面已經做了,只是還沒有開放。比如KUKA上有一個load identification,就是任意放一個工具上去,機器人應該能夠自動的測量工具的動力學參數,從而進行補償。這個程序已經寫了,但是沒有開放,類似的功能還有很多。這個你要各個機器人廠商都開源,是不大現實的,能夠給你一兩個API,已經是很不錯了。另外,ROS在運動控制上的性能,好像還沒有得到工業界的檢驗。工業的東西,穩定大於一切。

從商業上,他們也擔心中國人reverse engineering,這個是他的原話。機械機構你拆開了就可以看個明白,軟體不開源,你是沒有辦法的。
用ros去做一個通用的控制軟體是不大現實的,但是用ros框架去做一個友好的通用的用戶界面,特別是在製造業,是很有必要的, 可以參考SMErobot?。但是這個設計到不同的用戶需求,需要比較了解製造工藝,了解機器人,了解人機協調,可能還需要提供機器人輔助設備。這個應該是未來製造業的一大趨勢。
加油吧!
-----03.30 補充------
本答案從來沒有說ROS不能用,只是針對問題 :「。。。初步覺得可以基於ROS的開源庫去寫這個「萬能」的控制軟體。。。」,而言是不大現實的。底層控制器各家不一樣,又不開源,目前還很難統一。


粗淺的玩過ROS,工業上不靠譜。

ROS最初是為科研設計的,注重功能性,而不是性能和穩定性。以軟體工程的角度講,爛透了。

其各種核心組件嚴重依賴了一大堆外部的庫,其中不少的庫在穩定性上是存疑的。ROS本身問題更嚴重,如果不是在ubuntu下拿apt-get安裝,而是想嘗試下debian啥的,或者源碼安裝,肯定折磨死你。debian下的包明顯是後媽給編譯打包的,依賴一大堆ubuntu的包。而源碼編譯則一大堆的error,更別說無處不在的warning了。

性能方面,ROS的核心主要通過網路來組織其各個組件,提供通信支持。但有些玩意明顯走網路就是找死。比如視覺,720p的RGB圖片30fps,不壓縮的帶寬佔用將近700Mbps。但ROS為了追求優雅的系統解耦,全部是封裝成node的。當然,你自己寫的除外。

基於以上,推斷ROS的穩定性也是個胡扯的事。再者ROS基於Linux,嚴重依賴一個不那麼穩定的ubuntu,可以想見以系統的角度講,穩定性也比較扯。

綜上ROS做一下科研和教學還不錯,短期內看不到應用到工業系統的可能。


感覺上面的回答都並不對ROS有足夠的了解。

ROS (以下說的均是ROS底層系統) 最大的特點是模塊化、低耦合,也就是說非常適用於大型複雜的機器人系統,需要多個不同層次(控制、感知、認知)的模塊同時運行的系統;它並不關心各個模塊內部的實現,只需要定義好介面(message, service)。因此,硬體平台和控制演算法的區別並不會導致他們無法運行在ROS上;相反,通過良好的封裝,將機器人本體建模(自由度、各關節坐標系、運動學/動力學參數)後,控制和運動規劃演算法即使使用閉源的第三方庫也完全沒有問題,只需要將所需要的控制介面定義清楚,即可使用ROS提供的機制來使用。

個人認為,KUKA 等公司的主要產品(面向工業界)之所以不使用ROS,是因為目前並沒有這樣的需要。據我了解工業界的機器人系統,是不具備太多感知和其他更「高層」的能力的(力反饋等閉環控制仍然是傳統控制和自動化系統範疇,零件識別也只是簡單背景下的圖像處理);因此,他們的系統從傳統上一直使用自己開發的平台和軟體,自然沒有移植到ROS上的動力。然而,按照目前的發展趨勢,生產線上需要機器人與人合作、甚至獨立完成一些需要動態反饋的任務會越來越多並且越來越複雜,到那個時候,機器人系統不再只是幾個複雜控制模塊組成,而是有更多視覺和其他感測器感知模塊、甚至理解認知模塊的時候,也許他們會開始考慮使用已經比較成熟的ROS底層來支持這樣的機器人系統。


ros主要還是應用於科研領域。在家庭服務領域的應用也是一個亮點。因為家庭服務領域不許要太高的實時性。對於工業領域,我覺得ros 還是可以應用的,但是應該應用與開發前期,因為ros是可以方便的搭建一套系統,後期可能就要固化,考慮實時性的問題了。


ROS在工業機器人上面會有很好的應用。其實工業機器人的控制底層能保證實時性就可以了。例如在ubuntu系統上插上一張DSP或者FPGA的PCI卡,保證通訊和控制的實時性。而ROS與PCI卡之間通過建立命令緩衝區的形式(ubuntu上的規劃演算法運行時間小於500微妙,一般好點的電腦都能實現)就OK了。
之前我們用PMAC和固高的GTS卡,在win7上做六軸工業機器人的控制系統,性能也很不錯。和用ROS一樣的道理。


不邀自來,談下我的理解。
------------------------------------------------------------------------------------------------------------------------------------
先說我的結論:
ROS要在機器人行業(僅限工業用機器人,不包含AGV等移動機器人)得到大量應用,比較難。

原因:

  1. 上面有回答提到了,ROS操作系統是Ubuntu,實時性、穩定性是硬傷,據說ROS2改善了實時性,但在工業現場的穩定性如何,尚待探討。對於機器人廠家來講,從已有可靠的控制平台遷移到ROS上,風險性太大(了解自動化行業的都清楚,現場調試過程中出現不可預測的問題有多麼可怕)。機器人廠家,歐系的基本都是購買商業公司的實時系統(VxWorksWindows XPE等)以及軟PLC環境(有CODESYS和KW),我對日系公司了解的較少,歡迎補充。
  2. 說到機器人控制系統,驅動單元其實是真正的核心,機器人演算法可以說相差不大,各大機器人廠商自己做驅動的很少(日系、ABB除外)。說到伺服驅動就要說到工業現場匯流排,開源的匯流排協議棧目前還不夠穩定可靠,各大協議組織對開源的支持也只是做做樣子,更多的時候還是為組織里的各家廠商賣產品做做廣告。機器人廠家,購買軟PLC環境,大多也是為了協議棧。說到這裡提一句,一套可靠的、能用的協議棧源碼,價格是在100W左右的,還不包含你自己的二次開發費用。這些錢,應該也不是開源組織能夠負擔的。
  3. 其實說到這裡,應該能夠歸納出真正的原因:機器人廠商所亟需的,ROS並不能提供,ROS所提供的,機器人廠商其實花點時間、資金,也能做出來。還是ROS的優勢沒有擊中機器人廠商的痛點。
  4. 工業行業是一個很封閉的產業,幾大自動化公司幾乎壟斷了自動化領域從底層硬體、鏈路層協議、應用層協議等所涉及到的幾乎所有產品,而且價格便宜、質量可靠、應用方便(國內有大量的PLC應用工程師)。機器人行業以自動化行業為基礎,融入了其他學科、行業的技術,但基礎還是自動化技術,ROS要想在工業機器人行業大放光彩,要走的路,可謂漫漫長路啊!

專業的機器人運動控制器,奧地利的KEBA已經做得非常好了,另外BR做的也不錯。已經有成品的機器人的運動控制器供應商,為什麼還要自己去寫ROS,目前國內70%的國產機器人,都是由他們提供的控制器。別人都做成標準化的東西商業產品了。ROS雖然我不太了解,但感覺只是在機器人愛好者之間,相互交流源代碼的程度,雖然能完成機器人的控制,離商業化還是太遠了。


大家可以關注一下Rethink Robotics 他們的工業機器人(手臂)就是獨闢蹊徑採用ROS系統的,可能也跟是老美搞得有關 另外ros要搞好 一定要有搞軟體的人進入這個行業 比如以前工業界做比較複雜機器視覺設備、機器人的廠商進入 純粹機器人公司太硬了 對軟體理解不深 很難成為ros的主要貢獻者


ROS不是實時的吧,用在某些工業控制領域可能會有問題


ROS可能會在實時要求不高的服務機器人領域能有發展,在實時性要求很苛刻的工業機器人領域是難有作為的。

服務機器人比如家庭機器人、辦公機器人等,實時性差一些也是沒關係的,這樣ROS就可以做成類似Windows在PC領域的角色,或者類似Linux在伺服器領域的角色。


ROS的目的是將硬體剝離開來,這樣將來用別的硬體以前開發的軟體也能用。這樣應用於科研很合適,但是工業就沒那麼合適。

*********************************更新*********************************
貌似沒人提到ros industrial。ros已經支持一些工業機器人了,但是個人覺得是適用於科研,比如實驗室里有個工業機器人,然後用ros來做科研開發


個人認為不可行,複雜度太高,涉及商業合作,硬體更新換代。。。與其考慮統一控制,不如從市場角度統一標準,就像ms office「統一「doc標準。雖然也難於上青天。只要考慮下現在bumblebee有多蛋疼就知道了,機器人比顯卡的廠家可多得多。

不同意以上一些觀點,ros是很有潛力的系統,日趨完善後或許硬體廠家會趨近ros的某些部分或者趨近第三方驅動。隨著機器人複雜度增加,單一控制平台應該會越來越不能滿足,況且實時性又不是最重要的,現在計算需要的時間比控制的時間可高多了。至於ubuntu和依賴包,工業用軟體本來就比較老,現在用trusty應該才比較合適。自己編寫那些需要的功能或者廠家內部編寫才是坑。


吐槽ros實時性差往往都是只玩過單片機的,他們不會明白閃個led為什麼要那麼多包。
ros=對常見機器人中問題提供框架上的解決方案和演算法上的支持。
你用了ros也許不能直接做出一套機器人系統,但是如果自己做你絕對繞不開ros提供那些功能,而且人家比你做得好。


目前遨博智能已經將ROS用到工業機器人上,大家怎麼看?

http://www.our-robotics.com/


推薦閱讀:

請問EtherCAT和CANopen之間有什麼關係?
如何系統性地學習工業機器人技術?
求推薦,國外有哪些機器人資訊網站?
機器人領域研究什麼比較有前途?
2015年最驚艷的機器人領域的技術或論文有哪些?

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