添加框架配置
PX4 飞行器机型文件 是 shell 脚本,用于设置特定飞行器框架(如四旋翼飞行器、地面飞行器或船只)所需的部分(或全部)参数、控制器和应用程序。当相应的 选择并应用机身 于 QGroundControl.
编译成 NuttX 目标器固件的配置文件位于 ROMFS/px4fmu_common/init.d 文件夹(POSIX 模拟器的配置文件存储在 ROMFS/px4fmu_common/init.d-posix).该文件夹既包含特定载具的完整配置,也包含不同载具类型的部分通用配置。通用配置通常用作创建新配置文件的起点。
此外,还可以从 SD 卡加载机架配置文件。
信息
您还可以使用 SD 卡上的文本文件调整当前飞行器机型。这在 系统启动> 自定义系统启动 page.
信息
要确定需要在配置文件中设置哪些参数/值,可以先分配一个通用机身并调整飞行器,然后使用 参数 show-for-airframe
列出更改的参数。
开发框架配置
开发新框架配置的建议流程是
- 首先在 QGC 中为目标载具类型选择合适的通用配置,例如 通用四旋翼飞行器.
- 配置 几何形状和执行器输出.
- 执行其他 基本配置.
- 调整载具。
- 运行
参数 show-for-airframe
控制台命令,列出与原始通用 airfame 相比的参数差异。
获得参数后,您可以复制通用配置的配置文件并添加新参数,从而创建新的框架配置文件。
或者,您也可以直接将修改后的参数附加到启动配置文件中。 系统启动> 自定义系统启动 (调整通用配置")。
如何在固件中添加配置
要将飞行器机型添加到固件中:
- 在 init.d/airframes 文件夹。
- 给它起一个简短的描述性文件名,并在文件名前加上一个未使用的自动启动 ID(例如、
1033092_superfast_vtol
). - 用配置参数和应用程序更新文件(见上节)。
- 给它起一个简短的描述性文件名,并在文件名前加上一个未使用的自动启动 ID(例如、
- 将新框架配置文件的名称添加到 CMakeLists.txt 在载具类型的相关部分
- 构建和上传 软件。
如何将配置添加到 SD 卡中
从 SD 卡启动的飞行器机型文件与固件中存储的配置文件相同。
为使 PX4 以框架配置启动,将其重命名为 rc.autostart
并将其复制到位于 /ext_autostart/rc.autostart
.PX4 会在固件中找到任何链接文件。
配置文件概述
配置文件由几个主要模块组成:
这些方面大多是独立的,这意味着许多配置共享相同的机身物理布局,启动相同的应用,而最大的区别在于其调整增益。
信息
新的框架配置文件只有在完成构建后才会自动添加到构建系统中(运行 一扫而光
).
示例 - 通用四旋翼飞行器机架配置
通用 Quad X 直升机的配置文件如下 (原文件在此).这非常简单,因为它只定义了所有四旋翼飞行器通用的最小设置。
第一行是 Shebang,它告诉 NuttX 操作系统(PX4 在其上运行),配置文件是一个可执行的 shell 脚本。
#!/箱柜/吁
随后是框架文件。文件 @ 名称
, @ 类型
和 @ 类
用于识别和分组帧中的 应用程序接口参考 和 QGroundControl 机身选择。
# @名称 通用四旋翼飞行器
#
# @type Quadrotor x
# @类直升机
#
# @维护者 Lorenz Meier <[email protected]>;
#
下一行导入的通用参数适用于所有指定类型的载具(参见 init.d/rc.mc_defaults).
.${R}etc/init.d/rc.mc_defaults
最后,文件列出了控制分配参数(以 CA_
定义了框架的默认几何形状。您可以在 执行机构配置还可以添加输出映射。
停止 设置-默认 CA_ROTOR_COUNT 4
停止 设置-默认 CA_ROTOR0_PX 0.15
停止 设置-默认 CA_ROTOR0_PY 0.15
停止 设置-默认 CA_ROTOR1_PX -0.15
停止 设置-默认 CA_ROTOR1_PY -0.15
停止 设置-默认 CA_ROTOR2_PX 0.15
停止 设置-默认 CA_ROTOR2_PY -0.15
停止 设置-默认 CA_ROTOR2_KM -0.05
停止 设置-默认 CA_ROTOR3_PX -0.15
停止 设置-默认 CA_ROTOR3_PY 0.15
停止 设置-默认 CA_ROTOR3_KM -0.05
示例 - Babyshark VTOL 整个载具
下面提供了一个更复杂的整个载具配置文件。这是 "鲨鱼宝宝 "的配置文件 标准 VTOL (原文件在此).
其功能和文档部分与通用框架类似,但这里我们还记录了以下内容 产出
映射到每个电机和执行器。请注意,这些输出仅为文档;实际映射是通过参数完成的。
#!/bin/sh
#
# @name BabyShark VTOL
#
# @类型 标准 VTOL
# @类 VTOL
#
# @维护者 Silvan Fuhrer <[email protected]>;
#
# @output Motor1 电机 1
# @输出 电机2 电机2
# @output Motor3 电机 3
# @输出 电机4 电机4
# @输出 电机5 推杆电机
# @输出伺服1副翼
# @output Servo2 A-tail left
# @output Servo3 A-tail right
#
# @board px4_fmu-v2 exclude
# @board bitcraze_crazyflie exclude
# @board holybro_kakutef7 exclude
#
至于通用框架,我们还包括通用 VTOL 默认设置。
. ${R}etc/init.d/rc.vtol_defaults
然后,我们定义配置参数和 调整参数增益:
停止 设置-默认 MAV_TYPE 22
停止 设置-默认 BAT1_N_CELLS 6
停止 设置-默认 FW_AIRSPD_MAX 30
停止 设置-默认 FW_AIRSPD_MIN 19
停止 设置-默认 FW_AIRSPD_TRIM 23
停止 设置-默认 fw_pn_r_slew_max 40
停止 设置-默认 FW_PSP_OFF 3
停止 设置-默认 FW_P_LIM_MAX 18
停止 设置-默认 FW_P_LIM_MIN -25
停止 设置-默认 fw_rll_too_yaw_ff 0.1
停止 设置-默认 FW_RR_P 0.08
停止 设置-默认 FW_R_LIM 45
停止 设置-默认 FW_R_RMAX 50
停止 设置-默认 FW_THR_TRIM 0.65
停止 设置-默认 FW_THR_MIN 0.3
停止 设置-默认 fw_thr_slew_max 0.6
停止 设置-默认 FW_T_HRATE_FF 0
停止 设置-默认 FW_T_SINK_MAX 15
停止 设置-默认 FW_T_SINK_MIN 3
停止 设置-默认 FW_YR_P 0.15
停止 设置-默认 imu_dgyro_cutoff 15
停止 设置-默认 mc_pitchrate_max 60
停止 设置-默认 最大滚动率 60
停止 设置-默认 MC_YAWRATE_I 0.15
停止 设置-默认 MC_YAWRATE_MAX 40
停止 设置-默认 MC_YAWRATE_P 0.3
停止 设置-默认 mpc_acc_down_max 2
停止 设置-默认 mpc_acc_hor_max 2
停止 设置-默认 MPC_ACC_UP_MAX 3
停止 设置-默认 MC_AIRMODE 1
停止 设置-默认 MPC_JERK_AUTO 4
停止 设置-默认 MPC_LAND_SPEED 1
停止 设置-默认 mpc_man_tilt_max 25
停止 设置-默认 MPC_MAN_Y_MAX 40
停止 设置-默认 com_spoolup_time 1.5
停止 设置-默认 MPC_THR_HOVER 0.45
停止 设置-默认 mpc_tiltmax_air 25
停止 设置-默认 MPC_TKO_RAMP_T 1.8
停止 设置-默认 MPC_TKO_SPEED 1
停止 设置-默认 MPC_VEL_MANUAL 3
停止 设置-默认 MPC_XY_CRUISE 3
停止 设置-默认 MPC_XY_VEL_MAX 3.5
停止 设置-默认 mpc_yawrautoo_max 40
停止 设置-默认 mpc_z_vel_max_up 2
停止 设置-默认 NAV_ACC_RAD 3
停止 设置-默认 SENS_BOARD_ROT 4
停止 设置-默认 VT_ARSP_BLEND 10
停止 设置-默认 VT_ARSP_TRANS 21
停止 设置-默认 VT_B_DEC_MSS 1.5
停止 设置-默认 VT_B_TRANS_DUR 12
停止 设置-默认 vt_elev_mc_lock 0
停止 设置-默认 vt_fwd_thrust_sc 1.2
停止 设置-默认 VT_F_TR_OL_TM 8
停止 设置-默认 VT_PSHER_SLEW 0.5
停止 设置-默认 vt_trans_min_tm 4
停止 设置-默认 VT_TYPE 2
最后,该文件定义了几何体的控制分配参数,以及设置不同电机和舵机输出的参数。
停止 设置-默认 CA_AIRFRAME 2
停止 设置-默认 CA_ROTOR_COUNT 5
停止 设置-默认 CA_ROTOR0_PX 1
停止 设置-默认 CA_ROTOR0_PY 1
停止 设置-默认 CA_ROTOR1_PX -1
停止 设置-默认 CA_ROTOR1_PY -1
停止 设置-默认 CA_ROTOR2_PX 1
停止 设置-默认 CA_ROTOR2_PY -1
停止 设置-默认 CA_ROTOR2_KM -0.05
停止 设置-默认 CA_ROTOR3_PX -1
停止 设置-默认 CA_ROTOR3_PY 1
停止 设置-默认 CA_ROTOR3_KM -0.05
停止 设置-默认 CA_ROTOR4_AX 1.0
停止 设置-默认 CA_ROTOR4_AZ 0.0
停止 设置-默认 CA_SV_CS_COUNT 3
停止 设置-默认 CA_SV_CS0_TYPE 15
停止 设置-默认 ca_sv_cs0_trq_r 1.0
停止 设置-默认 ca_sv_cs1_trq_p 0.5000
停止 设置-默认 ca_sv_cs1_trq_r 0.0000
停止 设置-默认 ca_sv_cs1_trq_y -0.5000
停止 设置-默认 CA_SV_CS1_TYPE 13
停止 设置-默认 ca_sv_cs2_trq_p 0.5000
停止 设置-默认 ca_sv_cs2_trq_y 0.5000
停止 设置-默认 CA_SV_CS2_TYPE 14
停止 设置-默认 PWM_MAIN_FUNC1 201
停止 设置-默认 PWM_MAIN_FUNC2 202
停止 设置-默认 PWM_MAIN_FUNC3 105
停止 设置-默认 PWM_MAIN_FUNC4 203
停止 设置-默认 PWM_MAIN_FUNC5 101
停止 设置-默认 PWM_MAIN_FUNC6 102
停止 设置-默认 PWM_MAIN_FUNC7 103
停止 设置-默认 PWM_MAIN_FUNC8 104
停止 设置-默认 PWM_MAIN_TIM0 50
停止 设置-默认 PWM_MAIN_DIS1 1500
停止 设置-默认 PWM_MAIN_DIS2 1500
停止 设置-默认 PWM_MAIN_DIS3 1000
停止 设置-默认 PWM_MAIN_DIS4 1500
添加新机身组
机身组用于将相似的机身归为一组,以便在以下应用程序中进行选择 QGroundControl 并在 机身参考.每个组都有一个名称和一个相关的 svg 图像,其中显示了分组机身的通用几何形状、发动机数量和发动机旋转方向。
所使用的机身元数据文件。 QGroundControl 和文档源代码是通过脚本使用构建命令从机身描述中生成的: 制作机身元数据
对于隶属于现有组别的新机架,您只需在位于以下位置的机架说明中提供文件即可 ROMFS/px4fmu_common/init.d.
如果机身用于 新组 您还需要
将该组的 svg 图像添加到用户指南文档中(如果未提供图像,则显示占位符图像): assets/airframes/types
中添加新组名和图像文件名之间的映射。 srcparser.py 方法
GetImageName()
(按照下面的模式):蟒蛇捍卫 获取图像名称(自己): """; 获取参数组图像基本名称(不含扩展名) """; 如果 (自我.名称 == "标准平面";): 返回 "平面"; 如果 (自我.名称 == "飞翼";): 返回 "FlyingWing"; ... ... 返回 "机身未知";
更新 QGroundControl:
将 svg 图像添加到组中: src/AutopilotPlugins/Common/images
在 qgcimages.qrc按照下面的模式进行:
xml<;q 资源 词头="/qmlimages";>; ... <;文件 别称="机身/机身仿真";>src/AutoPilotPlugins/Common/Images/AirframeSimulation.svg</文件>; <;文件 别称="机身/机身未知";>src/AutoPilotPlugins/Common/Images/AirframeUnknown.svg</文件>; <;文件 别称="机身/船";>src/AutoPilotPlugins/Common/Images/Boat.svg</文件>; <;文件 别称="机身/飞行翼";>src/AutoPilotPlugins/Common/Images/FlyingWing.svg</文件>; ...
信息
其余的机身元数据应自动包含在固件中(一旦 srcparser.py 已更新)。
调整参数增益
以下主题将介绍如何调整配置文件中指定的参数:
为 QGroundControl 添加框架
要使新机身在 QGroundControl 飞行器机型:
- 进行干净的构建(例如,运行
一扫而光
然后make px4_fmu-v5_default
) - 打开 QGC 并选择 自定义固件文件... 如下图所示:
您将被要求选择 .px4 要闪存的固件文件(该文件是一个压缩的 JSON 文件,包含机身元数据)。
- 导航至构建文件夹并选择固件文件(例如 PX4-Autopilot/build/px4_fmu-v5_default/px4_fmu-v5_default.px4).
- 新闻 好的 开始刷新固件。
- 重新启动 QGroundControl.
然后,新框架就可以在 QGroundControl.