Leonard Hall
4774cb8daf
AP_Motors: improved motor loss redundancy
...
This detects a failed motor on copters with at least 6 motors
and recalculates the mixer to compensate
2018-10-16 00:44:50 +09:00
Randy Mackay
a5c59ce36e
AP_Motors: include boost_throttle in get_motor_mask
2018-08-27 10:35:02 +09:00
Jacob Walser
24e21b57ca
AP_Motors: add output_test_num api for motor testing
2018-07-02 11:31:58 -04:00
Jacob Walser
abcb845af5
AP_Motors: refactor output_test -> output_test_seq
2018-07-02 11:31:58 -04:00
Andrew Tridgell
e55d3a0834
AP_Motors: fix mask passed to rc_set_freq
...
the full motor mask must be supplied to work correctly for oneshot and
dshot
2018-04-07 09:10:29 +10:00
night-ghost
3165d72647
AP_Motors: reduce unnecessary multiple call of get_compensation_gain()
2018-01-24 19:26:15 +09:00
Leonard Hall
eb6ab53f6c
AP_Motors: fix optimum thrust calcs
2018-01-13 10:06:11 +09:00
Andrew Tridgell
efea83e424
AP_Motors: fixed MotorsMatrix set_update_rate()
2017-10-22 15:52:50 +11:00
Andrew Tridgell
03e1f6967f
AP_Motors: removed enable() API
...
all output channels are already enabled by SRC_Channels::enable_aux_servos()
2017-10-22 15:52:50 +11:00
murata
66fc49889b
AP_Motors: add dodeca-hexa
2017-05-27 14:21:13 +09:00
Andrew Tridgell
2c4975ba31
AP_Motors: removed cork/push from AP_Motors
...
should be done by vehicle code if needed, so that AUX servos are sent
at the same time
2017-05-01 14:32:18 +10:00
Randy Mackay
8b5aae37e0
AP_Motors: remove Hexa-H, change Octa-H factors
...
Octa-H is like an Quad-X but with each side having two additional motors placed between the front an back motors.
Octa-H is quite different from Quad-H.
2017-02-10 10:42:14 +09:00
Randy Mackay
872e0567be
AP_Motors: add H frame support for hexa and octa
2017-02-09 12:37:14 +09:00
Andrew Tridgell
af44e9fdbd
AP_Motors: added frame type 11 for Y6 to match FireFly6
...
using same motor output mapping as AvA
2017-02-06 16:18:58 +11:00
Randy Mackay
bdfb12123f
AP_Motors: fix frame-type enum for Y6B
...
Also remove unused NEW_PLUS
2016-12-31 10:55:23 +09:00
Randy Mackay
ffa6d1a5b9
AP_Motors: init fixes for frame_class, type and initialised_ok
...
Thanks to OXINARF for spotting these
2016-12-31 10:55:23 +09:00
Randy Mackay
7be0f437a9
AP_Motors: consolidate matrix multicopters
...
AP_MOTORS_x_FRAME definitions moved to motor_frame_type enum
init function and now accepts frame-class and type to perform initial motor setup
set_frame_class_and_type allows real-time changing of motor setup
initialised_ok flag and accessor records whether setup was successful
2016-12-31 10:55:23 +09:00
Jonathan Challinger
22517422f9
AP_Motors: add option to disable motor PWM output while disarmed
2016-11-21 10:49:21 +09: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
Randy Mackay
a1b573ed0a
AP_Motors: rename throttle_ave_max to throttle_avg_max
2016-06-18 11:55:49 +09:00
Randy Mackay
ef106e4b0f
AP_Motors: spool_mode moved out of flags struction
...
No functional change
2016-06-18 11:55:49 +09:00
Leonard Hall
488f90b39d
AP_Motors: add calc_spin_up_to_pwm to reduce repeated code
2016-06-18 11:55:49 +09:00
Leonard Hall
5a8fc6283e
AP_Motors: replace throttle_rpy_mix with throttle_avg
...
AC_AttitudeControl now calculates throttle vs attitude control
prioritisation and simply provides overall maximum throttle (aka
throttle_avg) to the motors library
2016-06-18 11:55:49 +09:00
Randy Mackay
8d1f50e78f
AP_Motors: rename get_pwm_min to get_pwm_output_min
2016-05-24 10:00:25 +09:00
Randy Mackay
49b14b3cb6
AP_Motors: add PWM_MIN, MAX
...
These parameters allow the motor PWM output range to be different from receiver's throttle input range
Also renamed throttle_pass_through to set_throttle_passthrough_for_esc_calibration and change the method's input to the 0 to 1 range instead of direct PWM value
2016-05-24 10:00:25 +09:00
Andrew Tridgell
60b3625950
AP_Motors: added hook for vehicle based thrust compensation
...
allow vehicle code to compensate for thrust effectiveness changes due
to properties outside the scope of AP_Motors. This allows for
compensation in tiltrotors and tiltwings.
2016-05-11 05:55:23 +10:00
Andrew Tridgell
37d6b5fdaf
AP_Motors: added output_motor_mask()
...
this will be used for tiltrotors in forward flight
2016-05-11 05:55:23 +10:00
Randy Mackay
7af9892bd1
AP_MotorsMatrix: make const a float
...
resolves compiler warning
2016-04-23 23:06:25 -07:00
Andrew Tridgell
f2c63e24c5
AP_Motors: allow tricopter motor 7 to be moved to any output
2016-04-22 08:32:03 +10:00
Randy Mackay
f4d94806e5
AP_MotorsMatrix: remove output_min
...
This is now implemented by parent AP_MotorsMulticopter
2016-04-01 11:59:30 +09:00
Leonard Hall
8f8eb7e214
AP_MotorsMatrix: add normalise_rpy_factors
2016-04-01 11:59:30 +09:00
Leonard Hall
027284fba0
AP_MotorsMatrix: roll, pitch, yaw input in -1 to +1 range
2016-04-01 11:59:30 +09:00
Leonard Hall
397940a9a4
AP_MotorsMatrix: implement output_to_motors
2016-04-01 11:59:30 +09:00
Leonard Hall
cdec8f3387
AP_MotorsMatrix: remove output_disarmed
2016-04-01 11:59:30 +09:00
Leonard Hall
b965857229
AP_MotorsMatrix: remove output_armed_not_stabilizing
2016-04-01 11:59:30 +09:00
Leonard Hall
d0c6d087a5
AP_MotorsMatrix: do not set limits in output_min
2016-04-01 11:59:30 +09:00
Leonard Hall
3fef60da45
AP_MotorsMatrix: stability patch in 0 to 1 range
...
Includes storing motor level thrusts to _thrust_rpyt_out
rename _throttle_thr_mix_desired to _throttle_rpy_mix_desired
rename _throttle_thr_mix to _throttle_rpy_mix
use get_hover_throttle_as_high_end_pct
use throttle_thrust_max updated by multicopter spool logic
do not set limits in stability patch
2016-04-01 11:59:30 +09:00
Andrew Tridgell
7c9ee9363b
AP_Motors: added rc_map_mask() function
2016-01-06 22:09:40 +11:00
Andrew Tridgell
dfccf8f713
AP_Motors: also wrap set_freq and enable_ch for motor mapping
2016-01-06 22:09:40 +11:00
Andrew Tridgell
77af00c5e1
AP_Motors: allow arbitrary mapping of channels on multirotors
...
using RCn_FUNCTION with motor1, motor2 etc
2016-01-06 22:09:40 +11:00
Andrew Tridgell
d31ba2b380
AP_Motors: added rc_write function
...
this is intended to make remapping motors and rescaling output easier
2016-01-04 16:56:54 +11: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
Lucas De Marchi
f43f6c53f7
AP_Motors: Group writes to motors
...
Surround calls to rcout->write() with rcout->cork() and rcout->push().
If the RCOutput implementation allows the writes are grouped and only
sent together to the underlying hardware.
2015-10-06 10:42:18 +11:00
Lucas De Marchi
1572c9d4f4
AP_MotorsMatrix: get rid of _motor_to_channel_map
2015-09-29 12:00:56 +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
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
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
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
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
Leonard Hall
0f894ac1a8
AP_Motors: Rename and move Throttle Mix / Comp
2015-05-08 14:14:17 +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
8e442675a7
AP_Motors: introduce set_stabilize(bool), specifies whether torque demands should be output
2015-04-16 20:59:40 +09:00
Leonard Hall
31a55b2bd6
MotorsMatrix: fix div by zero by ensuring throttle is above min
2015-03-16 14:49:31 +09:00
Leonard Hall
3ad9b1a06b
AP_MotorsMatrix: remove incorrect throttle limit flag
2015-03-06 14:02:55 +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
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
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
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
Leonard Hall
ec9d7dd99e
Motors: minor comment fixes
2015-03-03 15:48:30 +09:00
Leonard Hall
1d0ee68116
Motors: over current throttle limiting
2015-03-03 15:48:28 +09:00
Randy Mackay
f6523c0997
Motors: Add THR_LOW_CMP to adjust low throttle inputs affect on attitude control
2015-03-03 15:48:21 +09:00
Leonard Hall
83e3e2fec2
Motors: thrust curve and voltage scaling for matrix supported frames
2015-03-03 15:48:19 +09:00
Leonard Hall
5b0bd49ff2
Motors: configurable yaw headroom for matrix frames
2015-03-03 15:48:15 +09:00
Randy Mackay
85fb4b122a
MotorsMatrix: _min_throttle interpreted as 0 ~ 1000 range for throttle_lower flag
...
Also trigger throttle_upper flag when throttle in reaches 1000
2014-10-04 23:49:14 +09:00
NullVoxPopuli
c672b3e324
Copter: Added support for V-Shaped and A-Shaped VTail Quadcopter frames
...
Signed-off-by: NullVoxPopuli <LPSego3+dev@gmail.com>
2014-08-18 14:31:01 +09:00
Randy Mackay
b665ebd7a0
MotorsMatrix: implement get_motor_mask
2014-07-26 16:33:24 +09:00
Randy Mackay
d63d82ec17
MotorMatrix: output_test for individual motors
...
Based on original work by Nils Hogberg
2014-04-29 11:41:10 +09:00
Jonathan Challinger
9959a44453
AP_Motors: properly constrain thr_adj_max
2014-04-07 14:14:32 +09:00
Randy Mackay
8d6eb1eceb
MotorsMatrix: motor_to_channel_map moved to progmem
2014-02-15 05:27:50 +11:00
Randy Mackay
cf1d6854b9
AP_MotorsMatrix: use ref for roll, pitch, yaw, thr channels
2014-02-15 05:27:49 +11:00
Randy Mackay
2c6470f87b
AP_MotorsMatrix: remove unused _num_motors
...
Saves 1 byte of RAM
2014-02-15 05:27:49 +11:00
Randy Mackay
32a0992985
MatrixMotors: motor_out array made local
2014-02-15 05:27:48 +11:00
Randy Mackay
14409ee20f
Copter: disable aux channels used for motors
2014-02-07 22:04:27 +09:00
Randy Mackay
851a538692
Copter: motor matrix comment change
2013-11-27 22:33:01 +09:00
Randy Mackay
943d7374f6
Copter: slow start motors from 0 to min throttle
2013-10-20 14:51:35 +09:00
Randy Mackay
62cb5c172b
Copter Motors: add slow start feature
...
Combined armed, frame orientation and slow_start into flags bitmask
Removed ability to set max throttle because it was never used
Re-ordered class variables
2013-09-12 22:27:44 +09:00
Andrew Tridgell
97b7130bb9
libraries: update license header to GPLv3
...
we switched to GPLv3 a long time ago, but neglected to update the
per-file license headers
2013-08-30 13:01:39 +10:00
Randy Mackay
fe412437c2
Copter: add flags for upper and lower throttle limits
...
Freeze desired altitude when motors hit a limit
2013-07-28 18:18:39 +09:00
Randy Mackay
f3a2db195e
Copter Motors: remove old style stability patch
2013-07-25 15:34:04 +09:00
Randy Mackay
43379f20c3
Copter Motors: replace limit bitmask with structure
2013-07-21 13:58:24 +09:00
Randy Mackay
336357fbaf
Copter: ensure _spin_when_armed is not higher than _min_throttle
2013-07-16 15:25:57 +09:00
Randy Mackay
6477c746cd
Copter: renamed MOT_UNSAFE_THR to MOT_SPIN_ARMED
...
Removed special purpose spin_unsafe function
renamed _throttle_unsafe to _spin_when_armed and changed to an AP_Int8
2013-07-16 12:47:59 +09:00
Jonathan Challinger
2725f219cb
Copter: Warn user with motors while copter is arming
2013-07-16 12:47:51 +09:00
Jonathan Challinger
ae2b1e3b7e
AP_Motors: Added MOT_UNSAFE_THR parameter - Throttle setting used to signal that the copter is armed or otherwise unsafe to approach
2013-07-16 12:47:49 +09:00
rmackay9
073e2c9f15
ACMotors: bug fix to yaw limit
2013-07-05 13:51:59 -10:00
Randy Mackay
76028fc9d3
Copter Motors: use _min_throttle in output_test
2013-05-31 15:16:04 +09:00
Andrew Tridgell
81f7ae9108
AP_Motors: fixed indent-tabs-mode
2013-05-30 09:51:34 +10:00
Randy Mackay
ec7ee47099
Copter: scaling stability patch
2013-05-27 11:21:31 +09:00
Randy Mackay
6a65a32de2
CopterMotors: add formatting info to top of files
2013-05-20 10:48:42 +09:00
Randy Mackay
ad00e0ee1e
ACMotors: make test_order uint_8
2013-05-14 18:03:34 +09:00
Randy Mackay
cb5f8826f8
Copter: Leonard's fix for trapezoidal frame
...
We need to allow yaw_factors to be floats in the add_motor method
2013-04-25 17:52:19 +09:00
Andrew Tridgell
2c05030fb1
AP_Motors: use the right constrain() function
2013-04-22 13:26:49 +10:00
Randy Mackay
a656b619f5
AP_Motors: remove auto_armed
...
redundant flag that was already held in the main code which is where it
belongs.
2013-04-17 21:28:42 +09:00
James Bielman
5631f865b2
Update floating point calculations to use floats instead of doubles.
...
- Allows use of hardware floating point on the Cortex-M4.
- Added "f" suffix to floating point literals.
- Call floating point versions of stdlib math functions.
2013-01-16 13:52:01 +11:00
Andrew Tridgell
03b26c7d6d
AP_Motors: fixed setup of ESC update speeds
2013-01-10 15:52:46 +11:00
rmackay9
3aca61cefb
AP_Motors: remove unnecessary opposite_motor array (no longer needed with new stability patch)
2013-01-02 09:19:17 +11:00
Pat Hickey
c6fe5e5340
AP_Motors: ported to AP_HAL
2012-12-20 14:51:26 +11:00