PX4-15-混控框架
这一篇我们分享一下PX4的混控框架 mixer。在开始前需要说明,PX4在v1.12版本(不包括)以后(当前的master分支),引入了新的控制分配模块,用于代替我们今天要分享的mixer。
不过控制分配模块还没有正式发布,在稳定版本中能使用的还是mixer,学习mixer可以帮助我们了解PX4是如何把控制通道的输出分配到每个执行通道中的。
下图是mixer的大致结构框图:
PX4的控制通道输出主要有4组 Control Group,
[*]actuator_controls_0:飞控的主要控制通道,用于输出俯仰、滚转、偏航、油门等各个通道的控制量
[*]actuator_controls_1:备用控制通道,在VTOL中用于输出固定翼模式的控制输出
[*]actuator_controls_2:云台控制通道
[*]actuator_controls_3:遥控映射通道
在控制器计算出各个控制通道的控制量后,由mixer根据不同飞机构型为每个执行机构分配控制量。
在 ROMFS/px4fmu_common/mixers 文件夹中定义了不同构型飞行器的混控文件,可以发现文件分 main.mix 和 aux.mix
[*]main.mix:主控制通道的混控文件
[*]aux.mix:辅助通道的混控文件
很多同学对于PX4的main和aux通道还是比较蒙的,下图是PX4硬件的执行机构通道分配图:
从图中可以知道main通道对应IO芯片输出的8路PWM,aux通道对应FMU芯片输出的6/8路PWM。
当然这里说的是大多数带有IO芯片的硬件的结构,一些mini版本硬件不带有IO芯片,因此main.mix加载到FMU中。
我们以一个简单的例子分析一下.mix混控文件的内容 以下是 ROMFS/px4fmu_common/mixers/quad_x_vtol.main.mix 一个vtol构型飞行器的混控文件
# 多旋翼构型的定义,为标准4x构型
R: 4x
# 定义舵面的混控,使用 actuator_controls_1 控制组的0 1通道(滚转、俯仰)混控
# left elevon
M: 2
S: 1 0 -5000 -5000 0 -1000010000
S: 1 150005000 0 -1000010000
# right elevon
M: 2
S: 1 0-5000-5000 0 -1000010000
S: 1 1-5000-5000 0 -1000010000详细的文件关键字说明可以参考官方文档 https://docs.px4.io/master/en/concept/mixing.html
由以上可以发现,使用mixer可以非常方便的定义出各种构型的飞行器执行机构的分配。
另外PX4 Control Group的设计使添加复合飞行器模型更加方便,最直接的应用是vtol这样的多旋翼与固定翼的复合构型,也可以是多旋翼和rover的可以飞可以跑的飞行小车,又或者是水上飞机等等。同学们可以发挥直接的想象力做一些有趣的构型的飞行器。
在后面的分享中给大家分享一下最新的控制分配模块,看看与mixer相比又何特点吧。
往期分享:
PX4-14-HITL仿真框架
AcmeGCS-16-固定翼飞行
AcmeIot-5-4G远程控制
这里会不定期更新一些我整理的无人机相关知识,如果对您有帮助,欢迎加关注转发分享。
页:
[1]