You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Lorenz Meier 8a32e5a20d Mixers: Disable on unreachable boards 8 years ago
..
AAERTWF.main.mix added albatross config and mixer 9 years ago
AAVVTWFF.main.mix fixed flaps offset to have correct neutral position 9 years ago
AERT.main.mix Clean up mixers, remove unused pass-through mixers from planes clobbering up RAM 9 years ago
AET.main.mix Clean up mixers, remove unused pass-through mixers from planes clobbering up RAM 9 years ago
AETR.main.mix Clean up mixers, remove unused pass-through mixers from planes clobbering up RAM 9 years ago
CCPM.main.mix Changed naming of the mixers to get rid of umbiguity as outputs are actually going to be driven by io, not fmu 10 years ago
FMU_pass.mix Merge working changes into export-build branch. 12 years ago
FX79.main.mix romfs mixer files: remove executable bit of file permission 9 years ago
IO_pass.main.mix renamed IO_pass.mix to IO_pass.main.mix 10 years ago
IO_pass.mix created copy of IO_pass.mix -> IO_pass.main.mix 10 years ago
Q.main.mix Clean up mixers, remove unused pass-through mixers from planes clobbering up RAM 9 years ago
README.md fix mixers README.md 10 years ago
RET.main.mix Clean up mixers, remove unused pass-through mixers from planes clobbering up RAM 9 years ago
Viper.main.mix romfs mixer files: remove executable bit of file permission 9 years ago
X5.main.mix Clean up mixers, remove unused pass-through mixers from planes clobbering up RAM 9 years ago
bebop.main.mix Mixers: Disable on unreachable boards 8 years ago
blade130.main.mix Generic helicopter mixer 8 years ago
caipi.main.mix Caipi: Fix mixer and reverse params 10 years ago
caipirinha_vtol.main.mix reduce output scaling as workaround for broken output limits 9 years ago
claire.aux.mix Update claire.aux.mix 8 years ago
claire.main.mix Quad tilt vtol config (#4473) 9 years ago
coax.main.mix Removed 'degree' character that caused python3 to act up while pruning the mixer file 8 years ago
delta.main.mix Clean up mixers, remove unused pass-through mixers from planes clobbering up RAM 9 years ago
easystar.main.mix Changed naming of the mixers to get rid of umbiguity as outputs are actually going to be driven by io, not fmu 10 years ago
firefly6.aux.mix Bring back the ability to transition plus a partial cleanup of tiltrotor support and firefly6 config updates. 10 years ago
firefly6.main.mix Changed naming of the mixers to get rid of umbiguity as outputs are actually going to be driven by io, not fmu 10 years ago
hexa_+.main.mix Changed naming of the mixers to get rid of umbiguity as outputs are actually going to be driven by io, not fmu 10 years ago
hexa_cox.main.mix Changed naming of the mixers to get rid of umbiguity as outputs are actually going to be driven by io, not fmu 10 years ago
hexa_x.main.mix posix-configs: use 'mixer append' command for typhoon mount mixer 9 years ago
mount.aux.mix vmount: add mount and ROI implementation 9 years ago
mount_legs.aux.mix tap: add landing gear capability 8 years ago
octo_+.main.mix Changed naming of the mixers to get rid of umbiguity as outputs are actually going to be driven by io, not fmu 10 years ago
octo_cox.main.mix Changed naming of the mixers to get rid of umbiguity as outputs are actually going to be driven by io, not fmu 10 years ago
octo_cox_w.main.mix Add Steadidrone MAVRIK mixer and gains. 9 years ago
octo_x.main.mix Changed naming of the mixers to get rid of umbiguity as outputs are actually going to be driven by io, not fmu 10 years ago
pass.aux.mix TBS Disco config: Enable manual pass-through 10 years ago
phantom.main.mix Clean up mixers, remove unused pass-through mixers from planes clobbering up RAM 9 years ago
quad_+.main.mix Quad mixers: Add AUX1-2 passthrough 9 years ago
quad_+_vtol.main.mix Fix typo for Quad + mixer 10 years ago
quad_dc.main.mix Fix usage of Iris mixer, make space by deleting unused files 8 years ago
quad_h.main.mix Quad mixers: Add AUX1-2 passthrough 9 years ago
quad_w.main.mix Quad mixers: Add AUX1-2 passthrough 9 years ago
quad_x.main.mix Quad mixers: Add AUX1-2 passthrough 9 years ago
quad_x_vtol.main.mix Get closer to correct tailsitter mixer, still incomplete 9 years ago
skywalker.main.mix Changed naming of the mixers to get rid of umbiguity as outputs are actually going to be driven by io, not fmu 10 years ago
tri_y_yaw+.main.mix tricopter comment polish 10 years ago
tri_y_yaw-.main.mix tricopter comment polish 10 years ago
vtol_AAERT.aux.mix Don't use the control surface abbreviation but use the actual channel assignment. 10 years ago
vtol_AAVVT.aux.mix Added V-Tail VTOL config and mixer 9 years ago
vtol_delta.aux.mix vtol delta quad plane: adjusted mixer scaling 9 years ago
vtol_quad_x.main.mix Add support for a 'standard' VTOL with pusher/tractor motor. 10 years ago
wingwing.main.mix Changed naming of the mixers to get rid of umbiguity as outputs are actually going to be driven by io, not fmu 10 years ago
zmr250.main.mix Mixers: Disable on unreachable boards 8 years ago

README.md

PX4 mixer definitions

Files in this directory implement example mixers that can be used as a basis for customisation, or for general testing purposes.

For a detailed description of the mixing architecture and examples see: http://px4.io/dev/mixing

Syntax

Mixer definitions are text files; lines beginning with a single capital letter followed by a colon are significant. All other lines are ignored, meaning that explanatory text can be freely mixed with the definitions.

Each file may define more than one mixer; the allocation of mixers to actuators is specific to the device reading the mixer definition, and the number of actuator outputs generated by a mixer is specific to the mixer.

For example: each simple or null mixer is assigned to outputs 1 to x in the order they appear in the mixer file.

A mixer begins with a line of the form

<tag>: <mixer arguments>

The tag selects the mixer type; 'M' for a simple summing mixer, 'R' for a multirotor mixer, etc.

Null Mixer

A null mixer consumes no controls and generates a single actuator output whose value is always zero. Typically a null mixer is used as a placeholder in a collection of mixers in order to achieve a specific pattern of actuator outputs.

The null mixer definition has the form:

Z:

Simple Mixer

A simple mixer combines zero or more control inputs into a single actuator output. Inputs are scaled, and the mixing function sums the result before applying an output scaler.

A simple mixer definition begins with:

M: <control count>
O: <-ve scale> <+ve scale> <offset> <lower limit> <upper limit>

If is zero, the sum is effectively zero and the mixer will output a fixed value that is constrained by and .

The second line defines the output scaler with scaler parameters as discussed above. Whilst the calculations are performed as floating-point operations, the values stored in the definition file are scaled by a factor of 10000; i.e. an offset of -0.5 is encoded as -5000.

The definition continues with entries describing the control inputs and their scaling, in the form:

S: <group> <index> <-ve scale> <+ve scale> <offset> <lower limit> <upper limit>

The value identifies the control group from which the scaler will read, and the value an offset within that group. These values are specific to the device reading the mixer definition.

When used to mix vehicle controls, mixer group zero is the vehicle attitude control group, and index values zero through three are normally roll, pitch, yaw and thrust respectively.

The remaining fields on the line configure the control scaler with parameters as discussed above. Whilst the calculations are performed as floating-point operations, the values stored in the definition file are scaled by a factor of 10000; i.e. an offset of -0.5 is encoded as -5000.

Multirotor Mixer

The multirotor mixer combines four control inputs (roll, pitch, yaw, thrust) into a set of actuator outputs intended to drive motor speed controllers.

The mixer definition is a single line of the form:

R: <geometry> <roll scale> <pitch scale> <yaw scale> <deadband>

The supported geometries include:

  • 4x - quadrotor in X configuration
  • 4+ - quadrotor in + configuration
  • 6x - hexcopter in X configuration
  • 6+ - hexcopter in + configuration
  • 8x - octocopter in X configuration
  • 8+ - octocopter in + configuration

Each of the roll, pitch and yaw scale values determine scaling of the roll, pitch and yaw controls relative to the thrust control. Whilst the calculations are performed as floating-point operations, the values stored in the definition file are scaled by a factor of 10000; i.e. an factor of 0.5 is encoded as 5000.

Roll, pitch and yaw inputs are expected to range from -1.0 to 1.0, whilst the thrust input ranges from 0.0 to 1.0. Output for each actuator is in the range -1.0 to 1.0.

In the case where an actuator saturates, all actuator values are rescaled so that the saturating actuator is limited to 1.0.