Commit Graph

383 Commits

Author SHA1 Message Date
Fredrik Hedberg 1bb6b65ce0 AP_Motors: Use C++11 initializers in AP_MotorsHeli. 2015-08-31 11:27:27 +09:00
Leonard Hall c357cb8f84 Copter: increase default thrust expo to 0.65 2015-08-23 16:42:05 +09:00
Gustavo Jose de Sousa 1e619c6c59 AP_Motors: standardize inclusion of libaries headers
This commit changes the way libraries headers are included in source files:

 - If the header is in the same directory the source belongs to, so the
 notation '#include ""' is used with the path relative to the directory
 containing the source.

 - If the header is outside the directory containing the source, then we use
 the notation '#include <>' with the path relative to libraries folder.

Some of the advantages of such approach:

 - Only one search path for libraries headers.

 - OSs like Windows may have a better lookup time.
2015-08-11 16:38:19 +10:00
Randy Mackay f009c2ddb9 Motors_Multicopter: add MOT_THR_MIX_MAX parameter
Allows controlling the prioritisation of throttle vs attitude control
during active flight
2015-08-07 17:39:09 +09:00
Leonard Hall 1a583c5382 AP_Motors: calc_roll_pwm based on throttle pwm range 2015-08-03 14:12:49 +09:00
Randy Mackay 5032cf9fbc Copter: init multicopter flags
Resolves coverity warning

