AutoFirmwareAPI 模块文档¶
所属工具箱:RflySim Swarm

简介¶
一句话描述:该模块提供适配PX4飞控自动代码生成固件的Simulink侧接口,用于匹配自定义固件的控制输入交互。
该模块是RflySim Swarm接口库中配合飞控自动代码生成功能使用的配套接口模块,用于在Simulink仿真环境中完成自定义飞控固件开发时的数据交互对接。模块的输入输出接口需要与PX4飞控端通过自动代码生成生成的自定义固件接口严格匹配,能够将Simulink侧开发的控制逻辑数据传递给飞控固件,同时可读取飞控端的状态信息。
在RflySim工具链的自定义飞控固件开发流程中,该模块承担了Simulink环境与PX4飞控固件之间的桥接作用,支持开发者在完成飞控代码自动生成后,配合CopterSim实现硬件在环仿真或固件功能验证,可适配集群开发场景下多架无人机自定义固件的接口对接需求。
端口说明¶
输入端口(Inputs)¶
| 端口名 | 数据类型 | 维度 | 说明 |
|---|---|---|---|
ControlInputs |
double |
N×1 | 自定义控制输入向量,维度N由自定义飞控固件的输入需求决定,需要与自动代码生成生成的固件接口匹配 |
输出端口(Outputs)¶
| 端口名 | 数据类型 | 维度 | 说明 |
|---|---|---|---|
SensorOutputs |
double |
M×1 | 飞控传感器及状态输出向量,维度M由自定义飞控固件的输出需求决定,与自动代码生成生成的固件接口匹配 |
参数配置(Parameters)¶
双击模块打开的 Mask 对话框中可配置以下参数:
| 参数名 | 类型 | 默认值 | 可选值/范围 | 说明 |
|---|---|---|---|---|
CopterID |
int |
1 |
1~255 |
多机仿真中目标无人机的ID编号 |
InputSize |
int |
4 |
≥1 | 自定义控制输入向量的维度大小,需匹配自定义固件的输入数量 |
OutputSize |
int |
20 |
≥1 | 飞控输出向量的维度大小,需匹配自定义固件的输出数量 |
参数设置说明¶
CopterID¶
在多机集群仿真场景中,指定当前接口连接的无人机ID,不同无人机的AutoFirmwareAPI模块需要设置不同的ID以区分不同设备。
InputSize¶
设置输入控制量的维度,需要与飞控端自动代码生成生成的自定义固件所需的输入数量保持一致,否则会出现维度不匹配的仿真错误。
OutputSize¶
设置飞控输出状态量/传感器量的维度,需要与飞控端自动代码生成生成的自定义固件提供的输出数量保持一致,否则会出现维度不匹配的仿真错误。
模块特性(Block Characteristics)¶
| 特性项 | 值 |
|---|---|
| 支持的数据类型 | double、single |
| 直接馈通(Direct Feedthrough) | 是 |
| 采样时间 | 继承 |
| 代码生成支持 | 否 |
数据通信协议¶
本模块不涉及网络通信。
相关模块¶
| 模块名 | 说明 |
|---|---|
SwarmPositionConfig |
配置集群无人机仿真的初始位置参数 |
SwarmScheduler |
实现多无人机集群任务的调度控制 |
PX4OffboardControl |
实现PX4飞控的离线控制数据交互 |
RadioControlSwarm |
实现集群无人机的遥控器控制输入 |
注意事项与常见问题¶
- 初始化顺序:必须先完成飞控端自动代码生成固件的配置编译,再对该模块的输入输出接口进行连接匹配,不可颠倒流程,否则会出现接口信号不匹配导致的仿真报错。
- 采样时间匹配:该模块的采样时间必须与飞控端自动生成固件的控制周期保持一致,若采样时间差异过大会导致控制指令不同步,引发仿真过程中无人机姿态、位置发散。
- 接口匹配要求:该模块所有控制输入端口的维度、数据类型必须与飞控端自定义固件的对应接口严格匹配,不可随意增减输入端口或修改信号格式。
- 依赖功能要求:该模块仅可搭配RflySim的飞控自动代码生成功能使用,无法独立作为普通控制模块运行在非AutoFirmware生成的飞控固件仿真场景中。
更新日志¶
v4.1.0(2024-12-10): 初始版本发布,新增支持飞控自动代码生成自定义固件匹配的AutoFirmwareAPI模块。