應該學習哪些方面的知識,才能適應機器人研發的工作?
另:工業機器人和普通商用機器人在知識上的區別有哪些?是否有共通的地方,某方面的知識可以用於兩個領域?
對這一領域比較感興趣,畢業後想從事機器人方面的工作。現階段是電氣工程類本科,希望小牛大神指點迷津,先謝過了!
這裡有必要提醒各位注意一個技術人員容易忽略的基礎事實:
【機器人學是一門高度交叉的工程學科】
為什麼要說這個?是因為這裡面有兩個重要的詞:交叉、工程。
=============下面是分開討論,覺得太長可以直接看最後結論===========
【交叉】意味著機器人學涉及的知識範圍非常廣泛,上至院士,下至愛好者,沒有能一個人搞定所有事的。中國學術界,一般來說傾向於把涉及的技術分為三大類:感知、認知、動作,近年來又補充了協同,這裡簡單說說:
1.感知技術核心的是感測基礎,其中包括了:感測器(各類感測器,基於什麼原理的都有)、信號處理(核心使用的技術是各類濾波、多感測器融合等)、模式識別(視覺、語音、運動捕捉等)等等。
2.認知是理解環境的部分,現在主流的核心手段是(基於認知科學的)機器學習技術。人機交互的理解部分一般也放在這裡。
3.動作是從事的人最多的部分,傳統工業機器人幾乎所有問題都在這裡面。動作首先包括了機械、電子(拖動)這些看得見的部分,然後還包括了於控制理論為核心的運動控制,規劃理論為核心的運動規劃,
4.協同是後來被補充進體系的(暫定,未普遍接受),主要包括了網路化和多機器人。網路化大部分問題是工程性質的。多機器人則主要研究如果每個機器人單獨決策時,如何全局最優等問題。
【工程】機器人是工程學科,意味著你不能理科思維去學習他。你無法通過【學習基礎理論=》推演出各種問題答案】這條路走下去,因為所有的研究都是基於【你的系統使用了什麼設備】為基礎的。所以搞這行的基礎之一就是,你要知道你有什麼可以使用的。
對於一般的團隊,通常機電部分和軟體演算法部分至少是不同人的(普通嵌入式軟體歸機電部分,但複雜閉環之類的可能歸演算法)。對於一個具體的人來說,一般我們都會具體的區分這個人是做機器人哪部分的,而各部分之間的基礎技術可能完全不同。
【問題來了】學挖掘機……恩,不,學機器人到底需要什麼技術呢?看到這裡題主肯定更迷茫了,這麼多怎麼學?實際上說,我們肯定不需要都學,這裡給出一些典型的場景和搭配,名字都一般的俗稱,給題主一些參考:
【搞系統的】通常指那些構建機器人系統的領軍型人物,這類人是典型的工程師,知識結構以了解所有相關學科進展為基礎。很多情況下,這類人才都是做各種填補空白的項目,擅長領域相關的分析。知識結構大多以機電出身,少有機器學習和軟體出身。
【搞機的】機械、傳動、電機(選型等)、液壓、底盤等等技術為基礎,是機器人系統的基礎,也是國內幾人領域的主力軍。通常在紮實的設計能力上,要求有限元等分析手段。是很強調經驗的類型。
【搞電的】嵌入式(包括其中的軟體)、感測器、驅動、閉環控制(PID等)、濾波、通訊協議等等技術是必須的,尤其要求見過的東西多。
【搞軟的】很不幸,這個比傳統的軟體概念大很多,除了通訊、UI之外,決策等演算法問題通通都要這些人來解決。甚至基本的機器視覺、多機協作都要掌握。
==上面是工程型,下面是擴充的細分研究==
【搞導航】注意,很多時候說導航,解決的不是怎麼從A到B的問題,而是定位問題:我在哪?核心技術大多數都是以貝葉斯濾波為基礎的(比如卡爾曼等)。如果細分,則搞SLAM的和搞GPS+慣性+航跡的會分為兩類。這些方向基本上獨立構成問題,專精即可。
【搞規劃】這個才是很多人以為的導航,簡單版是路徑規劃,複雜的可能包括人的步態規劃。這個方向往往沒法完全獨立,大部分研究的人還同時在各種平台上面做優化,需要有工程分析能力。
【搞控制】這個就不是簡單的控制了,而是那些「領先科技20年」的高端控制問題,非線性什麼的是至少的,需要強大的數學基礎。通常是搞理論或是專註於某個具體複雜應用領域的人。
【搞識別】模式識別與機器人是千絲萬縷的聯繫,很多搞識別的也都搞機器人。但基礎知識和機器人學已經沒什麼關係了。
【搞動力學】機械的特殊進化方向,主要是由於其複雜性和在實際應用中大量使用的估算方法,所以變得只有高端應用和科研才會實際使用。
【搞智能】尤其以科大為代表,同樣機器人最後不是唯一對象了。
還有很多很多,人數相對少些,就不多說了。注意後面的都是研究分化。
==還可以按特定領域分,就不列了==
徘徊著的 在路上的 那也曾是我的模樣 我曾經失落失望失掉所有方向 向前走 就這麼走
==========
拿到手裡的第一本專業機器人書籍是J Craig的Introduction to Robotics,機械工業出版社的影印本。心裡歡喜的緊,走在路上,用手不斷的在書的封皮上摩擦,摩擦。要知道,這已經是大學的最後一個學期了。大學的幾年過的渾渾噩噩,終於想在這最後關頭,為自己遺棄的理想做點什麼。想著想著,心裡也豁然開朗,竟對自己所選的掛羊頭賣狗肉的專業也覺得無所謂了!
拿著書狠命的讀了兩個星期,這不是理論力學和機械設計裡面就學過的運動學么?原以為終於可以一探機器人學的奧義,卻還是這些矩陣算來算去,罷了罷了,還是喝酒吃肉,享受這大學僅剩的時光吧!
在陌生的城市開始了我的機器人學研究生生活。有的人做視覺,用Visual studio,還要用OpenCV。想想我用Visual Studio還是高中寫Basic的事啊!大一的C語言考了個剛及格,以後再寫程序基本不超過30行了!看著代碼我頭都發暈。。。這代碼量還是有點大啊!得有幾千行把??可以做電機控制吧,不過我的控制理論好像也就60多分吧?心裡還在想著到底能不能做,發現程序是寫在個叫什麼ARM的片子里。。這是什麼?!我好想有用過DSP啊,跑馬燈什麼的記得也是寫過的,可是這是20個自由度的機器人啊!還是去做機械設計吧!想想我大學也就機械設計學的最好了,工程製圖,粗線細線都畫得一絲不苟,齒輪蝸桿算的毫釐不差~ 可是。。這Solidworks是個什麼東西?!我好想只會一點AutoCAD啊,ProE也就跟著老師的示範用過一次啊。怎麼幾百個零件都要畫出來,還要裝配?還要看看裝起來能不能動?算算應力什麼的?好像做也是可以做,不過這麼做,研究生能畢業么?我不是要來做機器人的么,不能只做了結構件吧!頭都要炸了。。。
感覺大學真是白過了,學會的抽煙喝酒現在只能幫著減壓了。突然發現博士生們都在做ZMP模型,終於有口飯能混著吃了。。公式確實簡單,很容易看懂。但是算到人形機器人上要把多體算成單體的時候,能更複雜一點么??還有這個ZMP,解決的問題也太單一了吧?(應該是只有研究雙足走路的人才會用到ZMP)
又渾渾噩噩的過了一年,但是畢竟每天和機器人泡在一起,我已經能看出當小機器人走不好路的時候大概是哪顆螺絲鬆了抑或是哪個舵機壞了;不能追蹤小球的時候我也了解怎麼調顏色閾值了;對新來的學弟學妹們也能吹吹牛了。最主要的,我選擇做機器人的定位演算法,我必須要能夠畢業嘛!
認真的花了大概兩個月時間,好像也挺快啊~ 寫了兩百多行的Matlab,模擬了一下。又多花了一個月,把程序移植到了C,在系統上試了試,反正,最終是畢業了。。
工作了,往後的日子彷彿看不到頭,也便真的把心沉了下來。要是說起來,好像OpenCV還是不怎麼懂,ARM的板子也沒弄過幾回,Solidworks也就知道怎麼平移怎麼轉動,但是程序是輕輕鬆鬆寫個上千行了,debug也很少卡殼,問題一個一個解決。寫程序的時候心裡有硬體系統,設計硬體的時候心裡有軟體架構。於是現在也就渾渾噩噩的做了好幾年機器人研發的工作。
依稀記得,初中畢業時,給所有同學的留言本上未來想做的事都寫著:造我的變形金剛。
==========
從來沒得到答案 故事你真的在聽嗎?
機器人相關專業小碩,不算小牛也不算大神,僅僅算的上是剛剛入門。回想起我本科的也是非常非常迷茫,寫點東西,希望能夠幫助到題主,也希望知友幫忙指正一下。
首先,回答問題,個人不建議用工業機器人和商業機器人這樣的說法來為機器人分類。最好是說單獨的機器人種類,或者說是機器人中具體的研究對象。一般來說,機器人分為輪式的,無人機,機械臂,直立機器人,還有那種大狗機器人等等。姑且按照你的分類來談談看,工業上的機器人現在最常見的是機械臂,這裡面的知識我認為主要是剛體運動啊什麼的,有一本書叫做《A Mathematical Introduction to Robotic Manipulation》,如果對這方面感興趣可以看一下。之前推薦的這本書有點太偏向理論了,最近被推薦了一本書叫做《機器人學導論》是craig寫的,感覺還不錯。商業機器人涉及的東西就多了,看你做什麼了,像無人機,雙輪直立機器人這樣的機器人控制演算法的話涉及到的就是控制理論和現代控制的內容,視覺方面涉及到的就是計算機視覺,想學習的話可以參考,《Computer Vision A modern approach》,做slam的話需要學習濾波器,可以通過《probabilistic robotics》來學。共通的地方非常多,上面的書談的更多的是通用的方法,無論是工業還是商業機器人,只要用到了就會用到共通的知識。建議答主更多的關注具體知識,因為以後做的也就是這個。
更基礎的知識是數學,數學對於機器人專業非常重要,請一定要注意,具體來說是微積分(數學分析,這個本科我上過高數,研究生感覺需要補一下數分的知識,但是一直木有時間- -),矩陣分析(可選教材《matrix analysis》《Linear Algebra and Its Application》《Linear Algebra done right》),優化演算法(可選教材《convex optimization》),隨機過程(這個課我沒選,建議參考一下國內圖靈數學統計學叢書據說不錯),如果做理論多的話,特別需要多讀一些數學書,比如群論和實分析。
工具的話,LINUX,ROS,C++,python,Open cv是最基礎的,很多都是開源的網上有充足的源代碼和學習資料,在這些平台上多嘗試一些機器人比較好。
我們導師曾經對我們說過,如果想做研究,最重要的兩個問題需要提前解決,一個是數學一個是英語。我不太清楚題主的情況,不知道題主是想研究機器人還是僅僅想從事相關的工作,如果學校裡面有比較厲害的老師,那麼進實驗室我感覺是一個捷徑,如果沒有的話我想自己學習也未嘗不可。數學的東西雖然重要但是一味學的話很快會厭倦,建議題主從上面應用性強的書開始學起,多做做東西,比如Computer vision,這裡也可以參考國外的公開課。數學知識有不懂的請多用英文搜索,引擎請用必應或者google,如果實在看不懂在搜索百度,原因有二,第一是為了熟悉英語,第二是百度指向的中文網站上垃圾內容比較多,經常會浪費時間在上面。
先說到這裡吧,希望能夠對題主有幫助。
----------------------------------------更新的分隔線-----------------------------------
發現了一門比較好的課,berkeley的CS287,教授是大牛pieter abbeel,本課程旨在讓學生了解機器人研究前沿的常用方法。
Be able to understand research papers in the field of robotics:
- Main conferences: ICRA, IROS, RSS, ISER, ISRR.
- Main journals: IJRR, T-RO, Autonomous Robots.
課程地址如下:http://www.cs.berkeley.edu/~pabbeel/cs287-fa13/
常規工業機器人的樣式基本都已經定型了, 大部分集中在系統集成和應用部分。但市場還是有很多機會,需要跳出現有常規的機器人本體樣式,進行創新,本人非常看好輕型,可重構,高柔性,模塊化的機器人。工業機器人輕型化是目前3C行業的趨勢,3C行業精細化要求比汽車領域更高,製造成本可控,操作簡單的精細化機器人前景看好。有志同道合者歡迎私聊
我不是小牛也不是大神,但對有興趣加入機器人行業的總是熱心歡迎的:)
其實知乎應該有類似問題,題主可以稍微找找看了解要準備的知識,或者花兩個星期讀一本機器人入門導論的書也不難。
我只舉幾個例子:
現在技術上主要是兩大塊:手臂型(如工業機械臂)和移動型(如掃地機器人)。 儘管都叫機器人,個人覺得技術還是有一點區別的。
不同點如手臂型更關注控制,如力反饋,高精度運動,多自由度規劃等;移動型關注地圖構建,自定位,路徑規劃等。
也有類似點,比如外圍感測技術,視覺圖像,激光點雲等處理分析上。工業機器人可以靠視覺工件在哪什麼姿態放著,再能控制手臂抓取;移動機器人可以靠激光點雲識別周邊的障礙物而規劃路徑繞開。
感知技術基本是通用的,甚至跳出機器人領域(谷歌眼鏡,BaiduEye,監控識別,城市地圖構建等)也大有用處。個人覺得這一塊很有「前途」,不僅現今各大小IT公司都需要這方面人才,技術上本身也是片大大的藍海,有很多改進的潛力。
第一個問題:工業機器人,主要是六自由度焊接機器人或碼垛機器人,商用機器人:清掃機器人(科沃斯,小狗等)知識區別:機器人在一個較高的層次可劃分為:操作,移動,視覺和人工智慧,工業機器人對應的是操作,這裡書的經典推薦斯坦福的機器人學引論(看過很多人的書,唯獨這本書堪稱深入淺出)。商用機器人對應的根基是移動,如果你還在學校的話可以參加飛思卡爾,做個半年,基礎知識全部掌握了。
第二個問題:你是電氣工程的本科,建議做好機器人電控部分,在這方面下功夫。我認為牢牢掌握運動控制的基礎知識是關鍵。
感測技術——信號檢測——數字濾波器
電機學——電力電子——電力拖動自動控制系統
控制理論——現代控制理論
電路——模電——數電——計算機硬體基礎——單片機——DSP,PLC,以及現場匯流排
我想既然題主是電氣工程本科,又想從事機器人方面的工作,就先從機電一體化基礎學起,建議羅伯特比夏普的《機電一體化導論》(方建軍譯or原版),這本書的內容相對偏電,從裡面也會引申出機械、控制的相關知識,相信會符合你的口味;機器人是機電集成度很高的產品,還要有機械、控制的一些基礎,如果機、電、控具備一定基礎就可以開始機器人學了,蔡子興編寫的《機器人學》《人工智慧》等將會為你開啟機器人世界的大門!另傳送斯坦福的機器人公開課斯坦福大學公開課:機器人學
機器人研發不懂。我們是搞機器人系統集成的,有個研究院專門搞研發。就單從自己從事的工作來看,現在缺乏的主要是搞網路編程和控制系統的攻城獅。硬體的東西好搞,搞設計的可以配合,還有外協廠家。但是軟體的東西需要研發和沉澱。對於人才要求,因為機器人是跨學科比較嚴重的,一般剛畢業的學生很少能直接上手的,都需要在企業跟著項目學習2-3年。研發方面,如果是有紮實的基礎知識,又跟著導師做過很多項目,了解機器人行業發展趨勢,能在研發過程中做出一些原型產品,就非常不錯了。
做了幾年,看起來像(工業)機器人研發的工作。我想說說我的感受。。。。僅代表個人的觀點,如有不合理之處請多多指教!!!
…………………我是分割線………………
我是學機器人動力學畢業,畢業出來發現,之前學的一大堆東西好像都用不上(拉格朗日,計算力矩,滑膜控制,模糊控制,神經網路。。。還有很多控制理論都忘記了)。
工作開始一段時間在搞運動學,就是《機器人學導論》里的那些東西。把運動學放到現有的多軸控制器中,形成了國產機器人控制器!!!效果確實一般般!!!
後來發現,把插補器搞一搞可以有一定的效果,比如密集點位擬合後按擬合曲線插補出來效果好像還可以。但是問題任然很多!!!!!(抖動,機器人末端線速度如何保證?)。怎樣寫出一個好的插補器,好像也是要花一點時間才能解決的事!
驅動器和電機的水平也直接影響機器人的水平。。。
高速運動精度怎麼保證?貌似要加一點動力學的成份,但是現有的硬體條件好像沒有辦法用上動力學!!
驅動器是外購的,控制器和驅動之間的通訊僅限於脈衝和報警監測。確實限制了進一步開發!
說得我自己都亂了…
問題太多,自己學得不夠深,研發團隊不夠強大,確實很難做出優秀的工業機器人!
我來給點學習乾貨吧!
1)機器學習那些事 機器學習根基
那些事兒:http://homes.cs.washington.edu/~pedrod/papers/cacm12.pdf
根基:http://www.cs.cmu.edu/~tom/pubs/MachineLearning.pdf
(2)SVM支持向量機:
作者:http://www.csie.ntu.edu.tw/~cjlin/
英文版:http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf
中文版:http://blog.sina.com.cn/s/blog_72995dcc0100pflx.html
(3)深度學習神經網路
作者:http://www.iro.umontreal.ca/~bengioy/yoshua_en/index.html
英文版:http://www.iro.umontreal.ca/~bengioy/papers/YB-tricks.pdf
(4)模型選擇
英文版:http://eprints.pascal-network.or ... 8/01/guyon-mlss.pdf
(5)貝葉斯網路
英文版:http://as.wiley.com/WileyCDA/WileyTitle/productCd-0470060301.html
(6)樸素貝葉斯
英文版:http://paulgraham.com/better.html
(7)文本分析中的參數估計,以LDA為例
英文版:http://faculty.cs.byu.edu/~ringg ... inrich-GibbsLDA.pdf
(8)吉布森採樣
英文版:Gibbs Sampling for the Uninitiated
連接:http://www.umiacs.umd.edu/~resnik/pubs/gibbs.pdf
(9)貝葉斯推理
英文版:Bayesian Inference with Tears: A Tutorial Workbook for Natural Language Researchers
鏈接:http://www.isi.edu/natural-language/people/bayes-with-tears.pdf
(10)非參貝葉斯
英文版:A Tutorial on Bayesian Nonparametric Models
連接:http://www.cs.princeton.edu/~blei/papers/GershmanBlei2012.pdf
(11)最大熵
英文版:Using Maximum Entropy for Text Classification
連接:http://www.kamalnigam.com/papers/maxent-ijcaiws99.pdf
(12)廣告點擊率預估
英文版:Ad Click Prediction: a View from the Trenches
連接:http://static.googleusercontent. ... s/archive/41159.pdf
(13)邏輯回歸
英文版:Using and Interpreting Logistic Regression: A Guide for Teachers and Students
連接:http://www.sjsu.edu/people/james ... ic%20Regression.pdf感覺在國內尋找靠譜的工業機器人設計,開發工程師太難了,其實相對於互聯網,機器人擁有更加廣闊的市場空間和應用領域,兄弟們加油!
首先你還是要對工業機器人有一定的了解,最起碼要知道機器人的分類,比如常用的有碼垛、搬運、弧焊、點焊機器人等等,其次你要了解某一類的機器人哪個品牌有優勢,比如ABB的搬運機器人就領先其他品牌。最後,你還必須了解一些工業機器人常用的選型參數,比如,軸數、負載等等。如果想自學的話,還是很麻煩的。學習機器人方面的知識的話,可以先看看關於《機器人控制技術說明書》,《初級編程應用》,《機器人基礎製作與編程》,可以直接去百度文庫下載相關資料,還是挺全的,也可到貼吧:工博士去看看。不過如果你沒有下載券的話,可以建議你直接百度工博士資料下載,進去以後搜索機器人就行,資料也挺全,最關鍵的是他們還有個問答欄目,你有不懂的直接可以提問,他們會有專業的技術人員給你解釋。他們算是做的比較好的,你或許可以有所借鑒
機器人演算法工程師,能分享下經驗嘛,現在連入門都不算,只是在大學學習了演算法!該怎麼入手這塊?有沒有可以實踐的資料?
公司開始往機器人方向發展,最近開始著手機器人方面的學習。
大概花了2周瀏覽《機器人學導論》,基本明白坐標系、運動學和動力學、軌跡規劃基礎。
使用MATLAB Robotics Tool Box 對串聯機器人有個形象的理解。
動力學及控制方面基本沒概念,現在迷茫當中。 這幾天了解了雙足機器人,對ZMP更是一頭霧水,只有個概念性的知識。怎麼使用ZMP進行步態規劃,怎麼對各個關節動力學進行分析......
感覺機器人涉及的知識太多了,非常需要有人帶著玩。而我,現在一個人探索,偶爾和同時聊聊,基本沒進展。
推薦閱讀:
※機器人方向目前研究熱點方向有哪些?
※為什麼人工智慧的演算法部分很火,但機器人和控制科學在人工智慧中為何沒有大放異彩?
※產品經理,如何轉行到人工智慧/機器人領域?
※機器人是不是解決全球大規模老齡化問題的唯一方案?
※我們在將自己與他人歸類時是如何選擇「標籤」的?