選用什麼樣的系統或平台開發機器人/機器臂?

現在主流的機器人或機械臂如6軸,delta,scara等等都是用什麼系統開發的?國內自主開發的話,商業化和開源的方案都有哪些?


謝邀,晚飯不吃答個題,哥要減肥~

剛開始入行的時候,與答主一樣有過同樣的疑惑,但就是這麼簡單的問題找了好久都木有合適的答案,希望下面的文字能對答主有所幫助,也希望工業機器人行業的交流不要那麼扭扭捏捏。

以下圖片取自某次培訓ppt。

題主所說的「系統」,我就按「控制系統」理解了,不知道題主是自己做著玩還是公司立項開發。

如果是公司立項要開發機器人控制系統,而且要從底層自己做,那可以參考下圖:

其中安全模塊、伺服匯流排和示教器,相對比較簡單或者有現成的方案可用,先不講(以後有時間再補。。。),貼張圖湊數:

關於主控制器,這個硬體基本上以x86為主,少數廠家使用ARM+DSP。
目前基於x86的工控機價格便宜量又足,省去很多硬體開發時間,非嵌入式的操作系統功能擴展也很方便,買回來裝個系統,基本就只剩軟體的活了。

首先是實時操作系統:

市場上實時操作系統很多,機器人行業應用較多的有如下幾個:

以上VxWorks、RTX、QNX、INtime是商業系統,RTAI和Xenomai是開源系統。
國際大廠家的選擇一般是VxWorks,但是售價太高,且相應的研發人員較為難找:

商業系統與開源系統的優缺點:

底層的硬體和操作系統有了,接下來就是控制器軟體的需求定義、架構設計、演算法開發這些工作了,沒有框架的束縛,可以自由開發任何想要的功能。如果覺得自己從底層做風險太高,那可以考慮市面上相對成熟的控制系統,然後在上面做二次開發,可選的包括:

  1. KEBA市場佔用率最高,做工業機器人的應該都聽過,價高/穩定,幾乎不支持二次開發。
  2. 貝加萊最早打包賣控制器+伺服驅動整體方案,但價格高,再加上Powerlink市場推廣遠不如EtherCAT,現在聽到的消息比較少了。(也可能是我沒去打聽了)
  3. 其實BR、CoDeSys、KW Software、倍福這四家都是趁著國內機器人比較火爆趁機來撈錢的,這四家的產品本來是面向通用運動控制領域,比如說紡織機、切割機、機床、注塑機等等,基本上帶電機的都算。機器人也屬於這個領域,但畢竟不是專門針對機器人開發的產品,性能、功能可擴展性比較差。這幾個方案國內應該都有拿來開發機器人的,目前得到的消息都不太樂觀。
  4. 運動控制卡的代表就是PMAC ,這貨在高校很受歡迎,裝個VC6.0,幾個研究生就能搞出一個機器人控制器,但還是和第三條一樣,不是專用的東西,拿來做會很痛苦。

----------------------------------------我是分割線--------------------------------------------
以上是針對公司開發控制器產品的一點建議,如果要自己玩,學點機器人知識,那就簡單啦,最快上手的就是Matlab Robotics Toolbox + VREP ~
下面的百度雲鏈接中給出了一個使用該組合編寫的簡單例子,包括了POE運動學建模,運動學逆解,直線規劃,簡單插補,VREP演示等,感興趣的可以下載看一看。

鏈接:http://pan.baidu.com/s/1kVS5x0V 密碼:ah0w

幾點需要注意的:

  1. VREP與Matlab使用之前需要配置環境變數;
  2. 將XB06的模型COPY到VREP的non-mobiles模型文件夾下;
  3. VREP的remoteApi的位數(32/64)要與操作系統/Matlab保持一致;

以上三點的具體方法網上都有,請自行搜索解決,恕不回答相關問題。

還是去吃個蘋果墊一墊好了。。。

歡迎關注專欄:
OnionBots - 知乎專欄


