根據(jù)世界第一的機(jī)器人教育機(jī)構(gòu)卡耐基梅隆大學(xué)的機(jī)器人學(xué)博士的課程分類方式,機(jī)器人學(xué)有四個(gè)核心領(lǐng)域:
在真正開(kāi)始談該怎么做之前,筆者給了大家一些善意的提醒:
但是,小瓦君想插播一個(gè)消息。
關(guān)于筆者善意的提醒和愛(ài)的忠告就到這里了,接下來(lái)開(kāi)始介紹如何才能成為一名機(jī)器人工程師。
小瓦君將整個(gè)大一需要學(xué)習(xí)的整理為五大點(diǎn)
英語(yǔ)
英語(yǔ)水平會(huì)影響機(jī)器人工程師水平。
一些高級(jí)的機(jī)器人知識(shí)都不是中文的參考資料,這個(gè)時(shí)候如果啃不下英文資料,進(jìn)步速度和眼界就會(huì)受到很大影響。
因此大一的時(shí)候要多看看紅寶書(shū),看看美劇。
線性代數(shù)
線性代數(shù)的重要性需要特別強(qiáng)調(diào),優(yōu)秀的工程師和科學(xué)家在職業(yè)生涯中要學(xué)至少五次線性代數(shù)。
對(duì)學(xué)習(xí)線性代數(shù)推薦兩書(shū)一教材:
《linear algebra done right》
《linear algebra done wrong》
麻省理工公開(kāi)課:線性代數(shù)。[2]
不論如何,學(xué)線性代數(shù)一定要用國(guó)外的教材,千萬(wàn)不要用國(guó)內(nèi)的教材,就算是英文也要啃下來(lái),同時(shí)還要刷足夠多的課后題。
編程
不管學(xué)的專業(yè)是什么,一定要在大學(xué)一年級(jí)盡早開(kāi)始學(xué)編程。
推薦從python開(kāi)始學(xué)習(xí)編程,比較好的python開(kāi)發(fā)學(xué)習(xí)環(huán)境是anacoda 。比較好的教材是麻省理工學(xué)院公開(kāi)課:計(jì)算機(jī)科學(xué)及編程導(dǎo)論。
python就像一把瑞士軍刀,功能很多。但是真要去造機(jī)器人,合適的工具并不是瑞士軍刀,而是c/c++這樣簡(jiǎn)單粗暴的錘子和螺絲刀般的工具。
筆者個(gè)人入門(mén)用的是清華大學(xué)出版的《c++語(yǔ)言程序設(shè)計(jì)》。不過(guò)國(guó)內(nèi)的c語(yǔ)言教材都有個(gè)巨大的問(wèn)題是不引導(dǎo)學(xué)生去用linux。
makefile
當(dāng)你把c學(xué)得差不多,開(kāi)始要學(xué)寫(xiě)包含多個(gè)頭文件的程序時(shí),一定要同時(shí)學(xué)習(xí)makefile的知識(shí)。這時(shí)候要上網(wǎng)去搜“makefile詳解”。
筆者個(gè)人覺(jué)得html和javascript也是機(jī)器人工程師必備的技術(shù)。因?yàn)閣eb技術(shù)實(shí)際上已經(jīng)滲透到了編程的方方面面。另外ajax能夠幫助初學(xué)者理解一定的網(wǎng)絡(luò)技術(shù)原理,而網(wǎng)絡(luò)技術(shù)也是機(jī)器人工程師必備的技能。
上大二的時(shí)候,你已經(jīng)學(xué)會(huì)了基本的編程知識(shí)和基本的數(shù)學(xué)知識(shí)。機(jī)器人工程師需要的技能數(shù)量是it行業(yè)全棧工程師技能數(shù)量的三倍以上,這些技能的基礎(chǔ)都應(yīng)該在大二開(kāi)始積累。
大二應(yīng)該掌握的技能
大二階段特別要強(qiáng)調(diào)的是對(duì)動(dòng)手能力的培養(yǎng),包括機(jī)械材料的加工、電路焊接、制作導(dǎo)線和接頭、連接路由器、配置網(wǎng)絡(luò)、做網(wǎng)線等等。
在動(dòng)手前,你需要準(zhǔn)備以下工具~
對(duì)于該選擇造一個(gè)怎么樣的“真正能用的機(jī)器人”練手,最好的選擇肯定是機(jī)器人比賽中的機(jī)器人。
參加robocon,你會(huì)學(xué)著造有人那么高的巨大機(jī)械;
參加robomasters,你會(huì)學(xué)著造比汽車還要靈活的機(jī)器人。
其他一些小型的比賽比如飛思卡爾智能車,也是很好的訓(xùn)練。
國(guó)內(nèi)開(kāi)源機(jī)器人社區(qū)也有很多資源可以利用來(lái)學(xué)習(xí),比如自己買(mǎi)arduino stem educational robot kits building platform的各種開(kāi)發(fā)套件做簡(jiǎn)單的機(jī)器人。
如果更希望接觸到單片機(jī)的本質(zhì),可以自己買(mǎi)stm32開(kāi)發(fā)板學(xué)習(xí)。stm32是arm cortex?m家族中最為廣泛應(yīng)用的一款單片機(jī),在網(wǎng)上也有很多的教材和開(kāi)發(fā)板可供選擇。在國(guó)內(nèi)著名的電子論壇stm32/8 分論壇上,有很多參考資料。
大二的暑假,可以跟著學(xué)校的機(jī)器人隊(duì)參加了一些機(jī)器人比賽,也可以自己做一個(gè)舵機(jī)機(jī)器人,比如六足機(jī)器人。舵機(jī)是機(jī)器人工程師的好朋友,一定要好好掌握。
但是,大二要做的,遠(yuǎn)遠(yuǎn)不止參加機(jī)器人比賽。
大二結(jié)束的時(shí)候,你的linux應(yīng)該用的很熟練了,除了makefile,你也用起了cmake。你還應(yīng)該有做到...
3000行代碼
學(xué)校應(yīng)該給大二到大三的學(xué)生有開(kāi)設(shè)面向?qū)ο蟮某绦蛟O(shè)計(jì),一般用java或c++。在面向?qū)ο蟮某绦蛘n里面,一定要積累3000行左右的代碼的開(kāi)發(fā)經(jīng)驗(yàn)。經(jīng)典的程序設(shè)計(jì)練習(xí)通常是寫(xiě)游戲,比如俄羅斯方塊,吃豆人等等,一定要自己能夠做到完全手寫(xiě)一個(gè)完整的項(xiàng)目出來(lái)。
倒立擺
在大二這一年的學(xué)習(xí)中,你的課程里多多少少用到了matlab。要注意的是,matlab最強(qiáng)大的工具是simulink,通過(guò)它你幾乎可以仿真一切的物理系統(tǒng)和控制系統(tǒng)。筆者建議同學(xué)可以通過(guò)simulink實(shí)現(xiàn)一個(gè)倒立擺。
倒立擺是機(jī)器人學(xué)中一個(gè)非常重要的模型,因?yàn)榛鸺?、?dǎo)彈、雙足機(jī)器人、四足機(jī)器人,基本都是倒立擺的變形。自己做出來(lái)的simulink模型一定要存好哦~