Commit Graph

145 Commits

Author SHA1 Message Date
Andrew Tridgell b56d784ae4 Plane: limit to zero pitch in quadplane on initial transition 2016-05-28 15:08:46 +10:00
Andrew Tridgell 20cf326093 Plane: lower throttle threshold for quadplane is_flying 2016-05-28 07:10:13 +10: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 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 46bf2b83f5 Plane: use equal thrust in tiltrotors when over Q_TILT_MAX 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
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 2a7edfd3d1 Plane: fixed setting of failsafe for motors in quadplane 2016-05-07 07:25:33 +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
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 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 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 a549225e60 Plane: support Y6 frame class in quadplane 2016-04-22 10:28:16 +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
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
Andrew Tridgell 154fe15c67 Plane: fixed build warning 2016-04-15 09:22:41 +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
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 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 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 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 f4ccf94dfc Plane: added QLAND mode
for VTOL landing. Use for failsafe as well
2016-03-09 18:20:41 +11:00
Don Gagne 1df7baa5c5 Plane: update quadplane param description increment 2016-03-08 09:27:56 +09:00
Andrew Tridgell b84b480086 Plane: added PID tuning for quadplane modes 2016-02-20 20:20:27 +11: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
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 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 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
Andrew Tridgell 5a24e93cc5 Plane: removed debug code and add quadplane setup checks 2016-01-09 16:26:13 +11:00
Andrew Tridgell ee819959b6 Plane: smoother takeoff and land transition in VTOL auto 2016-01-09 11:33:43 +11:00
Andrew Tridgell 2679cb2c50 Plane: improve yaw and position control in takeoff and landing
auto VTOL takeoff is always vertical. Yaw rate is zero on takeoff and
during VTOL descent
2016-01-09 10:47:41 +11:00
Andrew Tridgell 0986474eed Plane: call set_frame_orientation() before Init for quad motors 2016-01-09 07:44:45 +11:00
Andrew Tridgell 52c4715c94 Plane: fixed init bug on low memory for quadplane 2016-01-09 07:38:55 +11:00
Andrew Tridgell 787a6994a4 Plane: added Q_THR_MID parameter 2016-01-09 07:38:55 +11:00
Andrew Tridgell 4da798129e Plane: fixed zero throttle in QSTABILISE mode 2016-01-09 07:38:55 +11:00
Andrew Tridgell cfb74406b6 Plane: fixed call to motors->Init() for quadplane 2016-01-09 07:38:55 +11:00
Andrew Tridgell 13a71c5cde Plane: use default motor mapping for channel setup 2016-01-09 07:38:55 +11:00
Andrew Tridgell 71b0d5fb6d Plane: disable quad motors in TRAINING and ACRO too 2016-01-09 07:38:54 +11:00
Andrew Tridgell 9c5ec5e74b Plane: allow yaw control in auto-throttle VTOL modes 2016-01-09 07:38:54 +11:00
Andrew Tridgell 70018ee0cb Plane: fixed final descent for VTOL auto landing 2016-01-09 07:38:54 +11:00
Andrew Tridgell f259cf4b3f Plane: added Q_YAW_RATE_MAX parameter 2016-01-09 07:38:54 +11:00
Andrew Tridgell f5a15fb7c5 Plane: don't yaw quad when disarming 2016-01-09 07:38:54 +11:00
Andrew Tridgell ecd7d53cfc Plane: auto set trim on quad motor channels
this prevents a reboot causing a motor start
2016-01-09 07:38:54 +11:00
Andrew Tridgell 7010fd27ff Plane: fixed Q_THR_MAX_PWM parameter 2016-01-09 07:38:54 +11:00
Andrew Tridgell 780d1459f0 Plane: fixed force descend in VTOL land 2016-01-09 07:38:53 +11:00
Andrew Tridgell 4592085963 Plane: better VTOL land detection 2016-01-09 07:38:53 +11:00
Andrew Tridgell fdd86c10ba Plane: smoother transitions to auto from VTOL takeoff 2016-01-09 07:38:53 +11:00
Andrew Tridgell 418464ab8c Plane: added quadplane version of is_flying() 2016-01-09 07:38:53 +11:00
Andrew Tridgell f068a8c913 Plane: added support for VTOL_TAKEOFF and VTOL_LAND commands 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 aab98ff757 Plane: fixed quad yaw assistance during transition timer 2016-01-09 07:38:52 +11:00
Andrew Tridgell 9ae4c3ec99 Plane: mark Q_ENABLE parameter as an enable parameter 2016-01-09 07:38:52 +11:00
Andrew Tridgell 0d6b353bcb Plane: added quad assistance and auto support for quadplane 2016-01-09 07:38:52 +11:00
Andrew Tridgell 48e1a0641f Plane: added throttle wait to 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 00ca292160 Plane: improved quadplane transition 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