公眾號已經更新好了,比下面的內容增加了視頻、動圖、具體更多解釋,歡迎閱讀機器人操作系統ROS。下面內容就不用看了,直接點贊就好啦~
========
謝邀,一直沒時間回答。
開發機器人,這句話本身就是Underconstrainted。不同的機器人(工業機械臂、無人機)、不同的開發層次(底層控制器、上層規劃)、不同的開發目的(工業機器人、服務機器人)均會對應不同的答案。希望以後大家在知乎提問能更加準確。
@韓峰濤 的答案主要是側重在工業機器人底層控制器的開發上。如韓總所說的那樣,底層控制器注重的是實時性與穩定性。因此實時系統+高速通訊協議是這類控制器的必備屬性了。這方面我接觸比較少,只在KingstarMotion(RTX+EtherCAT模式)上做過開發,簡單而言,用C/C++開發比嵌入式的方案爽多了。
===上面都是閑扯===
之所以補充這個答案,主要是看到題主添加有「機器人操作平台ROS」的標籤,而且其他幾個答主也提到了ROS(但並沒有說清楚)。從我的角度上看,ROS(Robot Operating System)對於服務機器人上層演算法開發和研究而言是一個很棒的工具。所以,這部分內容主要從研究機構的角度來說明「選用什麼樣的系統或平台開發機器人/機器臂」。

備註:所有帶公眾號「qRobotics」水印的圖片版權歸本人所有,未經允許,不得轉載。同時知乎不方便放動圖和視頻,所以明天會將這部分內容重新整理,增加視頻與動圖後發布到個人公眾號Nao(qRobotics)上,歡迎大家關注~】。

為了說明清楚,我就從ROS是什麼,為什麼使用ROS,如何使用ROS三個方面展開講。

1、ROS是什麼

ROS是Robot Operating System的縮寫,原本是斯坦福大學的一個機器人項目,後來由Willow Garage公司發展,目前由OSRF(Open Source Robotics Foundation, Inc)公司維護的開源項目。

根據wikipedia定義,OS is system software that manages computer hardware and software resources and provides common services for computer programs。也就是說操作系統是用來管理計算機硬體與軟體資源,並提供一些公用的服務的系統軟體。而ROS也自稱是一個OS

如上圖所示,計算機的操作系統將計算機硬體封裝起來,而應用軟體運行在操作系統之上,不用管計算機具體應用的是什麼類型的硬體產品。這能大大提高軟體開發效率(否則大家只能都寫彙編了)。

同理,ROS則是對機器人的硬體進行了封裝,不同的機器人、不同的感測器,在ROS里可以用相同的方式表示(topic等),供上層應用程序(運動規劃等)調用。

如上圖(出自ROS官網)所示,ROS是:

  • 一種模塊化軟體通訊機制:消息(topic)、服務(service)、動作 (action)
  • 一系列開源工具:如3D顯示(Rviz)、坐標轉換(TF)、實時畫圖監控(rqt_plot)等

  • 一系列最先進的演算法:SLAM(gmapping)、識別(ORK)、規劃(MoveIt!)、模擬(gazebo)

  • 一款跨平台開發環境:語言(C++,Python,Java)、系統(Windows、Linux、Android)、機器人(Baxter、PR2、SDA5F等)
  • 一個最活躍機器人開發交流平台。

2、為什麼要用ROS

首先,用過工業機器人的人肯定知道,不同工業機器人的開發系統基本都不一樣,示教、編程方法也不同,一個熟練使用Motoman的工程師很可能並不會使用Kuka機械臂。就算是同種機器人,由於固件版本的更新換代,也可能造成程序的不兼容(我在UR上就遇到過這個問題)。這就大大影響了機器人的推廣普及。

對此,ROS可以用統一的方式來封裝機器人(URDF模型+機器人驅動),用戶只需要在ROS中編寫應用程序,並不用關心機器人的控制方式。如果所有機器人都採用了這種方式,那麼機器人必將得到更廣泛地應用(對系統集成商的要求會降低)。

其次,現在越來越多機器人廠商開始嘗試使用ROS,包括佔據最多工業市場份額的機器人四大家族和各種流行的研究型機器人,甚至有如Baxter的,只能使用ROS控制。研究機器人的如果不去學習ROS的話,以後可能就會面臨不會使用機器人的問題。

再者,機器人是一個複雜且涉及面極廣的學科,從下往上包括機械設計、電機控制、感測器、軌跡規劃、運動學與動力學、運動規劃、機器視覺、定位導航、機器學習、高級智能等等。一個研究生基本不可能在幾年時間內掌握所有領域。

對於一個做上層規劃的研究生,如果不用ROS的話,往往需要花費非常長時間用於搭建實驗系統,從而大大擠壓了真正用在發明新知識的時間。例如,我做運動規劃,就必須先把機械臂運動學正逆解、物體識別演算法、碰撞檢測演算法等完成才有可能開始做運動規劃。造輪子的事就交給專業造輪子的人做吧。

所以,對於科研人員來說,ROS可以幫助你快速搭建機器人軟體系統,同時其模塊化的設計可以讓你方便地用自己的演算法替換其中某一模塊,讓你專註於自己的研究點。

