greetings,
my suggestion and request is for the option to remove angle_max from stabilize mode.
i have field tested arducopter 2013 & 2014 versions with angle_max in stabilize mode.
- my review of about 5 crash landings is that angle_max was the problem:
- angle_max can oscillate the frame:
- if the frame attitude reaches an angle_max
- it can overcompensate all the way to the opposing angle_max
- and then oscillate back & forth in a loop until crashing
- it can overcompensate all the way to the opposing angle_max
- if the frame attitude reaches an angle_max
- angle_max can stall the stab_pid_controller & motors
- if the frame attitude results "upside down" or angle_max 180 degrees
- it can stall the stab_pid_controller
- and then stall the motors falling until crashing.
- it can stall the stab_pid_controller
- if the frame attitude results "upside down" or angle_max 180 degrees
- angle_max cannot be set to a full 360 degrees:
- angle_max cannot be deactivated in stabilize mode.
- angle_max furthest rotation angle is 180 degrees or default range 0 - 180. .
- angle_max can oscillate the frame:
i suggest options for angle_max in stabilize mode:
- option angle_max none or full 360 rotation
- result there is no chance of oscillating the frame between two opposing angle_max attitudes.
- result there is no chance of the stab_pid stalling when the frame is upside down @ the angle_max range limit of 180 degrees.
- option angle_max return to level:
- if the frame is upside down @ angle_max 180
- stab_pid will activate a "return to level" command.
- exiting the upside down condition
- preventing a stab_pid stall while upside down @ 180 degrees.
- stab_pid will activate a "return to level" command.
- if the frame is upside down @ angle_max 180
i suggest the reason angle_max is limited to 180 degrees:
- if the frame is upside down @ 180 degrees
- then there is "no stabilization possible"
- reason, the motors have to turn continuously in one direction.
- example stabilizing the frame while upside down would require the motors to turn in the opposite direction.
- reason, the motors have to turn continuously in one direction.
- then there is "no stabilization possible"
i suggest add code for "oscillation dampening"
- if the frame is oscillating:
- code evaluate that the frame is oscillating
- if
- over a time range:
- angle_max right
- angle_max left
- angle_max right
- angle_max left
- over a time range:
- if
- code evaluate that the frame is oscillating
- then
- code dampen the oscillation
- reduce stab_pid controller
- code dampen the oscillation
Replies