# 多旋翼飞行器几何文件

PX4 使用几何文件生成混合器定义,将 PX4 速率控制器的输出映射到特定电机。这些文件描述了每个转子的位置、推力方向、旋转方向、推力和阻力系数。

# 如何添加新几何体

  1. 创建新的 TOML 几何文件(例如:"foo.toml")。 /src/lib/mixer/MultirotorMixer/geometries (打开新窗口).文件中必须包含一个新的 密钥 例如 key = "4fo";).参见 几何文件格式 了解必填字段的信息。
  2. 将几何体文件添加到 /src/lib/mixer/MultirotorMixer/CMakeLists.txt (打开新窗口).
  3. 创建一个新的 混合器文件 使用新几何体。例如,您可以创建 ROMFS/px4fmu_common/mixers/foo.main.mix 一行,其中包含新的密钥(在本例中为 4fo):
    R 4fo
    
  4. 在您的 机身配置 例如 init.d/airframes/myconfig)
    设置 MIXER foo
    

# 几何文件格式

几何图形文件是纯文本文件,由文件头划分为多个部分: [信息], [默认转子]转子 (有一个 转子 几何图形中每个转子的部分)。

各部分允许使用的字段如下(定义见 px_generate_mixers.py (打开新窗口) 脚本)。

# [信息]部分

[信息] 部分确定了读者和 PX4 的文件。

它必须定义以下值

  • 键: 任意标识符,用于将文件与其他几何文件区分开来。按照惯例,关键字通常是转子的数量,后面跟一到两个字母(这些字母是 可以 提示配置)。例如:"4hb";
  • 描述 对几何图形文件所描述配置的可读描述。例如:"H 配置中的通用四旋翼飞行器";

# [默认转子]

[默认转子] 部分规定,如果转子中没有提供相应的键,则默认值将应用于该转子。 转子 定义。例如,可以为每个转子定义旋转方向,也可以在转子的旋转方向中指定默认的旋转方向。

允许使用的密钥在 转子 部分(注意,为像 名字 是每个转子独有的)。

# 转子

每个 [转子] 部分描述了转子的几何值。默认值可在 [默认转子] (转子部分的值优先)。

允许使用的密钥有

  • 名: 转子的可读名称。例如:"front_right_top";
  • 定位(POSITION): 描述转子相对于车体框架中载具重心(前-右-下)位置的矢量。由于混合器已归一化(只有距离之间的比值才真正重要),因此可以使用任何单位(如米、噚等)。
  • 轴: 机身框架内的矢量(前-右-下),描述转子产生推力的方向。例如 [1.0, 0.0, -1.0] 是指转子产生的向上和向前推力相同(即:45 度角)。
  • 方向: 指定转子的旋转方向、 化武 (顺时针)或 CCW (逆时针)
  • Ct: 非尺寸推力系数。例如,一个转子的推力系数为 Ct 的转子产生的推力的 2 倍。 Ct 为 1.0
  • Cm: 非尺寸阻力扭矩系数。这与螺旋桨旋转时产生的轴向扭矩有关。需要根据 Ct 如果阻力和推力共同产生扭矩,则将其设置为 0。如果设置为 0,混合器将假定转子不产生任何轴向扭矩。

# 文件示例

源代码树中有许多示例: /src/lib/mixer/MultirotorMixer/geometries/ (打开新窗口).

三旋翼几何形状 (tri_y.toml (打开新窗口))转载如下。

# Tri Y [info] key = "3y" description = "Tri Y" [rotor_default] axis = [0.0, 0.0, -1.0] Ct = 1.0 Cm = 0.0 direction = "CW" [[rotors]] name = "front_right" position = [0.5, 0.866025, 0.0] [[rotors]] name = "front_left" position = [0.5, -0.866025, 0.0] [[rotors]] name = "rear" position = [-1.0, 0.0, 0.0] [[rotors]] name = "rear" position = [-1.0, 0.0, 0.0] [[rotors]] name = "front_right" position = [0.