Also fixed indentation
2015-07-25 14:00:29 +09:00
Randy Mackay e31f2d26c4 MotorsMulticopter: move get_hover_throttle_as_pwm to protected
No functional change
2015-07-21 16:27:04 +09:00
Randy Mackay c7c6228b5d MotorsMulticopter: remove virtual from set_yaw_headroom 2015-07-21 16:27:01 +09:00
Randy Mackay 4843be49de AP_MotorsTri: remove call to empty parent Init
Also rename uses of Multirotor to Multicopter
2015-07-21 16:25:48 +09:00
Randy Mackay f906934dfa AP_MotorsSingle: remove call to empty parent Init
Also rename uses of Multirotor to Multicopter
2015-07-21 16:25:45 +09:00
Randy Mackay 112e934072 AP_MotorsMatrix: remove call to empty parent Init
Also rename uses of Multirotor to Multicopter
2015-07-21 16:25:43 +09:00
Randy Mackay b1a4a6bf0a AP_Motors_Coax: remove call to empty parent Init
Also rename uses of Multirotor to Multicopter
2015-07-21 16:25:40 +09:00
Randy Mackay 4d1dfd94f5 AP_MotorsMulticopter: multicopter features moved in from parent
Also rename from multirotor to multicopter
2015-07-21 16:25:37 +09:00
Randy Mackay 7355ac9cb8 AP_MotorsHeli: implement empty slow start method 2015-07-21 16:25:34 +09:00
Randy Mackay a3fab10ef4 AP_MotorsHeli: init roll_radio_passthrough 2015-07-21 16:25:31 +09:00
Randy Mackay c9dedbd3b2 AP_Motors: remove multicopter only features
Also rename uses of Multirotor to Multicopter
2015-07-21 16:25:28 +09:00
Robert Lefebvre abb6eba291 AP_MotorsHeli: Change allow_arming check to use _rotor_speed_estimate
In future, this will be used to check actual rotor speed (measured) if available, to prevent trying to arm with the rotor spinning.
2015-07-21 16:25:21 +09:00
Robert Lefebvre 9fcbc77ce0 AP_MotorsHeli: Create rotor_speed_above_critical accessor 2015-07-21 16:25:11 +09:00
Robert Lefebvre 992c9c75bb AP_MotorsHeli: Create parameter_check method. 2015-07-21 16:25:04 +09:00
Robert Lefebvre e2fe640e6c Copter: Clean up helicopter allow_arming() function 2015-07-21 16:24:58 +09:00
Robert Lefebvre 61d6c5aa1d AP_Motors: Creation of AP_Motors_Multirotor class 2015-07-21 16:24:38 +09:00
Randy Mackay 8225e58454 AP_Motors: throttle_min method in 0 to 1000 range
Previously the pwm range value was returned.  This value is only used by
the multicopter attitude controller's angle boost function.
2015-07-20 20:44:46 +09:00
Randy Mackay 6bf6442396 MotorsMatrix; protect against divide by zero
This should never happen but just to be safe
2015-07-20 20:44:43 +09:00
Randy Mackay fa60c3dce8 MotorsCoax: fix output_armed_stabilized min thr limit 2015-07-20 20:44:36 +09:00
Randy Mackay 8a308205ce MotorsSingle: fix output_armed_stabilized min thr limit 2015-07-20 20:44:32 +09:00
Randy Mackay bd9a605086 MotorsTri: fix output_armed_stabilized min thr limit
_min_throttle is in the pwm range but was being used as if in the 0 to
1000 range
2015-07-20 20:44:23 +09:00
Randy Mackay e53c46bd8f MotorsMatrix: fix output_armed_stabilized min thr limit
_min_throttle was being used as if it were in the 0 to 1000 range when
in fact it is in the pwm range.  This meant the lower limit was too low.
2015-07-20 20:44:14 +09:00
Robert Lefebvre e1902e2289 AP_MotorsHeli: Remove unused _dt variable. 2015-07-14 20:13:43 +09:00
Robert Lefebvre 11214b3414 AP_Motors: move constraints to set_throttle 2015-06-22 13:52:59 +09:00
Robert Lefebvre 0c92565d23 AP_MotorsHeli: add Critical Rotor Speed param, use to switch off runup_complete 2015-06-19 15:10:53 +09:00
Robert Lefebvre 3ad6700c5d AP_MotorsHeli: add getters for rotor speed 2015-06-19 15:10:51 +09:00
Robert Lefebvre 8b917b82ee AP_MotorsHeli: Simplify set_desired_rotor_speed function definition 2015-06-19 15:10:50 +09:00
Robert Lefebvre 79e8c8f7f7 AP_MotorsHeli: whitespace fixes 2015-06-19 15:10:47 +09:00
Randy Mackay 2849430341 AP_Motors: init flags
resolves coverity issue
2015-06-08 14:46:16 +09:00
Andrew Tridgell d746e8fa29 AP_Motors: mark examples as nobuild
waiting for fix from Rob
2015-06-01 17:27:33 +10:00
Andrew Tridgell 89baf2bdf1 AP_Motors: convert example from .pde to .cpp 2015-06-01 17:07:05 +10:00
Robert Lefebvre 1424b17a83 AP_Motors_Heli: Change default RSC_SETPOINT to 700 2015-05-29 17:46:25 +09:00
Robert Lefebvre d24664ccf9 AP_MotorsHeli: Semantic change. Motor Runup to Rotor Runup 2015-05-29 17:46:18 +09:00
Robert Lefebvre 65ca09600c AP_Motors: Heli eliminate _dt member and fix rsc_runup calculation 2015-05-29 17:46:09 +09:00
Randy Mackay d777166c6f AP_MotorsTri: revert tail servo to Ch7 2015-05-25 22:27:38 +09:00
Randy Mackay 1a1fa7ca4b AP_MotorsHeli: add comment to avoid param conflict 2015-05-25 22:13:49 +09:00
Randy Mackay 4c94a69e33 AP_MotorsCoax: resolve param conflict with TradHeli 2015-05-25 22:13:47 +09:00
Randy Mackay 78b49fb4c6 AP_MotorsSingle: resolve param conflict with TradHeli
Also rename servo reverse parameters to be consistent with tricopter
2015-05-25 22:13:45 +09:00
Randy Mackay 8dc7cf7fa8 AP_MotorsTri: YAW_SV_REV values -1 or +1
Also resolve parameter conflict with TradHeli
2015-05-25 22:13:43 +09:00
Randy Mackay 71e4bccecb AP_Motors: init members in constructor
Also add f to end of float constants
2015-05-25 22:13:41 +09:00
Robert Lefebvre b8181b6b90 AP_Motors: RCMAP fix
Remove all RC Input channels passed as reference into AP_Motors.  All input handling self-contained inside AP_Motors.
Rework Tricopter to use internal servo calcs.
2015-05-25 22:13:32 +09:00
Jonathan Challinger 28731d2bdc AP_Motors: add throttle filter input constraint from -100 to 1100 2015-05-22 16:12:27 +09:00
Robert Lefebvre 73bafa131e AP_MotorsHeli: Overload output()
To protect it from future interference from Multirotor code.
2015-05-22 09:38:23 +09:00
Robert Lefebvre d3ce68a8ca AP_MotorsHeli: Overload update_throttle_filter()
Do not reset filter to zero when disarmed to allow collective pitch servo movement.
2015-05-22 09:38:20 +09:00
Randy Mackay 3d9a6a69e2 MotorsHeli: COLYAW to float 2015-05-08 14:14:36 +09:00
Randy Mackay edfa206bb8 Motors_Heli: nest heli params 2015-05-08 14:14:35 +09:00
Randy Mackay 68b05a4ca2 AP_Motors: is_throttle_mix_min returns bol 2015-05-08 14:14:32 +09:00
Leonard Hall 0f894ac1a8 AP_Motors: Rename and move Throttle Mix / Comp 2015-05-08 14:14:17 +09:00
Andrew Tridgell 2e57c62ebb AP_Motors: fix for HAL_SITL rename 2015-05-05 09:45:55 +10:00
Randy Mackay b223e90ef6 AP_Motors: fix example sketches 2015-05-01 20:58:20 +09:00
Randy Mackay 0acc06d713 AP_Motors: minor comment for interlock 2015-05-01 14:30:45 +09:00
Robert Lefebvre 1a482de5e2 AP_MotorsHeli: Overload output_armed_zero_throttle 2015-05-01 14:30:25 +09:00
Robert Lefebvre 6bdace30d2 AP_Motors: Add throttle interlock functionality
AP_MotorsMatrix's output_armed_zero_throttle uses output_min default from base class
2015-05-01 14:30:24 +09:00
Jonathan Challinger 348001e786 AP_Motors: add get_throttle_warn function 2015-05-01 12:56:11 +09:00
Randy Mackay bae1722946 AP_Motors: get_compensation_gain gets div-by-zero check 2015-04-29 14:36:22 +09:00
Jonathan Challinger 41ae7207c7 AP_Motors: scale roll/pitch/yaw gain for air density 2015-04-29 14:36:15 +09:00
Jonathan Challinger e2ba351149 AP_Motors: refactor apply_thrust_curve_and_volt_scaling 2015-04-29 14:36:12 +09:00
Jonathan Challinger a07b322d31 AP_Motors: set_throttle takes a float 2015-04-24 16:30:45 +09:00
Tom Pittenger a5ffadf201 AP_Motors: fix compile warnings re float constants 2015-04-24 14:04:00 +09:00
Jonathan Challinger 4993fd4d71 AP_Motors: use new lowpass filter 2015-04-17 10:46:47 +09:00
Jonathan Challinger e80776f1f5 AP_Motors: remove MOT_THR_FILT parameter and add interface to configure filter 2015-04-16 21:00:01 +09:00
Jonathan Challinger 8e442675a7 AP_Motors: introduce set_stabilize(bool), specifies whether torque demands should be output 2015-04-16 20:59:40 +09:00
Jonathan Challinger bc2afb31dd AP_Motors: virtual not necessary in child class 2015-04-16 20:59:37 +09:00
Jonathan Challinger a2c69fe90d AP_Motors: add optional motor output throttle filter 2015-04-16 20:59:31 +09:00
Leonard Hall 88be3d67e7 AP_Motors: add get for throttle comp 2015-04-16 13:29:50 +09:00
Leonard Hall 791fbcf9b3 AP_Motors_Class: time constants of throttle comp 2015-04-16 13:29:46 +09:00
Andrzej Zaborowski 132cdc4916 Motors: Use _motor_to_channel_map in tricopter consistently.
In AP_MotorsTri.cpp the AP_MOTORS_MOT_1, _2 and _4 constants are
always mapped to actual output channels through _motor_to_channel_map
while the _CH_TRI_YAW is not, but there were a few inconsistencies
in this that could lead to things like PWM min and max values being
set on wrong channels.

