更新時間:2019-08-28 來源:黑馬程序員 瀏覽量:
當(dāng)前,與智能機器人開發(fā)技術(shù)相關(guān)的話題越來越熱,IT培訓(xùn)機構(gòu)黑馬程序員今年3月份在武漢校區(qū)開設(shè)了首期智能機器人軟件開發(fā)工程師就業(yè)班,隨著課程臨近結(jié)束,很多人都好奇,黑馬程序員的智能機器人軟件開發(fā)課程到底都學(xué)了什么技術(shù)?
入門之旅:打好基礎(chǔ)是關(guān)鍵
第1周:Python基礎(chǔ)。Python像一把瑞士軍刀, 你可以用它干很多事,比如自動回復(fù)郵件、自動收集信息。
很多零基礎(chǔ)學(xué)員,第一周便能用Python開發(fā)出簡單的學(xué)生管理系統(tǒng)、火車票查詢系統(tǒng)。
第2周:學(xué)會面向?qū)ο?。最能體現(xiàn)“面向?qū)ο蟆本幊趟枷氲?,就是大家小時候都喜歡玩的坦克大戰(zhàn)。
圖:第二周學(xué)習(xí)成果
第3周:高等數(shù)學(xué)。要想掌握機器視覺和人工智能, 成為年薪30萬以上的工程師, 懂高等數(shù)學(xué)和線性代數(shù),這是必備基礎(chǔ)。
圖:第三周作業(yè)
第4周:網(wǎng)絡(luò)編程和多線程。網(wǎng)絡(luò)技術(shù)是機器人工程師必備的技能,多線程也是能最大發(fā)揮程序效率的必備技能,掌握udp、tcp和socket這是編寫通訊模塊的重要基礎(chǔ), 后面我們編寫工業(yè)3D相機和機械臂驅(qū)動,都需要基于socket進行編程。
第5周:HTML和爬蟲。Web技術(shù)實際上已經(jīng)滲透到了編程的方方面面,另外大量網(wǎng)絡(luò)上的數(shù)據(jù)我們需要能夠抓取下來,做數(shù)據(jù)分析,為機器學(xué)習(xí),數(shù)據(jù)挖掘打下堅實的基礎(chǔ)。
第6周:數(shù)據(jù)清洗和挖掘。學(xué)生掌握數(shù)據(jù)庫概述、客戶端使用、數(shù)據(jù)庫操作、表結(jié)構(gòu)的創(chuàng)建和修改、表數(shù)據(jù)的增刪改查、where、order、group、分頁、連接查詢、外鍵、視圖、事務(wù)、索引等數(shù)據(jù)操作技術(shù)。
進階之旅:掌握開發(fā)“工具”
學(xué)到這里,學(xué)員們基本上已經(jīng)成為初出茅廬的新兵了,可以準(zhǔn)備進入智能機器人軟件工程師開發(fā)的大門了。
第7周:Linux。對于機器人工程師來說,語言和操作系統(tǒng)都是工具, 哪個工具最順手,我們就要優(yōu)先學(xué)習(xí)哪個。從現(xiàn)在到可預(yù)見的未來,Linux是機器人軟件工程師最好的操作系統(tǒng)。原因是機器人操作系統(tǒng)ROS是基于Ubuntu開發(fā)的,在Ubuntu上運行最穩(wěn)定。
第8周,C++實戰(zhàn)編程。如果說Python是瑞士軍刀,那么C/C++便是錘子和螺絲刀。真要去造機器人,合適的工具并不是瑞士軍刀,而是簡單粗暴的錘子和螺絲刀般的工具。
熟練使用工具,需要大量的實踐。在課堂上,黑馬程序員的老師通過類比講解Python和C++的異同點,Python寫業(yè)務(wù)邏輯簡潔明了,C++做核心算法,整潔高效。以此讓大家短時間內(nèi)快速掌握兩門語言。
第9周,CMake和makefile實戰(zhàn)。C語言和C++語言從誕生到現(xiàn)在已經(jīng)有幾十年了, 很多前輩程序員寫出了大量經(jīng)典的框架和工具集, 學(xué)習(xí)編譯工具理解Github存在的意義, 讓前輩的代碼融入到我們的工程中。
實操之旅:拆解機器人
當(dāng)學(xué)員們掌握工具之后,終于進入全面了解機器人的過程。
第10周,機器人操作系統(tǒng)。ROS( Robot Operating System,機器人操作系統(tǒng))誕生于2007年,并很快在機器人研究領(lǐng)域掀起了ROS開發(fā)與應(yīng)用的熱潮,目前已經(jīng)成為機器人領(lǐng)域的網(wǎng)紅。
圖:學(xué)員們第10周的作業(yè)
獵聘網(wǎng)上搜索ROS關(guān)鍵字,大多數(shù)崗位起步月薪到達到1.5萬~2萬元。學(xué)員本周的學(xué)習(xí)任務(wù)是,熟練使用pid原理,聯(lián)合使用C++和Python語言,完成掃地機器人的開發(fā)。
第11周,機器人學(xué)&Cobot Sys仿真。六關(guān)節(jié)機械臂工作原理,機器人坐標(biāo)系,坐標(biāo)變換與旋轉(zhuǎn)矩陣,歐拉角四元數(shù),機器人的DH表達,機器人關(guān)節(jié)空間與笛卡爾空間轉(zhuǎn)換,機器人的正解和反解,這些都是屬于機器人學(xué)的最基本的問題。我們花一周的時間為大家講解,cobot Studio是機器人仿真模擬的利器。
圖:多自由度的機械臂的難點在于機械臂的運動學(xué)如何建模
第12周,相機成像和驅(qū)動。相機是機器人的眼睛,我們要學(xué)習(xí)不同相機的成像原理,不同光源對成像的影響,結(jié)構(gòu)光相機,雙目相機和普通rgb相機的使用場景,相機下位機程序的編寫,相機驅(qū)動的編寫等內(nèi)容。
第13周,機器視覺Open CV,視覺是人類最為重要的感覺。要賦予機器人智能,第一步就是給機器人賦予視覺。隨著科學(xué)技術(shù)和計算機計算的不斷發(fā)展,主要解決視覺問題的圖像處理系統(tǒng)得到了長足的發(fā)展,涌現(xiàn)出許多優(yōu)秀的框架,Open CV是其中的代表。
第14周:3D視覺。2D的照片丟失了一個維度的數(shù)據(jù),在某些特殊應(yīng)用場景下,不能滿足開發(fā)的需求,我們要引入3D的相機來進行更準(zhǔn)確的識別。
實戰(zhàn)之旅:讓機器人有“思想”
在掌握了初高級工具,了解了機器人的相關(guān)系統(tǒng)之后,接下來就是進入實戰(zhàn)模塊了。
第15周:深度學(xué)習(xí)實戰(zhàn)。深度學(xué)習(xí)是目前很火的技術(shù),但是大多數(shù)教程都偏理論,學(xué)完很難應(yīng)用到真實的業(yè)務(wù)場景里面,我們采用目前最主流的深度學(xué)習(xí)框架(pytorch),講解深度學(xué)習(xí)和卷積神經(jīng)網(wǎng)絡(luò), 深度學(xué)習(xí)做重要的是組織數(shù)據(jù)集,評估模型和改善模型。
圖:機器人才是未來垃圾分類的霸主
第16周:SLAM。SLAM是Simultaneous localization and mapping縮寫,意為“同步定位與建圖”,主要用于解決機器人在未知環(huán)境運動時的定位與地圖構(gòu)建問題,我們課程會講解slam算法原理,坐標(biāo)變換與實時構(gòu)圖的過程,最終利用生成好的地圖文件,完成AGV小車或者掃地機器人的自主導(dǎo)航。
第17周以后,學(xué)員們開始了多項實戰(zhàn)項目實踐,包括機器人寫字、器人無序分揀、機器人跟隨等。以機器人寫字為例,該項目是人手寫數(shù)字,通過機器視覺識別數(shù)字的圖像,讓機器人模仿寫出對應(yīng)的數(shù)字。
圖:這個步驟,涵蓋數(shù)據(jù)收集、深度學(xué)習(xí)、視覺處理、識別數(shù)字等多項技術(shù)的綜合
近幾年,機器人以各種“方式”進入我們的世界。牛津經(jīng)濟研究所曾在6月25日發(fā)布報告:未來10年機器人將取代全球2000萬工作崗位。
機器人一直是黑馬程序員非常關(guān)注的領(lǐng)域,在開發(fā)新課程上,黑馬程序員也一直走在時代的前沿。黑馬程序員從成立最初的單一學(xué)科,到現(xiàn)在已包括JavaEE、Python+人工智能、前端與移動開發(fā)、UI/UE設(shè)計、大數(shù)據(jù)、Go語言等14門學(xué)科。
歷史上,黑馬程序員曾在移動互聯(lián)網(wǎng)時代來臨之際,率先培養(yǎng)了大批的Android與iOS的開發(fā)人才,為移動互聯(lián)網(wǎng)輸送了大量的人才。在即將到來的智能機器人時代,黑馬程序員依然走在前面。