多旋翼无人机翻滚360度(flip实现方法)

多旋翼无人机翻滚360度(flip实现方法)

1、初始化
可使用flip的模式:ACRO、STABILIZE、AltHold
模式要求:ACRO、STABILIZE(油门量大于0)
滚转控制量小于40deg(功能设置,当滚转杆量大于40deg则取消flip)
电机已解锁且飞机处于空中

保存当前状态:
 (1)飞机当前姿态
 (2)飞机当前控制模式
 (3)飞机翻转方向(由俯仰、滚转杆控制)

2、多旋翼flip的控制为开环控制,主要使用状态机实现,状态包括:
(1)Flip_Start
进入条件:
初始化完成,且满足初始化条件
状态进程:
(1)增大油门量(FILP_THR_INC 默认值为0.2)
(2)输入滚转/俯仰角速度指令(FLIP_ROTATION_RATE 默认值为400deg/s)
(3)判断旋转方向,如果为滚转方向将进入Flip_Roll状态
如果为俯仰方向将进入Flip_Pitch_A状态
(2)Flip_Roll
进入条件:
如果滚转角度绝对值大于45deg,且当前状态为Flip_Start
状态进程:
(1)减小油门量(FLIP_THR_DEC 默认值为0.24 翻转时使用较低油门量可以减小调高)
(2)输入滚转角速度指令(FLIP_ROTATION_RATE 默认值为400deg/s)
如果滚转角为-90deg~45deg,那么将进入Flip_Recover状态
(3)Flip_Pitch_A
进入条件:
如果俯仰角度绝对值大于45deg,且当前状态为Flip_Start
状态进程:
(1)减小油门量(FLIP_THR_DEC 默认值为0.24 翻转时使用较低油门量可以减小调高)
(2)输入滚转角速度指令(FLIP_ROTATION_RATE 默认值为400deg/s)
如果滚转角绝对值大于90deg且俯仰角大于45deg时,进入Flip_Pitch_B状态
(4)Flip_Pitch_B
与Flip_Pitch_A类似,进入Flip_Recover条件为:滚转角小于90deg且俯仰角大于-45deg,那么将进入Flip_Recover状态
(5)Flip_Recover
状态进程:
将保存的初始姿态角和控制模式回复
(6)Flip_Abandon
如果进入abandon模式,那么我们将只恢复到原始控制模式

你可能感兴趣的:(APM代码分析)