It looks like all in all _motor_to_channel_map being in PROGMEM
probably doesn't help save memory and I'm not sure how useful it is
in the first place but regardless the usage should be consistent.
2015-04-09 11:43:22 +09:00
Jonathan Challinger 1828515b3b AP_Motors: bug fix to _batt_voltage_filt 2015-04-01 10:15:06 -07:00
Jonathan Challinger 89cdd02f58 AP_Motors: remove duplicate get_throttle function 2015-04-01 10:15:05 -07:00
Jonathan Challinger 0e53c0a892 AP_Motors: make output_armed() and output_disarmed() pure virtual 2015-04-01 10:14:38 -07:00
Randy Mackay 385b3744ea MotorTri: check servo_out above min_throttle 2015-03-16 14:49:38 +09:00
Randy Mackay f9e29a7f77 MotorSingle: check servo_out above min_throttle
We need to recalc radio_out or the motors could fall below min throttle
2015-03-16 14:49:37 +09:00
Randy Mackay 8de5d16f96 MotorCoax: check servo_out above min_throttle
We need to recalc radio_out or the motors could fall below min throttle
2015-03-16 14:49:35 +09:00
Leonard Hall 31a55b2bd6 MotorsMatrix: fix div by zero by ensuring throttle is above min 2015-03-16 14:49:31 +09:00
Randy Mackay 5e26450a6f AP_Motors: make THR_LOW_COMP a variable instead of param 2015-03-10 12:20:27 +09:00
Leonard Hall 007c96a3d8 AP_Motors: Low throttle compensation setters 2015-03-10 12:20:21 +09:00
Leonard Hall 6275ee0289 AP_Motors: Check for battery voltage reading fail 2015-03-10 12:20:19 +09:00
Leonard Hall 3ad9b1a06b AP_MotorsMatrix: remove incorrect throttle limit flag 2015-03-06 14:02:55 +09:00
Jonathan Challinger d148039f65 AP_Motors: stricter batt_voltage misconfiguration check 2015-03-06 14:02:49 +09:00
Leonard Hall 11a19803e0 Motors: add accessors for motor logging
accessor include get_roll, get_pitch, get_yaw, throttle input
2015-03-06 14:01:58 +09:00
Randy Mackay f5f7cd540f Motors: fix example sketches 2015-03-03 21:39:24 +09:00
Leonard Hall cf8c211c35 Motors: fix thrust curve and add constraint 2015-03-03 15:49:07 +09:00
Leonard Hall 3e960dfc3b Motors: add get_voltage_comp_gain
This clarifies that lift_max is the inverse of the battery voltage gain
compensation
2015-03-03 15:49:04 +09:00
Leonard Hall 997c6f0868 Motors: move battery resistance calcs to parent
Moving from MotorsMatrix to parent Motors class allows these to be used
from other frame types
Also initialise battery resistance
2015-03-03 15:49:02 +09:00
Randy Mackay 09d7cdbc23 Motors: batt_voltage_filt becomes filter object 2015-03-03 15:49:00 +09:00
Leonard Hall 529c6fed3a Motors: move over current throttle limiting to parent
Moving from MotorsMatrix to parent Motors class allows this to be used
from other frame types
2015-03-03 15:48:54 +09:00
Randy Mackay 812473fd9a MotorsMatrix: use get_hover_throttle_as_pwm 2015-03-03 15:48:52 +09:00
Randy Mackay 1a9d3125ef Motors: _hover_out to pct * 10 instead of pwm 2015-03-03 15:48:50 +09:00
Leonard Hall 6b7bdf64bd Motors: move batt voltage lift_max calcs to parent
Moving from MotorsMatrix to parent Motors class allows them to be used
by other frame types
Also added sanity check of batt_voltage_min
2015-03-03 15:48:48 +09:00
Randy Mackay c549b58eb7 MotorsMatrix: remove check of throttle_curve_enabled 2015-03-03 15:48:46 +09:00
Randy Mackay 5fb3de48ee MotorsTri, Single, Coax: use new thrust curve 2015-03-03 15:48:44 +09:00
Randy Mackay 2eaa4a8445 Motors: remove old throttle curve 2015-03-03 15:48:42 +09:00
Leonard Hall 751dbb7df7 Motors: move thrust curve and volt scaling to parent
Moving from MotorsMatrix to Motors allows it to be used from other frames
2015-03-03 15:48:41 +09:00
Randy Mackay 80b498f598 Motors: add loop_rate to test sketch 2015-03-03 15:48:39 +09:00
Randy Mackay 7ab76dbd0e Motors: add loop_rate to constructor for all frames 2015-03-03 15:48:34 +09:00