Commit Graph

2422 Commits

Author SHA1 Message Date
Andrew Tridgell be14714fa4 ArduPlane: update signing timestamp on GPS lock 2016-05-21 15:25:13 +10:00
Andrew Tridgell a103e70460 ArduPlane: handle SETUP_SIGNING message 2016-05-21 15:25:13 +10:00
Andrew Tridgell b7fe96188d Plane: raise range of THR_FS_VALUE
need to cope with reversed throttle
2016-05-21 07:39:02 +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
Don Gagne 151686ce9d ArduPlane: SET_SENSORS_OFFSETS support for third compass 2016-05-19 18:51:17 -03:00
Tom Pittenger 36a1054f77 Plane: remove Tom Pittenger as an author since he's now listed as a lead 2016-05-17 19:16:02 -07:00
Tom Pittenger c9167f89eb Plane: add Tom Pittenger as co-lead developer 2016-05-17 19:03:38 -07:00
Tom Pittenger 30c5c9eb5d Plane: log SONR.DistCM in cm as SONR.Dist as meters 2016-05-17 18:59:37 -07:00
Tom Pittenger 00863623d7 Plane: SONR logging, remove BaroAlt,GSpd,Thr 2016-05-17 18:59:22 -07:00
Tom Pittenger b2fb2f3949 Plane: optimize millis() calls by reusing result 2016-05-17 18:59:03 -07:00
Tom Pittenger 1a066cadd2 Plane: fixed float->double print warning 2016-05-17 15:57:26 -07:00
Tom Pittenger 6746b4227a Plane: handle large negative baro offsets (corner case) to self-trigger a land-abort go-around
new param: LAND_ABORT_DEG
@Description: This parameter is used when using a rangefinder during landing for altitude correction from baro drift (RNGFND_LANDING=1) and the altitude correction indicates your altitude is higher than the intended slope path. Steeper slopes can result in crashes so this allows the option to remember the baro offset and self-abort the landing and come around for a another landing with the correct baro offset applied for a perfect slope. An auto-abort go-around will only happen once, next attempt will not auto-abort again. This operation happens entirely automatically in AUTO mode. This value is the delta degrees threshold to trigger the go-around. Example: if set to 5 deg and the mission planned slope is 15 deg then if the new slope is 21 then it will go-around. Set to 0 to disable. Requires LAND_SLOPE_RCALC > 0.
2016-05-17 15:41:09 -07:00
Tom Pittenger a1c4103cef Plane: print to GCS the newly calculated glide slope angle 2016-05-17 15:39:05 -07:00
Tom Pittenger f048aafb76 Plane: store auto land slope
- also changed order of landing slope calc but is functionally the same
2016-05-17 15:39:05 -07:00
Tom Pittenger 034cd2413e Plane: re-calc landing glide slope to gracefully handle baro offset during long flights
New param: LAND_SLOPE_RCALC
@Description: This parameter is used when using a rangefinder during landing for altitude correction from baro drift (RNGFND_LANDING=1) and the altitude correction indicates your altitude is lower than the intended slope path. This value is the threshold of the correction to re-calculate the landing approach slope. Set to zero to keep the original slope all the way down and any detected baro drift will be corrected by pitching/throttling up to snap back to resume the original slope path. Otherwise, when a rangefinder altitude correction exceeds this threshold it will trigger a slope re-calculate to give a shallower slope. This also smoothes out the approach when flying over objects such as trees. Recommend a value of 2m.

