Commit Graph

4308 Commits

Author SHA1 Message Date
Andrew Tridgell b764b4c1e4 Plane: prevent rapid RTL/AUTO switching on fence breach
don't switch back to RTL if already in a DO_LAND_START sequence
2022-03-30 19:12:45 +09:00
Andrew Tridgell a977898bd3 Plane: when shutting down motors force outputs to minimum
this fixes issue #20354 where a long spool time can lead to motors
running without control for an extended period of time.
2022-03-30 19:12:45 +09:00
Andrew Tridgell dc8ade101f Plane: prepare for 4.2.0beta3 2022-03-30 19:12:45 +09:00
Andrew Tridgell 87a32a2c68 Plane: update release notes for 4.2.0beta3 2022-03-30 19:12:45 +09:00
Tim Tuxworth 7dbfd2ebf7 Plane: Display Fence Breach message in GCS
Send a "Geofence breach" message to the Ground Control Station. Without this when the fence is breached and if anything happens as a result, such as RTL, it will happen silently.
2022-03-30 19:12:45 +09:00
Andrew Tridgell 77bc475ad6 Plane: adjust throttle mix for auto landing
use mix-max during landing approach and initial descent, use min in
land final. As discussed with Leonard
2022-03-30 19:12:45 +09:00
Andrew Tridgell 09ffe959e1 Plane: check that RTL_AUTOLAND is set if using DO_LAND_START 2022-03-30 19:12:45 +09:00
Andrew Tridgell dfd9ead46f Plane: added airspeed based pitch limit check
prevent using too much pitch when at low airspeed, which can lead to
severe instability in SLT quadplanes
2022-03-30 19:12:45 +09:00
Andrew Tridgell 513afb046f Plane: added an arming check for Q_ASSIST_SPEED
Q_ASSIST should really be enabled for all non-tailsitter
quadplanes. This arming check will help users remember to configure it
2022-03-30 19:12:45 +09:00
Andrew Tridgell 06b77f2cf1 Plane: use set_lean_angle_max_cd()
allows for a wider range of Q_TRANS_DECEL while landing on the desired
landing point
2022-03-30 19:12:45 +09:00
Andrew Tridgell d1a2cafb01 Plane: improvements to POSITION1 controller
this improves 4 things in the POSITION1 controller based on logs from
4.2.0beta2. The changes are designed to increase the tolerance to
an incorrect value for Q_TRANS_DECEL, reducing landing overshoot

1) we fix the initialisation of the acceleration. The
   init_xy_controller() function assumes zero accel, so we need to
   call set_accel_desired_xy_cmss() just after that init to get the
   correct accel. Thanks to Leonard for this fix

2) if we decel more than expected due to too low Q_TRANS_DECEL we
   need to reduce the target speed, rather than putting the nose down

3) lower the default Q_P_JERK_XY to a value more appropriate for most
   quadplanes (Leonard suggested a value of 2)

4) fixed the pitch envelope from Q_BACKTRANS_MS to start after the
   airbrake phase is complete
2022-03-30 19:12:45 +09:00
Andrew Tridgell d666f6ed02 Plane: fixed pitch envelope after AIRBRAKE
we need to setup last_fw_mode_ms and last_fw_nav_pitch_cd when we
enter POSITION1 mode so that the expanding envelope pitch limit from
Q_BACKTRANS_MS is applied correctly
2022-03-30 19:12:45 +09:00
Andrew Tridgell 147f06c589 Plane: prepare for 4.2.0beta2 2022-03-30 19:12:45 +09:00
Andrew Tridgell d6f82c5e31 Plane: added release notes for 4.2.0beta2 2022-03-30 19:12:45 +09:00
Andrew Tridgell 743f0bc3f9 Plane: protect against short stop_distance 2022-03-12 08:00:49 +09:00
Iampete1 9f32204f15 Plane: quadplane: double log QPOS state change 2022-03-12 08:00:49 +09:00
Peter Barker 4631392f31 Plane: use has_valid_input in place of checking throttle counter 2022-03-12 08:00:49 +09:00
Henry Wurzburg 0c571e6d66 ArduPlane: clarify and simplify RC failsafe messages 2022-03-12 08:00:49 +09:00
Peter Barker 51c51c6f29 ArduPlane: add RebootRequred to stream rate parameters 2022-03-12 08:00:49 +09:00
Andrew Tridgell 06e911da4b Plane: disallow mavlink disarm while flying
this relies on is_flying(), and we will need to watch for reports of
the heuristics failing
2022-03-12 08:00:49 +09:00
Iampete1 2ac2257d83 ArduPlane: tailsitter: keep attitude controll throttle level upto date for smoother controller handover 2022-03-12 08:00:49 +09:00
Iampete1 93b4eae6db Plane: never stick mix without valid RC input 2022-03-12 08:00:49 +09:00
Iampete1 ea41f6d70a Plane: don't prevent stick mixing in none RC failsafe 2022-03-12 08:00:49 +09:00
Andrew Tridgell fbe1672d22 Plane: use pos control for most of LAND_FINAL
this gives more accurate landing with some velocity drift
2022-03-12 08:00:49 +09:00
Andrew Tridgell 49e83841d4 Plane: review fixes
thanks Pete!
2022-03-12 08:00:49 +09:00
Andrew Tridgell 0a2f347c36 Plane: wait till motors are fully up before takeoff in guided mode
this allows for guided mode takeoff in tilt-rotors. Otherwise motors
till be pointing forward and takeoff will go very badly
2022-03-12 08:00:49 +09:00
Andrew Tridgell 9d1e218f4c Plane: cope with high angle error in airbrake state
if we are flying too far off the target vector then exit airbrake
state. This prevents flying for a long distance away from the landing
point in airbrake mode
2022-03-12 08:00:49 +09:00
Andrew Tridgell 993248b6d5 Plane: setup target accel in POSITION1 state 2022-03-12 08:00:49 +09:00
Andrew Tridgell c5b7fd03d8 Plane: allow for a trans decel margin
so if we are behind the velocity curve we are less likely to overshoot
landing
2022-03-12 08:00:49 +09:00
Andrew Tridgell d7913104cb Plane: fix NAV_CONTROLLER_OUTPUT in Q modes
Q modes don't always use wp_nav, but do use pos_control