最後,就是對於創業或者參加比賽的人來說,ROS可以幫助你快速搭建原型樣機。原型樣機出來了,自然比只有設計說明書的人有優勢。

為防止做廣告嫌疑,創業的例子就不說了,就拿我們去年參加的一個創業大賽來講。我們組四個人用了不到兩個月時間完成了下面這個超市購物機器人的軟硬體設計與製作,功能包括避障、防跌、人員跟隨、藍牙校正(跟蹤對的人)、手勢識別、商品自動計價、自動支付等。

嗯,我的公眾號Nao(qRobotics)的頭像就是在這個項目時創作的。

3、如何使用ROS

首先,就是要了解ROS的基本架構和開發方式。我個人是強烈推薦直接看ROS官網上的教程ROS/Tutorials的Beginner Level(多看幾遍),同時充分使用ROS的問答社區ROS Answers與各模塊的Mail Lists,很多基礎問題可能前人都遇到過。

其次,在了解ROS的基本架構與開發方式後,就可以有針對性地看自己所關心的部分了。如做移動機器人的同學就去看Navigation教程;做物體識別的就去看ORK教程;做運動規劃的就去看MoveIt教程。這一步最好能跟有實際機器人練手(如果沒有的話,就用gazebo模擬)。由於一些模塊的教程不夠清楚(如MoveIt),一定要多練習,甚至是去看部分源碼,先保證自己會用ROS實現一些功能。

對於ROS與實際機器人的連接,建議仔細看看action(編寫機器人驅動package)、URDF(機器人描述文件)的教程(或者ros_control)。如下圖,我為SDA5F機器人編寫了URDF文件,並修改了motoman_driver中的action,使得在ROS環境中用MoveIt規劃控制雙臂機器人運動。

最後,就是進階階段了。我要強調一句「ROS只是一個工具」,你會用ROS做Navigation並不能說明你會Navigation。用ROS做研究與單純對於自己研究的內容,必須沉下心去看教程和論文,去理解每種演算法背後的原理,知道如何調整演算法參數、如何改進演算法,最終能夠自己編寫某部分代碼,並替換ROS的相應模塊(如自己寫運動學正逆解替代KDL等)。

做研究,交流非常重要。如果你改進ROS某一演算法後,最好能與package的原作者交流,將自己的修改merge到原項目中,在交流中提高自己與package的水平。當然,如果對演算法有疑問,也可以直接諮詢作者,ROS里的貢獻者大都非常願意分享和交流。

當然,在問別人之前,請一定要保證自己充分熟悉了官方Tutorials,而不是朝別人發一堆編譯錯誤截圖,然後問這是怎麼回事。提問的藝術真的非常重要,有時候不是對方不願意跟你交流,而是對方不願意手把手帶你過Tutorials


系統和平台都有兩層含義,控制系統也叫系統,操作系統也叫系統,開發平台也叫平台,x86,arm也叫平台。不知道是不是這個原因,答案沒能讓題主滿意。
西門子不造機器人是因為不想,而已。。。因為歐洲有很好的生態圈,它們都不會為了自己的利益打破它。
至於LinuxCNC這個東西,要是想在自家車庫造個車間,還挺適合的。就說這麼多。
=====================================================================
按理說這種問題不應該由我這種涉世不深的小白來回答,奈何工業機器人行業的大神們都太忙了。我就簡單說說我所知道的東西,不足的地方讓大神們指正補充。
其實提這個問題的人自身工作就沒有做好。我們來看看這個問題吧。

現在主流的機器人或機械臂如6軸,delta,scara等等都是用什麼系統開發的?國內自主開發的話,商業化和開源的方案都有哪些?

這個問題最好的答案就是自己去幾個大展看看。機器人展會上少不了主流的機器人和機械臂,四大家族(ABB,發那科,kuka,安川)肯定有展台而且很大,誰家的放門口就看誰贊助的多咯。它們的機器人都是用的自家的控制系統,或者基於更底層的控制系統做二次開發。至於國內廠商(新松,新時達,廣數)也有自己的展台,現在有好多國內企業購買四大家族的機器人本體,在此基礎上研發自家的控制系統。你去問它們的技術工程師,肯定會跟你講,比在這裡了解到的詳細全面的多。遞張名片,拿份資料,留郵箱,後面就會有人跟你發郵件資料。
現在電機,減速機的技術都被國外企業控制著,現場匯流排用的也是ethercat,powerlink,canopen,profibus,sercos等等,單做工控機又沒什麼意思(補一句,台灣新漢就是做工控機出身,現在也在做控制系統,本體購買上銀的),所以最後一塊蛋糕就是控制系統了。機器人行業本身就是個很大的坑,國內自主開發控制系統坑也不小。。。

