根據世界第一的機器人教育機構卡耐基梅隆大學的機器人學博士的課程分類方式,機器人學有四個核心領域:
在真正開始談該怎么做之前,筆者給了大家一些善意的提醒:
但是,小瓦君想插播一個消息。
關于筆者善意的提醒和愛的忠告就到這里了,接下來開始介紹如何才能成為一名機器人工程師。
小瓦君將整個大一需要學習的整理為五大點
翻墻
必須要翻墻,先確保自己能上Google。這能讓你在之后的職業生涯里節省上萬塊錢,所以別心疼買VPN的錢。
注冊一個Gmail賬號
再注冊stackoverflow賬號
再注冊github的賬號
再注冊CSDN賬號
注冊完多登錄上去逛逛...
英語
英語水平會影響機器人工程師水平。
一些高級的機器人知識都不是中文的參考資料,這個時候如果啃不下英文資料,進步速度和眼界就會受到很大影響。
因此大一的時候要多看看紅寶書,看看美劇。
線性代數
線性代數的重要性需要特別強調,優秀的工程師和科學家在職業生涯中要學至少五次線性代數。
對學習線性代數推薦兩書一教材:
《Linear Algebra Done Right》
《Linear Algebra Done Wrong》
麻省理工公開課:線性代數。[2]
不論如何,學線性代數一定要用國外的教材,千萬不要用國內的教材,就算是英文也要啃下來,同時還要刷足夠多的課后題。
編程
不管學的專業是什么,一定要在大學一年級盡早開始學編程。
推薦從Python開始學習編程,比較好的Python開發學習環境是Anacoda 。比較好的教材是麻省理工學院公開課:計算機科學及編程導論。
Python就像一把瑞士軍刀,功能很多。但是真要去造機器人,合適的工具并不是瑞士軍刀,而是C/C++這樣簡單粗暴的錘子和螺絲刀般的工具。
筆者個人入門用的是清華大學出版的《C++語言程序設計》。不過國內的C語言教材都有個巨大的問題是不引導學生去用Linux。
Makefile
當你把C學得差不多,開始要學寫包含多個頭文件的程序時,一定要同時學習makefile的知識。這時候要上網去搜“Makefile詳解”。
筆者個人覺得HTML和Javascript也是機器人工程師必備的技術。因為web技術實際上已經滲透到了編程的方方面面。另外AJAX能夠幫助初學者理解一定的網絡技術原理,而網絡技術也是機器人工程師必備的技能。
上大二的時候,你已經學會了基本的編程知識和基本的數學知識。機器人工程師需要的技能數量是IT行業全棧工程師技能數量的三倍以上,這些技能的基礎都應該在大二開始積累。
大二應該掌握的技能
大二階段特別要強調的是對動手能力的培養,包括機械材料的加工、電路焊接、制作導線和接頭、連接路由器、配置網絡、做網線等等。
在動手前,你需要準備以下工具~
對于該選擇造一個怎么樣的“真正能用的機器人”練手,最好的選擇肯定是機器人比賽中的機器人。
參加Robocon,你會學著造有人那么高的巨大機械;
參加RoboMasters,你會學著造比汽車還要靈活的機器人。
其他一些小型的比賽比如飛思卡爾智能車,也是很好的訓練。
國內開源機器人社區也有很多資源可以利用來學習,比如自己買Arduino STEM educational Robot kits Building Platform的各種開發套件做簡單的機器人。
如果更希望接觸到單片機的本質,可以自己買STM32開發板學習。STM32是ARM Cortex?M家族中最為廣泛應用的一款單片機,在網上也有很多的教材和開發板可供選擇。在國內著名的電子論壇STM32/8 分論壇上,有很多參考資料。
大二的暑假,可以跟著學校的機器人隊參加了一些機器人比賽,也可以自己做一個舵機機器人,比如六足機器人。舵機是機器人工程師的好朋友,一定要好好掌握。
但是,大二要做的,遠遠不止參加機器人比賽。
大二結束的時候,你的Linux應該用的很熟練了,除了makefile,你也用起了cmake。你還應該有做到...
3000行代碼
學校應該給大二到大三的學生有開設面向對象的程序設計,一般用Java或C++。在面向對象的程序課里面,一定要積累3000行左右的代碼的開發經驗。經典的程序設計練習通常是寫游戲,比如俄羅斯方塊,吃豆人等等,一定要自己能夠做到完全手寫一個完整的項目出來。
倒立擺
在大二這一年的學習中,你的課程里多多少少用到了Matlab。要注意的是,Matlab最強大的工具是Simulink,通過它你幾乎可以仿真一切的物理系統和控制系統。筆者建議同學可以通過Simulink實現一個倒立擺。
倒立擺是機器人學中一個非常重要的模型,因為火箭、導彈、雙足機器人、四足機器人,基本都是倒立擺的變形。自己做出來的simulink模型一定要存好哦~
(審核編輯: 林靜)
分享