Henry Wurzburg
c6a822abe1
Plane: fix error in Qplane wait for rudder neutral
2023-04-25 10:27:21 +10:00
Iampete1
74e4466cb4
Plane: use dedicated quadplane function for stick mixing enable
2023-04-25 10:06:50 +10:00
Henry Wurzburg
1415418d6e
Plane:Takeoff on rudder arm only after return to neutral
2023-04-25 09:28:45 +10:00
Mirko Denecke
eb6c5aa7d3
ArduPlane: remove unused update_transition() definition
2023-04-25 09:10:11 +10:00
Nick Exton
674d7facde
Plane: Use Location::same_loc_as() in QuadPlane::waypoint_controller()
2023-04-04 09:40:45 +10:00
Henry Wurzburg
a86ff90b97
ArduPlane: add AUTO VTOL landing abort AUX sw
2023-03-14 10:52:23 +11:00
Andrew Tridgell
38d7bcff6b
Plane: re-init throttle wait on quadplane arm and disarm
...
this prevents yaw from rudder arming on 2nd flight
2023-02-26 07:06:09 +11:00
Andrew Tridgell
a57e6455ab
Plane: use is_armed_and_safety_off()
...
this no longer sets soft_armed false when safety is on, and instead
uses is_armed_and_safety_off() when appropriate
2023-02-21 07:44:09 +11:00
Andrew Tridgell
99f997161a
Plane: holdoff auto takeoff till rudder neutral
...
when arming with rudder we need to hold off the takeoff until the user
has released the rudder stick or we can yaw badly during the takeoff
2023-02-09 07:02:32 +11:00
Andrew Tridgell
2989e2deba
Plane: added support for NAV_PACKAGE_PLACE mission item
...
this works in conjunction with a lua script to allow for a wide
variety of package place options
2023-02-09 07:02:12 +11:00
Peter Barker
648a13d3f7
ArduPlane: add and use AP_ADVANCEDFAILSAFE_ENABLED
2023-02-08 19:00:13 +11:00
Andrew Tridgell
6623f1156c
Plane: transition pitch limit should not apply to FBWA
...
pilot should be able to override pitch, very important on motor
failure to control glide
2023-01-30 09:19:14 +11:00
Iampete1
bf9d49b72d
Plane: Quadaplane: add param for min QRTL altitude when close to home
2023-01-25 19:34:53 +11:00
Henry Wurzburg
636a18f98f
Plane: Update Q_OPTIONS metadata to new format
2023-01-03 10:29:44 +11:00
Iampete1
a99748a13d
Plane: Quadaplane: use land_at_climb_rate_cm only when landing
2022-12-30 20:25:58 +09:00
Leonard Hall
87c684b5ee
Plane: Vtol: use land_at_climb_rate_cm for vertical rate control
2022-12-30 20:25:58 +09:00
Jeremy
0db6146f60
Plane: Added Y4 config to Quadplane
2022-12-27 15:19:28 +11:00
Peter Barker
0cf56ea320
ArduPlane: make and use AP_LANDINGGEAR_ENABLED
2022-12-14 18:30:23 +11:00
Leonard Hall
16ccdeb058
Plane: Support changing update period in Motors
2022-12-13 17:10:06 +11:00
Leonard Hall
0bc5e68aed
Plane: Support changing update period
2022-12-13 17:10:06 +11:00
Andrew Tridgell
99066a27f8
Plane: ensure we init z controller when inactive
...
this prevents us getting the AC_PosControl internal error, which is
turning up as a common false positive.
2022-12-05 07:50:05 +11:00
Peter Hall
148c8d6eec
Plane: Quadplane: tiltrotor: add Q_OPTION to keep motors tilted up when disarmed in FW modes
2022-11-29 10:51:23 +11:00
Iampete1
edf89b02ea
Plane: Quadplane: 0 rate_bf_yaw_target as more or less the same as radians value in cd funcion
2022-11-25 18:13:00 +11:00
Andrew Tridgell
8a0708efe8
Plane: scale VTOL angle P gains with airspeed
...
During POSITION1 back-transiton we scale the MC angle P gains with
airspeed to reduce the chance of oscillations. At higher airspeeds the
fixed wing controller dominates so we should use the fixed wing angle
P gain.
2022-10-18 07:38:39 +11:00
Iampete1
a774f314a2
Plane: Quadplane: SLT: enforce TECS pitch limits to beat race
2022-10-11 11:18:41 +11:00
mattbooker
821ef1d4d9
Plane: Fixed divide by zero error when transitioning to guided
2022-10-07 08:22:48 +11:00
Andrew Tridgell
22cd568a4c
Plane: removed use of "blended" earth frame accel
2022-08-21 18:51:59 +10:00
Mirko Denecke
ba13f4d116
ArduPlane: remove unused limit_length calculation in overshoot
2022-08-16 12:05:00 +10:00
Michael du Breuil
f183b21fc5
Plane: Support vtol landing options on NAV_VTOL_LAND
...
This allows the same mission to contain both circular and straight
landing items, and doesn't require on the fly tweaking
2022-08-15 17:05:00 -07:00
Iampete1
ee778dbd3a
Plane: Quadplane: add option_is_set helper for Q_OPTIONS
2022-08-09 13:21:00 +10:00
Iampete1
821053e580
Plane: Quadplane: allow servo auto trim for motors only tailsitter assist
2022-08-09 10:56:41 +10:00
Andrew Tridgell
b133e98102
Plane: improve target airspeed in landing approach
...
if the user hasn't set TECS_LAND_ARSPD then we can use an airspeed
between ARSPD_FBW_MIN and TRIM_ARSPD_CM when on approach
this also fixes landing_desired_closing_velocity() to never go above
the landing target speed, so we don't try to speed up if we are
starting the landing sequence too early
2022-08-03 12:26:57 +10:00
Andrew Tridgell
f9f0f60815
Plane: base yaw in overshoot on target speed not scaled speed
...
this prevents an oscillating due to the speed changing as we yaw,
resulting in a different yaw target
2022-08-02 07:49:34 +10:00
Andrew Tridgell
5bdd43457c
Plane: in overshoot allow up to the Q WP speed
...
this prevents us using too much battery when we are a long way from
the landing point
2022-08-02 07:49:34 +10:00
Andrew Tridgell
fa371b92a8
Plane: limit target accel in POSITION1
...
don't ask for more than 2* transition limit, and reset when we enter
overshoot case
2022-08-02 07:49:34 +10:00
Andrew Tridgell
afd21298d5
Plane: adjust target vector for wind in overshoot
...
at low speeds we want to keep the nose pointed into the wind on
landings
2022-08-02 07:49:34 +10:00
Andrew Tridgell
a1e7072cb1
Plane: cope with overshoot in POSITION1 VTOL land state
...
when we overshoot run a simple position controller that tries to point
the nose at the landing point and aims for the position2 speed
threshold
2022-08-02 07:49:34 +10:00
Iampete1
a592f76282
ArduPlane: change AC_FENCE to AP_FENCE_ENABLED
2022-07-27 19:04:56 +10:00
Peter Barker
b0bee613d4
ArduPlane: add and use AP_ICENGINE_ENABLE
2022-07-22 08:48:16 +10:00
Iampete1
712611c50e
Plane: Quadplane: add yaw command model
2022-07-13 18:26:36 +10:00
Henry Wurzburg
6bb567465a
Plane: fixed misspellings of 'transition'
2022-07-01 11:54:16 -07:00
Mirko Denecke
463aed4b8f
ArduPlane: fix Q_RTL_MODE parameter doc
2022-06-30 10:50:09 +10:00
Iampete1
0cd1f605f6
Plane: Quadplane: always reset to QPOS_NONE on mode entry
2022-06-23 08:37:00 +10:00
Iampete1
f2a162b963
Plane: rotate Qassist desired rates correctly
2022-06-21 10:01:30 +10:00
Iampete1
d251c51ca1
Plane: Quadplane: QRTL climb to QRTL alt first if in Q mode
2022-06-21 09:11:08 +10:00
Andrew Tridgell
42f553626e
Plane: adjust down default quadplane gains
...
make it better for a typical quadplane, the defaults were more
suitable on smaller aircraft
2022-06-16 21:26:49 +10:00
Iampete1
34609d327d
Plane: Quadplane: force convertions of Q_M_PMW_* params if invalid and add arming check
2022-06-08 17:08:23 +10:00
Andrew Tridgell
6423a2dfb9
Plane: use pos_control for weathervane attitude
...
this makes no difference as wp_nav just passes through, but right API
to call
2022-06-03 18:19:53 +10:00
Andrew Tridgell
ae6b877fd3
Plane: added Q_NAVALT_MIN
...
this is equivalent to copters WP_NAVALT_MIN parameter for takeoff. Not
implemented for land yet
this is useful for vehicles with significant GPS velocity noise on
takeoff, preventing dragging the landing gear
2022-06-03 18:19:53 +10:00
Andrew Tridgell
fa26b69298
Plane: fixed false positive in landing detector
...
this fixes a case where we can get false positive on the landing
detector for quadplanes.
The issue happens if we cross the LAND_DESCEND to LAND_FINAL threshold
while pilot repositioning is active, with stale information in
landing_detect.lower_limit_start_ms as we don't run should_relax() in
LAND_DESCEND
2022-05-23 13:05:17 +10:00
Andrew Tridgell
56db91d0c3
Plane: 32 servo conversion
2022-05-22 12:07:37 +10:00
Andrew Tridgell
86c2404654
Plane: increased safety of guided -> auto quadplane takeoff
...
when we arm in guided mode then enter a special guided_wait_takeoff
state. We keep motors suppressed until one of the following happens
1) disarm
2) guided takeoff command
3) change to AUTO with a takeoff waypoint as first nav waypoint
4) change to another mode
while in this state we don't go to throttle unlimited, and will refuse
a change to AUTO mode if the first waypoint is not a takeoff. If we
try to switch to RTL then we will instead use QLAND
This state is needed to cope with the takeoff sequence used by QGC on
common controllers such as the MX16, which do this on a "takeoff"
swipe:
- changes mode to GUIDED
- arms
- changes mode to AUTO
2022-05-18 06:43:16 +10:00
Andrew Tridgell
a22e181acb
Plane: account for sprung throttle in VTOL throttle suppression
...
when RC_OPTIONS has been changed to not check throttle for arming then
treat this like a sprung throttle for quadplane throttle suppression
in auto-throttle modes, and only unsuppress when throttle goes above
trim+dz
2022-05-15 21:17:50 +10:00
Andrew Tridgell
86d2ccf0e7
Plane: update gyro fft throttle
...
allows for updating or learned FFT freq
2022-05-10 08:08:56 +10:00
Henry Wurzburg
0d01ac389c
Plane: add Q_OPTION for RTL always on RC failsafe for ship landing
2022-04-19 19:58:46 +10:00
Andrew Tridgell
8e37c93e7d
Plane: fixed rudder control when ARMING_RUDDER != 2
...
when rudder disarm is disabled we should allow full yaw control
regardless of throttle level. We should also only disable left yaw
when throttle is at zero, as right yaw does not indicate pilot may be
trying to disarm
2022-04-03 09:12:03 +10:00
Peter Barker
2c42c056d8
Plane: correct EnableLandResponsition->EnableLandReposition
2022-03-31 20:30:55 +11:00
Andrew Tridgell
48881eeb55
Plane: fixed yaw on the ground when rudder disarming in AUTO
...
when a quadplane touches down in an auto throttle mode the pilot may
use rudder to disarm. The check for rudder disarm was only active in
modes without auto-throttle. This expands it to all modes if the
throttle has hit the lower limit
2022-03-24 07:44:40 +11:00
Andrew Tridgell
d82a306cc2
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-23 18:20:42 +11:00
Peter Barker
1f5165349e
Plane: correct compilation when airspeed disabled
2022-03-20 21:47:05 +11:00
Henry Wurzburg
14700063d2
ArduPlane: convert floating point divides into multiplys
2022-03-18 15:26:44 +11:00
Andrew Tridgell
6ebefbdb16
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-18 13:36:16 +11:00
Andrew Tridgell
eabdaae1e7
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-18 13:36:16 +11:00
Andrew Tridgell
cc6fc2b130
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-18 13:36:16 +11:00
Andrew Tridgell
3772029450
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-18 13:36:16 +11:00
Andrew Tridgell
8b16b5ca94
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-18 13:35:46 +11:00
Andrew Tridgell
a1856c5c22
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-16 09:29:14 +11:00
Andrew Tridgell
55c46cd868
Plane: protect against short stop_distance
2022-03-10 13:41:18 +11:00
Andrew Tridgell
5e14b9efe6
Plane: use pos control for most of LAND_FINAL
...
this gives more accurate landing with some velocity drift
2022-03-10 07:34:20 +11:00
Andrew Tridgell
cc9b9813cb
Plane: review fixes
...
thanks Pete!
2022-03-10 07:34:20 +11:00
Andrew Tridgell
f09c715d7a
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-10 07:34:20 +11:00
Andrew Tridgell
3659669409
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-10 07:34:20 +11:00
Andrew Tridgell
f9ecf15973
Plane: setup target accel in POSITION1 state
2022-03-10 07:34:20 +11:00
Andrew Tridgell
2864e21b31
Plane: allow for a trans decel margin
...
so if we are behind the velocity curve we are less likely to overshoot
landing
2022-03-10 07:34:20 +11:00
Andrew Tridgell
33bc067edf
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-10 07:34:20 +11:00
Andrew Tridgell
3fe9a55269
Plane: added APIs for lua ship landing
2022-03-10 07:34:20 +11:00
Andrew Tridgell
6d63e1f7d3
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-09 07:50:10 +11:00
Iampete1
80f8f8b14e
Plane: quadplane: double log QPOS state change
2022-03-01 10:59:07 +11:00
Peter Barker
b19bfba0ec
Plane: use has_valid_input in place of checking throttle counter
2022-03-01 10:29:37 +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
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
Iampete1
1ca1707f9f
Plane: quadpalne: keep motors interlock state upto date with E-stop
2022-02-10 07:43:40 +09:00
Peter Hall
717b18a680
Plane: quadplane: add allow_weathervane transtion class method
2022-02-08 10:38:16 +11:00
Peter Hall
6a719664d3
Plane: quadplane: pass takeoff and landing state to weathervane
2022-02-08 10:38:16 +11:00
Gone4Dirt
a79359dc67
Plane: use new weathervane library
2022-02-08 10:38:16 +11:00
murata
f8383df5a4
Plane: Remove meaningless semicolons
2022-02-07 08:27:34 +09:00
Bill Geyer
54bdde8845
Copter: fix parameter issue with quadplane
2022-02-01 23:06:51 -05:00
Peter Barker
266d384ca7
ArduPlane: rename AP_AHRS::get_position to get_location
2022-01-25 10:47:22 +11:00
Iampete1
32488a5e3a
Plane: add MOTB logging at 10hz
2022-01-18 10:18:10 +11:00
Iampete1
3a5c7ea8fc
Plane: quadplane: add transtion fail action param
2022-01-11 11:02:33 +11:00
Peter Hall
2ffebebddc
Plane: tailsitter: provide min throttle limit based on disk therory outflow velocity
2022-01-11 10:37:38 +11:00
Iampete1
ca1b5b1db2
Plane: Quadplane: use get_frame_and_type_string
2022-01-05 19:51:19 +11:00
Peter Hall
d4eb2c6396
Plane: quadplane: QPOS_POSITION1 tailsitters use input_vel_accel method
2022-01-04 10:42:12 +11:00
Iampete1
4848ac9166
Plane: quadplane: don't use `is_active_z()`, becasue its wrong
2022-01-04 10:42:12 +11:00
Iampete1
fb1f6b57ad
Plane: Quadplane: never run Z controller if motors are not throttle unlimited
2022-01-04 10:42:12 +11:00
Peter Hall
c215fa0745
Plane: Quadplane: never run Z controller in tailsiter VTOL transtion
2022-01-04 10:42:12 +11:00
Peter Hall
9df753551e
Plane: quadplane: tailsitter: always relax pitch after transtion
2022-01-04 10:42:12 +11:00