default value is 2 (so, enabled by default)
2016-05-17 15:39:04 -07:00
Tom Pittenger 4a6dd5a781 Plane: reset baro drift when setting home while disarmed 2016-05-17 15:32:42 -07:00
Andrew Tridgell e3b2e90a27 Plane: cleanup unnecessarily complex gcs[] usage 2016-05-17 08:27:39 +10:00
dgrat 48c243bed0 ArduPlane: Do not use is_zero() for non-float types 2016-05-16 19:08:35 -03:00
Tom Pittenger 7af888633d Plane: 3of3 add loiter_xtrack option flag for post-loiter navigation
0 to crosstrack from center of waypoint, 1 to crosstrack from tangent exit location
2016-05-16 11:50:54 -07:00
Tom Pittenger 78d6291e2c Plane: corrected land abort gcs msg 2016-05-13 17:22:13 -07:00
Tom Pittenger 6c0579a895 Plane: for better helical landings allow for instant approach stage if previous nav cmd was LOITER_TO_ALT 2016-05-13 17:22:07 -07:00
Tom Pittenger ba5b4e694c Plane: log NTUN:ArspdErr airspeed error (in meters) 2016-05-13 17:22:01 -07:00
Tom Pittenger 1551b9d881 Plane: remove redundant logging in NTUN 2016-05-13 17:22:00 -07:00
Tom Pittenger 8a58f5a5eb Plane: convert airspeed_error_cmd to airspeed_error (in meters) 2016-05-13 17:21:59 -07:00
Tom Pittenger 25dfb583d5 Plane: adjust target_airspeed with and without airspeed sensor (pitot) 2016-05-13 17:14:47 -07:00
Andrew Tridgell 2a0476483b Plane: make takeoff less noisy with zero timeout 2016-05-14 08:26:10 +10:00
Andrew Tridgell 574ba71ef3 Plane: update for AP_TECS API change 2016-05-14 08:26:10 +10:00
Ricardo de Almeida Gonzaga 1fad971851 ArduPlane: Fix typos 2016-05-13 19:20:07 -03:00
Michael du Breuil 7142bacfaa Plane: improve user friendliness of throttle fs msg 2016-05-11 09:00:55 -07:00
Andrew Tridgell 12e0012b16 Plane: allow for NAV_LOITER_UNLIM and NAV_LOITER_TIME in quadplane 2016-05-11 15:57:41 +10:00
Andrew Tridgell 3fc43b94f9 Plane: separate out auto and guided VTOL states
this prevents a switch to AUTO from using VTOL mode incorrectly
2016-05-11 15:14:43 +10:00
Andrew Tridgell bcc64e0b4a Plane: fixed tiltrotor build failure
mixup with merge of RC_Channel changes
2016-05-11 09:25:43 +10:00
Andrew Tridgell 691d4b6ca7 Plane: added local reached_loiter_target()
this distinguishes between VTOL and fixed wing loiter targets
2016-05-11 05:55:26 +10:00
Andrew Tridgell 52ea443d65 Plane: added Q_THR_MIN 2016-05-11 05:55:26 +10:00
Andrew Tridgell a61d608915 Plane: fixed numerical error if starting VTOL landing at destination 2016-05-11 05:55:25 +10:00
Andrew Tridgell 357ed1f4b9 Plane: enable weathervaning in GUIDED and TAKEOFF quadplane modes 2016-05-11 05:55:25 +10:00
Andrew Tridgell 6b358a5618 Plane: added Q_GUIDED_MODE parameter
this allows you to do hybrid VTOL and fixed wing guided mode
2016-05-11 05:55:25 +10:00
Andrew Tridgell 3bd5b42c69 Plane: refactor quadplane land controller as general VTOL position controller 2016-05-11 05:55:25 +10:00
Andrew Tridgell 6fdaaa7d98 Plane: new tilt compensation method 2016-05-11 05:55:25 +10:00
Andrew Tridgell 46bf2b83f5 Plane: use equal thrust in tiltrotors when over Q_TILT_MAX 2016-05-11 05:55:24 +10:00
Andrew Tridgell eab42c5740 Plane: fixed attitude logging with fast logging off 2016-05-11 05:55:24 +10:00
Andrew Tridgell bbb5f68bb7 Plane: added initial support for tiltrotors and tiltwings 2016-05-11 05:55:23 +10:00
Andrew Tridgell 89a2a92885 Plane: support better build time selection of multicopter frame type
makes it possible to do "make sitl-tri"
2016-05-11 05:55:22 +10:00
dgrat 76362caee0 AP_Math: Replace wrap_* functions with template versions 2016-05-10 11:41:26 -03:00
skyscraper 4d769497c9 ArduPlane: RC_Channel refactor
Fix white space after function name
2016-05-10 16:21:17 +10: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 9f84a22d22 Plane: removed unnecessary libs
now in common
2016-05-10 14:13:39 +10:00
Andrew Tridgell dcb24f2bc1 Plane: use DataFlash::log_while_disarmed() 2016-05-09 12:05:25 +10:00
Andrew Tridgell 51877a20d6 Plane: added some more tuning sets 2016-05-08 18:45:42 +10:00
Andrew Tridgell 35ef20b23a Plane: use separate definition for TUNE_PARM
this allows the parameter docs to be separated
2016-05-08 18:35:26 +10:00
Andrew Tridgell 7a8bf033e1 Plane: allow for tuning of single parameters 2016-05-08 14:47:51 +10:00
Leandro Pereira f23bd7e09d GCS_MAVLink: Use a single stream_trigger() implementation
This has no side effects, but since all implementations were basically
the same, move the implementation to GCS_Common and the only part that
adjusts the rate based on which which stream to each individual
GCS_MAVLINK implementation.
2016-05-07 23:49:35 -03:00
Lucas De Marchi 0eab8847f2 ArduPlane: remove mention to .pde files
We don't support them anymore.
2016-05-07 22:55:48 -03:00
Andrew Tridgell db5f50e08e Plane: convert tuning to use AP_Tuning library 2016-05-07 18:34:15 +10:00
Andrew Tridgell 3853aa0fe3 Plane: fix for changed API 2016-05-07 18:27:22 +10:00
Andrew Tridgell cbbf26a1f6 Plane: removed Log_Write_IMUDT 2016-05-07 18:27:20 +10:00
Andrew Tridgell 3bbc6353d8 Plane: use have_ekf_logging() 2016-05-07 18:27:20 +10:00
Andrew Tridgell 2a7edfd3d1 Plane: fixed setting of failsafe for motors in quadplane 2016-05-07 07:25:33 +10:00
Michael Day b096e1404d Plane: Add MAVLink message handler for CMD_DO_CHANGE_SPEED 2016-05-06 11:59:45 -07:00
Lucas De Marchi fea084a596 Global: use ap_version.h
This header is used by waf to contain the generated version macros,
particularly using the git hash. For waf it's better to be in a separate
header since it then can keep track of changes on it a trigger
recompilation.