做控制系統的成功經驗是兩條路線:
一是走四大家族路線,專門做機器人;
二是先做工業自動化相關產業,繼而開發機器人庫,比方說倍福,貝加萊,菲尼克斯等等。
但是它們起步都非常早,有的上世紀就成立,而且有相關核心技術的支持。目前國內走第一條非常難,硬體都是買的,做出來都不掙錢,人家還不如買四大家族的產品,性能好,壽命長,精度高,具備通用性擴展性,技術支持完善。走第二條路完全自主開發幾乎不可能,系統實時性要改內核,要寫各種現場匯流排的協議棧,要支持IEC61131-3編程語言,要支持PLCopen規範,還要寫機器人庫(機器人庫也是個大坑,插補,前瞻,速度規劃,樣條,運動學,靜力學,動力學等等詳見《機器人學導論》),現在又出來個安全,要做的太多,等你做出來V1.0,人家都V10.0了,國內還真有這樣做的,可以去看看浙江大學的優穩。再具體些可以看 @韓峰濤 的答案。真想走這條路還是建議找codesys,kithara,菲尼克斯等等公司做二次開發,機器人庫可以自己寫,現在支持c,c++開發,開發成本不高。或者直接做應用,買上述幾家公司的license,成本轉嫁到用戶那裡。
至於說開源的控制系統,ROS,LinuxCNC,還是不建議,雖說現在有些機器人公司針對ROS做了些工作,但是不會讓它發展起來的,資本家開放了關鍵技術等於要了他們的命。開源的東西適合學校和研究機構搞搞演算法仿模擬,真正商業化不可能的。

忘了說西門子了,在我大西門子面前,上面這些做控制系統的都是渣渣啊。


看到了這個題目, 不請自來的答一下,
本題的高票答案已經對機器人開發做了一個全面性的介紹. 本人本身不是機器人專業出生, 而且最弱的就是數學, 對機器人演算法尤其頭疼, 所以我只能對機器人的應用和我知道的機器人內容來補充一下.

我的職業早期接觸到了Delta Tau 公司的PMAC運動控制器, 據說最開始的天津大學的Delta3 機器人的程序控制就是基於PMAC卡, 當時我只是對PMAC卡有初步的了解, 並沒有深入的研究.

後來接觸到了基於Codesys 平台,因為已經有人提到了基於Codesys中的Keba, TwinCat的系統, 我再補充一個就是德國ELAU公司的PacDriveM平台, 當然這個公司現在已經被施耐德電氣併購了. 所以現在是施耐德旗下的子品牌了. 我們稱之為PacDrive3, (其實就是平台從Codesys2.3升級到了Codesys3.0)


PacDriveM平台的底層也是基於VxWorks的, 很早也有基於Windows系統的, 但是由於成本和客戶的原因停止了開發. 而Codesys的Runtime系統在VxWorks運行的.
在PacDrive平台上, 很早(大概94年左右)就有了機器人的開發庫, 那個時候已經支持了Delta2,Detla3 ,Gantry, Articulate, Scara和 (Articulate+Wrist)的6軸機器人.

當然, ELAU的PacDrive平台最早也是一個通用運動控制平台, 並不是專門為機器人應用而開發的. 但是由於其控制器的強大運算能力, Codesys的擴展能力和sercos運動匯流排的實時性, 在這個平台上開發機器人也不是很難的事情, 尤其是在ELAU公司專註的包裝行業中的機器人應用. (這裡有一個弱點,就是6軸機器人, 因為6軸機器人已經有一堆的大公司在專註, 我也只見過ELAU在展會上演示了一個用於焊接的6軸機器人的原型機).

目前, 在PacDrive平台上運行的機器人, 最成熟的機型要算Delta3,Delta2, 和Scara機器人, 這幾種機器人都是集中在包裝設備中,用於PickPlace應用的場景中, 也是PacDrive一直關注的領域.

目前在國內的一些設備製造商中,也有不少用到了PacDrive平台作為機器人開發平台, 這裡就不提了.

---------------------------------我是介紹完成的分割線------------------------------------------------------
針對題主的問題, 選用什麼樣的系統或平台開發機器人,我來說說我的看法:

