Commit Graph

28 Commits

Author SHA1 Message Date
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
Coby 664001921e quad_plus geometry fix typo in rear motor name (#9008) 2018-03-04 18:24:10 -05:00
Roman 04a89f7e9b mixer lib: added methods to fetch the active trim values
Signed-off-by: Roman <bapstroman@gmail.com>
2018-02-23 15:28:22 +01:00
Roman 29c60a1fd4 mixer_group: do not clamp offset to arbitrary value
- allow the user to apply an offset that covers the entire servo range

Signed-off-by: Roman <bapstroman@gmail.com>
2018-02-23 15:28:22 +01:00
Julien Lecoeur b7d7d1209b px_generate_mixers.py: scale mixer so that sum(z_thrust_scale)==n_rotors 2018-01-17 00:01:00 -05: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
Daniel Agar 2756c76613 mixer lib delete old multi_tables.py and cleanup cmake (#8658) 2018-01-11 15:56:15 -05:00
Julien Lecoeur 9439eaa5fa Python import error: Recommend pip over apt-get
closes #8297

The package python-toml does not exist in older (<= 14.04) versions of ubuntu.
2017-11-26 14:07:08 -05:00
Julien Lecoeur 26d95ef674 Mixers: Include mixer_multirotor_normalized.generated.h everywhere 2017-11-15 09:56:10 +01:00
Julien Lecoeur 4be4ad86a0 Mixers: Add geometry quad_s250aq 2017-11-15 09:56:10 +01:00
Julien Lecoeur 3a1c5f8a94 Mixers: do not allow several mixers with same name or key 2017-11-15 09:56:10 +01:00
Julien Lecoeur 76447b0f4e Mixers: Use geometry filename as mixer name 2017-11-15 09:56:10 +01:00
Julien Lecoeur d43b33b1c4 Move src/lib/mixer/geoms to src/lib/mixer/geometries 2017-11-15 09:56:10 +01:00
Julien Lecoeur b6911c2266 Mixers: Rename geom -> geometry(ies) 2017-11-15 09:56:10 +01:00
Julien Lecoeur c95229faab Mixers: add --verbose option to print matrices 2017-11-15 09:56:10 +01:00
Julien Lecoeur 142cd7ee75 Mixers: write to stdout if no output file is provided 2017-11-15 09:56:10 +01:00
Julien Lecoeur 679f33b406 Mixers: raise exception if no input geometry is provided 2017-11-15 09:56:10 +01:00
Julien Lecoeur 9e045e3b2a Mixers: use os.path.join 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