For the make build system, a dummy ap_version.h file has been added in
the missing/ folder so both implementations can co-exist.
2016-05-06 13:11:28 -03:00
Lucas De Marchi baa287e5e5 ArduPlane: use separate header for version macro
Having the version macro in the config.h and consequently in the main
vehicle header means that whenever the version changes we need to
compiler the whole vehicle again. This would not be so bad if we weren't
also appending the git hash in the version. In this case, whenever we
commit to the repository we would need to recompile everything.

Move to a separate header that is include only by its users. Then
instead of compiling everything we will compile just a few files.
2016-05-06 13:11:28 -03:00
Rimvydas Naktinis 3c00324fd2 Plane: Parachute uses altitude above ground (not home) to check suitability for deployment. 2016-05-05 09:02:25 -07:00
Rimvydas Naktinis 9fdf39baf0 Plane: Added a method that returns current altitude relative to terrain, if available, or home otherwise. 2016-05-05 09:02:20 -07:00
Allan Matthew 25c8027606 Plane: handle new MAVLink rangefinder input 2016-05-04 08:40:34 -07:00
Michael du Breuil 0fcfcdc169 Plane: Broadcast POSITION_TARGET_GLOBAL_INT as part of the EXTENDED_STATUS stream 2016-05-01 07:38:23 +10:00
Michael Oborne cd56061b24 ArduPlane: support MAVLINK_MSG_ID_MISSION_ITEM_INT 2016-05-01 07:13:46 +10:00
Andrew Tridgell 226e6f1d6c Plane: only save compass offsets when disarmed and learning enabled 2016-04-30 16:43:14 +10:00
Andrew Tridgell dfa86cff63 Plane: update release notes for 3.6.0beta1 2016-04-30 14:34:47 +10:00
Andrew Tridgell a99616bd10 Plane: prepare for 3.6.0beta1 release 2016-04-30 14:34:47 +10:00
Andrew Tridgell 3a35f8f528 Plane: update release notes for 3.5.3 2016-04-30 14:34:47 +10:00
Andrew Tridgell abfcf89f5e Plane: reduced the rate of EKF and attitude logging to 25Hz
this will reduce the log file size while not appreciably reducing the
ability to analyse logs
2016-04-30 14:34:47 +10:00
Andrew Tridgell 0fd044c1f7 Plane: added Q_RTL_MODE parameter
used to switch to VTOL landing on RTL
2016-04-30 14:34:47 +10:00
Andrew Tridgell 66d3668ac4 Plane: rapid climb in QRTL if below target altitude 2016-04-30 14:34:47 +10:00
Andrew Tridgell 4666b25258 Plane: initial implementation of QRTL for quadplane RTL 2016-04-30 14:34:47 +10:00
Andrew Tridgell 460885c478 Plane: refactored quadplane landing controller
allow use in other than AUTO mode
2016-04-30 14:34:46 +10:00
Michael du Breuil de1e299754 Plane: Remove support for CONDITION_CHANGE_ALT 2016-04-30 10:56:05 +09:00
Niti Rohilla a03941ba02 ArduPlane : Updated handle_guided_request() to report error. 2016-04-29 12:39:28 -03:00
Michael du Breuil 731c68f273 Plane: Change mode to RTL on end of mission rather then staying in auto
Deleted commands_process as it had 2 lines of useful code left, and was cleaner to move the remaining two lines into the caller case
2016-04-29 13:12:18 +10:00
Andrew Tridgell ab5ca53e2f Plane: lower default VTOL ANGLE_MAX to 30 degrees
we don't really want a quadplane at 45 degrees or the wing drag gets
far too high
2016-04-29 10:23:26 +10:00
Andrew Tridgell 19a1edcd2b Plane: lower default velocity controller gains for quadplanes
we're getting too many XY velocity controller oscillations. Better to
start with smaller gains
2016-04-29 10:02:45 +10:00
Andrew Tridgell 6f4d66f346 Plane: support building quadplane with forced motors class 2016-04-28 22:40:45 +10:00
Andrew Tridgell 9c0d984a4e Plane: support forced motor class in quadplane 2016-04-28 22:37:24 +10:00
Andrew Tridgell 00c2b4b30f Plane: reload airspeed after VTOL landing 2016-04-28 08:42:19 +10:00
Andrew Tridgell 1ebe0a2583 Plane: prevent a division by zero in takeoff code 2016-04-26 12:06:57 +10:00
Luis Vale Gonçalves 343b4cb81a Revising ardupilot.com to .org
Revising ardupilot.com to .org
2016-04-23 22:49:41 -07:00
Luis Vale Gonçalves 73ac146b7e Revising ardupilot.com to .org
Revising ardupilot.com to .org
2016-04-23 22:49:37 -07:00
Andrew Tridgell 38a7bfd81f Plane: added Q_ENABLE=2 for starting AUTO in VTOL 2016-04-23 21:03:46 +10:00
Andrew Tridgell 0aa1ae048d Plane: fixed is_flying() for VTOL flight
otherwise we may disarm mid-flight!
2016-04-23 21:03:46 +10:00
Andrew Tridgell 76400a9959 Plane: support DO_VTOL_TRANSITION as a mission item 2016-04-23 21:03:46 +10:00
Andrew Tridgell 07168c3db4 Plane: fixed places that assumed mission command IDs are 8 bit 2016-04-23 21:03:46 +10:00
James Stoyell 4e7e84fc99 Plane: Modified last_valid_rc_ms AFS failsafe input to work when standard failsafe is on
Ran into a bug on our physical plane where failsafe.last_valid_rc_ms was not recognizing that the transmitter had failed. This is likely due to how the standard failsafe works in receiving lower-than-possible throttle values. So in order to account for this, I added a new variable to the failsafe, AFS_last_valid_rc_ms, and I update it only if the ch3_failsafe (the throttle failsafe) is not on. If the throttle failsafe is on, that means that the plane has indeed lost transmitter input, so the AFS needs to recognize that.
2016-04-22 11:48:36 -07:00
Randy Mackay 4291139b6c Plane: ack DO_MOUNT_CONTROL messages 2016-04-22 21:30:51 +09:00
Tom Pittenger 9aa25cb7a0 Plane: update flight stage on successful restart_landing_sequence() 2016-04-21 22:54:23 -07:00
Tom Pittenger 2ba9a04bf5 Plane: smooth-out the end of takeoff pitch by reducing takeoff pitch min via TKOFF_PLIM_SEC
@Description: This parameter reduces the pitch minimum limit of an auto-takeoff just a few seconds before it reaches the target altitude. This reduces overshoot by allowing the flight controller to start leveling off a few seconds before reaching the target height. When set to zero, the mission pitch min is enforced all the way to and through the target altitude, otherwise the pitch min slowly reduces to zero in the final segment. This is the pitch_min, not the demand. The flight controller should still be commanding to gain altitude to finish the takeoff but with this param it is not forcing it higher than it wants to be. (+1 squashed commits)
2016-04-21 22:54:17 -07:00
Tom Pittenger f12658dd20 Plane: more comments on landing flare 2016-04-21 21:31:01 -07:00
Tom Pittenger fefcf39335 Plane: must be on land approach before flare alt/sec are used 2016-04-21 21:31:00 -07:00
Tom Pittenger 12663eaa48 Plane: simplify flare logic 2016-04-21 21:30:59 -07:00
Tom Pittenger 183369b92a Plane: take advantage of L1 stale flag and correctly inhibit flight stage if not lined up on approach 2016-04-21 21:30:58 -07:00
Tom Pittenger c5a3b1b134 Plane: non-functional change - change labels for approach flight stage criteria 2016-04-21 21:30:56 -07:00
Tom Pittenger c238645e53 Plane: limit roll before calculating load factor 2016-04-21 21:30:56 -07:00
Tom Pittenger aadd9a18ce Plane: log L1 xtrack error integrator and remove extra yaw logging 2016-04-21 21:30:55 -07:00
Tom Pittenger 85913bd237 Plane: rely on flight stage to know if we're doing auto_land in TECS 2016-04-21 21:30:53 -07:00
Tom Pittenger 6a83ad419a Plane: moved update_flight_stage() inside setup_glide_slope()
the glide_slope gets calculated every time there's a major event such as mission item change or wp_proportion change so its good to update the flight stage then too because.
also logging stage when stage changes, might as well get an extra data point in there when it's timely
2016-04-21 21:30:51 -07:00
Tom Pittenger ec3e9014e4 Plane: move target land_airspeed logic to top layer
- this is to allow min groundspeed to be enforced which is otherwise lost when TECS assigns a target airspeed at the lower level
2016-04-21 21:30:50 -07:00
Andrew Tridgell a549225e60 Plane: support Y6 frame class in quadplane 2016-04-22 10:28:16 +10:00
Rimvydas Naktinis df922dacfa Plane: Suppress throttle when parachute release initiated, not after release. 2016-04-21 09:53:22 -07:00
Andrew Tridgell 2a1985d0f9 Plane: fixed loiter radius at end of mission 2016-04-21 22:29:29 +10:00
Andrew Tridgell de33779382 Plane: added Q_WVANE_MINROLL
this allows for some roll trim without weathervaning
2016-04-21 21:52:25 +10:00
Michael du Breuil ef348473eb Plane: Remove tecs_hgt_afe from the 50hz tecs update 2016-04-21 17:03:00 +10:00
Michael du Breuil f5749b44cd Plane: Move position update to 50hz loop rather then the 10hz 2016-04-21 16:53:20 +10:00
Andrew Tridgell cf7b6123a9 Plane: log the number of lost log messages 2016-04-21 16:45:02 +10:00
Andrew Tridgell 8683616d8c Plane: redo scheduler table and improve perf logging
The scheduler table was still setup for a worst case CPU of
AVR2560. Adjust times for the stm32 and improve perf logging
2016-04-21 16:45:02 +10:00
Andrew Tridgell a7006a7784 Plane: refactor perf variables into a structure 2016-04-21 16:45:02 +10:00
Andrew Tridgell d013878c17 Plane: improved speed limiting on landing approach in VTOL mode 2016-04-20 18:07:04 +10:00
Andrew Tridgell d8b0d17fe4 Plane: added weathervaning to landing reposition 2016-04-20 17:12:59 +10:00
Andrew Tridgell f34af03891 Plane: added Q_WVANE_GAIN
this controls weathervaning in VTOL modes. Defaults to off
2016-04-20 17:12:59 +10: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
Lucas De Marchi 0095f6168e ArduPlane: fix handling of SET_HOME_POSITION
Location.altitude is stored in cm.
2016-04-18 13:07:45 +10:00
Michael du Breuil c17ea21a97 Plane: Add support for DO_REPOSITION via COMMAND_INT
also allows guided to change loiter directions
2016-04-17 19:00:03 -07:00
Andrew Tridgell 62574b35b5 Plane: fixed negative loiter radius values 2016-04-18 09:33:20 +10:00
Andrew Tridgell edd15f15c0 Plane: added some fixed wing in-flight transmitter tuning 2016-04-16 20:47:18 +10:00
Andrew Tridgell 27fb35253c Plane: added in-flight transmitter tuning 2016-04-16 20:26:43 +10:00
Tom Pittenger 436062ef37 Plane: improved crash detection
- fixes bug where a bungee launch is configured but the aircraft gets bumped and triggers the prop to spin up. This will now detect that and "crash' and disable the motor
2016-04-14 22:34:46 -07:00
Grant Morphett 2887e48178 Plane: Fixed bug with landing flare for high values of LAND_FLARE_SEC
I had an issue in SITL where my plane would round the last WP staring
its landing approach and immediately limit the roll to 5degress even
before the plane had finished turning the corner so it would go WAY
off course.  For a high value of LAND_FLARE_SEC (mine was 5) the math
works out the plane has landed if
    height <= sink_rate * land_flare_sec