1:VxWorks+Codesys 組合
VxWorks是很牛逼的實時嵌入式操作系統, 實時性很好,擴展性也很強, 缺點是c語言寫的, 太靠近硬體底層, 在我理解中, 只有那些不計成本的系統會直接用VxWorks開發, 據說戰鬥機的飛控系統就是Vxworks. 而Codesys是一個工業控制器的開發環境, 在自動化行業也算是一個事實的標準, 目前在國內也有一部分廠家再使用Codesys作為其控制器的開發軟體.
本人對Codesys 的底層開發不太了解, 大概是需要提供一個底層平台, 例如 Vxworks或者 RTLinux 之類的,然後給3S公司付費授權, 就會拿到一個CodeSys runtime, 這個runtime運行在實時操作系統上, 這樣, 就可以是使用Codesys的開發軟體來開發程序了.
這個過程還請熟悉的人補充.

好了, 假設我們現在已經有了一個可以運行的Codesys平台, 它可以控制最基本的伺服電機. (位置控制,,當然有速度控制和扭矩控制更好, 可能有些功能需要扭矩控制,就是我們可以在市面上買到的那些基於Codesys控制器的運動控制系統一樣).

由於通用的運動控制功能都是基於單軸電機的, 而機器人/機械手 是需要多軸控制的. 所以我們需要一個 路徑規劃 一類的功能, 這個功能用來對機器人在X/Y/Z -Rolling/Pitching/Yawing 空間的運動軌跡的描述. 例如直線插補, 圓弧插補, 樣條曲線插補等等, 當然還有一些高級應用功能, 例如坐標系移動等等.

當前的Codesys系統中的NC 系統是提供了這些空間軌跡規劃的, 如果沒有特別的要求, 也可以直接使用NC功能.

然後就是機器人運動學解算. 你需要什麼樣的機器人, 你就需要什麼樣的kinematic transfomer.

最後是機械設計了.

然後將運行設備, 就好了.

另外, Codesys現在也提供了一系列的機器人開發庫, 將現有的一些機器人演算法包含其中, 如果不求甚解的話,也可以使用這些庫. 目前我也在研究這些庫到底能不能真正開發出機器人來, 因為和國外的同事溝通了解中, 3S公司也一直想將Robot功能放入Codesys系統, 但是它的功能比較弱, 同時由於自己接觸的國內公司有限, 也沒見過有人用Codesys自帶的Robot功能來實現機器人的.

本人也是一個技術宅, 本身對Robot是一竅不通的, 只是因為一些情非得已的原因踏入機器人行業. 目前在對VREP做一些了解, 因為其是一個開源系統, 我對它的機器人演算法的通用演算法感覺很神奇, 大致也查看了它的源代碼, 發現只要將其解算過程在Codesys中實現(就是一系列的矩陣運算),那麼也可以在Codeys中實現在VREP中實現的機器人..目前這個想法還不成熟, 畢竟自己一個人精力和能力有限,

另外, 再加一點我對機器人產品的理解, 那就是無論多牛逼的機器人產品, 都是應用為主, 一定要有典型應用場景和簡易的開發環境, 一定要將操作工視為你的客戶, 而不是工程師, 如果只能由工程師使用的機器人, 是沒有市場前途的機器人. .


實驗室以前用的是windows配運動控制卡,上位機軟體負責機械臂軌跡規劃和模擬,控制卡負責發脈衝。後來用了rtx後,機器人控制演算法和速度規劃都移到實時系統上,配上ethercat主站程序和支持該協議的電機驅動即可。


codesys剛剛被羅克韋爾告了,侵犯專利,我們公司被傳喚去作證人2333


國產都用keba系統


基於機器人操作系統(ROS)可以開展許多相關研究了,尤其是演算法方面,模擬系統gazebo功能十分強大,和ROS聯合起來很棒,就slam領域,許多的研究機構都以ROS為基礎平台,而且matlab2016已經有了ROS介面,Python和C++更不在話下,除此之外,還有許多的工具,具體可以到國內的易科實驗室去了解,這是一個坑很深的領域,祝好!加油!


現在機械臂實用性怎麼樣?比如能否識別一堆同類別的零件,很準的拿起一個,調整零件方向,精準的插入孔,精度能達到多少。機械部分多長時間維護一下,維護費用。初始購買安裝費用。不要那種花里胡哨的走路唱歌之類。以上回答的都是控制開發,大部分人關心應用。


推薦閱讀:

為什麼 AlphaGo 沒用過「打劫」戰術?
高手可以談談ROS機器人操作平台開發的一些經驗嗎?
如果機器人知道自己是人造的,他會覺得屈辱嗎?
RoboMaster是一個什麼樣的機器人比賽?
剛剛開始做機器人,打算做SLAM,不知道機器人定位領域現在有哪些比較新的演算法?希望大家推薦推薦

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