Commit Graph

4363 Commits

Author SHA1 Message Date
Peter Barker 2784f8fa7f Plane: remove persistent guided_WP_loc state
So instead of updating plane.guided_WP_loc and then calling
set_guided_WP(void) to copy that state into plane.next_WP_loc we pass
the new location in the call to set_guided_WP(const Location &loc).

avoidance was the only place which was not entirely over-writing
plane.guided_WP_loc.  However, plane.next_WP_loc was updated to be the
current location when we entered guided mode.  If we update the
horizontal/vertical avoidance now it is relative to the current
location, not the guided wp location, which could be quite important.
2022-03-22 10:14:40 +11:00
Peter Barker 1f5165349e Plane: correct compilation when airspeed disabled 2022-03-20 21:47:05 +11:00
Andrew Tridgell 2c22cbc50e Plane: update release notes for 4.2.0beta3 2022-03-18 21:13:54 +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
Peter Barker d93449ac28 ArduPlane: split AP_HAL_SITL and HAL_SIM_ENABLED 2022-03-17 14:39:55 +11:00
Tim Tuxworth 21ec47f184 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-16 18:04:19 +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 82937ca778 Plane: check that RTL_AUTOLAND is set if using DO_LAND_START 2022-03-14 09:52:41 +11:00
Andrew Tridgell 0ca48fa9da Plane: added release notes for 4.2.0beta2 2022-03-10 13:44:05 +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 c54fb0f51b Plane: link in AP_Follow
ready for ship landing
2022-03-10 07:34:20 +11:00
Andrew Tridgell 72087335f7 Plane: removed terrain home correction 2022-03-10 07:34:20 +11:00
Iampete1 a7bc844780 Plane: never stick mix without valid RC input 2022-03-09 18:26:30 +11:00
Iampete1 c46a19bf89 ArduPlane: tailsitter: keep attitude controll throttle level upto date for smoother controller handover 2022-03-09 18:21:51 +11:00
Andrew Tridgell 8ccf84d9a3 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-09 17:13:45 +11:00
RuffaloLavoisier 962d1d112b ArduPlane : Indentation correction 2022-03-08 14:24:46 -08:00
RuffaloVM d8085f71af ArduPlane : case label indentation 2022-03-08 14:24:46 -08: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 54e57ccff0 Plane: don't prevent stick mixing in none RC failsafe 2022-03-08 11:21:13 +11:00
Peter Barker 302c8e4b98 ArduPlane: rename within_min_dz to in_min_dz for consistency
... consistency with in_trim_dz
2022-03-08 11:17:45 +11:00
Andrew Tridgell 08d53c2d64 Plane: change master version to 4.3.0dev 2022-03-02 07:44:36 +11:00
Andrew Tridgell ad53ee7f0e Plane: added release notes for 4.2.0beta1 2022-03-02 07:43:59 +11:00
Peter Barker c0aa20b1d0 ArduPlane: include cleanups 2022-03-01 11:21:33 +11:00
Henry Wurzburg 0c32e71272 ArduPlane: clarify and simplify RC failsafe messages 2022-03-01 11:05:15 +11:00
Peter Barker 452a5df0cc ArduPlane: add RebootRequred to stream rate parameters 2022-03-01 11:01:12 +11:00
Iampete1 80f8f8b14e Plane: quadplane: double log QPOS state change 2022-03-01 10:59:07 +11:00
Iampete1 c26ffed47f Plane: motor_test: use PWM min and max from RC_Channel 2022-03-01 10:47:25 +11:00
Peter Barker b19bfba0ec Plane: use has_valid_input in place of checking throttle counter 2022-03-01 10:29:37 +11: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
Peter Barker e1314cc297 Plane: remove ancient convert_mixers 2022-02-08 12:19:55 +11:00
Peter Barker 4068d57930 Plane: correct spelling of mode_lotier_qland 2022-02-08 12:19:03 +11:00
Peter Barker 7c0b1f46d6 Plane: remove logging of STRT message
SType is always 3 - and we're just about to log the entire
mission so CTOT is pointless
2022-02-08 12:18:16 +11:00
Henry Wurzburg e82ad1ec24 ArduPlane: fix error in Tricks on a Switch qualifier 2022-02-08 11:54:38 +11:00
Peter Barker bab79d0094 ArduPlane: stop passing mission in Terrain constructor
Terrain can use the mission singleton

