|
|
(未显示同一用户的6个中间版本) |
第1行: |
第1行: |
| == PX4 机型目录详解 == | | == PX4 机型目录详解 == |
| '''PX4 机型目录'''是 PX4 飞控系统中定义飞行器平台配置的核心部分,它通过一系列配置文件决定了飞控如何控制不同类型的飞行器(如多旋翼、固定翼、车辆、船只等)。这些配置文件包含了参数设置、混控器配置和控制逻辑。 | | '''PX4 机型目录'''是 PX4 飞控系统中定义飞行器平台配置的核心部分,位于固件源代码的特定路径中。 |
| === 目录位置与结构 === | | === 目录结构 === |
| PX4 的机型配置文件主要存放在固件源码的以下路径中:
| | <pre> |
| bashbash复制PX4-Autopilot/ROMFS/px4fmu_common/init.d/airframes'''中文注释''':ROMFS是一个只读文件系统,这些配置文件在编译时会被打包进固件。px4fmu_common表示这些配置适用于常见的 Pixhawk 系列飞控硬件。init.d包含系统启动脚本,而 airframes子目录专门存放所有机型定义文件。
| | {{Path|ROMFS/px4fmu_common/init.d/airframes}} # 主机型配置目录 |
| === 机型文件命名规则 === | | ├── 1001_rc_quad_x # 遥控X型四旋翼配置 |
| 机型文件的命名格式为:[数字ID]_[描述性名称](例如 4001_quad_x,2100_standard_plane)
| | ├── 2100_standard_plane # 标准固定翼配置 |
| '''中文注释''':
| | ├── 4001_quad_x # 通用X型四旋翼 |
| '''数字 ID''':此数字唯一对应飞控参数 SYS_AUTOSTART的值。通过设置 SYS_AUTOSTART为特定 ID,即可选择对应的机型。
| | ├── 5001_quad_plus # 通用+型四旋翼 |
| '''描述性名称''':通常描述了机型的类别和构型,如 quad_x代表 X 型四旋翼。
| | └── CMakeLists.txt # 机型编译配置文件 |
| 下表总结了主要的机型ID范围及其类别:
| | </pre> |
| | '''中文注释''':此目录包含所有支持的机型定义文件,每个文件通过数字ID标识特定机型。 |
| | === 机型ID范围说明 === |
| {| class="wikitable" | | {| class="wikitable" |
| |+ PX4机型ID范围分配表 | | |+ PX4机型ID范围分配表 |
| ! ID范围 | | ! ID范围 !! 机型类别 !! 示例 !! 说明 |
| ! 机型类别 | |
| ! 示例ID | |
| ! 说明 | |
| |- | | |- |
| | 1000-1999 | | | 1000-1999 || 仿真机型 || 1001_rc_quad_x || 硬件在环仿真配置 |
| | 仿真设置 (HIL/STIL) | | |- |
| | 1004 | | | 2000-2999 || 固定翼 || 2100_standard_plane || 标准固定翼飞机 |
| 硬件在环仿真配置2000-2999标准固定翼2100标准固定翼飞机-3000-3999飞翼3000通用飞翼-4000-4999X型四旋翼4001通用 X 四旋翼-5000-5999+型四旋翼5001通用 + 四旋翼-13000-13999VTOL13000垂直起降飞行器-............}'''注意''':自定义机型通常建议使用较大的 ID(如 8xxxx, 9xxxx),以避免冲突。
| | |- |
| === 机型元数据标签 === | | | 4000-4999 || 多旋翼 || 4001_quad_x || X型四旋翼飞行器 |
| 在机型文件中,使用特定格式的注释标签定义元数据,这些信息用于地面站(如 QGroundControl)的显示和选择:
| | |- |
| bashbash复制#!/bin/sh
| | | 13000-13999 || VTOL || 13000_standard_vtol || 垂直起降飞行器 |
| #
| | |} |
| # @name Generic Quadcopter # 机型名称:显示在地面站的选择列表中
| | |
| # @type Quadrotor x # 机型子类型:如X型四旋翼,影响地面站显示
| | ==== 备注:ID范围系统化分配确保机型配置的一致性,自定义机型建议使用80000以上ID。 ==== |
| # @class Copter # 机型大类:决定飞控使用的核心控制算法(如多旋翼、固定翼)
| | [[文件:标准X四旋翼无人机模板.png|替代=标准X四旋翼无人机模板|右|1091x1091像素]] |
| # @maintainer Name <email> # 维护者信息
| |
| # @output MAIN1 aileron # 输出通道功能描述:MAIN1通道控制副翼
| |
| # @board px4_fmu-v2 exclude # 板卡排除:此配置不适用于指定飞控板
| |
| #'''个人理解''':这些元数据标签是连接机型配置与地面站UI的桥梁,确保用户能正确识别和选择机型。
| |
| === 配置文件内容解析 === | |
| 机型文件是 Shell 脚本,主要进行参数设置、引用通用配置和设置混控器。
| |
| bashbash复制#!/bin/sh
| |
| #
| |
| # @name Generic Quadcopter
| |
| # @type Quadrotor X
| |
| # @class Copter
| |
| #
| |
| # 引用多旋翼默认参数配置
| |
| . ${R}etc/init.d/rc.mc_defaults # 引用多旋翼(Multicopter)的默认配置脚本,实现代码复用 | |
|
| |
|
| # 设置参数默认值:如果用户未修改参数,则使用此默认值
| | == <big>标准 X 型四旋翼无人机4001_quad_x 机型配置</big> == |
| param set-default CA_ROTOR_COUNT 4 # 设置旋翼/电机数量的默认值为4
| | '''4001_quad_x''' 是 PX4 飞控系统中用于标准 X 型四旋翼无人机(Quadrotor x)的机型配置文件。通过设置参数 `SYS_AUTOSTART = 4001` 即可加载该配置[6](@ref)。 |
| param set-default CA_ROTOR0_PX 0.15 # 设置0号电机在机体坐标系中的X轴安装位置(米)
| |
| param set-default CA_ROTOR0_PY 0.15 # 设置0号电机在机体坐标系中的Y轴安装位置(米)
| |
| param set-default BAT1_N_CELLS 4 # 设置电池1的电池片数(单位:S)
| |
| param set-default GND_SPEED_P 0.25 # 设置地面车辆速度控制器的比例(P)增益
| |
|
| |
|
| # 设置混控器 (Mixer):决定飞控输出指令如何映射到执行器
| | == 添加新机型步骤 == |
| set MIXER quad_x # 使用名为'quad_x'的混控器(适用于X型四旋翼)
| | 在{{Path|airframes}}目录创建新配置文件(例:{{Path|80001_my_custom_drone}}) |
| set PWM_OUT 1234 # 设置PWM输出通道'''关键点说明''':
| | 在{{Path|CMakeLists.txt}}中注册新机型:<code>80001_my_custom_drone</code> |
| 引用通用配置:通过 . ${R}etc/init.d/rc.[class]_defaults(如 rc.mc_defaults)引用对应大类的默认配置,避免重复定义。
| | 编写机型配置内容(参考上述示例结构) |
| 参数设置:param set-default用于设置参数的默认值。
| | 生成元数据:<code>make airframe_metadata</code> |
| 混控器 (Mixer):混控器文件(如 quad_x)通常存放在 ROMFS/px4fmu_common/mixers目录下,定义了控制指令到具体输出通道的映射关系。
| | 编译固件:<code>make px4_fmu-v6_default</code> |
| === 添加新机型步骤 ===
| | === 参见 === |
| 添加一个新机型通常需完成以下步骤:
| |
| '''创建机型文件''':在 airframes目录下,新建以未使用数字ID开头的文件(如 80003_my_custom_robot)。
| |
| '''编写配置内容''':参考现有类似机型文件,使用 Shell 语法编写配置。务必在文件开头定义 @name, @type, @class等元数据。
| |
| '''注册机型''':修改 airframes目录下的 CMakeLists.txt文件,将新机型文件名添加到合适的 ID 范围区域内。
| |
| '''(可选)修改 srcparser.py''':如果使用了全新的 @type或 @class,可能需在 Tools/px4airframes/srcparser.py中添加映射逻辑。'''注意 Python 缩进规则''',否则会导致编译错误。
| |
| '''生成元数据''':在 PX4 源码根目录下执行 make airframe_metadata命令,生成包含所有机型元数据的 airframes.xml文件。
| |
| '''编译固件''':使用 make [你的飞控目标](如 make px4_fmu-v6_default)编译固件。
| |
| '''在地面站中显示(可选)''':若希望自定义机型在地面站(如 QGroundControl)的机型选择列表中显示,需将生成的 airframes.xml文件提供给地面站项目并重新编译地面站。
| |
| === 示例:自定义机型片段 ===
| |
| bashbash复制{{Aircraft
| |
| | name = My Custom Rover | |
| | type = Differential Rover | |
| | class = Rover
| |
| | autostart_id = 80003
| |
| | maintainer = Your Name <your.email@example.com>
| |
| }}bashbash复制#!/bin/sh | |
| #
| |
| # @name My Custom Rover
| |
| # @type Differential Rover
| |
| # @class Rover
| |
| # @maintainer Your Name <your.email@example.com>
| |
| #
| |
| # 引用无人车默认配置
| |
| . ${R}etc/init.d/rc.rover_defaults
| |
| # 设置特定参数
| |
| param set-default GND_WHEEL_BASE 0.5 # 设置车轮轴距(米)
| |
| param set-default GND_SPEED_P 0.3 # 设置速度控制器P增益
| |
| # 设置混控器
| |
| set MIXER generic_diff_rover
| |
| set PWM_OUT 1234'''个人理解与注意事项''':
| |
| 起步建议:从复制和修改现有相近机型文件开始是最高效的方式。
| |
| 参数理解:仔细理解每个参数的意义,错误的参数设置可能导致飞行器控制异常。
| |
| 混控器选择:混控器是核心,确保所选混控器与你的硬件布局匹配。
| |
| 测试至关重要:任何修改都应在安全环境下充分测试,如仿真环境(Gazebo)。
| |
| === 常见问题与解决 ===
| |
| '''编译失败''':检查 CMakeLists.txt中机型注册的格式,以及 srcparser.py的修改是否符合 Python 缩进规则。
| |
| '''地面站不显示机型''':确保已执行 make airframe_metadata并正确更新了地面站的 airframes.xml文件。
| |
| '''参数不生效''':确认参数名称正确,且在使用 param set-default前未在其他地方被覆盖。
| |
| === 总结 === | |
| PX4 的机型目录是一个通过数字ID和配置文件来管理系统支持的各种飞行器构型的强大且灵活的系统。理解其结构和规则对于进行二次开发或自定义机型至关重要。始终遵循“谨慎修改,充分测试”的原则。
| |
| == 参见 ==
| |
| [[PX4飞控系统]] - PX4系统总体介绍 | | [[PX4飞控系统]] - PX4系统总体介绍 |
| [[PX4混调器配置]] - 混调器配置文件详解 | | [[PX4混调器配置]] - 混调器配置文件详解 |
| [[QGroundControl机型配置]] - 地面站机型设置指南 | | [[QGroundControl机型配置]] - 地面站机型设置指南 |
| [https://docs.px4.io/main/zh/dev_airframes/adding_a_new_frame.htmlPX4官方文档:添加新机型] | | === 注释 === |
| | <references/> |
| | '''注意''':本页面基于PX4 v1.13版本编写,不同版本可能存在配置差异。修改机型配置前请备份原始文件。 |
| | 如果您需要更详细的信息,建议查阅 [https://px4.io/PX4官方文档] 或访问 [https://github.com/PX4/PX4-AutopilotGitHub仓库] 获取最新代码和文档。 |
PX4 机型目录详解
PX4 机型目录是 PX4 飞控系统中定义飞行器平台配置的核心部分,位于固件源代码的特定路径中。
目录结构
{{Path|ROMFS/px4fmu_common/init.d/airframes}} # 主机型配置目录
├── 1001_rc_quad_x # 遥控X型四旋翼配置
├── 2100_standard_plane # 标准固定翼配置
├── 4001_quad_x # 通用X型四旋翼
├── 5001_quad_plus # 通用+型四旋翼
└── CMakeLists.txt # 机型编译配置文件
中文注释:此目录包含所有支持的机型定义文件,每个文件通过数字ID标识特定机型。
机型ID范围说明
PX4机型ID范围分配表
ID范围 |
机型类别 |
示例 |
说明
|
1000-1999 |
仿真机型 |
1001_rc_quad_x |
硬件在环仿真配置
|
2000-2999 |
固定翼 |
2100_standard_plane |
标准固定翼飞机
|
4000-4999 |
多旋翼 |
4001_quad_x |
X型四旋翼飞行器
|
13000-13999 |
VTOL |
13000_standard_vtol |
垂直起降飞行器
|
备注:ID范围系统化分配确保机型配置的一致性,自定义机型建议使用80000以上ID。
标准 X 型四旋翼无人机4001_quad_x 机型配置
4001_quad_x 是 PX4 飞控系统中用于标准 X 型四旋翼无人机(Quadrotor x)的机型配置文件。通过设置参数 `SYS_AUTOSTART = 4001` 即可加载该配置[6](@ref)。
添加新机型步骤
在模板:Path目录创建新配置文件(例:模板:Path)
在模板:Path中注册新机型:80001_my_custom_drone
编写机型配置内容(参考上述示例结构)
生成元数据:make airframe_metadata
编译固件:make px4_fmu-v6_default
参见
PX4飞控系统 - PX4系统总体介绍
PX4混调器配置 - 混调器配置文件详解
QGroundControl机型配置 - 地面站机型设置指南
注释
<references/>
注意:本页面基于PX4 v1.13版本编写,不同版本可能存在配置差异。修改机型配置前请备份原始文件。
如果您需要更详细的信息,建议查阅 [1] 或访问 [2] 获取最新代码和文档。