AUTO and QRTL setup the plane navigation as well, so can use the L1
data
2022-03-12 08:00:49 +09:00
Andrew Tridgell 2b257663dc Plane: added APIs for lua ship landing 2022-03-12 08:00:49 +09:00
Andrew Tridgell 0e70270f49 Plane: link in AP_Follow
ready for ship landing
2022-03-12 08:00:49 +09:00
Andrew Tridgell 59c56a5fc5 Plane: removed terrain home correction 2022-03-12 08:00:49 +09:00
Andrew Tridgell fc7a8a1a19 Plane: added Q_LAND_ALTCHG parameter
this is the threshold height change over 4 seconds for a landing to be
detected. It can be raised if landing detection is very slow
2022-03-12 08:00:49 +09:00
Andrew Tridgell 47739344b8 Plane: prepare for 4.2.0beta1 2022-03-12 08:00:49 +09:00
Andrew Tridgell 66cda54be1 Plane: added release notes for 4.2.0beta1 2022-03-12 08:00:49 +09:00
Peter Barker 13fa1e30ad ArduPlane: rename and make enum RC_Channel::ControlType
Type:: is too generic; get_type should probably be get_control_type
2022-02-27 09:55:01 +11:00
Andrew Tridgell b444420329 Plane: removed controller error in transmitter tuning 2022-02-22 12:23:48 +11:00
Andrew Tridgell e3e125c307 Plane: prepare for 4.1.7 2022-02-21 12:11:28 +11:00
Iampete1 267583db55 Plane: quadplane: never reset yaw target rates when entering QPOS1 2022-02-21 09:35:06 +11:00
Iampete1 9fd14dbf94 Plane: quadplane: set IO failsafe limit for all motors 2022-02-17 12:31:16 +11:00
Iampete1 42a2e1094c Plane: set failsafe limit for throttle left and right 2022-02-17 12:31:16 +11:00
Andrew Tridgell 1bdc9b5bf8 Plane: fixed in_vtol logic so QRTL can AIRBRAKE 2022-02-16 07:43:01 +11:00
Andrew Tridgell aab6c94936 Plane: don't weathervane in AIRBRAKE state
this prevents unwanted VTOL motor throttle while trying to slow
down. In this stage the slaving of yaw rate to fixed wing roll control
is sufficient
2022-02-16 07:43:01 +11:00
Andrew Tridgell 2846f87eeb Plane: reduce height gain in auto landing for tiltrotors
avoid running the motors while tilted past the tilt max if we are in
AIRBRAKE state. This stops a large amount of forward thrust from the
tilted motors while trying to slow down, while still maintaining
attitude control
2022-02-16 07:43:01 +11:00
Andrew Tridgell 5bb7b04343 Plane: added release notes for 4.1.7beta1 2022-02-12 09:00:51 +11:00
Peter Barker 458d43fc1e ArduPlane: send deprecated message warning for MAVLINK_MSG_ID_SET_HOME_POSITION 2022-02-10 12:13:43 +11:00
Iampete1 1ca1707f9f Plane: quadpalne: keep motors interlock state upto date with E-stop 2022-02-10 07:43:40 +09:00
Peter Barker d914e4e63b Plane: convert next WP alt to global frame in POSITION_TARGET_GLOBAL_INT 2022-02-09 16:09:41 +11:00
Peter Barker 10be59da17 ArduPlane: create and use location_from_command_t 2022-02-09 09:15:11 +11:00