Commit Graph

15 Commits

Author SHA1 Message Date
Beat Küng 202505fd73 mixer_multirotor: fix initialization of _outputs_prev
memset (http://www.cplusplus.com/reference/cstring/memset/) interprets
the value argument as unsigned char, so passing a float will not work.
2018-04-25 16:33:09 +02:00
Daniel Agar d2abd53692 mixer lib remove custom constrain and cleanup includes 2018-04-12 00:14:50 -04:00
bresch 81a80e0d56 Airmode - Minor rewording 2018-03-23 10:35:08 +01:00
bresch 7ef3ae8828 Multicopter mixer - Recompute safe roll_pitch_scale if not in air-mode
If not in air-mode the mixer is not able to apply positive boosting
and roll_pitch_scale is recomputed to apply symmetric - reduced - thrust.
This has the consequence to cut completely the outputs when the thrust is
set to zero.
2018-03-23 10:35:08 +01:00
Beat Küng f21ab05f48 mixer_multirotor: fix comment thrust_gain -> thrust_scale
Added in 262d9c790b.
2018-03-23 10:35:08 +01:00
bresch 6976232a20 Airmode - Add airmode parameter for multicopter mixer 2018-03-23 10:35:08 +01:00
bresch 851c3657d1 Multicopter mixer - Use already computed value instead of recomputing it 2018-03-23 10:35:08 +01:00
bresch 803eb9ac32 Multicopter mixer - Simplify and correct mistakes of roll-pitch motor saturation handling 2018-03-23 10:35:08 +01:00
bresch 450e7c6774 Multicopter mixer - Remove arbitraty boost gain during saturation 2018-03-23 10:35:08 +01:00
bresch 096e2ec629 Multicopter mixer - Always unsaturate high-saturated motors when possible 2018-03-23 10:35:08 +01:00
bresch df194b1de4 Multicopter mixer - Rewrite unnecessarily complicated conditions 2018-03-23 10:35:08 +01:00
bresch 5da2842dbc Multicopter mixer - Always unsaturate low-saturated motors when possible 2018-03-23 10:35:08 +01:00
Julien Lecoeur 262d9c790b MultirotorMixer: Apply thrust gain independently from other axes
Align the way motor output is computed with the model used in the mixer generation script.
previous:
`out = (roll_gain*roll + pitch_gain*pitch + yaw_gain*yaw + thrust)*out_gain`
new:
`out = roll_gain*roll + pitch_gain*pitch + yaw_gain*yaw + thrust_gain*thrust`
which is the standard matrix*vector multiplication.

This commit has 0 effect on symmetric platforms (i.e. most) as thrust_gain==1 on these platforms.
On asymmetric platform --where some thrust_gain are lower than 1-- the previous formulation resulted in coupling between thrust and other axes.

fixes #8628
2018-01-17 00:01:00 -05:00
Julien Lecoeur 26d95ef674 Mixers: Include mixer_multirotor_normalized.generated.h everywhere 2017-11-15 09:56:10 +01:00
Julien Lecoeur 89642a9203 Move src/module/systemlib/mixer to src/lib/mixer 2017-11-15 09:56:10 +01:00