尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

记录simulink无人机开源代码

记录simulink无人机开源代码
📅 发布时间:2026/7/12 7:15:12

FMT是一款基于模型设计的开源智驾仪,可被用来快速构建无人机,车,船,机器人等的无人控制系统。“Firmament意为苍穹,希望无人机未来可以自由翱翔于广阔天空。仰望苍穹,也表达了对于未知的探索和科技的敬畏。”
源码地址:https://github.com/Firmament-Autopilot

FMT Base INS — Simulink 模型算法解析报告

模型名称: INS.slx(Firmament Autopilot Base INS)
版权: Copyright 2016-2023 The Firmament Autopilot. All Rights Reserved.
解析日期: 2026-07-11


一、模型总体架构

该模型是一个多传感器融合惯性导航系统(INS),基于扩展卡尔曼滤波(EKF)/互补滤波(CF)框架,融合 IMU、磁力计、GPS、气压计、测距仪、光流、空速计、外部位置共 8 类传感器,输出完整的导航状态。

1.1 顶层拓扑

┌──────────────────────────────────────────────────────────────┐ │ FMT Base INS │ │ │ ┌──────────────┐ │ ┌──────────────────┐ ┌──────────────┐ ┌─────────────┐ │ │ IMU │────────┼─►│ │ │ │ │ │ │ │ MAG │────────┼─►│ Sensor │ │ Data │ │ Bus │ │ │ Barometer │────────┼─►│ _PreProcess ├───►│ _Fusion ├───►│ _Constructor│──┼──► INS_Out │ GPS_uBlox │────────┼─►│ (system_1169) │ │ (system_9096)│ │ (system_968)│ │ │ Rangefinder │────────┼─►│ │ │ │ │ │ │ │ Optical_Flow │────────┼─►│ 9 in → 1 out │ │ 1 in → 2 out│ │ 3 in → 1 out│ │ │ AirSpeed │────────┼─►│ │ │ │ │ │ │ │ External_Pos │────────┼─►│ │ │ │ │ │ │ └──────────────┘ │ └──────────────────┘ └──────┬───────┘ └─────────────┘ │ │ │ │ │ ┌────────────▼──────┐ │ │ │ Delay (1 sample) │ │ │ └────────┬──────────┘ │ │ │ Rotation_Data (feedback) │ │ └──────────────────────────────────┤ │ (反馈到 Sensor_PreProcess port 9) │ └───────────────────────────────────────────────────────────────┘

1.2 三大处理阶段

阶段子系统SID功能
阶段一Sensor_PreProcess1169传感器数据预处理:坐标变换、校准补偿、质量评估
阶段二Data_Fusion9096核心融合算法:姿态解算(Rotation)+ 位置/速度估计(Translation)
阶段三Bus_Constructor968将融合结果打包为 29 通道INS_Out_Bus输出总线

二、传感器预处理(Sensor_PreProcess)

子系统Sensor_PreProcess(SID=1169) 接收 9 路输入(8 路传感器 + 1 路姿态反馈),输出 1 路Sensor_Data总线。

IMU ───────────► IMU_PreProcess ──────────┐ MAG ───────────► MAG_PreProcess ──────────┤ (also receives GPS_Data + Rotation_Data) Barometer ─────► Baro_PreProcess ─────────┤ GPS ───────────► GPS_PreProcess ──────────┤──► Bus Creator (8 elem) ──► Sensor_Data Rangefinder ───► Rangefinder_PreProcess ──┤ Optical_Flow ──► OpticalFlow_PreProcess ──┤ AirSpeed ──────► AirSpeed_Process ────────┤ ExternalPos ───► ExternalPos_Process ─────┤ Rotation_Data ─┤ (feedback to MAG + Rangefinder + OpticalFlow)

2.1 各预处理模块

预处理模块SID输入输出核心处理
IMU_PreProcess1407IMU_BusIMU_Data陀螺/加速度计校准(零偏、比例因子)、坐标旋转
MAG_PreProcess1539MAG + Rotation + GPS (3路)Mag_Data磁力计校准、磁倾角/磁偏角补偿、质量估计 (Inclination_Quality + Intensity_Quality)
GPS_PreProcess1293GPS_BusGPS_DataGPS 数据解析、位置/速度提取、有效性校验
Baro_PreProcess1208Baro_BusBaro_Data气压高度换算、温度补偿
Rangefinder_PreProcess10403Rangefinder + RotationRangefinder_Data测距仪倾角补偿(利用当前姿态修正斜距)
OpticalFlow_PreProcess10478Rangefinder_Data + Optical_FlowOpticalFlow_Data光流速度解算(结合测距高度换算为实际速度)
AirSpeed_Process10965AirSpeed_BusAirSpeed_Data空速数据解析与滤波
ExternalPos_Process11045ExternalPos_BusExternalPos_Data外部位置参考(如视觉里程计、UWB 等)的坐标转换

