职位详情
软件开发工程师(飞控方向)
1.2-2.4万
四川虹鹰动力科技有限公司
成都
3-5年
本科
12-02
工作地址

银龙国际

职位描述
一、岗位基本信息

岗位名称

飞控软件开发工程师(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)

工作流程:

  1. 阅读传感器datasheet,理解UART通信协议(UBX格式)
  2. 在PX4中创建新驱动模块(参考已有GPS驱动)
  3. 实现数据解析、发布uORB消息(vehicle_gps_position)
  4. 台架测试:对比RTK输出与标准位置
  5. 提交PR,通过Code Review
  6. 编写使用文档,说明参数配置

预期时间:5-10个工作日

场景2:优化控制回路延迟

任务:将姿态控制回路延迟从8ms降低到5ms

工作流程:

  1. 使用性能分析工具(perf)定位瓶颈函数
  2. 优化热点代码(如矩阵运算改用SIMD指令)
  3. 调整任务优先级,减少调度延迟
  4. 硬件在环仿真验证(HITL)
  5. 实机测试,对比优化前后飞行性能
  6. 提交优化报告

预期时间:2-3周

场景3:定位飞行异常

任务:分析一次异常姿态翻滚事故

工作流程:

  1. 下载飞行日志(.ulg文件)
  2. 用Flight Review查看关键曲线(姿态、角速度、控制量)
  3. 发现IMU数据有毛刺 → 怀疑振动问题
  4. 检查硬件安装(减振垫是否老化)
  5. 软件层面增加滤波器(低通滤波IMU原始数据)
  6. 复现测试,确认问题解决
  7. 编写故障报告,更新调试手册
    职位福利:五险一金、绩效奖金、带薪年假、节日福利、周末双休

以担保或任何理由索取财物,扣押证照,均涉嫌违法,请提高警惕

立即申请