This means Copter can have terrain while compiling mission out
2022-02-08 11:20:20 +11: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
Peter Barker dd06a93c06 Plane: remove unused TRUE/FALSE defines 2022-02-07 21:20:21 +11:00
Peter Barker 9878701095 Plane: remove unused DEBUG define 2022-02-07 21:20:21 +11:00
Peter Barker 90310f4c6e Plane: remove unused 'ALT_CONTROL' enumeration 2022-02-07 21:20:21 +11:00
Henry Wurzburg ea9d35c99d ArduPlane: extend nav_scripting to all modes 2022-02-07 21:19:28 +11:00
Hwurzburg ad30d476c8 Plane: enforce acro rate limits in aerobatics scripting 2022-02-07 12:35:31 +11:00
Hwurzburg 0efb2f2048 Plane: disable TECS use during NAV_SCRIPT_TIME 2022-02-07 12:34:15 +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
Bill Geyer 9bec232c8a Plane: modify qautotune to use of multi subclass 2022-02-01 23:06:51 -05:00
Peter Hall 9ec1faf3f9 Plane: tailsitter: rate limit second half of FW transtion 2022-01-26 19:03:32 +11:00
Peter Barker d6c653bdc5 ArduPlane: move logging of SIMSTATE, AHRS2 and POS into AP_AHRS library 2022-01-25 10:59:17 +11:00
Peter Barker 266d384ca7 ArduPlane: rename AP_AHRS::get_position to get_location 2022-01-25 10:47:22 +11:00
Iampete1 f725f7bb7e Plane: set new slew limit and inherit slew limt for flaps 2022-01-25 10:12:13 +11:00
Joshua Henderson c1abcfb7c4 Plane: move Airspeed to AP_Vehicle 2022-01-19 18:21:32 +11:00
Josh Henderson 6dc5a9fc54 Plane: GCS move airspeed sensor status flags up 2022-01-19 18:21:32 +11:00
Josh Henderson 9a3fed0263 Plane: move high_latency_air_temperature up 2022-01-19 18:21:32 +11:00
Andrew Tridgell 3273ead11b Plane: use EKF climb rate estimate in VFR_HUD.climb
EKF estimate is both more accurate and less noisy
2022-01-18 13:26:31 +11:00
Iampete1 32488a5e3a Plane: add MOTB logging at 10hz 2022-01-18 10:18:10 +11:00
Jaaaky 852546f8cf ArduPlane: fix man_expo pitch & rudder params/variables 2022-01-12 18:27:08 +11:00
Peter Barker 0cf4254290 ArduPlane: move RPM sensor logging into AP_RPM 2022-01-11 11:09:26 +11:00
Iampete1 3a5c7ea8fc Plane: quadplane: add transtion fail action param 2022-01-11 11:02:33 +11:00
Peter Hall b64ddb9ac0 Plane: tailsitter: only set limit flags if outputs are configured 2022-01-11 10:37:38 +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 0fa1ddf7c2 Plane: tailsitter: always give pitch prority elevon mixing in VTOL modes 2022-01-11 10:37:38 +11:00
Iampete1 d473344177 Plane: add video stab log bit and log in ahrs_update 2022-01-05 19:56:03 +11:00
Iampete1 ca1b5b1db2 Plane: Quadplane: use get_frame_and_type_string 2022-01-05 19:51:19 +11:00
Peter Barker 89e3e27d3d ArduPlane: move INS notch filter logging into INS 2022-01-05 16:34:36 +11:00
Peter Barker 173f36c145 ArduPlane: make vehicles write notch log messages 2022-01-05 16:34:36 +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
Peter Hall d054ca0426 Plane: quadplane: limit post VTOL transtion pitch rate on tailsitters in maunal modes 2022-01-04 10:42:12 +11:00
Peter Hall 67d7ba490f Plane: quadplane: pass time to tailsitter.in_vtol_transition where avalable 2022-01-04 10:42:12 +11:00
Iampete1 9634641323 Plane: tailsitter: rate limit pitch up in VTOL pos control flight. 2022-01-04 10:42:12 +11:00
Andrew Tridgell 2691022e12 Plane: update release notes for 4.1.6 2022-01-03 13:11:18 +11:00