如何系統地學習機器人?
學習機器人方面的專業有哪些,國內外哪些學校該專業名列前茅,研究生以及工作和就業的方向分別又有什麼,另外如果大學時想自學一些機器人的內容,網路上有什麼好的渠道(公開課或論壇等)可以推薦一些?
作為在校工科生,只回答問題中關於如何自學機器人方面的問題。
1. 基礎知識入門
教材大同小異,推薦常用的兩本:
克萊格:機器人學導論 (豆瓣)
蔡自新:機器人學 (豆瓣)
配合教材可以看斯坦福大學的公開課:斯坦福大學公開課:機器人學
以上內容,幫助在腦海中建立機器人學的大概圖景和基本概念。當然,不必盡看,實際上認真鑽研一套足矣。通常機器人學基礎討論都基於機械臂,需要弄懂的幾個問題:機械臂的空間描述和坐標變換;機械臂運動學;機械臂逆運動學;機械臂動力學;軌跡規劃;機械臂的控制;其他如機械設計、感測器、圖像處理etc。
基礎內容中,個人認為最重要的必須掌握的幾個概念:
①剛體位姿的坐標描述和變換:機器人模型的基礎,於機器人學的重要性猶如英文字母至於英文;
②D-H坐標變換:機械臂建模的重要方法,以簡潔的數學語言描述由一連串剛體組成的機械臂;
③雅克比矩陣:機械臂運動學的核心,用於關節速度和末端速度的換算;
④拉格朗日動力學:力和速度加速度之間換算的橋樑。
最重要的工具:數學,尤其是線性代數。
2. 基礎動手入門
工科不動手,學過也沒有。如果你覺得上述基礎內容很枯燥(實際上確實很枯燥),不放自己動手增加趣味性。
軟體上,可以使用萬能的matlab。實際上,克萊格的《機器人學導論》里就有大量matlab習題,可以參考。當然這裡不得不提Perter Corke編寫的robotics toolbox for matlab :http://petercorke.com/Robotics_Toolbox.html。
安裝這個toolbox之後,你可以在matlab上通過D-H方法建立機器人模型,並避開底層繁瑣的矩陣運算,通過簡單的函數進行一些運動學計算——不過逆運動學求解經常不收斂,畢竟不涉及底層嘛。更多的細節題主可以自己摸索。貼一個自己開始瞎搗騰時弄的模型圖(害羞&>.&<):
硬體上,個人DIY機器人的話成本是很高的,定位為科教功能的nao機器人(此著名萌貨見下圖,為什麼我要貼這個無關緊要的圖因為它實在是太萌了),一台就賣十幾萬呢。
但是學生黨個人DIY相對簡陋的機械臂也是可行的。買幾個幾十塊錢的電機,精度雖低,能轉起來就行。買幾塊控制板。如果你電路夠牛逼,也可以自行設計電路畫電路圖送加工然後自行焊接,但總還是買現成的板子方便嘛。對於初級選手,控制板可以選擇學生黨最常用的單片機,這裡我推薦自己搗騰過的開源項目arduino:Arduino - HomePage
(圖片來自arduino官網首頁)
arduino的好處是,編程語法簡單,只要能理解基礎的C語言即可,幾乎零入門;編輯器自帶很多sample可以參考;編程模板通用性強,很多時候編程只需要在模板上改動設計實現功能的語句即可;作為開源項目,google一下就可找到很多國外強人做的狂拽酷炫的DIY項目,比如:DIY Robotic Hand Controlled by a Glove and Arduino 很多DIY的人願意將程序公開,可以拿來參考;還有就是,價格不貴。
不管買電機還是控制板,可以求助萬能的淘寶。一個簡單的機械臂搭起來,幾百塊錢夠了。
貼一張我使用arduino板子和簡單電機瞎倒騰的機械臂:
用它在紙上畫線,因為精度低,所以直線抖成那副挫樣(害羞&>.&<)。3. 進階
進階就沒法在知乎里講了。首先方向太多,在學習完基礎知識以後,你要做什麼(工業機械手臂,運動型仿人機器人,etc),你要做哪一塊(機械設計,電路,圖像處理,控制演算法,步態規劃etc)。再者,成本太高,你懂的。最後,進階的機器人DIY沒有必要,財力成本高是一回事,更甚的是時間精力成本高。如果不以機器人為專業,那麼到1、2階段,自己玩玩即可。如果有志於從事機器人相關研究或工作,那麼在大學裡參與相關研究項目即可。
感謝邀請。
問題貌似有好幾個。都簡單說一下吧。
1. 相關專業:- 機械設計——側重機器人結構設計,運動學、動力學分析等;
- 自動化——側重電氣控制(抱歉不是這個專業的,具體方面問問別人吧);
- 電子——側重機器人的硬體電路方面實現;
- 控制理論、模式識別等——側重智能演算法方面實現,比如機器視覺(計算機專業也會研究);
- 計算機——側重通用的 ROS(Robotics OS)和部分上層應用演算法研究;
- 機械電子——側重系統集成,說白了就是以上各方面都會涉及一些。
實際上,在國內,上述幾個專業如果是做機器人可能很少做到很專,因為機器人本來就屬於交叉學科。
2. 國內外院校研究所:
在國內,機器人不能算作工科下的二級專業,一般都是某個研究方向。
哈工大機器人所、瀋陽自動化所、北航機器人所、上海交大機器人所、西安交大、南京理工、國防科大。
香港也有,忘記是港大還是哪所了。
實際上搜索相關論文就能知道大概分布了。
國外的應該很多了,日本東京大學,早稻田(不確定?),CMU(卡內基梅隆)、UC Berkeley,歐洲也有幾所不錯的。
只要在網上多搜一段時間,大概就清楚了。
或者看看頂級會議(IROS、ICRA等)、論文(國內如《機器人》,國外的沒能力投過,可以參考:機器人SCI期刊及其特點、評價、投稿之我見)作者的單位就行。
3. 研究生工作和就業。。。
國內的出路,不是出國繼續深造,就是在高校做老師申請點課題做,或者就是到某個行業(互聯網、通信、工控等相關專業)做軟體或硬體工程師去了,因為國內機器人還不算行業,沒有哪個公司有這麼多錢專門研究這個。
國外研究生出路,請問有經歷的人吧。
提問者應該剛上大學吧?
學好理論課(數學+英語+機械+電子+計算機),參加一些比賽(電子設計、機器人足球等)。
搜之前講到的國內外單位的網站,會有所收穫。CMU 的就很好,可惜他們研究很深,估計在國內做幾年也趕不上。
比較靠譜的方法就是先到自己學校相關專業的研究生實驗室里混個臉熟,積累一些項目經驗,確定好自己喜歡什麼。
英語好的話,可以想辦法直接申請去國外相關院校讀個碩博啥的。
@白峰說的比較全了,我就從我的個人經歷來看怎麼入門吧,入門之後你應該也知道往哪個方向走了(有些其他答案里也提到的,我就順便把鏈接也提供了)。
關於學習:
@白峰 對專業列舉的很全。
首先是基礎知識:線性代數,概率論,MATLAB基礎編程。這些工科大一的課程加自己稍微課外學習一下差不多夠了。
書籍:
比較經典的移動機器人入門書:
自主移動機器人導論(第2版)/R·西格沃特 (Roland Siegwart)-圖書
關於機械臂的靜力學和動力學計算:
機器人學導論(原書第3版)/克來格
在線課程(需要一定英文基礎):
斯坦福Khatib教授的機器人入門課程,偏傳統機械臂的分析
Stanford Engineering Everywhere CS223A
Sebastian Thrun的自主駕駛車(你可以理解為自主移動機器人)的介紹課程(相對較高階,並需要簡單的Python編程):
Artificial Intelligence: How To Build A Robot
入門之後自然需要你自己決定某個大方向,然後找高階的書籍或論文去了。
提醒一點,在學習上,英文基礎很重要(特別是聽讀),大部分優秀資料都是英文的。
關於工作:我個人是從機器人興趣小組(學校的足球機器人俱樂部)開始的,一直到現在仍然從事相關的工作,也覺得很有意思。
大部分做機器人的出來後根據專業能力回到相應行業(軟體開發,電路設計,視覺演算法,機械設計等),的確機器人行業還不大,沒有規模成型。
小部分(像我這樣的)還留在這個行業里:
- 工業機器人的技術開發,工程集成(ABB/KUKA/FANUC等在國內的分公司,瀋陽新松,)
- 商業較成功的各類創業型企業,如DJI | The Future of Possible
- 需運用機器人技術的其他行業公司,如汽車廠商開始研發自動駕駛,需要大量移動機器人技術
- 還有很多摸索階段的,往往規模幾人的小型創業公司
樓上的回答太全面了,只能做一點補充,
其實機器人就是自動執行工作的機器裝置。
- 機械設計和機械原理,當然這方面要求不是那麼的高,懂一些常用的機械結構就行,能夠搞定機械製圖,當然現在三維建模的比較多吧。
- 電子線路,這個很重要,以後制板,看圖很重要的
- 自動控制原理,這個得要有一定層次以後才會研究,而且有點偏理論
- 單片機等一系列控制器,大學生常用的51,430,AVR等等,選一個精通就好,入門以後就要去搞linux,ARM,安卓,winCE等高檔貨了
- 計算機,網路啊,操作系統啊,數據結構啊,語言方面選C為基礎吧。
- 其他,具體功能的機器人要不同的專業知識,比如工業上的機器人,對電氣就有很高的要求,不用全部掌握,用到再學。
2.國內院校:
- 國內的國家級機器人重點實驗室是由哈工大和中科院瀋陽自動化研究所兩個單位組成的,算是國內最牛的了
- 其他的還有華科,國防科大,西安電子之流。。。
3.就業方向
- 國內這方面就業確實比較尷尬,國內公司最好的應該是瀋陽新松機器人公司吧——瀋陽自動化研究所下屬的,瀋陽自動化研究所很會宣傳自己,各種新聞啊。。。。
- 外企好一點的,ABB算業務很不錯的,但一般機器人外企主要的業務都不是機器人,而是電機,控制這方面的,畢竟機器人的市場還沒有成長起來
- 國內機器人產業最成熟的地方是上海,整個產業鏈已經基本形成
- 目前機器人方向的就業很少,只是直接對口的很少,相關的就業不要太好找。。
4.自學
我自己一直有自學機器人方面的東西,我本身是學機械的,想學機器人的話,還是靠自己多動手吧,找到要做的目標了,自己搞搞電板,寫寫代碼,幾個項目下來就可以很熟練了,要想一下子很全面的掌握的話,基本不可能,就好象,你不能成為一個電腦全才,找個自己喜歡的突破口,專研下去就很好了。
資源方面,Itunes上面有很多免費的robot課程,雖然很多都是紙上談兵啦~但可以很好的了解機器人的整體發展情況,對這個行業可以有個更好的了解。
有錢的話,去折騰樂高吧
industrial robot入門視頻教程:Introduction to Robotics (Stanford Open Course)
mobile robot入門視頻教程:Control of Mobile Robots (Georgia Institute of Technology)
進階視頻教程:Underactuated Robotics (MIT Open Course)講個國外的:新加坡南洋理工大學的機械學院有一個專業叫mechatronics,這個專業就有很多課是教機器人的。其中最具代表性的一門課MP4006 Robotics 要求學生自己動手做一個小型機械,從硬體加工到軟體編程全部自己動手,很有樂趣。
youtube上有很多相關視頻 http://www.youtube.com/results?search_query=nanyang+technological+university+roboticssm=3
我們組是做醫學方向的,答主目前博二。我也從我的經歷分享些自己的體會。作為一個後知後覺的人覺得前輩們的經驗實在太重要了。
我本科學的自動化,小方向是飛行器控制,嗯當年搞得飛行器還都躺在我的硬碟里(matlab模擬)。。。其實本科時候硬體方面並沒有學到東西,有點遺憾,一直到研二才開始用ARM搭建機電控制系統。我現在所做的屬於機器人觸覺,方向比較小眾,九幾年時候美國這方面的研究才剛剛有所成果。最廣泛的應用就是手術模擬器、手術機器人,達芬奇手術機器人目前還沒有觸感,主要是成本太高,手術模擬器的使用就比較廣泛了。直白地說,這個觸覺機器人就是一個「操作桿」(manipulator),與虛擬環境或者遠程環境交互,所以也屬於 Human Robot Interaction 領域。整個操作桿(haptic interface/device 觸覺介面/設備)項目包括機械結構本體、控制板和驅動電路、控制演算法和通信(這三部分稱為「machine haptics」,機器觸覺)以及虛擬環境(這個方向稱為"computer haptics",計算機觸覺)。所以說完成這個項目需要的本科專業內容:機械原理、理論力學、模電數電、自動控制原理、MATLAB和C,需要掌握的專業技能包括:三維設計軟體的操作、電路板設計、ARM單片機和電機驅動控制。上面已有答主提到斯坦佛的公開課了,研究生課程包括:正逆向運動學、動力學、軌跡規劃以及控制系統設計等幾方面。該教授的實驗室在這裡:Oussama Khatib 。 本人硬體做得晚,暫時就將這麼多,下面從學術角度講講我的小方向。
機器人領域影響最大的學術協會當然是 IEEE RAS, Home - IEEE Robotics and Automation Society 包括機器人領域的頂級會議 ICRA IROS 和 期刊 TRO. 另外一個機器人頂級期刊是IJRR The International Journal of Robotics Research (但是,我們好像沒購買人家資料庫。。。)
再說兩個觸覺方向的實驗室,都是斯坦佛的。
CHARM LAB Main/Allison Okamura 和 http://sr.stanford.edu/
還有個計算機觸覺開源框架的網站 CHAI3D - Home,這是一個神奇的網站!囊括了觸覺方面的很多內容,如果有需要的話我再補充吧。
機器人是個交叉學科,涉及很多領域和細分方向,所以你所需要掌握的知識和你偏重方向也是有關的。
控制方向:機器人運動學動力學建模(旋轉矩陣、DH模型啥的),機器人控制(pid、自適應、魯棒、NN),動態軌跡規劃(DDP、PI2、POWER),加強學習(monte carlo、TD、SARSA,Q learning, planning, policy based
RL......),機器人與環境的接觸控制(impedance control、flexable robot,force control)。
視覺方向:SLAM,bayes建模,gauss過程,visual tracking,localization,motion planning, map building,CNN,RNN)等等。
總之,機器人學是個交叉和跨學科的領域,需要很多綜合知識。實際過程中需要什麼就學什麼,一點點來,不用擔心什麼。作為在博士階段才進入這個領域的一名在讀博士生,簡要說下我的切身體會和認知:
機器人專業或者國內一般稱為機器人與自動化專業是一個龐大的交叉學科,如果你將機器人的認知識別系統也加入的話,基本上一個理工科院校的所有學員都能沾上邊。所以如果想進入這個領域,可以結合自己所學專業作為切入口。
作為基本知識儲備,
1. 數學:高等數學,線性代數,矩陣論,這些在做機器人運動學和動力學分析時都會用到。
2. 英語:因為最新最全面最開源的相關信息都可以查閱相關的英文文獻或者網上的外國論壇,比如簡單控制用的ARDUINO,模擬 ROS,設計Solidworks,等等
3. 機械原理, 機械設計:如果你著重於機器人的機構設計的話,是必備的
4. 自動控制,數電, 模電,單片機,:如果你想涉足機器人控制方面,包括硬體和軟體
5. 多體動力學:如果你想分析其動力學特性時,即實際機器人運動表現。
6. 相關的軟體,每個小分支都有相關的軟體,比如Matlab,C++,solidworks, adams 等等
至於就業,你可以找到自己具體相關的方向去尋求。需要說明的是,一般做機器人的學校或機構都不是單純一個專業方向的人員組成,他們各有側重各有分工,只是最終用機器人這樣一個最終表現形式來闡述自己的能力。
最後,說句俗話,心急吃不了熱饅頭,機器人這個領域,誰都可以進入,但前提是你至少以某一個分支作為突破口來進入。所以,找到自己感興趣的相關方向作為切入口吧!這是個複雜的話題,機器人也很很多種類,比如工業機器人,服務機器人等等!我就是搞工業機器人的,需要相關學習資料可以關注我
你好,學習機器人需要什麼開發環境,或者系統語言的?從嵌入式系統入手可以嗎
史上最全最新機器人領域期刊總結
搞機器人學術研究的必看。
轉自公益微信公眾號:聞博全球博士項目分享
http://weixin.qq.com/r/qjoqMnrEKSdWrT5R92_4 (二維碼自動識別)
Welcome to Mechatronics Engineering program.
推薦閱讀:
※浙大社科or武大經濟?
※如何看待同濟大學浙江學院(三本)2017年浙江省出檔分646分?
※剛被浙大農學錄取,想問一下關於這個專業以後應該怎麼走下去?
※被羅馬尼亞語專業錄取了,要不要復讀?
※已考上某211併入讀不喜歡的專業,現在想退學復讀去軟體工程,可行嗎?