一、岗位基本信息
岗位名称
飞控软件开发工程师(Flight Control Software Engineer)
汇报对象
飞控总设计师
协作岗位
算法工程师、硬件工程师、测试工程师
二、岗位目标
负责飞控系统嵌入式软件的开发、调试和优化,基于PX4开源平台进行定制化开发,实现高性能、高可靠的飞行控制功能,确保无人机稳定飞行。
三、核心职责3.1 飞控嵌入式软件开发(40%)职责描述
- 在Pixhawk 6X(STM32H7)上开发飞控核心模块:
- 传感器驱动:IMU、磁力计、气压计、GPS等的数据读取和校准
- 姿态估计:集成/优化EKF2姿态解算模块
- 控制器实现:将总师设计的控制律转化为C++代码(PID、LQR等)
- 任务调度:基于NuttX RTOS的实时任务管理
- 开发自定义功能模块(如特殊传感器支持、行业应用逻辑)
- 优化代码性能(降低CPU占用、减少延迟)
交付物
- 可编译运行的PX4固件(.px4文件)
- 模块源代码(符合PX4代码规范,通过CI/CD检查)
- 单元测试代码(覆盖率 ≥ 70%)
- 开发文档(模块接口说明、使用示例)
技术要求
- 精通C/C++(C++11/14特性)
- 熟悉PX4架构(uORB消息系统、模块化设计)
- 理解RTOS基本概念(任务调度、信号量、消息队列)
3.2 伴随计算机软件开发(25%)职责描述
- 在树莓派5(ARM64 Ubuntu)上开发高级功能:
- 视觉处理:对接摄像头,运行视觉SLAM、目标检测算法
- 路径规划:实现避障、航迹优化算法
- 通信中继:与Pixhawk通过UART/MAVLink通信
- 数据记录:飞行数据采集、存储、回传
- 使用ROS2(Robot Operating System 2)构建软件框架
- 实现与地面站的无线通信(WiFi/4G)
交付物
- ROS2功能包(编译通过,接口文档完整)
- 通信协议实现(MAVLink/DDS,与Pixhawk对接)
- 部署脚本(一键部署到树莓派)
- 性能测试报告(延迟、吞吐量数据)
技术要求
- 熟悉Linux系统编程(多线程、进程间通信)
- 了解ROS2基础(Topic/Service/Action机制)
- 掌握网络编程(Socket、UDP/TCP)
3.3 系统集成与调试(20%)职责描述
-
进行台架测试:
- 验证传感器数据正确性(对比标准值)
- 检查控制输出(PWM信号波形)
- 测试故障保护逻辑(Failsafe)
-
配合硬件在环仿真(HITL):
- 在Gazebo/jMAVSim中仿真飞行
- 对接真实飞控硬件,验证软件逻辑
- 实机调试:
- 参与室内/室外飞行测试
- 分析飞行日志(.ulg文件),定位问题
- 协助PID调参、传感器校准
交付物
- 台架测试报告(各模块功能验证结果)
- 仿真测试脚本(自动化测试用例)
- 飞行日志分析报告(异常问题定位)
工具使用
- QGroundControl(地面站)
- FlightPlot / PlotJuggler(日志可视化)
- GDB / JTAG调试器(底层调试)
3.4 代码维护与优化(10%)职责描述
- 修复Bug,响应测试团队提出的问题
- 代码重构,提升可读性和可维护性
- 性能优化:
- 降低控制回路延迟(目标:<5ms)
- 减少内存占用(嵌入式资源有限)
- 优化电池续航(降低CPU功耗)
- 跟踪PX4上游更新,合并有用的改进
交付物
- Bug修复记录(问题描述、根因、解决方案)
- 性能优化报告(优化前后对比数据)
- 代码质量指标(静态分析工具扫描结果)
3.5 文档编写与知识传承(5%)职责描述
-
编写技术文档:
- 模块设计文档(架构图、流程图)
- 接口说明文档(API文档)
- 故障排查手册(常见问题及解决方法)
- 参与Code Review,帮助新人成长
- 整理开发日志,沉淀经验教训
交付物
- 模块设计文档(Markdown/Confluence)
- 代码注释(关键函数必须有注释)
- 问题库(FAQ文档)
四、任职要求4.1 教育背景
- 学历:本科及以上
- 专业:计算机、软件工程、自动化、电子工程等相关专业
4.2 专业技能(必备)
C/C++编程 熟练掌握指针、面向对象、STL
嵌入式开发 理解裸机/RTOS开发流程
调试能力 会用GDB、串口、示波器
4.3 专业技能(加分项目)
- 有PX4/ArduPilot二次开发经验(提供代码链接)
- 熟悉MAVLink协议,开发过地面站软件
- 了解控制理论基础(能看懂PID、状态空间方程)
- 有航模/无人机实际调试经验
- 熟悉Python(用于脚本工具开发)
4.4 工作经验
- 入门级(P5):1-3年嵌入式开发经验,接触过RTOS
- 高级(P6):3-5年经验,有完整飞控项目开发经历
- 资深(P7):5年以上,能独立负责核心模块,指导初级工程师
4.5 软技能力
- 责任心:代码质量直接影响飞行安全
- 团队协作:与硬件、算法、测试密切配合
- 学习能力:快速吸收飞控理论知识
- 抗压能力:面对紧急Bug能冷静分析
五、典型工作场景场景1:开发新传感器驱动
任务:为飞控增加RTK GPS支持(如u-blox F9P)
工作流程:
- 阅读传感器datasheet,理解UART通信协议(UBX格式)
- 在PX4中创建新驱动模块(参考已有GPS驱动)
- 实现数据解析、发布uORB消息(vehicle_gps_position)
- 台架测试:对比RTK输出与标准位置
- 提交PR,通过Code Review
- 编写使用文档,说明参数配置
预期时间:5-10个工作日
场景2:优化控制回路延迟
任务:将姿态控制回路延迟从8ms降低到5ms
工作流程:
- 使用性能分析工具(perf)定位瓶颈函数
- 优化热点代码(如矩阵运算改用SIMD指令)
- 调整任务优先级,减少调度延迟
- 硬件在环仿真验证(HITL)
- 实机测试,对比优化前后飞行性能
- 提交优化报告
预期时间:2-3周
场景3:定位飞行异常
任务:分析一次异常姿态翻滚事故
工作流程:
- 下载飞行日志(.ulg文件)
- 用Flight Review查看关键曲线(姿态、角速度、控制量)
- 发现IMU数据有毛刺 → 怀疑振动问题
- 检查硬件安装(减振垫是否老化)
- 软件层面增加滤波器(低通滤波IMU原始数据)
- 复现测试,确认问题解决
- 编写故障报告,更新调试手册
职位福利:五险一金、绩效奖金、带薪年假、节日福利、周末双休