一、崗位基本信息
崗位名稱
飛控軟件開發(fā)工程師(Flight Control Software Engineer)
匯報對象
飛控總設(shè)計師
協(xié)作崗位
算法工程師、硬件工程師、測試工程師
二、崗位目標(biāo)
負責(zé)飛控系統(tǒng)嵌入式軟件的開發(fā)、調(diào)試和優(yōu)化,基于PX4開源平臺進行定制化開發(fā),實現(xiàn)高性能、高可靠的飛行控制功能,確保無人機穩(wěn)定飛行。
三、核心職責(zé)3.1 飛控嵌入式軟件開發(fā)(40%)職責(zé)描述
- 在Pixhawk 6X(STM32H7)上開發(fā)飛控核心模塊:
- 傳感器驅(qū)動:IMU、磁力計、氣壓計、GPS等的數(shù)據(jù)讀取和校準(zhǔn)
- 姿態(tài)估計:集成/優(yōu)化EKF2姿態(tài)解算模塊
- 控制器實現(xiàn):將總師設(shè)計的控制律轉(zhuǎn)化為C++代碼(PID、LQR等)
- 任務(wù)調(diào)度:基于NuttX RTOS的實時任務(wù)管理
- 開發(fā)自定義功能模塊(如特殊傳感器支持、行業(yè)應(yīng)用邏輯)
- 優(yōu)化代碼性能(降低CPU占用、減少延遲)
交付物
- 可編譯運行的PX4固件(.px4文件)
- 模塊源代碼(符合PX4代碼規(guī)范,通過CI/CD檢查)
- 單元測試代碼(覆蓋率 ≥ 70%)
- 開發(fā)文檔(模塊接口說明、使用示例)
技術(shù)要求
- 精通C/C++(C++11/14特性)
- 熟悉PX4架構(gòu)(uORB消息系統(tǒng)、模塊化設(shè)計)
- 理解RTOS基本概念(任務(wù)調(diào)度、信號量、消息隊列)
3.2 伴隨計算機軟件開發(fā)(25%)職責(zé)描述
- 在樹莓派5(ARM64 Ubuntu)上開發(fā)高級功能:
- 視覺處理:對接攝像頭,運行視覺SLAM、目標(biāo)檢測算法
- 路徑規(guī)劃:實現(xiàn)避障、航跡優(yōu)化算法
- 通信中繼:與Pixhawk通過UART/MAVLink通信
- 數(shù)據(jù)記錄:飛行數(shù)據(jù)采集、存儲、回傳
- 使用ROS2(Robot Operating System 2)構(gòu)建軟件框架
- 實現(xiàn)與地面站的無線通信(WiFi/4G)
交付物
- ROS2功能包(編譯通過,接口文檔完整)
- 通信協(xié)議實現(xiàn)(MAVLink/DDS,與Pixhawk對接)
- 部署腳本(一鍵部署到樹莓派)
- 性能測試報告(延遲、吞吐量數(shù)據(jù))
技術(shù)要求
- 熟悉Linux系統(tǒng)編程(多線程、進程間通信)
- 了解ROS2基礎(chǔ)(Topic/Service/Action機制)
- 掌握網(wǎng)絡(luò)編程(Socket、UDP/TCP)
3.3 系統(tǒng)集成與調(diào)試(20%)職責(zé)描述
-
進行臺架測試:
- 驗證傳感器數(shù)據(jù)正確性(對比標(biāo)準(zhǔn)值)
- 檢查控制輸出(PWM信號波形)
- 測試故障保護邏輯(Failsafe)
-
配合硬件在環(huán)仿真(HITL):
- 在Gazebo/jMAVSim中仿真飛行
- 對接真實飛控硬件,驗證軟件邏輯
- 實機調(diào)試:
- 參與室內(nèi)/室外飛行測試
- 分析飛行日志(.ulg文件),定位問題
- 協(xié)助PID調(diào)參、傳感器校準(zhǔn)
交付物
- 臺架測試報告(各模塊功能驗證結(jié)果)
- 仿真測試腳本(自動化測試用例)
- 飛行日志分析報告(異常問題定位)
工具使用
- QGroundControl(地面站)
- FlightPlot / PlotJuggler(日志可視化)
- GDB / JTAG調(diào)試器(底層調(diào)試)
3.4 代碼維護與優(yōu)化(10%)職責(zé)描述
- 修復(fù)Bug,響應(yīng)測試團隊提出的問題
- 代碼重構(gòu),提升可讀性和可維護性
- 性能優(yōu)化:
- 降低控制回路延遲(目標(biāo):<5ms)
- 減少內(nèi)存占用(嵌入式資源有限)
- 優(yōu)化電池續(xù)航(降低CPU功耗)
- 跟蹤PX4上游更新,合并有用的改進
交付物
- Bug修復(fù)記錄(問題描述、根因、解決方案)
- 性能優(yōu)化報告(優(yōu)化前后對比數(shù)據(jù))
- 代碼質(zhì)量指標(biāo)(靜態(tài)分析工具掃描結(jié)果)
3.5 文檔編寫與知識傳承(5%)職責(zé)描述
-
編寫技術(shù)文檔:
- 模塊設(shè)計文檔(架構(gòu)圖、流程圖)
- 接口說明文檔(API文檔)
- 故障排查手冊(常見問題及解決方法)
- 參與Code Review,幫助新人成長
- 整理開發(fā)日志,沉淀經(jīng)驗教訓(xùn)
交付物
- 模塊設(shè)計文檔(Markdown/Confluence)
- 代碼注釋(關(guān)鍵函數(shù)必須有注釋)
- 問題庫(FAQ文檔)
四、任職要求4.1 教育背景
- 學(xué)歷:本科及以上
- 專業(yè):計算機、軟件工程、自動化、電子工程等相關(guān)專業(yè)
4.2 專業(yè)技能(必備)
C/C++編程 熟練掌握指針、面向?qū)ο?、STL
嵌入式開發(fā) 理解裸機/RTOS開發(fā)流程
調(diào)試能力 會用GDB、串口、示波器
4.3 專業(yè)技能(加分項目)
- 有PX4/ArduPilot二次開發(fā)經(jīng)驗(提供代碼鏈接)
- 熟悉MAVLink協(xié)議,開發(fā)過地面站軟件
- 了解控制理論基礎(chǔ)(能看懂PID、狀態(tài)空間方程)
- 有航模/無人機實際調(diào)試經(jīng)驗
- 熟悉Python(用于腳本工具開發(fā))
4.4 工作經(jīng)驗
- 入門級(P5):1-3年嵌入式開發(fā)經(jīng)驗,接觸過RTOS
- 高級(P6):3-5年經(jīng)驗,有完整飛控項目開發(fā)經(jīng)歷
- 資深(P7):5年以上,能獨立負責(zé)核心模塊,指導(dǎo)初級工程師
4.5 軟技能力
- 責(zé)任心:代碼質(zhì)量直接影響飛行安全
- 團隊協(xié)作:與硬件、算法、測試密切配合
- 學(xué)習(xí)能力:快速吸收飛控理論知識
- 抗壓能力:面對緊急Bug能冷靜分析
五、典型工作場景場景1:開發(fā)新傳感器驅(qū)動
任務(wù):為飛控增加RTK GPS支持(如u-blox F9P)
工作流程:
- 閱讀傳感器datasheet,理解UART通信協(xié)議(UBX格式)
- 在PX4中創(chuàng)建新驅(qū)動模塊(參考已有GPS驅(qū)動)
- 實現(xiàn)數(shù)據(jù)解析、發(fā)布uORB消息(vehicle_gps_position)
- 臺架測試:對比RTK輸出與標(biāo)準(zhǔn)位置
- 提交PR,通過Code Review
- 編寫使用文檔,說明參數(shù)配置
預(yù)期時間:5-10個工作日
場景2:優(yōu)化控制回路延遲
任務(wù):將姿態(tài)控制回路延遲從8ms降低到5ms
工作流程:
- 使用性能分析工具(perf)定位瓶頸函數(shù)
- 優(yōu)化熱點代碼(如矩陣運算改用SIMD指令)
- 調(diào)整任務(wù)優(yōu)先級,減少調(diào)度延遲
- 硬件在環(huán)仿真驗證(HITL)
- 實機測試,對比優(yōu)化前后飛行性能
- 提交優(yōu)化報告
預(yù)期時間:2-3周
場景3:定位飛行異常
任務(wù):分析一次異常姿態(tài)翻滾事故
工作流程:
- 下載飛行日志(.ulg文件)
- 用Flight Review查看關(guān)鍵曲線(姿態(tài)、角速度、控制量)
- 發(fā)現(xiàn)IMU數(shù)據(jù)有毛刺 → 懷疑振動問題
- 檢查硬件安裝(減振墊是否老化)
- 軟件層面增加濾波器(低通濾波IMU原始數(shù)據(jù))
- 復(fù)現(xiàn)測試,確認(rèn)問題解決
- 編寫故障報告,更新調(diào)試手冊
職位福利:五險一金、績效獎金、帶薪年假、節(jié)日福利、周末雙休