PX4之旅-混控器

混控器

混控器控制流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混控器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值