During the banking of the last corner the plane started to decend and
quickly set itself up for a 6.1m/s sink rate which is normal.  It was
at 30 meters altitude.  As you can see at this point the math thinks
the plane has landed so limits the roll.  The solution was to ensure
the plane had covered at least 50% of the distance toward the final
waypoint before allowing a flare to happen.  Note that LAND_FLARE_SEC
above 2 is considered very high and this normally wouldn't occur.
2016-04-15 13:02:11 +10:00
Andrew Tridgell 154fe15c67 Plane: fixed build warning 2016-04-15 09:22:41 +10:00
Tom Pittenger ff57884eca Plane: renamed variable, non-functional change 2016-04-14 13:18:35 -07:00
Andrew Tridgell 3a242ee4a9 Plane: support up to 16 output channels
the extra channels can be used via SBUS output
2016-04-14 08:05:06 +10:00
Michael du Breuil 78442b7e81 Plane: make the initialization of the gcs instances follow the define 2016-04-11 17:54:46 -07:00
Andrew Tridgell 06bcf0df4b Plane: change default loop rate for quadplanes to 300Hz 2016-04-11 09:32:45 +10:00
Andrew Tridgell 1fe9582ac3 Plane: back to velocity controller for quadplane landing
now with much smoother attitude control thanks to some help from
Leonard
2016-04-10 22:01:19 +10:00
Andrew Tridgell 4a5c4a5189 Plane: not in vtol mode when quadplane not enabled
prevents logging error in auto if quadplane not enabled and running a
VTOL mission command
2016-04-10 22:01:18 +10:00
Ricardo de Almeida Gonzaga 5bd034a5a8 Global: start using cmath instead of math.h 2016-04-05 21:06:19 -07: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 5f1ad68bd9 Plane: improved velocity controller for quadplane landing 2016-04-04 09:50:35 +10:00
Andrew Tridgell 8b30569ad1 Plane: setup quadplane earlier in startup
this ensures the GCS gets the full parameter list as the param count
will be set before mavlink starts
2016-04-03 06:49:38 +10:00
Andrew Tridgell 5cc4b20c73 Plane: smooth out final descent for landing 2016-04-02 22:45:51 +11:00
Andrew Tridgell 197cefaaa7 Plane: prevent large nose-down on start of velocity controller 2016-04-02 21:19:06 +11:00
Andrew Tridgell ae51e51c6a Plane: use velocity controller for initial quadplane landing 2016-04-02 20:54:01 +11:00
Andrew Tridgell b1266603a6 Plane: setup immediate pitch limit on quadplane takeoff
this prevents a single loop with large pitch down demand
2016-04-02 19:53:48 +11:00
Andrew Tridgell 913cf9dd37 Plane: set min quad throttle to 10%
fixes spin when armed
2016-04-01 22:18:51 +11:00
Andrew Tridgell 7f85c14c96 Plane: fixed landing detector for new AP_Motors code 2016-04-01 21:54:32 +11:00
Andrew Tridgell 70679a06aa Plane: fixed quadplane throttle control in AUTO 2016-04-01 17:29:51 +11:00
Andrew Tridgell 52cc369f15 Plane: fixed typo in AP_Motors conversion 2016-04-01 16:45:01 +11:00
Andrew Tridgell e7f7afcc4d Plane: added correct filter defaults 2016-04-01 16:44:49 +11:00
Andrew Tridgell 9cf909607f Plane: setup reasonable quadplane defaults 2016-04-01 16:40:06 +11:00
Andrew Tridgell dd6c4d6225 Plane: fixed up parameters for quadplane
this fixes quadplane parameters for the new AP_Motors code
2016-04-01 16:17:07 +11:00
Randy Mackay b96ea15220 Plane: quadplane uses AC_AttitudeControl_Multi 2016-04-01 11:59:30 +09:00
Randy Mackay 41b584ac9e Plane: fix quadplane qstabilize throttle input 2016-04-01 11:59:30 +09:00
Randy Mackay 52caed2573 Plane: QTUN df messages angle boost field as float 2016-04-01 11:59:30 +09:00
Randy Mackay 70f81ee338 Plane: remove multicopter PID parameters
These have been moved to the AC_AttitudeControl class
2016-04-01 11:59:30 +09:00
Randy Mackay 39f795d9fd Plane: quadplane sets motors desired spool state 2016-04-01 11:59:30 +09:00
Andrew Tridgell f73c8ab8ed Plane: allow testing of all motors in sequence
this makes for an easier startup test for a quadplane, allowing a
single MAVLink command to test that all motors are working correctly
in the right sequence
2016-04-01 11:09:51 +11:00
Tom Pittenger 6718241dad cleanup comments 2016-03-29 05:32:28 -07:00
Gustavo Jose de Sousa a4c099feaa waf: create program groups for main products
Currently we need to build a different binary for each type of copter frame.
This is a preparation for setting all those binaries to a group called
"copter". We create the groups for the rest of the main products for
consistency.
2016-03-26 15:43:08 -03:00
Andrew Tridgell dc9d87fde3 Plane: prepare for 3.5.2 release 2016-03-26 14:52:17 +11:00
Andrew Tridgell 8a6e5ffe80 Plane: fixed bug in rangefinder landing
introduced with QLAND change
2016-03-26 10:06:07 +11:00
Andrew Tridgell b47b558246 Plane: change code URL 2016-03-25 20:47:03 +11:00
Andrew Tridgell 4d7beab8cc Plane: added QTUN logging for quadplane 2016-03-25 12:33:19 +11:00
Andrew Tridgell 0a199945a2 Plane: added copter RATE logging for quadplane 2016-03-25 12:13:59 +11:00
Andrew Tridgell 1fa075e7a8 Plane: change default quadplane gains
lower filter frequency, higher I gain for roll/pitch
2016-03-25 10:16:15 +11:00
Lucas De Marchi f258b66627 ArduPlane: Update path locations for parameters
Thanks to Francisco Ferreira for noticing that.
2016-03-23 17:50:38 -03:00
Andrew Tridgell 0442c2c659 Plane: prepare for 3.5.1 release 2016-03-21 09:44:52 +11:00
Andrew Tridgell f0eddd6366 Plane: ensure we always eventually capture a loiter 2016-03-18 13:47:45 +11:00
Andrew Tridgell 30ca9fbb01 Plane: cope with upgrade to shifted indexes for quadplane 2016-03-18 12:33:58 +11:00
Michael du Breuil 35bb6a634e Plane: Make base_mode armed status depend upon the arming library, not soft armed 2016-03-17 15:16:17 +11:00
Don Gagne cae7ea0d13 Add @Volatile, @ReadOnly support 2016-03-17 10:58:05 +11:00
Lucas De Marchi e01d49ff53 ArduPlane: replace header guard with pragma once 2016-03-16 18:40:45 +11:00
Michael du Breuil 0117522998 Plane: Use arming voltage 2016-03-14 09:06:58 -07:00
Andrew Tridgell 89970e4eaa Plane: support motor_test for quadplanes 2016-03-13 10:05:10 +11:00
Andrew Tridgell d644474817 Plane: support octaquad planes 2016-03-13 10:04:25 +11:00
Andrew Tridgell d7d528560d Plane: don't start summing for loiter until we reach loiter circle 2016-03-10 15:43:28 +11:00
Tom Pittenger f3638f421e Plane: fix short loiters exiting early 2016-03-10 15:42:18 +11:00
Michael du Breuil f60b3fd6c7 Plane: remove "Command recieved" statustext 2016-03-10 15:36:05 +11:00
Andrew Tridgell f4ccf94dfc Plane: added QLAND mode
for VTOL landing. Use for failsafe as well
2016-03-09 18:20:41 +11:00
Andrew Tridgell 927efa90f8 Plane: fixed log printing of Q modes 2016-03-09 17:29:13 +11:00
Don Gagne 1df7baa5c5 Plane: update quadplane param description increment 2016-03-08 09:27:56 +09:00
Tom Pittenger ff249788bf Plane: add a default Navigation option as explained in the param docs 2016-03-03 09:16:26 -08:00
Randy Mackay f66d5f7a8c Plane: use ahrs.get_origin instead of ekf.getOriginLLH
This ensures we get the origin from the active EKF
2016-03-03 16:20:59 +09: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 bf5005103c Plane: allow loiter waypoints to have a zero lat/lng or alt to mean use current 2016-03-02 08:49:11 -08:00
Tom Pittenger be3941efdf Plane: unify loiter mission items to require heading to next wp
- except loiter_unlimited because it never exits
2016-03-02 08:48:25 -08:00
Tom Pittenger 9e452838ab Plane: loiter missions to default to loiter_radius if mission says 0 or 1.
- except loiter_unlim which uses RTL_loiter, although I'm not sure why.
2016-02-29 10:12:20 -08:00
Tom Pittenger ed98617d42 Plane: utilize radius for loiter commands 2016-02-29 06:43:29 -08:00
Andrew Tridgell f35d05e374 Plane: improved quadplane default gains
0.25 is better for an average quadplane for roll/pitch