三、数据融合(Data_Fusion)

子系统Data_Fusion(SID=9096) 是核心算法引擎,将融合问题解耦为旋转(姿态)和平移(位置/速度)两个子问题。

┌──────────────────────────────────────────────┐ Sensor_Data ──────┤ │ │ ┌──────────────────┐ │ ├──► Rotation_Filter ├──► Rotation_Data ─────┼──► Data_Fusion out │ │ (system_12) │ │ (port 2) │ │ AHRS (EKF-based) │ │ │ └────────┬─────────┘ │ │ │ │ │ ▼ │ │ ┌──────────────────┐ │ ├──► Translation_Filter├──► Translation_Data ──┼──► Data_Fusion out │ │ (system_2332) │ │ (port 1) │ │ CF (双通道EKF) │ │ │ └──────────────────┘ │ └──────────────────────────────────────────────┘

3.1 旋转滤波器 — Rotation_Filter (AHRS)

子系统路径:Data_Fusion/Rotation_Filter→RF_Data_PreProcess→AHRS

3.1.1 AHRS 结构:Correct → Update 闭环
RF_Data ────────────────────────────────────────┐ ▼ ┌─────────────────┐ ┌──────────┐ ┌──────────────────┐ Sensor ──►│ RF_Data_ │───►│ │───►│ │ Data │ PreProcess │ │ AHRS │ │ Bus_Constructor │──► Rotation_Data └─────────────────┘ │ (system │ │ (system_9858) │ │ 9717) │ └──────────────────┘ │ │ │ Correct │ ┌──────────┐ │ (438) │────►│ Delay1 │──┐ │ ↓ │ │ (1 samp) │ │ │ Update │ └──────────┘ │ ┌──────────────┐ │ (822) │◄───────────────────┼──┤ Attitude │ │ │ ┌──────────┐ │ │ Update(829) │ │ │────►│ Delay2 │──┘ │ + Gyro_Bias │ └──────────┘ │ (1 samp) │ │ Update(910) │ └──────────┘ └──────────────┘
3.1.2 Correct 阶段 — 误差校正
校正模块SID输入输出算法
Attitude_Correction9146Sensor_Data + Rotation_Data + RF_Data校正后姿态att_B_correction磁力计/加速度计辅助姿态校正:利用加速度计测量重力方向 + 磁力计测量地磁方向,与当前估计姿态比较,计算姿态误差并补偿
Gyro_Bias_Correction710att_B_correction+ IMU_Databias_g_B_correction陀螺零偏估计:利用校正后的姿态和原始陀螺数据,在线估计陀螺零偏漂移,并进行 Saturation 限幅保护
3.1.3 Update 阶段 — 状态传播
更新模块SID输入输出算法
Gyro_Bias_Update910bias_g_correction+gyr_B_radPsbias_g(3轴)一阶马尔可夫过程:陀螺零偏随时间漂移建模
Sum2965att_B_correction+bias_g补偿后角速度将校正后的偏置与当前零偏估计相加得到最终角速度补偿量
Attitude_Update829att_reset+quat_0+ 补偿后角速度att_quat+DCM_OB四元数传播:使用 Runge-Kutta 或 Euler 积分更新姿态四元数,并输出方向余弦矩阵(DCM)
3.1.4 AHRS 输出
输出信号含义单位
att_quat姿态四元数 [q0, q1, q2, q3]—
DCM_OB机体坐标系→导航坐标系的方向余弦矩阵—
bias_g陀螺零偏估计 [gx, gy, gz]rad/s

3.2 平移滤波器 — Translation_Filter (CF)

子系统路径:Data_Fusion/Translation_Filter→TF_Data_PreProcess→CF

CF(Complementary Filter)将平移估计解耦为水平(Horizontal)和垂直(Vertical)两个独立的 EKF 通道。

┌─────────────────────────────────────┐ TF_Data ─────────────┤ │ Rotation_Data ───────┤ CF (Complementary Filter) │ │ │ │ ┌──────────────────────┐ │ ├──► Horizontal_Filter ├──► 水平状态 │ │ │ (system_7656) │ [6×1] │ │ │ Predict → Correct │ │ │ └──────────────────────┘ │ │ │ │ ┌──────────────────────┐ │ ├──► Verticle_Filter ├──► 垂直状态 │ │ │ (system_8125) │ [3×1] │ │ │ Predict → Correct │ + rf_bias│ │ └──────────────────────┘ │ │ │ │ ┌──────────────────────┐ │ └──► Bus_Constructor ├──► Translation_Data │ (system_8465) │ └──────────────────────┘
3.2.1 Horizontal_Filter — 水平位置/速度估计
  • 状态向量维度: 6 ([6×1], 经 Reshape 重塑)
  • 架构:Predict→Correct→Reshape(反馈闭环)
  • 算法类型: EKF(扩展卡尔曼滤波)
  • 状态变量推测(标准无人机水平导航):
    • 位置:[p_N, p_E](北向/东向位置)
    • 速度:[v_N, v_E]
    • 附加:可能包含加速度计零偏[ba_x, ba_y]
