混控器
PX4使用控制组(inpiut)和输出组(一个输出组通常为一个物理总线)。 而混控器定义了如何将控制组(控制信号)与输出组(执行器)进行对应
控制组
通常控制组有以下这些
Control Group #0 (Flight Control)
0: roll (-1…1)
1: pitch (-1…1)
2: yaw (-1…1)
3: throttle (0…1 normal range, -1…1 for variable pitch / thrust reversers)
4: flaps (-1…1)
5: spoilers (-1…1)
6: airbrakes (-1…1)
7: landing gear (-1…1)
Control Group #1 (Flight Control VTOL/Alternate)
0: roll ALT (-1…1)
1: pitch ALT (-1…1)
2: yaw ALT (-1…1)
3: throttle ALT (0…1 normal range, -1…1 for variable pitch / thrust reversers)
4: reserved / aux0
5: reserved / aux1
6: reserved / aux2
7: reserved / aux3
Control Group #2 (Gimbal)
0: gimbal roll
1: gimbal pitch
2: gimbal yaw
3: gimbal shutter
4: camera zoom
5: reserved
6: reserved
7: reserved (parachute, -1…1)
Control Group #3 (Manual Passthrough)
0: RC roll
1: RC pitch
2: RC yaw
3: RC throttle
4: RC mode switch (Passthrough of RC channel mapped by RC_MAP_FLAPS)
5: RC aux1 (Passthrough of RC channel mapped by RC_MAP_AUX1)
6: RC aux2 (Passthrough of RC channel mapped by RC_MAP_AUX2)
7: RC aux3 (Passthrough of RC channel mapped by RC_MAP_AUX3)
Control Group #6 (First Payload)
0: function 0
1: function 1
2: function 2
3: function 3
4: function 4
5: function 5
6: function 6
7: function 7
虚拟控制组
虚拟控制组不是混频器输入,而是作为元通道将固定翼和多旋翼控制器输出输入到VTOL调速器模块
Control Group #4 (Flight Control MC VIRTUAL)
0: roll ALT (-1…1)
1: pitch ALT (-1…1)
2: yaw ALT (-1…1)
3: throttle ALT (0…1 normal range, -1…1 for variable pitch / thrust reversers)
4: reserved / aux0
5: reserved / aux1
6: reserved / aux2
7: reserved / aux3
Control Group #5 (Flight Control FW VIRTUAL)
0: roll ALT (-1…1)
1: pitch ALT (-1…1)
2: yaw ALT (-1…1)
3: throttle ALT (0…1 normal range, -1…1 for variable pitch / thrust reversers)
4: reserved / aux0
5: reserved / aux1
6: reserved / aux2
7: reserved / aux3
输出组与映射
一个输出组是一个物理总线,可以通过混控器进行映射和缩放
控制组即可以将信号发送到一个输出组,也可以将信号发送到多个输出组
混控器定义
混控器定义在以下文件路径下链接: mixers
如果混合器文件负责混合MAIN输出,则必须命名为XXXX.main.mix;如果混合器文件负责混合AUX输出,则必须命名为XXXX.aux.mix。
通常混控器的设置定义在以下 px4fmu_common/init.d/airframes/路径下
对于MAIN
混控器
在机架定义文件中以set MIXER quad_w
方式加载quad_w.main.mix
混控器定义文件
AUX
混控器
1、可以使用显式的方式加载AUX配置文件
如以set MIXER_AUX vtol_AAERT
方式加载 vtol_AAERT.aux.mix
2、多旋翼和固定翼默认加载 pass.aux.mix
而无需使用显式MIXER_AUX
进行定义
3、VTOL机架使用MIXER_AUX
进行显式设置,如果没有使用该方法,则需要在MIXER
中定义设置
4、云台控制启用(和输出模式设置为AUX
)将覆盖机身特定的MIXER_AUX
设置和加载mount.aux.mix
上的AUX
输出。
加载自定义混控器
在终端使用如下命令加载自定义混控器
mixer load /dev/pwm_output0 /fs/microsd/etc/mixers/test_mixer.mix
混控器类型
总共有四种混控器,分别定义为:multirotor mixer
, helicopter mixer
, summing mixer
, 和 null mixer
.
multirotor mixer
:多旋翼混控器,定义了+
型 或 X
型的4、6、8个输出电机
helicopter mixer
:定义了直升机的升力螺旋桨执行器, 尾桨是使用求和混控器定义的
summing mixer
:求和混控器,用于整合多个控制信号通道的输入,通过线性叠加生成最终控制指令
null mixer
:一种无信号处理功能的混控模式,直接传递原始控制信号至执行端。通常用于特殊场景
混控器文件
混控器定义以以下形式表示
<tag>: <mixer arguments>
其中tag
用于选择混控器类型
R: Multirotor mixer
H: Helicopter mixer
M: Summing mixer
Z: Null mixer
混控器必须以单个大写字母和冒号开头,否则作为注释将忽略
求和混控器
求和混控器将零或多个控制输入组合成单个执行器输出
例
M: <control count>
O: <-ve scale> <+ve scale> <offset> <lower limit> <upper limit> <traversal time>
如果为零,则总和有效为零,混合器将输出一个固定值,该值为,受<下限>和<上限>的约束。
例如,<遍历时间>值为20000将限制执行器的变化率,使得从<下限>到<上限>至少需要2秒,反之亦然。
<遍历时间>应该只在硬件需要时使用!不要对控制车辆姿态的致动器(如用于气动表面的伺服器)施加任何限制。
S: <group> <index> <-ve scale> <+ve scale> <offset> <lower limit> <upper limit>
注意: S:线必须在O:线下面
行上的其余字段使用上面讨论的参数配置控制缩放器。当计算作为浮点运算执行时,存储在定义文件中的值按10000倍缩放;即-0.5的偏移量被编码为-5000。
例
上述是一个飞翼配置文件,MAIN1是左副翼,MAIN2是右副翼,MAIN3是空的(注意Z:零混频器),MAIN4是油门(在普通固定翼配置中保持输出4的油门)
混频器以-10000到10000的标准化单位编码,对应于-1…+1
M:表示两个控制输入的两个标量。它指示混合器将接收的控制输入的数量。
O:表示输出缩放(*1为负,*1为正),偏移量(这里为零)和输出范围(-1…)+ 1)。
如果要反转PWM信号,则必须更改输出缩放的符号:
0: -10000 -10000 0 -10000 10000
如果这行指定了默认缩放,可以(也应该)完全省略:
0: 10000 10000 0 -10000 10000
S:表示第一个输入标量:它从控制组#0(飞行控制)和第一个输入(滚动)中获取输入。它缩放滚动控制输入* 0.6并恢复符号(-0.6变为-6000缩放单位)。它不应用偏移量(0)并输出到整个范围(-1…+1)
S:表示第二个输入标量:它从控制组#0(飞行控制)和第二个输入(俯仰)获得输入。
它缩放螺距控制输入* 0.65。它不应用偏移量(0)并输出到整个范围(-1…+1)
综上所述,混控器的输出是
SERVO = ( (roll input * -0.6 + 0) * 1 + (pitch input * 0.65 + 0) * 1 ) * 1 + 0
空混控器
空混频器不消耗任何控件,并生成一个值始终为零的单个执行器输出。
也可以用来控制用于故障安全装置的输出值(正常使用时输出为0;在故障安全期间,混合器被忽略,而使用故障安全值代替)
空混合器的定义如下:
Z:
多旋翼混控器
多旋翼混控器将四个控制输入(滚转、俯仰、偏航、推力)组合成一组执行器输出,用于驱动电机速度控制器
混控器定义如下:
R: <geometry> <roll scale> <pitch scale> <yaw scale> <idlespeed>
支持的几何形状包括:
4x: 四旋翼X配置
4+: 四旋翼+配置
6x: X形六旋翼配置
6+: +形六旋翼配置
8x: 八旋翼X配置
8+: 八旋翼+配置
每一个横摇、俯仰和偏航比例值决定了相对于推力控制的横摇、俯仰和偏航控制的比例。当计算作为浮点运算执行时,存储在定义文件中的值按10000倍缩放;例如,因子0.5被编码为5000。
滚转、俯仰和偏航输入的范围从-1.0到1.0,而推力输入的范围从0.0到1.0。每个执行器的输出范围为-1.0至1.0。
直升机混控器
略
Vtol混控器
略