
FAL(Flight Abstraction Layer)本质上就是 飞控适配层 + 通信中枢 + 控制接口标准化层。
一、FAL定义(Flight Abstraction Layer)
AiBrainBox-V FAL(飞行抽象层):
一个位于“感知/决策系统”与“飞行控制系统(FCU)”之间的标准化中间层,
用于实现无人机状态获取、控制指令下发、协议适配与安全管理的统一接口。
核心目标
- 统一接口
-
屏蔽不同飞控(PX4 / ArduPilot / DJI / 自研)的差异
-
- 双向通信
-
上行:无人机 → AiBrainBox(状态/位姿)
-
下行:AiBrainBox → 无人机(控制命令)
-
- 控制闭环支持
-
为“感知 → 定位 → 规划 → 控制”提供标准入口
-
- 多链路兼容
-
支持串口 / UDP / 5G / 自组网 / 星链等
-
二、FAL功能模块拆解
FAL可以拆成5大核心模块:
1️⃣ 协议适配层(Protocol Adapter Layer)
支持多飞控生态:
-
MAVLink(PX4 / ArduPilot)
-
DJI PSDK / OSDK / E-Port
-
ROS2 DDS(科研)
-
自定义CAN / UART协议
👉 作用:
-
做协议解析 & 封装
-
统一为内部标准数据结构
2️⃣ 状态感知模块(State Ingestion)
从飞控获取数据(上行链路):
必选核心数据
-
位姿(Position + Attitude)
-
NED / ENU坐标
-
-
速度(Velocity)
-
IMU(加速度 / 角速度)
-
GNSS(可选)
-
飞行模式(Mode)
-
电池 / 健康状态
3️⃣ 控制下发模块(Command Dispatcher)
向无人机发送控制命令(下行链路)
基础控制命令(必须支持)
-
Arm / Disarm
-
Takeoff
-
Land
-
RTL(返航)
-
Hover(定点)
运动控制命令
-
位置控制(Position setpoint)
-
速度控制(Velocity setpoint)
-
姿态控制(Attitude setpoint)
高级控制(建议预留)
-
轨迹跟踪(Trajectory)
-
Offboard控制(外部控制模式)
-
Waypoint Mission
4️⃣ 控制模式管理(Mode Manager)
核心作用:控制权切换
支持模式:
-
Manual(人工)
-
Assisted(半自动)
-
Offboard(外部控制 / AiBrainBox主控)
-
Failsafe(安全模式)
👉 关键能力:
-
模式切换仲裁
-
控制权优先级管理
-
异常自动降级(例如丢链路 → Hover / RTL)
5️⃣ 安全与监控模块(Safety Supervisor)
必须重点设计(尤其你做工业/军用)
安全机制
-
心跳检测(Heartbeat)
-
链路丢失保护
-
地理围栏(Geo-fence)
-
姿态/速度异常检测
-
GNSS拒止 fallback
Fail-safe策略
-
Hover
-
Land
-
Return-to-home
-
切回飞控自主
三、FAL系统架构
┌──────────────────────────┐
│ 决策/规划层 │
│ (Mission / Planning) │
└──────────┬───────────────┘
│
┌──────────▼───────────────┐
│ FAL (Flight Abstraction Layer) │
│ │
│ ┌──────────────────────────┐ │
│ │ Command Dispatcher │ │
│ ├──────────────────────────┤ │
│ │ Mode Manager │ │
│ ├──────────────────────────┤ │
│ │ State Ingestion │ │
│ ├──────────────────────────┤ │
│ │ Protocol Adapter │ │
│ ├──────────────────────────┤ │
│ │ Safety Supervisor │ │
│ └──────────────────────────┘ │
└──────────┬───────────────┘
│
┌───────────────▼────────────────┐
│ 飞控系统(FCU) │
│ PX4 / ArduPilot / DJI / 自研 │
└───────────────────────────────┘
四、接口标准
1️⃣ 上行接口(Telemetry API)
UAVStateget_state();
boolsubscribe_state(callback);
支持频率:
-
50Hz(控制)
-
10Hz(任务级)
2️⃣ 下行接口(Control API)
boolarm();
booldisarm();
booltakeoff(floataltitude);
boolland();
boolset_position(floatx, floaty, floatz);
boolset_velocity(floatvx, floatvy, floatvz);
boolset_mode(FlightModemode);
3️⃣ Offboard接口(关键能力)
boolstart_offboard();
boolstop_offboard();
boolsend_setpoint(Setpointsp);
👉 这是你做:
-
GNSS拒止
-
SLAM控制
-
集群控制
的核心入口
&spm=1001.2101.3001.5002&articleId=163570925&d=1&t=3&u=e06851bace40428aa392791cfc49d35e)
15

被折叠的 条评论
为什么被折叠?