模块SID功能
Predict7891使用 IMU 加速度 + 姿态信息进行状态一步预测(运动学模型)
Correct7972使用 GPS 位置/速度、光流速度等外部观测进行量测更新
3.2.2 Verticle_Filter — 垂直高度/速度估计
  • 状态向量维度: 3 ([3×1])
  • 架构:Predict→Correct→Reshape(反馈闭环)
  • 额外输出:rf_bias(测距仪偏置估计)
  • 状态变量推测:
    • 高度:h
    • 垂直速度:v_D
    • 气压计偏置或加速度计零偏
模块SID功能
Predict8206垂直运动学预测(气压高度 + IMU 垂直加速度积分)
Correct8128多源高度融合校正:GPS 高度、气压高度、测距仪 AGL 高度
3.2.3 反馈闭环

Translation_Filter 存在两个反馈路径:

  1. 内部反馈:CF 输出经Delay(1)反馈至TF_Data_PreProcess(port 3),作为下一时刻的先验
  2. 外部反馈:Rotation_Data同时输入到TF_Data_PreProcess(port 2),用于加速度的坐标旋转(机体→导航系)

四、输出总线构建(Bus_Constructor)

子系统Bus_Constructor(SID=968) 将三个子系统的结果汇总为 29 通道INS_Out_Bus:

4.1 输出信号一览(29 通道)

序号信号名来源含义单位
1timestampCounter(1004)时间戳计数器sample
2phiRotation_Output滚转角rad
3thetaRotation_Output俯仰角rad
4psiRotation_Output偏航角rad
5quatRotation_Output姿态四元数 [q0,q1,q2,q3]—
6pRotation_Output机体 x 轴角速度rad/s
7qRotation_Output机体 y 轴角速度rad/s
8rRotation_Output机体 z 轴角速度rad/s
9axRotation_Output机体 x 轴加速度m/s²
10ayRotation_Output机体 y 轴加速度m/s²
11azRotation_Output机体 z 轴加速度m/s²
12vnTranslation_Output北向速度m/s
13veTranslation_Output东向速度m/s
14vdTranslation_Output地向速度m/s
15airspeedTranslation_Output空速m/s
16latTranslation_Output纬度rad
17lonTranslation_Output经度rad
18altTranslation_Output海拔高度m
19lat_0Translation_Output参考原点纬度rad
20lon_0Translation_Output参考原点经度rad
21alt_0Translation_Output参考原点高度m
22dx_dlatTranslation_Output纬度-北向位置转换因子m/rad
23dy_dlonTranslation_Output经度-东向位置转换因子m/rad
24x_RTranslation_Output北向位置(相对原点)m
25y_RTranslation_Output东向位置(相对原点)m
26h_RTranslation_Output相对高度m
27h_AGLTranslation_Output离地高度(Above Ground Level)m
28flagStatus_Output状态标志位—
29statusStatus_Output系统状态字—

五、核心算法总结

5.1 算法架构总览

┌──────────────────────────────────────────────────────────────────────────┐ │ FMT Base INS 算法框架 │ │ │ │ ┌─────────────────────────────────────────────────────────────────┐ │ │ │ 传感器预处理层 │ │ │ │ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────────┐ ┌───────┐ │ │ │ │ │ IMU │ │ MAG │ │ GPS │ │Baro │ │Rangefind │ │Optic │ ...│ │ │ │ │ │校准 │ │校准 │ │解析 │ │换算 │ │倾角补偿 │ │Flow │ │ │ │ │ │ └──┬───┘ └──┬───┘ └──┬───┘ └──┬───┘ └────┬─────┘ └──┬────┘ │ │ │ └─────┼────────┼────────┼────────┼──────────┼──────────┼──────────┘ │ │ │ │ │ │ │ │ │ │ ┌─────▼────────▼────────▼────────▼──────────▼──────────▼──────────┐ │ │ │ 融合估计层 │ │ │ │ │ │ │ │ ┌─────────────────────────┐ ┌──────────────────────────┐ │ │ │ │ │ Rotation_Filter │ │ Translation_Filter │ │ │ │ │ │ (AHRS - 姿态解算) │ │ (CF - 位置/速度估计) │ │ │ │ │ │ │ │ │ │ │ │ │ │ Correct 阶段: │ │ ┌─ Horizontal_Filter │ │ │ │ │ │ · 磁力计/加计姿态校正 │ │ │ Predict → Correct │ │ │ │ │ │ · 陀螺零偏在线估计 │ │ │ 状态维度: 6 │ │ │ │ │ │ │ │ └──────────────────────│ │ │ │ │ │ Update 阶段: │ │ │ │ │ │ │ │ · 四元数姿态传播 │ │ ┌─ Verticle_Filter │ │ │ │ │ │ · 陀螺零偏马尔可夫更新 │ │ │ Predict → Correct │ │ │ │ │ │ · DCM 矩阵输出 │ │ │ 状态维度: 3 │ │ │ │ │ └───────────┬─────────────┘ │ └──────────────────────│ │ │ │ │ │ └────────────┬─────────────┘ │ │ │ │ └───────────┬───────────────────┘ │ │ │ └───────────────────────────┼──────────────────────────────────────┘ │ │ │ │ │ ┌───────────────────────────▼──────────────────────────────────────┐ │ │ │ 输出层 │ │ │ │ INS_Out_Bus: 姿态 + 位置 + 速度 + 状态 │ │ │ │ (29 通道,phi/theta/psi, quat, lat/lon/alt, vn/ve/vd)│ │ │ └──────────────────────────────────────────────────────────────────┘ │ └──────────────────────────────────────────────────────────────────────────┘

