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