Commit Graph

3388 Commits

Author SHA1 Message Date
Peter Barker f940564f2b Plane: use enum class for AltFrame enumeration 2019-03-19 10:31:18 +11:00
Mark Whitehorn 825055d736 Plane: add rate-only option for QACRO mode 2019-03-19 10:13:59 +11:00
Mark Whitehorn 6414f0e48e Plane: skip plane assignments in QACRO 2019-03-19 10:13:59 +11:00
Mark Whitehorn abfeee3a3d Plane: fix indentation 2019-03-19 10:13:59 +11:00
Andrew Tridgell 3907466f9d Plane: added TKOFF_TIMEOUT parameter
this allows for a timeout on auto-takeoff. This can be combined with
other takeoff parameters to allow the user to abort a hand-launch
after the motor has started without GCS interaction.

The 4m/s threshold is a bit arbitrary. We could make that a parameter
in the future if it is needed
2019-03-18 14:48:08 +11:00
Andrew Tridgell 2b6210d594 Plane: use WP height for height above ground in vtol landing
this allows for landings above or below the takeoff height without
requiring the use of terrain data. It allows both the use of vfwd
motor for holding against wind, and the correct height for land final
descent rate
2019-03-18 14:47:27 +11:00
Andrew Tridgell b4103d04cc Plane: never use vfwd motor if vtol motors shutdown 2019-03-18 13:38:41 +11:00
Andrew Tridgell 7908ad437e Plane: allow fwd motor to run in VTOL land hor positioning
this fixes an issue with vtol landings below the takeoff point
2019-03-18 13:38:41 +11:00
Peter Barker 0edba9070f Plane: move sending of RPM message up 2019-03-16 10:33:01 +09:00
Peter Barker d489d9a585 Plane: compass init never fails 2019-03-13 13:06:50 +11:00
Peter Barker ca7566fff9 Plane: use enum class for ArmingMethod and ArmingRequired 2019-03-12 19:48:14 +11:00
Peter Barker cbb0bfb809 Plane: is_flying_vtol: if spool mode is shut down we are not flying
The subsequent check for get_throttle passes if you switch from QHOVER
to MANUAL on the ground while armed.  get_throttle returns > 0.01 - but
the motors are shut down so no output occurs.
2019-03-12 10:21:11 +11:00
Peter Barker cf45b54070 Plane: quadplane use prearm checks from Attitude and Position controllers 2019-03-12 10:14:14 +11:00
Mark Whitehorn f7bf10fcfc ArduPlane: add rudder to tailsitter gain scaling 2019-03-12 10:12:23 +11:00
Mark Whitehorn 4a6b97828f ArduPlane: add tailsitter input type TAILSITTER_INPUT_BF_ROLL 2019-03-06 15:48:51 +11:00
Mark Whitehorn 01d6f1d932 ArduPlane: add body-frame yaw mode for tailsitters 2019-03-06 15:48:51 +11:00
IamPete1 872c3df45c Plane: tailsitter pull in copter ouputs from AP_motors 2019-03-06 14:46:39 +11:00
Peter Barker bd444d97dc Plane: move sending of airspeed_autocal into AP_AirSpeed 2019-03-06 11:32:52 +11:00
Mark Whitehorn 6e4a2b97f9 ArduPlane:add subclass for copter tailsitters
cleanup and add tailsit_motmx
add constexpr and motor mask check
add support for tricopter tailsitter
don't call output_motor_mask unless armed
fix whitespace
2019-03-06 07:53:46 +09:00
Peter Barker 94899bd2ed Plane: move sending of send_pid_tuning up 2019-03-05 10:41:56 +11:00
Mark Whitehorn 61aff344d3 ArduPlane: add high-speed Qmode tailsitter gain scaling with support for airspeed sensor 2019-03-05 10:27:42 +11:00
Mark Whitehorn 487ad7a90f Plane: add QACRO mode for quadplanes
use acro_r/p/y_rate params in qacro
port ACRO throttle handling from copter

handle non-tailsitter controls
2019-03-05 10:13:20 +11:00
Peter Barker a451380d61 Plane: avoid int32_t<->float conversions 2019-03-01 12:09:58 +11:00
Dr.-Ing. Amilcar do Carmo Lucas f430fd14f6 Plane: replace location_offset() and get_distance() function calls with Location object member function calls
This allows removing duplicated code
2019-02-28 11:44:09 +11:00
Andrew Tridgell cd1f21b806 Plane: removed some px4 specific code and docs 2019-02-27 20:32:37 +11:00
IamPete1 f24c6785f2 Plane: add E-stop 2019-02-27 08:51:24 +09:00
Andrew Tridgell 136e10a781 Plane: handle VTOL landing with incorrect height
if landing above expected height then run landing detector to allow a
switch from LAND_DESCEND to LAND_FINAL

this prevents the plane sitting on the ground until the battery runs
out
2019-02-26 11:12:58 +11:00
Peter Barker dea75a87fd Plane: AHRS set_orientation renamed to update_orientation 2019-02-26 10:28:09 +11:00
Michael du Breuil b290148ed0 Plane: Don't overwrite the quadplane loiter relax 2019-02-23 11:08:21 +11:00
Andrew Tridgell a278a152fc Plane: fixed throttle nudge
broken by recent radio input changes

Thanks to Michael for noticing!
2019-02-22 18:41:34 +11:00
Michael du Breuil c15983c690 Plane: prevent loss of control when Q_ENABLE is set while flying
Also rename check_throttle_suppression
2019-02-21 21:38:03 -07:00
Andrew Tridgell c290b1f3b5 Plane: fixed servo jitter due to airspeed estimate from throttle
when we have no other airspeed source and we are armed we get airspeed
from throttle. the default setting of k_throttle in the radio code
caused an oscillation of the value used in the airspeed estimate, each
time a RC frame came in.
2019-02-22 14:42:17 +11:00
Michael du Breuil 25a2c77782 Plane: Fix not logging quadplane control, and over logging attitude control 2019-02-22 11:59:26 +11:00
Andrew Tridgell d7abf27ec2 Plane: fixed servo jitter due to airspeed estimate from throttle
when we have no other airspeed source and we are armed we get airspeed
from throttle. the default setting of k_throttle in the radio code
caused an oscillation of the value used in the airspeed estimate, each
time a RC frame came in.
2019-02-22 10:27:36 +11:00
Peter Barker c24759d3df Plane: use abs not fabsf for integers 2019-02-20 19:23:54 +11:00
Peter Barker cdde2b7d64 Plane: Rally no longer takes ahrs in constructor 2019-02-20 18:03:38 +11:00
Michael du Breuil 5134af2298 Plane: Manage quadplane throttle during RC failsafe 2019-02-19 20:41:05 -07:00
Peter Barker 1ab80ddce0 Plane: move update_sensor_flags to GCS_Plane.cpp 2019-02-20 11:57:00 +11:00
Peter Barker 34853fb1bf Plane: move update_sensor_status_flags into GCS subclasses 2019-02-19 14:09:59 +11:00
Peter Barker a3c13fc028 Plane: move sensor flags to be a GCS thing rather than a GCS_MAVLINK thing 2019-02-19 14:09:59 +11:00
Peter Barker 33541dcbf6 Plane: GCS_MAVLink takes care of mavlink capabilities 2019-02-19 13:14:52 +11:00
Peter Barker 5690a0ea4a Plane: move try_send_message of nav_controller_output up 2019-02-19 10:08:00 +11:00
Mark Whitehorn 95b3a5bacd ArduPlane: implement hover throttle learning for quadplanes
disable by default
check quadplane.enable in update_hover_learn
2019-02-16 19:04:13 -08:00
Peter Barker 0858847294 Plane: remove redundant send_ekf_origin 2019-02-15 08:28:45 +11:00
Peter Barker 0c880a4c3e Plane: remove redundant home-setting sanity checks 2019-02-15 08:28:45 +11:00
Peter Barker b6bf8d8368 Plane: make setting of home boolean in preparation for sanity checks 2019-02-15 08:28:45 +11:00
Peter Barker 5a19f447a7 Plane: devo telemetry no long requires singleton classes to be passed in 2019-02-13 19:24:07 +00:00
Peter Barker 4f249db8bc Plane: move responsibility for parachute deployment up 2019-02-13 09:25:27 +09:00
Peter Barker 30671a6743 Plane: move handling of command-int MAV_CMD_DO_SET_HOME up
Plane: eliminate set_home shim around AP_AHRS::set_home
2019-02-13 09:42:26 +11:00
Peter Barker cfb3dfc4e5 Plane: AP_Frsky_Telem uses singletons 2019-02-12 17:53:23 +00:00
Andrew Tridgell 0089e98bb6 Plane: call AHRS resetHeightDatum() on baro reset
this prevents the AMSL estimate from the EKF going off badly if we
disarm at a high altitude
2019-02-12 12:17:02 +11:00
Peter Barker 3bba981a00 Plane: dataflash always emits rally points at startup 2019-02-12 11:48:55 +11:00
Mark Whitehorn b9f3118374 Plane: allow changing Q_TRIM_PITCH in flight
change float comparison to is_equal
2019-02-12 09:42:19 +11:00
Tom Pittenger c422a21f55 Plane: ICE to use ahrs singleton 2019-02-05 15:34:08 +11:00
Peter Barker 6e1dc79b75 Plane: move handling of RC_CHANNELS_OVERRIDE up 2019-02-05 13:59:21 +11:00
Peter Barker b48cb1e367 Plane: move sending of sys_status message up 2019-02-05 11:07:39 +11:00
Michael du Breuil df1632054e Plane: Update throttle mix 2019-02-05 11:05:54 +11:00
Andrew Tridgell 5dbf603450 Plane: separate out slew limit logic for left/right throttles 2019-02-03 05:06:37 -08:00
Andrew Tridgell 28cf9d2f24 Plane: allow rudder at zero throttle
if rudder disarming is disabled
2019-02-03 05:02:07 -08:00
Randy Mackay 4d5e13f1d4 Plane: : integrate AC_WPNav::get_speed rename to get_default_speed 2019-01-31 19:34:32 +09:00
Peter Barker a697d5f6fe Plane: AC_Fence is included for all vehicles 2019-01-31 13:44:29 +09:00
Peter Barker 11dd83e23a Plane: remove rally argument from Write_Rally - use singleton 2019-01-31 09:51:25 +09:00
Peter Barker 68b9e64077 Plane: remove old, unfulfilled method declarations 2019-01-30 09:03:52 +09:00
Tom Pittenger 05bf329d81 Plane: ignore battery failsafe during landing
fixes https://github.com/ArduPilot/ardupilot/issues/10320
2019-01-23 14:16:27 -07:00
Nathan E 4d7fc66657 Update parameters.cpp per magicrub comments 2019-01-23 09:24:18 -07:00
Nathan E 448d19ddbb Update ArduPlane/Parameters.cpp 2019-01-23 09:24:18 -07:00
Mark Whitehorn 5c81a78c9c Plane: tailsitter forward transition bugfix 2019-01-22 12:55:47 +11:00
Peter Barker 40856fef56 Plane: remove vestiges of old PX4_MIXER code 2019-01-19 19:31:03 +11:00
Peter Barker 6fc76a32af GLOBAL: use AP::logger() and strip redundant Log_ from methods 2019-01-18 18:08:20 +11:00
Peter Barker b47733142f GLOBAL: rename DataFlash_Class to AP_Logger 2019-01-18 18:08:20 +11:00
Peter Barker 99a93112b4 Plane: remove PX4-specific code that disables overrides on reboot 2019-01-18 17:32:02 +11:00
Andrew Tridgell bc438676ab Plane: fix tailsitter logged attitude targets 2019-01-18 14:16:55 +11:00
Peter Barker 129762d3af Plane: APM_Control uses DataFlash singleton, stop passing it 2019-01-18 14:14:22 +11:00
Francisco Ferreira d0fa931b09
Plane: add KDECAN to included libraries 2019-01-18 00:57:32 +00:00
Peter Barker 76b31f315a Plane: log_terrain_data no longer takes a DataFlash argument 2019-01-18 11:17:40 +11:00
Peter Barker a35fbb4a11 Plane: Log_Write_SIMSTATE no longer takes dataflash pointer 2019-01-18 11:16:54 +11:00
Peter Barker cb92fba701 Plane: remove PX4 FWVersion info 2019-01-16 11:47:55 +11:00
Peter Barker b258e89a2d Plane: adjust for Location_Class and Location unification 2019-01-16 11:45:29 +11:00
Peter Barker acafb0f3c1 Plane: adjust for location flags being moved out of union 2019-01-16 11:45:29 +11:00
Randy Mackay 2650b1fe93 Plane: desired-ground-idle replaces spin-when-armed 2019-01-15 11:41:44 +09:00
Michael du Breuil 843c92ced5 Plane: Remove some redundant code/state resets 2019-01-15 10:45:50 +11:00
IamPete1 9c0ac5899f Plane: pass rudder diffential thrust to AP_motors 2019-01-15 10:19:19 +11:00
IamPete1 eaed0a2d47 Plane: make rudder differnal thrust global 2019-01-15 10:19:19 +11:00
Andrew Tridgell f35cebcca4 Plane: fixed EKF yaw reset
we need to do the yaw reset before updating the rest of quadplane, or
it is not effective

thanks to Leonard for noticing the bug!
2019-01-14 08:32:17 +11:00
Andrew Tridgell 53a1d98b68 Plane: fixed VTOL takeoff to ignore lat/lon in mission
we should always takeoff vertically
2019-01-11 13:48:45 +11:00
Peter Barker 5c90a2dab2 Plane: Terrain uses rally singleton 2019-01-09 10:14:16 +11:00
Michael du Breuil d6cac4b52a Plane: Add a failure timer for quadplane forward transitions
Falls over to QLAND if we fail to transition
2019-01-08 10:52:12 +11:00
Michael du Breuil 64e152fbc0 Plane: Remove unneeded GCS rally override 2019-01-08 10:39:50 +11:00
Michael du Breuil ae6dc01cd5 Plane: Reset all storage when format version is incorrect 2019-01-08 10:35:37 +11:00
murata 02d692f32e Plane: Delete NuttX version processing 2019-01-08 10:06:20 +11:00
Andrew Tridgell 97e54f6359 Plane: allow mavlink when in sensor error 2019-01-04 19:17:31 +11:00
Michael du Breuil 09f6ec8a00 Plane: Remove unneeded AP_Buffer include 2018-12-31 11:41:43 +09:00
Michael du Breuil e6bc44f471 Plane: Fix cases where quadplane level transition was not applied 2018-12-31 10:36:32 +11:00
Michael du Breuil 69c87c6c4a Plane: Disallow arming if quadplane has been requested but isn't available 2018-12-28 18:09:21 +11:00
IamPete1 9c2db806f3 Plane: add units to Q_VFWD_ALT 2018-12-28 16:15:41 +11:00
Andrew Tridgell 7939f3488b Plane: log PIDs during QAUTOTUNE twitch 2018-12-22 15:10:23 +11:00
Andrew Tridgell 088442880e build: removed makefile build system 2018-12-22 11:06:59 +11:00
Andrew Tridgell 9117dcc54b Plane: don't log QTUN when VTOL not active 2018-12-21 22:17:52 +11:00
Andrew Tridgell d3afc9424a Plane: make QTUN logging match copter logging 2018-12-21 22:17:52 +11:00
Andrew Tridgell 1013eddfce Plane: use AHRS_View for RATE logging 2018-12-21 22:17:52 +11:00
IamPete1 1a98989ac6 Tailsitter: move mixer to AP_motors 2018-12-21 11:19:18 +09:00
Michael du Breuil a78bce32c0 Plane: Allow users to force target airspeed in cruise or fbwb 2018-12-18 22:36:55 -08:00
Peter Barker d133f998c5 Plane: split SIMSTATE, AHRS2 and AHRS3 onto their own ap_message ids 2018-12-19 13:19:23 +11:00
Peter Barker 54022b6b57 Plane: split DISTANCE_SENSOR onto its own ap_message id 2018-12-19 07:24:37 +11:00
Randy Mackay a96c1566ec Plane: fix quadplane pos control param docs 2018-12-18 12:01:07 +00:00
Peter Barker 17f244ce9f Plane: try_send_message caller checks telemetry_delayed 2018-12-18 14:25:56 +11:00
Peter Barker 5137c0ab5f Plane: split SYS_STATUS and POWER_STATUS onto separate ap_messages 2018-12-18 14:05:20 +11:00
Michael du Breuil 47dfafd670 Plane: Ensure that the plane is an appropriate distance out before starting the approach 2018-12-18 10:11:22 +11:00
Michael du Breuil 05484c3987 Plane: Support a different landing airspeed for fw quadplane landings 2018-12-18 10:11:22 +11:00
Michael du Breuil 1a45755ffd Plane: Support a different landing radius for quadplane fw approach 2018-12-18 10:11:22 +11:00
Michael du Breuil f1154a6e7c Plane: Pass the mission command around rather then fetching it 2018-12-18 10:11:22 +11:00
Michael du Breuil 42e67d5849 Plane: Whitespace fixes 2018-12-18 10:11:22 +11:00
Michael du Breuil e8885ee1a5 Plane: Fly a planned abort sequence if available 2018-12-15 09:03:25 +11:00
Nikhil Upadhye d1e93bae83 Plane: adding new mode QAUTOTUNE
copter like autotune support for quadplanes and tailsitter in VTOL mode.

cleanup
2018-12-14 16:33:11 +11:00
Peter Barker 9d323b4b90 Plane: move accept_packet to GCS_MAVLink base class 2018-12-14 12:44:31 +11:00
Peter Barker 56675851b6 Plane: DataFlash uses AP_Mission singleton 2018-12-13 14:45:30 +09:00
Peter Barker 2978da5ecd Plane: GCS_MAVLink now uses Mission singleton 2018-12-13 10:52:52 +09:00
Peter Barker bcf68a9103 Plane: split MSG_SCALED_PRESSURE into three separate messages 2018-12-12 21:36:01 +11:00
Peter Barker a263364959 Plane: GCS_MAVLink uses dataflash singleton 2018-12-11 08:43:47 +09:00
Michael du Breuil f3a843ebf7 Plane: Fix a comma in bitmask that was breaking emitters 2018-12-11 10:24:40 +11:00
Peter Barker 153228bef5 Plane: call GCS update functions at quadcopter main loop rate 2018-12-10 12:52:41 +09:00
Peter Barker 18d4df8d4f Plane: split MSG_RAW_IMU1 into per-IMU ap_messages 2018-12-10 12:52:41 +09:00
Peter Barker 67042d39d1 Plane: send both SYS_STATUS or POWER_STATUS or neither 2018-12-10 12:52:41 +09:00
Peter Barker d1727d26a1 Plane: rename send_extended_status1 to send_sys_status 2018-12-10 12:52:41 +09:00
Peter Barker 7f5c0db949 Plane: adjust for new update entry points into GCS 2018-12-10 12:52:41 +09:00
Peter Barker 1ca67df663 Plane: add parameter stream to list-of-all-streams 2018-12-10 12:52:41 +09:00
Andrew Tridgell fa04c2d094 Plane: prevent jitter on surfaces due to speed scaling
when disarmed the k_throttle output can oscillate due to stage in the
loop we are at, even though actual output is zero. This can cause
jitter in the speed scaling, which causes surface movement

To fix, don't use k_throttle value when disarmed
2018-12-06 17:44:11 +11:00
Randy Mackay 71708ee4ea Plane: quadplane uses set_defaults_from_table 2018-12-06 12:23:41 +09:00
Peter Barker edd4f6d14d Plane: rename MSG_EXTENDED_STATUS2 to MSG_MEMINFO 2018-12-04 18:01:38 +11:00
Peter Barker de479032ba Plane: rename MSG_RAW_IMU2 and MSG_RAW_IMU3 to reflect what they send 2018-12-04 17:45:32 +11:00
Andrew Tridgell 6c7af3830b Plane: apply throttle slew to dual-motor setups
thanks to Alex for noticing this issue
2018-12-04 09:08:31 +11:00
IamPete1 c6e70c0454 Plane: add roll limit for tailsitters
Quadplane: add tailsitter pitch params
2018-12-01 09:40:07 +11:00
Andrew Tridgell b6519c88a5 Plane: fixed a bug in Q_ASSIST_ modes for tiltrotors
when a tilt-rotor drops below Q_ASSIST_SPEED we need to keep it in the
airspeed wait state until it has regained airspeed, otherwise we will
end up with too low throttle
2018-11-30 18:17:42 +11:00
Leonard Hall 0943ace7a9 Plane: Zero Yaw correction during transition
and relax attitude controller when not using lift motors.
2018-11-30 18:16:29 +11:00
Andrew Tridgell c081ce9adb Plane: don't relax attitude controllers for tailsitters
this fixes an issue with testing control movement when disarmed
2018-11-30 13:01:53 +11:00
Peter Barker ba3a369651 Plane: remove update_events scheduler shim 2018-11-27 10:07:13 +11:00
Michael du Breuil 1e220d3d37 Plane: Add support for mode change to QLand as a failsafe 2018-11-24 14:37:04 -08:00
Peter Barker d4e88bc6ba Plane: remove pointless wrappers around RC_Channels functions 2018-11-23 10:56:17 +11:00
Peter Barker 03b71e1123 Plane: remove pointless wrappers around gcs functions 2018-11-23 10:56:17 +11:00
Andrew Tridgell 4d8fbdfcfd Plane: fixed spoiler left rudder order
thanks to @jgilbertfpv for noticing
2018-11-20 20:10:00 +11:00
Andrew Tridgell 1d00d26b9e Plane: added parameters for crow flaps
DSPOILER_CROW_W1 and DSPOILER_CROW_W2 for inner and outer control
surfaces
2018-11-20 10:00:38 +11:00
jgilbertfpv 4d6547c533 Plane: added crow brakes and diff. spoilers
added crow braking via flap channel to differential spoilers and
reversed dspoiler outputs because having the inner elevon go up and
outer go down causes tip stall. now inner goes down, outer goes
up. still could use a percentage adjustment to change how much throw
each surface gets when using flap input.
2018-11-20 10:00:38 +11:00
Andrew Tridgell 987b556299 Plane: disable crash detection if no GPS and no airspeed 2018-11-19 07:32:20 +11:00
Andrew Tridgell b660022b20 Plane: handle long GPS loss in crash detector
fixes issue #9349
2018-11-19 07:32:20 +11:00
DOMINATOR\Eugene 802ae94e2c ArduPlane: move airspeed update to library 2018-11-17 07:52:42 +11:00
Andrew Tridgell 03f1deca9f Plane: support REVERSE_THROTTLE rc option
this provides a more convenient way to setup for reverse throttle
2018-11-16 08:33:35 +11:00
Andrew Tridgell da69bf3391 Plane: added an abstraction for reverse thrust
use have_reverse_thrust() and get_throttle_input()
2018-11-16 08:33:35 +11:00
Peter Barker a5c34f6172 Plane: OpticalFlow takes care of its own logging 2018-11-13 10:40:23 +11:00
Peter Barker e53a009a35 Plane: do not pass ahrs to opticalflow constructor 2018-11-13 10:40:23 +11:00
Peter Barker 12c67ecaab Plane: move sending of optical flow status up to base class 2018-11-13 10:40:23 +11:00