1.背景 近日分享如何高新轉型到自動駕駛領域時,幾位朋友不約而同的問到了我同一個問題:「L2~L4自動駕駛的崗位都有哪些?對應著具體的什麼工作內容?需要哪方面的技能?」今天就針對這個大家都很想了解的話題做個分享。 首先介紹下自動駕駛的系統框圖(簡化版)讓大家對自動駕駛有個全局的概念 接下來,我們分為兩大類進行介紹:演算法工程師和非演算法類工程師。 演算法工程師 雷射SLAM演算法工程師 視覺SLAM演算法工程師 多感測器融合演算法工程師 機器學習演算法工程師 電腦視覺演算法工程師 自然語言處理演算法工程師 決策演算法工程師 規劃演算法工程師 控制演算法工程師 非演算法類別工程師 #軟體平台開發工程師 系統工程師 功能安全工程師 標定工程師 模擬環境工程師 測試工程師 資料工程師 UI開發工程師 下面詳細介紹每個職位的工作職責和需要學習的內容 2.演算法工程師 2.1.雷射SLAM演算法工程師 #職位介紹: ##收集雷射感測器數據,根據點雲數據對自動駕駛車輛的周圍環境進行地圖建構。 負責實現基於雷射感測器的SLAM演算法設計和開發,能夠涵蓋各種複雜場景的高精度地圖更新和製作。 技能需求: 使用c、c 程式設計;需要有濾波演算法知識:ESKF、EKF、UKF等;同時需要學習G2O、ceres等用來最佳化非線性誤差函數的c 框架。 熟悉開源SLAM框架,如GLoam、kimera、VINS等優先; 2.2.視覺SLAM演算法工程師 職位介紹: 以VSLAM為基礎,研發機器人自主導航定位演算法,包括基於雷射雷達、陀螺儀、里程計、視覺等多資訊融合,建構機器人運動模型 技能需求: 學習常用的VSLAM演算法,如ORB-SLAM、SVO、DSO、MonoSLAM,VINS以及RGB-D等等;ROS機器人作業系統;需要有濾波演算法知識:ESKF、EKF、UKF等;同時需要學習G2O、ceres等用來優化非線性誤差函數的c 框架。 2.3.多感測器融合演算法工程師 # 職位介紹: 將相機、雷射雷達、毫米波雷達等多感測器的資訊處理與融合,提升自主駕駛的環境感知能力; 負責基於多源資訊融合的目標偵測、追蹤、識別與定位; 負責基於多源資訊融合的環境特徵抽取,為地圖建構提供支援;為基於多源資訊融合的導航定位提供支援。 技能需求: 掌握camera、毫米波雷達、雷射雷達、慣性導航等相關資料解析融合演算法; 電腦資訊科學、電子工程或數學相關專業本科及以上學歷,具備紮實的計算機理論基礎 精度相機模型、多視覺幾何、Bundle Adjustment 原理,有SfM、幾何測距等項目經驗 精通C/C ,熟悉Matlab,良好的物件導向程式設計思想與編碼習慣 熟悉IMU、GPS、DR等慣導定位演算法框架 熟悉IMU、GPS、車身系統原理、硬體特性、標定演算法 2.4.機器學習演算法工程師 名單介紹:##此方向主要負責車輛行駛過程中產生的資料在工程上的應用,偏向於資料分析方向,如車輛行駛里程的影響分析、大數據分析建模等等。 技能需求: Python,C/C 學習機器學習的基礎理論演算法,如LR、GBDT、SVM、DNN等等;學習scikit-learn 等傳統機器學習框架的模型訓練;熟悉PyTorch、TensorFlow等深度學習框架(偏神經網路部分)等等。 2.5.電腦視覺演算法工程師 職位介紹: 此方向主要基於攝影機感測器,主要包括:車道線偵測、車輛等障礙物偵測、可行駛區域偵測、紅綠燈等交通資訊偵測等等。 技能需求: C/C ,Python,OpenCV;需要機器學習的基本演算法( 降維、分類、迴歸等) ;需要學習深度學習,深度學習框架;學習電腦視覺和影像處理的常用方法( 物件偵測、追蹤、分割、分類辨識等) 。 2.6.自然語言處理演算法工程師 #職位介紹: 此方向主要負責車載場景下的語音識別,語音互動設計等等 技能需求: 學習機器學習演算法、深度學習演算法(RNN);自然語言處理基本任務(分詞、詞性標註、句法分析、關鍵字抽取)需要使用機器學習方法聚類、分類、回歸、排序等模型解決文本業務問題;熟悉PyTorch、TensorFlow等深度學習架構(偏RNN部分)等等。 2.7.決策演算法工程師 職位介紹: 自動駕駛的決策是將感知模組傳遞的訊息,轉化成車輛的行為,達到駕駛的目標。例如,汽車加速、減速、左轉、右轉、換道、超車都是決策模組的輸出。決策需要考慮到汽車的安全性和舒適性,確保乘客的安全的情況下,盡快到達目標地點。 技能需求: c/c /python,熟悉ROS系統;學習常用的決策演算法,如決策狀態機、決策樹、馬可夫決策過程,POMDP等;如果往深裡學的話,需要熟悉機器學習演算法(RNN、LSTM、RL),掌握至少一種深度學習框架(例如gym或universe等深度強化學習平台);熟悉車輛運動學和動力學模型。 2.8.規劃演算法工程師 職位介紹: 規劃包含路徑規劃與速度規劃 規劃演算法中,自動駕駛車輛先透過路徑規劃決定車輛可行駛的路徑,然後選擇該路徑確定可行駛的速度。 技能需求: c/c /python,ROS機器人作業系統;(有些公司是用Matlab/simulink開發的) 學習常見路徑規劃演算法,例如A、D、RRT等; 學習一些曲線的表示方法,如:五次曲線、迴旋線、三次樣條曲線、B樣條曲線等; 如果往深裡學的話;學習軌跡預測演算法,如MDP、POMDP、Came Theory等; 學習深度學習和強化學習技術也是加分項,例如RNN、LSTM、Deep Q-Learning等等; 有數學理論基礎和背景,熟悉車輛運動學和動力學模型。 2.9.控制演算法工程師 # 崗位介紹: 一般是對車輛橫縱向動力學建模,然後開發控制演算法,實現車輛運動控制等; 這個崗位跟車輛打交道較多,對於傳統車廠轉型到自動駕駛領域的夥伴來說,是個很好的切入機會。 技能需求: C/C 、Matlab/Simulink 學習自動控制理論基礎,學習現代控制理論; 學習PID、LQR、MPC演算法; 學習車輛運動學、動力學模型,對汽車的底盤有一定了解; 學習CarSim等模擬軟體; #學習ACC、AEB、APA、LKA、LCC等輔助駕駛功能開發的是加分項; 擁有實車調試經驗也是加分項。 3.非演算法類別工程師 3.1.軟體平台開發工程師 職位介紹: 設計和實現自動駕駛軟體平台,包括核心修改/擴展、驅動程式實現/增強、中間件實現/增強、系統整合、效能/功耗最佳化、壓力/穩定性/符合性測試; 負責建構系統架構、編寫底層驅動程式; 負責視覺相關演算法在嵌入式處理器(GPU、DSP、ARM等平台)上的程式碼實現及效能最佳化、測試和維護; 協助演算法工程師完成演算法在嵌入平台上的移植、整合、測試和最佳化。 技能需求: C/C 程式設計技巧、Python; 具有嵌入式作業系統和即時作業系統的核心或驅動開發經驗,熟悉QNX、ROS; 熟悉軟體調試和debug工具; 了解車輛ADAS ECU和感測器,如雷達、攝影機、超音波和雷射雷達; 熟悉通用診斷服務(UDS)、控制器區域網路(CAN); 熟悉通訊協定(CAN、UDS、DoIP、SOME/IP、DDS、MQTT、REST等)是加分項。 3.2.系統工程師 #職位介紹: 負責客戶需求對接,以及與內部開發人員的需求釋放; 負責無人駕駛軟體系統框架建置; 負責模組化、可驗證的系統軟體架構設計和即時效能最佳化; 與硬體、演算法和測試團隊合作,整合並優化自動駕駛系統。 技能需求: 擁有紮實的電腦基礎理論知識(如:自動控制、模式辨識、機器學習、電腦視覺、點雲處理); 具有嵌入式作業系統和即時作業系統的核心或驅動開發經驗; 具備良好的溝通表達能力和團隊合作意識 3.3 .功能安全工程師 職位介紹: 在產品全生命週期內對產品的功能安全進行支援 負責無人/自動駕駛系統產品的功能安全系統設計,並對現有流程提出改進意見; 負責無人/自動駕駛系統的危險分析(HARA, FMEAs, FMEDA, FTA); 負責無人/自動駕駛系統的安全目標定義; 負責無人/自動駕駛系統的安全需求定義; 技能要求: 精通ISO26262並有自動駕駛或ADAS系統功能安全專案實施經驗;(在傳統車廠做功能安全想要轉行的也可以考慮); 了解FMEA,FMEDA,FMEA- MSR,FTA等對應的方法; 3.4標定工程師 職位介紹: 負責自動駕駛多感測器標定,包括GPS、IMU、LiDAR、Camera、Radar 和USS 等; 設計實現感測器內參外參標定演算法,建構多感測器標定係統; #負責對標定參數進行相關車輛測試,給予測試報告。 技能需求: C 程式設計, 熟悉Linux及ROS系統; 有感測器標定工作經歷,熟悉視覺或雷射SLAM 演算法; 3.5模擬環境工程師 # 崗位介紹: 此方向需要參與自動駕駛相關仿真係統的搭建,包括車輛動力學相關仿真,各類虛擬感測器模型及虛擬場景的建模與仿真,根據測試案例建立測試場景,執行自動駕駛演算法模擬測試等等; 負責搭建無人駕駛模擬系統,對汽車、感測器、環境進行軟體模擬。模擬結果將與真實數據一同用於預測汽車在真實場景中的行為; 配合駕駛決策、路徑規劃、仿真演算法等模組,實現自動駕駛閉環仿真,並視覺化相關調試資訊。 技能需求: MATLAB/simulink、Python/C 熟練操作一種常用車輛動力學或無人車相關模擬軟體,例如Perscan、Carsim、Carmaker等; 熟悉機器人作業系統ROS等; 有的模擬職位純粹屬於做仿真,但有的崗位需要做仿真環境的開發,這樣的崗位對程式設計要求會更高一些。 3.6測試工程師 名單介紹: 此方向主要負責自動駕駛車輛的相關測試工作,測試自動駕駛系統功能各項指標的性能,評估其邊界條件與失效模式; 負責自動化測試(SIL、HIL)的設計實現及智慧駕駛產品的相關驗證; 負責根據系統或產品的功能需求制定測試案例和測試計劃; 負責制定完整的系統或產品的測試計劃並實施,最後撰寫測試報告; #收集和測試系統的邊界範例,對智慧駕駛系統的安全性進行評估,對技術提出合理的回饋。 技能需求: 熟悉Ubuntu/Linux作業系統,會寫python腳本 熟悉CAN匯流排;##熟悉測試用例的編寫方法和技巧;熟悉圖像識別演算法,熟悉深度學習,掌握spark等大數據相關工具者加分;#熟悉雷射雷達,毫米波雷達,超音波探頭和攝影機的應用是加分項。 3.7大數據開發工程師 #職位介紹:##資料包含後台資料架構和前台呈現。一輛自動駕駛車每天都要產生1個T的資料量。資料該如何快速清洗、提煉、總結,例如如何迅速找出一次路測中最重要的幾次介入(disengagements)。從而更有效率的幫助工程師測試。 負責自動駕駛大數據平台系統的設計、開發與最佳化; 負責自動駕駛資料標註與處理流程的視覺化工具開發,自動化標註平台的設計與研發。 技能需求: 具備紮實的資料結構及演算法功底; 精通Java/Python/C 等至少一門高階程式語言; 熟悉Linux開發環境; 有基於SQL或No-SQL資料庫的應用程式的設計、開發經驗; 熟悉REST服務及Web標準,熟悉一種主流前端開發框架,如React/AngularJS,能獨立建構前端應用者加分; 熟悉自動駕駛及相關的Lidar、Camera等感測器資料者加分。 3.8UI開發工程師 #職位介紹: 每個公司都需要建立內部工具,用於驗證整車開發。也需要給遠端控制中心做各種互動頁面,透過一個UI遠端控制自動駕駛汽車。同時也包括車廂內為乘客準備的UI。喜歡設計或擅長前端的朋友可以考慮。 技能需求: 具有優秀的美感和豐富的視覺表現力; 精通色彩、圖形、資訊和GUI設計原則及方法。 4.結尾 最後,國家政策正在大力推廣新能源智慧化汽車,希望越來越多的伙伴一起加入到自動駕駛行業。 原文連結:https://mp.weixin.qq.com/s/d41a5VYtJ4lvMP3GO6In_g