Andrew Tridgell
1ae669bb01
Plane: added manual input expo for MANUAL, ACRO and TRAINING
...
this is easier than setting up mode specific expo in radios for flying
in manual modes
2021-07-23 14:47:14 +10:00
Andrew Tridgell
06cd077c36
Plane: fixed stick mixing with land reposition in quadplanes
...
prevent stick mixing overriding landing control
2021-06-10 13:50:29 +10:00
Andrew Tridgell
f1f7f01300
Plane: slave fixed wing desired rate to multicopter desired rate
...
this ensures that the two rate controllers don't fight each other when
in a VTOL mode
2021-06-05 13:05:30 +10:00
Hwurzburg
09fb9a8e58
Plane: limit speed scaling in Autotakeoff wo AS sensor option
2021-04-20 09:07:09 +10:00
Andrew Tridgell
e5308db8c2
Plane: added FLIGHT_OPTIONS bit to enable yaw control in ACRO mode
...
this allows for yaw damper in ACRO, which is important on some
vehicles with no vertical stabilize
See
https://discuss.ardupilot.org/t/rudderless-split-rudder-flying-wing/69273/4
2021-04-15 06:22:29 +10:00
Peter Hall
33f9e3d4b6
plane: add tailsitter transision rates, give more info in transision complete messages
2021-04-07 17:55:48 +10:00
Dr.-Ing. Amilcar do Carmo Lucas
fef8b37b11
Plane: Address Randy review comments
2021-03-05 14:52:46 +11:00
James O'Shannessy
aae092b88f
ArduPlane: Remove all unused geofence capability
...
ArduPlane: Remove missed geofence logic
2021-03-05 14:52:46 +11:00
James O'Shannessy
17fb585bf1
ArduPlane: Add support for AC_Fence
...
ArduPlane: Remove some geofence logic from ArduPlane
ArduPlane: Refactor action and mode return implementation
ArduPlane: Use polyfence to find the return point.
2021-03-05 14:52:46 +11:00
Andrew Tridgell
c913d8134d
Plane: use ahrs.groundspeed() instead of gps call
...
this fixes a zero of integrator when dead-reckoning after GPS has died
2021-02-21 09:13:31 +11:00
Peter Barker
6baaf03c8c
Plane: move auto_throttle_mode to being a method on each mode
2021-01-10 16:04:30 +11:00
Peter Barker
f6cb1b5ad6
Plane: use a method on Mode for auto-navigation-mode
...
Avoids the state getting stale, which it will with a failed attempt to
go into qautotune, for example.
2021-01-10 16:04:30 +11:00
Iampete1
2d80dcd937
Plane: remove tailsitter VTOL transition race condition
2020-11-04 18:34:00 +11:00
Hwurzburg
cf055fd1e0
Plane: add midposition to flare RC option sw
2020-10-27 10:47:07 +11:00
Hwurzburg
b61ee34b6b
ArduPlane: add RC option for landing flare
2020-10-13 11:36:19 +11:00
Andy Piper
d16872cca5
Plane: compile out ADSB mode if required
2020-09-24 08:22:16 -07:00
Andrew Tridgell
d9358b4ac2
Plane: don't allow a zero speed_scaler
...
this fixes an issue with yaw damper on quadplanes when at zero
airspeed
Thanks to Vladi Portnoy for reporting this
2020-06-29 20:09:41 +10:00
Buzz
0f5177b291
Plane: Support a set of offboard MAVLink guided controls with rates
...
+ 3 rounds of fixes
2020-05-20 15:03:21 +10:00
Michael du Breuil
37be15b3cd
Plane: When stick mixing is disabled do not apply stick mixing to quadplane modes
2020-04-04 10:12:22 +11:00
Peter Hall
a2e72de5ae
Plane: move to airspeed_estimate with pointer
2020-01-14 22:34:37 -07:00
Andrew Tridgell
470a60f828
Plane: reset steering in MANUAL or when not stabilising
2019-08-22 20:10:09 +10:00
Andrew Tridgell
aa18c75689
Plane: decay fw rate integrators when at low airspeed
...
this prevents large fixed wing control surface integrators from
causing issues when we have wind from behind in hover
2019-07-07 18:16:47 +10:00
Andrew Tridgell
ebe2278f5d
Plane: reset rate controller integrators if not run for 2s
...
this prevents a bug where integrator buildup can happen from a
previous flight mode
2019-07-07 18:16:47 +10:00
Tom Pittenger
6970a66cad
Plane: refactor stick_mixing to library
2019-05-03 13:14:11 -07:00
Tom Pittenger
0270c57530
Plane: massive refactor and creation of Mode class
2019-04-02 16:28:52 +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
Michael du Breuil
843c92ced5
Plane: Remove some redundant code/state resets
2019-01-15 10:45:50 +11:00
Michael du Breuil
e6bc44f471
Plane: Fix cases where quadplane level transition was not applied
2018-12-31 10:36:32 +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
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
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
Andrew Tridgell
1c162c8b64
Plane: ensure speed scaling covers full aircraft speed range
...
this is important for very fast or very slow aircraft
2018-11-02 15:30:50 +11:00
Andrew Tridgell
2215913b02
Plane: added speed scaling reduction for Q modes
...
when in a Q mode reduce surface movements at low airspeed, in case we
have the wind from behind us. This prevents the control surfaces from
causing instability
2018-09-14 19:28:29 +10:00
Michael du Breuil
8417bcc7d5
Plane: Add flight options bitmask
2018-08-28 09:40:53 +10:00
Tom Pittenger
512b327cd4
Plane: failsafe events to use enums instead of magical numbers : Non-functional change
2017-12-07 00:19:32 -08:00
Andrew Tridgell
85573b3ff3
Plane: fixed a division by zero
...
if min airspeed is zero
2017-11-19 16:04:40 +11:00
Michael du Breuil
d52f5155f0
Plane: Rename rc failsafe state members
2017-11-02 16:46:08 -07:00
Andrew Tridgell
552faa8f67
Plane: smoother tailsitter transitions
...
this smooths out tailsitter transitions in both directions, adding a
new FW to VTOL transition state
2017-10-30 16:30:38 +11:00
Andrew Tridgell
af893ddde7
Plane: implement Q_OPTIONS
...
this allows for NAV_TAKEOFF to be treated as NAV_VTOL_TAKEOFF in
quadplanes, and for level flight to be maintained during quadplane
transitions
2017-10-30 16:30:10 +11:00
Michael du Breuil
1bb806edb2
Plane: Use new landing interfaces
2017-03-02 12:38:59 +11:00
Andrew Tridgell
c787f4c56f
Plane: initial support for tailsitter transitions
2017-02-18 17:26:43 +11:00
Michael du Breuil
29b16dbafd
Plane: Refactor to request relative altitudes from AHRS
...
Removes the need for plane to do the math for finding the relative height.
Also caches the value at the same time we update current_loc, which is a
non behaviour change as that was the only time you could see a change in
the relative height propegate through the system anyways
2017-02-13 09:23:14 +11:00
Tom Pittenger
e709705ab8
Plane: describe flight stages without using specific stage name
2017-01-26 13:11:43 -08:00
Andrew Tridgell
081909bf6a
Plane: removed use of pwm_to_angle()
2017-01-12 17:39:37 +11:00
Andrew Tridgell
b83f50be0f
Plane: use new SRV_Channels API
2017-01-12 17:39:37 +11:00
Tom Pittenger
063f517424
Plane, TECS, AP_Landing: rename stage LAND_ABORT to ABORT_LAND
...
this will reduce confusion when searching for FLIGHT_LAND_* and you get a bunch of takeoff related hits. It will also make more sense when the landing library fully manages the FLIGHT_LAND stage entirely because it will not mange FLIGHT_LAND_ABORT
2016-12-30 23:50:03 -08:00
Tom Pittenger
c286ceba43
Plane: move enum FlightStages to AP_Vehicle::FixedWing
2016-12-30 23:50:03 -08:00
Mathieu OTHACEHE
152edf7189
Global: remove mode line from headers
...
Using a global .dir-locals.el file is a better alternative than
reincluding the same emacs header in every file of the project.
2016-10-24 09:42:01 -02:00
Andrew Tridgell
6aa3ded666
Plane: split main servo output functions into a separate file
2016-10-15 16:59:34 +11:00
Andrew Tridgell
d6890495aa
Plane: added swapped channel version of elevon/vtail/flaperon output
...
this makes it possible to setup an elevon plane without changing the
transmitter reversals
2016-09-14 11:48:05 +10:00
Tom Pittenger
ca32bcc58d
Plane: add new flight mode AVOID_ADSB to mimic GUIDED
2016-08-17 22:38:54 -07:00
Andrew Tridgell
c4c7a3051a
Plane: added support for secondary throttles
2016-08-16 16:14:48 +10:00
Andrew Tridgell
adb5a3ee1f
Plane: re-work AFS for new AP_AdvancedFailsafe API
2016-08-16 12:55:51 +10:00
Andrew Tridgell
5d6dfd927b
Plane: changes for AP_AdvancedFailsafe naming
2016-08-16 12:55:50 +10:00
Tom Pittenger
fc50f145ce
Revert "ArduPlane: Convert references to AP_Airspeed. Added automatic migration of ARSPD_FBW_MIN and ARSPD_FBW_MAX (plane parameter) to ARSPD_FBW_MIN and ARSPD_FBW_MAX (library parameter)."
...
This reverts commit da1b18d918
.
2016-08-07 17:54:24 -07:00
AndersonRayner
da1b18d918
ArduPlane: Convert references to AP_Airspeed. Added automatic migration of ARSPD_FBW_MIN and ARSPD_FBW_MAX (plane parameter) to ARSPD_FBW_MIN and ARSPD_FBW_MAX (library parameter).
2016-08-04 10:09:04 -07:00
Andrew Tridgell
327a057ee0
Plane: added internal combustion engine support
...
this allows for automatic engine start and restart
2016-07-25 10:06:03 +10:00
Andrew Tridgell
96d785f1c6
Plane: added auto_navigation_mode flag
...
this fixes a problem where modes like loiter and auto would allow for
rudder stick mixing even with STICK_MIXING=0
2016-07-05 12:52:13 +10:00
Tom Pittenger
0597dbd033
Plane: allow SET_ATTITUDE_TARGET to set rpy and throttle
2016-07-01 08:28:53 -07:00
Tom Pittenger
85afd9e245
Plane: remove guided roll flag, handle it with timer=0
2016-06-30 07:48:37 -07:00
Michael Day
8ac433f991
Plane: Can now command roll from a companion computer.
2016-06-30 10:27:44 -04:00
Andrew Tridgell
bf2e30f858
Plane: removed demo_servos()
...
this really didn't help much and slows down startup
2016-06-27 10:19:26 +10:00
E Thomas
7d824247af
Differential spoilers support, elevon offset
...
Fixed differential spoilers support, added elevon offset
See PR #2935
2016-06-06 21:55:50 -07:00
Tom Pittenger
ee29f38cdf
Plane: moved takeoff flap check to NORMAL checks.
...
TODP: add new flight stage FLIGHT_PRE_TAKEOFF to put this sort of thing into
2016-06-06 14:51:24 -07:00
Samuel Rosenstein
296b279f0d
Plane: fixed issue with preflight flaps. Flaps now go down in preflight mode
2016-06-06 14:18:44 -07:00
Michael du Breuil
41bb237799
Plane: remove throttle surpressed message
2016-06-06 15:24:18 +10:00
Andrew Tridgell
835235127c
Plane: prevent divide by zero in SITL
...
harmless on PX4
2016-06-04 19:20:18 +10:00
Tom Pittenger
af1407a155
Plane: disable parachute code when not enabled via compile option
2016-06-01 17:38:51 -07:00
Andrew Tridgell
da5ce37bbc
Plane: fixed gain on -ve stick mixing past 50%
...
fixed a sign error in calculating gain on -ve stick mixing beyond 50%
input
thanks to Doug Weibel for a log that showed this effect
2016-06-02 08:07:55 +10:00
Andrew Tridgell
eee06da1b5
Plane: use HAVE_PAYLOAD_SPACE()
2016-05-21 15:25:14 +10:00
Andrew Tridgell
e0a9a8196c
Plane: fixed throttle failsafe with THR_PASS_STAB=1
...
this prevents using pass-thru throttle when in throttle failsafe
2016-05-21 07:39:02 +10:00
Ricardo de Almeida Gonzaga
1fad971851
ArduPlane: Fix typos
2016-05-13 19:20:07 -03:00
skyscraper
e9e2f9020d
ArduPlane: RC_Channel refactor, reimplement stick_mix_channels
...
reimplement the new overload of Plane::stick_mix_channel so
that it calls the existing overload
2016-05-10 16:21:17 +10:00
skyscraper
7f29903287
ArduPlane: Fix up after refactoring RC_Channel class
...
Further to refactor of RC_Channel class which included
adding get_xx set_xx methods, change reads and writes to the public members
to calls to get and set functionsss
old public member(int16_t) get function -> int16_t set function (int16_t)
(expression where c is an object of type RC_Channel)
c.radio_in c.get_radio_in() c.set_radio_in(v)
c.control_in c.get_control_in() c.set_control_in(v)
c.servo_out c.get_servo_out() c.set_servo_out(v)
c.pwm_out c.get_pwm_out() // use existing
c.radio_out c.get_radio_out() c.set_radio_out(v)
c.radio_max c.get_radio_max() c.set_radio_max(v)
c.radio_min c.get_radio_min() c.set_radio_min(v)
c.radio_trim c.get_radio_trim() c.set_radio_trim(v);
c.min_max_configured() // return true if min and max are configured
Because data members of RC_Channels are now private and so cannot be written directly
some overloads are provided in the Plane classes to provide the old functionality
new overload Plane::stick_mix_channel(RC_Channel *channel)
which forwards to the previously existing
void stick_mix_channel(RC_Channel *channel, int16_t &servo_out);
new overload Plane::channel_output_mixer(Rc_Channel* , RC_Channel*)const
which forwards to
(uint8_t mixing_type, int16_t & chan1, int16_t & chan2)const;
Rename functions
RC_Channel_aux::set_radio_trim(Aux_servo_function_t function)
to RC_Channel_aux::set_trim_to_radio_in_for(Aux_servo_function_t function)
RC_Channel_aux::set_servo_out(Aux_servo_function_t function, int16_t value)
to RC_Channel_aux::set_servo_out_for(Aux_servo_function_t function, int16_t value)
Rationale:
RC_Channel is a complicated class, which combines
several functionalities dealing with stick inputs
in pwm and logical units, logical and actual actuator
outputs, unit conversion etc, etc
The intent of this PR is to clarify existing use of
the class. At the basic level it should now be possible
to grep all places where private variable is set by
searching for the set_xx function.
(The wider purpose is to provide a more generic and
logically simpler method of output mixing. This is a small step)
2016-05-10 16:21:16 +10:00
Andrew Tridgell
4666b25258
Plane: initial implementation of QRTL for quadplane RTL
2016-04-30 14:34:47 +10:00
Andrew Tridgell
07168c3db4
Plane: fixed places that assumed mission command IDs are 8 bit
2016-04-23 21:03:46 +10:00
Tom Pittenger
c238645e53
Plane: limit roll before calculating load factor
2016-04-21 21:30:56 -07:00
Rimvydas Naktinis
df922dacfa
Plane: Suppress throttle when parachute release initiated, not after release.
2016-04-21 09:53:22 -07:00
Andrew Tridgell
e9e43dc016
Plane: added Q_VFWD_GAIN for forward motor in VTOL modes
...
this allows for velocity control using the forward motor in VTOL modes
2016-04-20 16:25:19 +10:00
Andrew Tridgell
97a7192f76
Plane: make it more obvious that AUTO_FBW_STEER is not for normal use
2016-04-06 07:58:23 +10:00
Andrew Tridgell
f4ccf94dfc
Plane: added QLAND mode
...
for VTOL landing. Use for failsafe as well
2016-03-09 18:20:41 +11:00
Tom Pittenger
75be40ea59
Plane: add LAND_THR_SLEW
2016-03-02 10:54:19 -08:00
Tom Pittenger
ed6aa4ed17
Plane: added throttle limiting via max power (current*voltage)
2016-03-02 10:20:44 -08:00
Tom Pittenger
993e5b438c
Plane: add to LAND_NEUTRL behavior
...
offer netrual vs disabled outputs
2016-02-25 05:51:44 -08:00
Tom Pittenger
0b26a34f22
Plane: new param LAND_THEN_NEUTRL
...
// @Description: When enabled, after an autoland and auto-disarm via LAND_DISARMDELAY happens then set all servos to neutral. This is helpful when an aircraft has a rough landing upside down or a crazy angle causing the servos to strain.
2016-02-16 23:40:44 -08:00
Andrew Tridgell
8ecf54bf75
Plane: use throttle slew when in quadplane assisted flight
...
this prevents a sudden throttle change on a petrol motor when
transitioning
2016-02-13 11:38:33 +11:00
Tom Pittenger
fa53263ca9
Plane: make throttle_percentage() signed
2016-02-11 18:46:01 +11:00
Tom Pittenger
2e92089ce6
Plane: Reverse Thrust
...
Reverse thrust for controlled landings, even with much steeper approach slopes. This is achieved by allowing throttle demand to go negative to maintain a target airspeed. A Pre-Flare stage was added, triggered by an altitude, to allow for a slower airspeed just before land. That lower airspeed can be near stall.
new params LAND_PF_ALT, LAND_PF_SEC, LAND_PF_ARSPD, USE_REV_THRUST
2016-02-09 14:18:02 +11:00
Tom Pittenger
1cb094f12e
Plane: make throttle signed (pos and neg)
2016-02-09 14:18:02 +11:00
Tom Pittenger
b8d5369ebd
Plane: add flight stage LAND_PREFLARE
2016-02-09 14:18:02 +11:00
Andrew Tridgell
418464ab8c
Plane: added quadplane version of is_flying()
2016-01-09 07:38:53 +11:00
Andrew Tridgell
5e784ddb5c
Plane: consider flying status for throttle_wait
2016-01-09 07:38:53 +11:00
Andrew Tridgell
0d6b353bcb
Plane: added quad assistance and auto support for quadplane
2016-01-09 07:38:52 +11:00
Andrew Tridgell
2983576067
Plane: added QLOITER mode
...
quadplane loiter
2016-01-09 07:38:52 +11:00
Andrew Tridgell
ca85c332d6
Plane: separate QSTABILIZE and QHOVER modes
2016-01-09 07:38:52 +11:00
Andrew Tridgell
6468fc6d93
Plane: Initial implementation of quadplane
...
adds "HOVER" mode
2016-01-09 07:38:52 +11:00
Lucas De Marchi
8eb0b559f2
ArduPlane: avoid comparison between signed and unsigned
2015-12-01 16:28:18 -02:00
Lucas De Marchi
2591261af6
Global: rename min and max macros to uppercase
...
The problem with using min() and max() is that they conflict with some
C++ headers. Name the macros in uppercase instead. We may go case by
case later converting them to be typesafe.
Changes generated with:
git ls-files '*.cpp' '*.h' -z | xargs -0 sed -i 's/\([^_[:alnum:]]\)max(/\1MAX(/g'
git ls-files '*.cpp' '*.h' -z | xargs -0 sed -i 's/\([^_[:alnum:]]\)min(/\1MIN(/g'
2015-12-01 16:28:09 -02:00
Luis Vale Gonçalves
b7f3782e4e
Plane: Text revisions
...
text revisions
2015-11-26 07:56:52 +11:00
lvale
e18181e5c2
Plane: Uniformization of severities
...
Plane uniformization of severities
2015-11-09 09:38:25 +11:00