混合器输出定义控制器的输出是如何映射到电机和伺服输出。所有内置mixer文件位于ROM文件系统的/etc/mixers目录,并编译成固件。Mixer是一组独立的映射器,从控制读入写入,写入执行器输出。一个模块,结合一组根据预先定义的规则和参数的输入,产生一组输出。
1.语法:
Mixer的定义是文本文件,用一个大写字母后跟一个冒号开头的行。所有其他的行都会被忽略,这意味着解释性文本可与定义相混合。每个文件可以定义多个Mixer。由一个Mixer产生的执行器输出的数量是特定的。
起始形式如下:
<tag>:<mixer arguments>
标签选择Mixer的类型,“M”为一种简单求和Mixer,“R”为多转子(多旋翼)Mixer等。
一个空的Mixer不消耗控制,并产生一个执行机构的输出,其值始终为零。通常一个空的 Mixer被用作占位符Mixer的集合中,以实现制动器输出的特定模式。空的Mixer定义形式:
Z:
2.简单的Mixer
一个简单的Mixer的开始:
M: <control count>
O: <-ve scale> <+ve scale> <offset> <lower limit> <upper limit>
如果为零,则输出就为零,Mixer输出的固定值是受限制的。
第二行定义了输出输出定标器和标量参数。虽然计算作为浮点运算进行的,存储在所述定义文件中的值是由10000倍缩放,-0.5偏移被编码为-5000.
该定义继续描述控制输入和缩放项:
S: <group> <index> <-ve scale> <+ve scale> <offset> <lower limit> <upper limit>
这些值定义了控制组从那些定标器中读取数据,和该组内的值的偏移。是特定于设备读取Mixer的定义。
当用于混合车辆的控制,混合器组0是车辆姿态控制组,索引值从0到3通常分别是:roll,pitch,yaw,thrust。
具体详解见:https://pixhawk.org/dev/mixing?s[]=mixer
3.多旋翼Mixer
在多旋翼混合器结合四个控制输入(roll,pitch,yaw,thrust)为一组用于驱动电机速度控制器制动输出。
Mixer定义的形式:
R: <geometry> <roll scale> <pitch scale> <yaw scale> <deadband>
参数解释:
机械:包括quad(4x,4+),hex(6x,6+),octo(8x,8+)
单独的roll,pitch和yaw控制因子
电机输出死区
支持配置如下:
每个滚动,俯仰和偏航刻度值的确定侧倾,俯仰的缩放和偏航控制相对于所述推力控制。
滚动,俯仰和偏航输入预期范围从-1.0到1.0,而油门输入范围从0.0到1.0。为每个致动器输出的范围是-1.0到1.0。
在致动器饱和,所有致动器被重新缩放,使得饱和致动器被限制在1.0的情况下。
例子如下: