# 控制分配(混合)

备注

控制分配取代了 PX4 v1.13 及更早版本中使用的传统混合方法。有关 PX4 v1.13 文档,请参见 混合&;执行器 (打开新窗口), 几何文件 (打开新窗口)添加新的机身配置 (打开新窗口).

PX4 从核心控制器获取所需的扭矩和推力指令,并将其转换为控制电机或伺服的执行器指令。

平移取决于机身的物理几何形状。例如,给定一个向右转弯的扭矩指令(比方说):

  • 如果飞机的每个副翼都有一个伺服器,则会将其中一个伺服器置于高位,另一个置于低位。
  • 改变所有电机的速度,多旋翼飞行器就会向右偏航。

PX4 将这种被称为 "混合 "的转换逻辑与姿态/速度控制器分开。这确保了核心控制器无需针对每个机身几何形状进行特殊处理,并大大提高了可重用性。

此外,PX4 还能将输出功能抽象地映射到特定的硬件输出。这意味着任何电机或伺服都可以分配给几乎任何物理输出。

混合概述

# 致动器控制管道

按模块和 uORB 主题分列的混合管道概览(按下可全屏显示): 管道概览

备注

  • 速率控制器输出扭矩和推力设定值
  • 控制分配器 模块:
    • 根据配置参数处理不同的几何形状
    • 搅拌
    • 处理电机故障
    • 发布电机和伺服控制信号
    • 将伺服微调单独发布,这样就可以将其作为偏移量添加进来。 测试传动器 (使用测试滑块)。
  • 输出驱动器:
    • 处理硬件初始化和更新
    • 使用共享库 src/libs/mixer_module (打开新窗口).驱动程序定义了一个参数前缀,例如 PWM_MAIN 然后由库进行配置。它的主要任务是从输入主题中进行选择,并根据用户设置将正确的数据分配给输出。 <param_prefix>_FUNCx 参数值。例如 PWM_MAIN_FUNC3 设置为 电机 2,第 3 个输出被设置为第 2 个电机的输出。 致动器电机.
    • 输出函数定义如下 src/lib/mixer_module/output_functions.yaml (打开新窗口).
  • 如果要从 MAVLink 控制输出,请将相关输出功能设置为 车外执行器套件 x然后发送 mav_cmd_doo_set_actuator (打开新窗口) MAVLink 命令。

# 添加新的几何图形或输出函数

参见 该承诺 (打开新窗口) 了解如何添加新几何体。然后,QGC UI 将在以下情况下自动显示正确的配置 UI CA_AIRFRAME 设置为新几何体。

该承诺 (打开新窗口) 演示了如何添加一个新的输出函数。任何 uORB 主题都可以订阅并分配给一个函数。

请注意,控制分配的参数在 src/modules/control_allocator/module.yaml (打开新窗口) 该文件的模式为 这里 (打开新窗口) (特别是搜索关键字 混频器:

# 设置默认框架几何形状

何时 添加新机架配置,设置适当的 CA_AIRFRAME 和其他几何体的默认混合器值。

例如,您可以在机身配置文件中看到这一点 13200_generic_vtol_tailsitter (打开新窗口)

... 参数设置-默认 CA_AIRFRAME 4 参数设置-默认 CA_ROTOR_COUNT 2 参数设置-默认 CA_ROTOR0_KM -0.05 参数设置-默认 CA_ROTOR0_PY 0.2 ...

# 设置几何体和输出

在 QGroundControl 中选择机身时,将(从机身配置文件中)设置飞行器的大致几何形状和默认参数: 基本配置 > 机身.

然后使用 QGroundControl 配置特定机架和飞行控制器硬件的几何参数和输出映射。 致动器 设置屏幕: 基本配置> 执行器配置和测试.