史上超全自動駕駛崗位介紹
作者:自動駕駛轉型者
國家政策正在大力推廣新能源智能化汽車,希望越來越多的伙伴一起加入到自動駕駛行業。
本文經自動駕駛之心公眾號授權轉載,轉載請聯系出處。
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);
- 自然語言處理基本任務(分詞、詞性標注、句法分析、關鍵字抽?。?/li>
- 需要使用機器學習方法聚類、分類、回歸、排序等模型解決文本業務問題;
- 熟悉 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
責任編輯:張燕妮
來源:
自動駕駛之心