0.5 is a bit high for accel-z, 0.3 is better
2016-02-29 21:46:27 +11:00
Andrew Tridgell 93ac82e1f6 Plane: write voltage/current much more frequently 2016-02-29 21:24:54 +11:00
Will Sackfield fabe235130 ArduPlane: initialize the fail_test variable
* Clang complains if variables are not initialized
2016-02-29 14:14:37 +11:00
Will Sackfield 5f5035933f ArduPlane: static cast to uint8 on initialization of struct
* clang requires that the casting be explicit
2016-02-29 14:14:37 +11:00
Andrew Tridgell 968f07f583 Plane: allow live quadplane PID tuning 2016-02-29 14:10:32 +11:00
Tom Pittenger b8fc524954 Plane: enforce expected flight_stage in TECS 2016-02-25 06:37:24 -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 6399d00950 Plane: convert to using static send_statustext
- no more MSG_STATUSTEXT
- TODO: replace calls to gcs_send_text and gcs_send_text_fmt to GCS_MAVLINK::send_statustext()
2016-02-24 09:18:06 +11:00
Andrew Tridgell ad78a31255 Plane: move set_dataflash(0 for static logging 2016-02-24 09:18:05 +11:00
Tom Pittenger 881dabf048 Plane: add missionLoaded arming check fail for mis.len <= 1 2016-02-22 16:19:40 +11:00
Andrew Tridgell 1acf25b6e2 Plane: use set_dataflash()
give GCS_MAVLINK a dataflash object for logging text messages
2016-02-22 12:34:32 +11:00
Andrew Tridgell b84b480086 Plane: added PID tuning for quadplane modes 2016-02-20 20:20:27 +11:00
Andrew Tridgell e2abaefc44 Plane: check SCHED_LOOP_RATE for quadplane 2016-02-20 20:02:52 +11:00
Lucas De Marchi 0b22b520b8 ArduPlane: remove unused CMAKE define
This is a leftover from previos cmake build system.
2016-02-19 19:15:39 -02:00
Peter Barker ca4017d093 Plane: defines.h should not use defines from config.h
config.h includes defines.h early, so defines in config.h are unavailable
2016-02-19 12:34:23 -02:00
Tom Pittenger d0edfa5dfa Plane: compile warning fix
/ardupilot/ArduPlane/quadplane.cpp:773:107: warning: implicit conversion from 'float' to 'double' when passing argument to function [-Wdouble-promotion]
2016-02-17 14:54:02 -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 a280396645 Plane: nonfunctional change, comment only. Units were in old in comment 2016-02-12 12:14:38 -08:00
Tom Pittenger c837fbca2f Plane: 3/3 new param TECS_LAND_SRC for Land Sink Rate Change
// @Description: When zero, the flare sink rate (TECS_LAND_SINK) is a fixed sink demand. With this enabled the flare sinkrate will increase/decrease the flare sink demand as you get further beyond the LAND waypoint. Has no effect before the waypoint. This value is added to TECS_LAND_SINK proportional to distance traveled after wp. With an increasing sink rate you can still land in a given distance if you're traveling too fast and cruise passed the land point. A positive value will force the plane to land sooner proportional to distance passed land point. A negative number will tell the plane to slowly climb allowing for a pitched-up stall landing. Recommend 0.2 as initial value.
2016-02-12 11:39:27 -08:00
Tom Pittenger 8ac6343730 Plane: removing mission_cmd in TECS and making it bool is_landing
this is reverse-thrust cleanup suggested by Tridge
2016-02-12 11:22:59 -08:00
Tom Pittenger d04b5e735f Plane: add SYS_STATUS reverse_motor
- helpful to tell GCS to interpret VFR_HUD as negative when bit is enabled
- throttle is sent as abs()
2016-02-11 18:46:01 +11:00
Tom Pittenger fa53263ca9 Plane: make throttle_percentage() signed 2016-02-11 18:46:01 +11:00
Tom Pittenger ebec68c55b Plane: param desc to increase THR_MIN range to include negative thrust 2016-02-10 22:18:07 -08:00
Tom Pittenger f369899509 Plane: restrict rudder arming where reverse_thrust is enabled and commanding negative 2016-02-10 22:18:06 -08:00
Tom Pittenger a920b7322d Plane: more desc for param USE_REV_THRUST 2016-02-10 22:04:50 -08:00
Tom Pittenger 046741d23b Plane: abort landing at 90% throttle instead of 95% 2016-02-08 21:13:43 -08:00
Tom Pittenger b098466e87 Plane: reduce redundant logging of STAT from 6 Hz to 5 Hz
- STAT log entry was being done every 5 Hz plus at 1 Hz. This removes the 1Hz.
2016-02-08 21:13:12 -08:00
Tom Pittenger 66fcd8f58a Plane: run is_crashed at 5hz instead of 1hz 2016-02-08 21:13:04 -08:00
Andrew Tridgell 93185be1ff Plane: reset land_pre_flare on mode change 2016-02-09 14:18:02 +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 f8d8616598 Plane: support all types of multicopters in quadplane
adds Q_FRAME_CLASS for class of multicopter frame
2016-02-08 11:00:19 +11:00
Andrew Tridgell eeda1b56de Plane: don't do throttle nudge while in geofence failsafe
user stick inputs should not apply when outside fence
2016-02-08 10:59:37 +11:00
Tom Pittenger 9157f634eb Plane: Add Tom Pittenger to authors list 2016-02-02 10:50:12 +09:00
Andrew Tridgell 379ca5ac00 Plane: prepare for 3.5.0 release 2016-01-30 13:04:51 +11:00
Andrew Tridgell 99847da297 Plane: release 3.5.0beta2 2016-01-29 12:21:39 +11:00
Andrew Tridgell 125af1b856 Plane: added OVERRIDE_SAFETY parameter 2016-01-29 12:20:14 +11:00
Michael du Breuil bcc939930c Plane: Only resend the mixer configuration if its changed 2016-01-29 12:20:14 +11:00
Andrew Tridgell 8dba91658c ArduPlane: log a picture if AP_Camera::control() returns true 2016-01-29 10:01:51 +11:00
Andrew Tridgell d82c8dcd6d ArduPlane: update for changed AP_Camera API 2016-01-29 09:19:44 +11:00
Dario Lindo Andres 9bba55f937 ArduPlane: Added precise camera trigger logging
Added update_trigger and check_digital_pin functions
added camera trigger precise time mark
detect camera feedback pin status
added support for simple digital pin
included support for digital pin. Already included in
added support for TRIGGER MSG
2016-01-29 09:19:43 +11:00
Jonathan Challinger 9000756c80 Plane: reflect changes to AP_Mount 2016-01-23 10:35:47 +09:00
Gustavo Jose de Sousa c2e3f05dbf waf: ardupilotwaf: prefix build context methods with ap_
It helps to distinguish between things from waf and things from ardupilotwaf.
2016-01-22 20:10:29 -02:00
Gustavo Jose de Sousa e9d3dc9e72 waf: vehicles and antennatracker: use methods from bld
Instead of from ardupilotwaf.
2016-01-22 20:10:29 -02:00
Gustavo Jose de Sousa cf432e8b3e waf: ardupilotwaf: rename vehicle_stlib to ap_stlib
That function is not only for vehicles.
2016-01-22 20:10:28 -02:00
Gustavo Jose de Sousa a35c0d48b0 waf: ardupilotwaf: rename program to ap_program
Make the rename so that there is no name clashes when defining it as a taskgen
method.
2016-01-22 20:10:28 -02:00
Andrew Tridgell 115d089904 Plane: continue limiting pitch during last phase of transition
this prevents a very high pitch demand causing the plane to slow down
to below assist speed
2016-01-20 18:30:48 +11:00
Andrew Tridgell 0223218c39 Plane: use altitude_error for quadplane climb rate assistance 2016-01-20 17:23:36 +11:00
Andrew Tridgell 69b2421563 Plane: ensure TECS is updated at 10Hz only 2016-01-20 17:23:36 +11:00
Andrew Tridgell 3a3afe42be Plane: don't force disarm on parachute release
in auto-throttle modes throttle is suppressed. In pilot controlled
modes pilot can lower throttle
2016-01-19 17:59:53 +11:00
squilter c7e8a48a55 Plane: deploy parachute as fs action 2016-01-19 17:55:58 +11:00
Andrew Tridgell 23eef91c59 Plane: added parameter RTL_RADIUS
this allows the loiter radius for RTL to be controlled separately from
the radius for loiter (as requested by a user)
2016-01-19 15:04:30 +11:00
Andrew Tridgell 3a9ebe3a8a Plane: added Q_TRAN_PIT_MAX 2016-01-19 11:05:56 +11:00
Andrew Tridgell 7e29761b99 Plane: try to smooth auto VTOL transitions 2016-01-19 11:05:56 +11:00
Andrew Tridgell 4adda34439 Plane: limit pitch to zero during airspeed wait VTOL mode 2016-01-19 11:05:56 +11:00
Lucas De Marchi 7f04e0106e waf: change binary names
APMrover2 -> ardurover
AntennaTracker -> antennatracker
ArduCopter -> arducopter
ArduPlane -> arduplane
2016-01-18 16:56:08 -02:00
Gustavo Jose de Sousa 17e5d99509 waf: allow partial builds with new mavlink as submodule
The task generator for the mavlink headers is given a name 'mavlink' and is
added as a dependency to all local static libraries, because all of them use
sources that include mavlink headers. It would be nice to have a good way to
detect sources that use mavlink headers or to declare list of libraries that
use the headers, so that the dependency could be added automatically.

Additionally, there's a minor change in syntax for the task generator: using
strings directly instead of lists.
2016-01-15 07:28:48 +11:00
Andrew Tridgell eabceb34e1 Plane: update release notes for Pixracer support 2016-01-10 17:43:01 +11:00
Andrew Tridgell 5a24e93cc5 Plane: removed debug code and add quadplane setup checks 2016-01-09 16:26:13 +11:00
Andrew Tridgell 9e3c1fddef Plane: updated release notes 2016-01-09 15:17:45 +11:00
Andrew Tridgell ebe1fe0b17 Plane: raise version to 3.5.0beta1 2016-01-09 13:33:27 +11:00
Tom Pittenger 7978872e32 AP_Plane: set path_propportion in TECS 2016-01-09 13:25:02 +11:00
Andrew Tridgell ee819959b6 Plane: smoother takeoff and land transition in VTOL auto 2016-01-09 11:33:43 +11:00