5.2 算法类型识别

滤波子系统算法类型状态维度核心观测
Rotation (AHRS)误差状态 EKF / 互补滤波融合7 (4 四元数 + 3 陀螺零偏)加速度计(重力参考)、磁力计(地磁参考)
Horizontal_FilterEKF(扩展卡尔曼滤波)6GPS 位置/速度、光流速度
Verticle_FilterEKF(扩展卡尔曼滤波)3GPS 高度、气压高度、测距仪 AGL 高度

5.3 关键设计特点

  1. 旋转-平移解耦:姿态估计(AHRS)与位置/速度估计(CF)分离,降低计算复杂度,提高数值稳定性

  2. 级联反馈:

    • 旋转估计结果反馈给平移滤波器(加速度坐标变换)
    • 姿态反馈给传感器预处理(MAG 磁偏角补偿、测距仪倾角补偿)
  3. 在线零偏估计:

    • 陀螺零偏:通过 Magn_Correct 与 Gyro_Bias_Correction 在线估计
    • 测距仪偏置:Verticle_Filter 的 Correct 阶段估计rf_bias
  4. 多源高度融合:GPS 高度 + 气压高度 + 测距仪 AGL,通过 EKF 量测更新实现加权融合

  5. 质量评估机制:MAG 预处理包含Inclination_Quality_Estimate和Intensity_Quality_Estimate,对磁力计数据质量进行评估,可能用于自适应调整量测噪声协方差

  6. 姿态重置机制:AHRS Update 阶段通过att_reset和quat_0支持姿态的强制重置(如初始对准或 GPS 航向初始化)

5.4 信号流总结

传感器 → 预处理(校准+坐标变换+质量评估)→ 旋转解算(AHRS EKF) ├─► 姿态输出(quat/DCM/欧拉角) └─► 平移解算(CF 双通道 EKF) ├─► 水平位置/速度输出 └─► 垂直高度/速度输出 └─► 29 通道 INS_Out_Bus

六、模型统计

指标数值
顶层输入端口8(IMU, MAG, Barometer, GPS_uBlox, Rangefinder, Optical_Flow, AirSpeed, External_Pos)
顶层输出端口1(INS_Out, 29 通道总线)
子系统文件 (.xml)约 165 个
最大子系统深度约 8 层(如 Correct → Gyro_Bias_Correction → Saturation)
核心算法块AHRS Correct/Update, Horizontal/Verticle Predict/Correct
数据字典Share_Data.sldd(共享参数定义)
采样时间INS_CONST.dt(统一时间步长)

该模型为 Firmament 开源飞控的基准 INS 实现,采用解耦的旋转-平移 EKF 架构,支持 8 种传感器融合。*

相关新闻

  • 服务器RAID卡选型指南:5种主流级别(RAID 0/1/5/6/10)性能与冗余实测对比
  • DeepSeek幻觉调试不靠猜:用TensorBoard+HalluProbe双轨可视化,5分钟定位幻觉发生层(Transformer Block级精准打击)
  • SolidWorks 2024 与 Fusion 360:3款典型机械零件建模效率与精度实测对比

最新新闻

  • 武汉光谷科技职业技术学校2026招生代码及报名方式 - 湖北找学校
  • 自动驾驶技术栈:从算法突破到车规落地的工程宪法
  • 直流电机驱动系统设计与优化实践
  • 如何在GTA V中构建你的专属安全堡垒:YimMenu全方位防护指南
  • DriveGEN:生成式感知校准提升车载3D视觉鲁棒性
  • 大家都以为东莞电源线工厂好找,为何正规机构这么难寻?

日新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

周新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号