VTOL源码分析补充
上一篇大致分析了PX4中对于VTOL的控制策略:
上图摘自开发者Roman Bapst的一篇讲义
其中的VTOL Controller上篇也做了较为详细的图解:
补充:
fill_actuator_outputs():
复合式机型(Standard)
函数的主要作用是在各种机型下,计算各种flight_mode下的actuator输出。
multirotor controls:
// roll
_actuators_out_0->control[actuator_controls_s::INDEX_ROLL] =
_actuators_mc_in->control[actuator_controls_s::INDEX_ROLL] * _mc_roll_weight;
// pitch
_actuators_out_0->control[actuator_controls_s::INDEX_PITCH] =
_actuators_mc_in->control[actuator_controls_s::INDEX_PITCH] * _mc_pitch_weight;
// yaw
_actuators_out_0->control[actuator_controls_s::INDEX_YAW] =
_actuators_mc_in->control[actuator_controls_s::INDEX_YAW] * _mc_yaw_weight;
// throttle
_actuators_out_0->control[actuator_controls_s::INDEX_THROTTLE] =
_actuators_mc_in->control[actuator_controls_s::INDEX_THROTTLE] * _mc_throttle_weight;
_actuators_mc_in
是mc_att_control
的计算结果,上述函数的作用是根据权重重新计算期望输出值,同理适用固定翼模式。
各个输出量update_transition_state()计算得到的mc权重
_mc_roll_weight =