Andrew Tridgell
9 years ago
15 changed files with 0 additions and 570 deletions
@ -1,64 +0,0 @@
@@ -1,64 +0,0 @@
|
||||
Aileron/rudder/elevator/throttle mixer for PX4FMU |
||||
================================================== |
||||
|
||||
This file defines mixers suitable for controlling a fixed wing aircraft with |
||||
aileron, rudder, elevator and throttle controls using PX4FMU. The configuration |
||||
assumes the aileron servo(s) are connected to PX4FMU servo output 0, the |
||||
elevator to output 1, the rudder to output 2 and the throttle to output 3. |
||||
|
||||
Inputs to the mixer come from channel group 0 (vehicle attitude), channels 0 |
||||
(roll), 1 (pitch) and 3 (thrust). |
||||
|
||||
Aileron mixer |
||||
------------- |
||||
Two scalers total (output, roll). |
||||
|
||||
This mixer assumes that the aileron servos are set up correctly mechanically; |
||||
depending on the actual configuration it may be necessary to reverse the scaling |
||||
factors (to reverse the servo movement) and adjust the offset, scaling and |
||||
endpoints to suit. |
||||
|
||||
As there is only one output, if using two servos adjustments to compensate for |
||||
differences between the servos must be made mechanically. To obtain the correct |
||||
motion using a Y cable, the servos can be positioned reversed from one another. |
||||
|
||||
M: 1 |
||||
O: 10000 10000 0 -10000 10000 |
||||
S: 0 0 10000 10000 0 -10000 10000 |
||||
|
||||
Elevator mixer |
||||
------------ |
||||
Two scalers total (output, roll). |
||||
|
||||
This mixer assumes that the elevator servo is set up correctly mechanically; |
||||
depending on the actual configuration it may be necessary to reverse the scaling |
||||
factors (to reverse the servo movement) and adjust the offset, scaling and |
||||
endpoints to suit. |
||||
|
||||
M: 1 |
||||
O: 10000 10000 0 -10000 10000 |
||||
S: 0 1 -10000 -10000 0 -10000 10000 |
||||
|
||||
Rudder mixer |
||||
------------ |
||||
Two scalers total (output, yaw). |
||||
|
||||
This mixer assumes that the rudder servo is set up correctly mechanically; |
||||
depending on the actual configuration it may be necessary to reverse the scaling |
||||
factors (to reverse the servo movement) and adjust the offset, scaling and |
||||
endpoints to suit. |
||||
|
||||
M: 1 |
||||
O: 10000 10000 0 -10000 10000 |
||||
S: 0 2 10000 10000 0 -10000 10000 |
||||
|
||||
Motor speed mixer |
||||
----------------- |
||||
Two scalers total (output, thrust). |
||||
|
||||
This mixer generates a full-range output (-1 to 1) from an input in the (0 - 1) |
||||
range. Inputs below zero are treated as zero. |
||||
|
||||
M: 1 |
||||
O: 10000 10000 0 -10000 10000 |
||||
S: 0 3 0 20000 -10000 -10000 10000 |
@ -1,60 +0,0 @@
@@ -1,60 +0,0 @@
|
||||
Aileron/elevator/throttle mixer for PX4FMU |
||||
================================================== |
||||
|
||||
This file defines mixers suitable for controlling a fixed wing aircraft with |
||||
aileron, elevator and throttle controls using PX4FMU. The configuration assumes |
||||
the aileron servo(s) are connected to PX4FMU servo output 0, the elevator to |
||||
output 1 and the throttle to output 3. |
||||
|
||||
Inputs to the mixer come from channel group 0 (vehicle attitude), channels 0 |
||||
(roll), 1 (pitch) and 3 (thrust). |
||||
|
||||
Aileron mixer |
||||
------------- |
||||
Two scalers total (output, roll). |
||||
|
||||
This mixer assumes that the aileron servos are set up correctly mechanically; |
||||
depending on the actual configuration it may be necessary to reverse the scaling |
||||
factors (to reverse the servo movement) and adjust the offset, scaling and |
||||
endpoints to suit. |
||||
|
||||
As there is only one output, if using two servos adjustments to compensate for |
||||
differences between the servos must be made mechanically. To obtain the correct |
||||
motion using a Y cable, the servos can be positioned reversed from one another. |
||||
|
||||
Alternatively, output 2 could be used as a second aileron servo output with |
||||
separate mixing. |
||||
|
||||
M: 1 |
||||
O: 10000 10000 0 -10000 10000 |
||||
S: 0 0 10000 10000 0 -10000 10000 |
||||
|
||||
Elevator mixer |
||||
------------ |
||||
Two scalers total (output, roll). |
||||
|
||||
This mixer assumes that the elevator servo is set up correctly mechanically; |
||||
depending on the actual configuration it may be necessary to reverse the scaling |
||||
factors (to reverse the servo movement) and adjust the offset, scaling and |
||||
endpoints to suit. |
||||
|
||||
M: 1 |
||||
O: 10000 10000 0 -10000 10000 |
||||
S: 0 1 -10000 -10000 0 -10000 10000 |
||||
|
||||
Output 2 |
||||
-------- |
||||
This mixer is empty. |
||||
|
||||
Z: |
||||
|
||||
Motor speed mixer |
||||
----------------- |
||||
Two scalers total (output, thrust). |
||||
|
||||
This mixer generates a full-range output (-1 to 1) from an input in the (0 - 1) |
||||
range. Inputs below zero are treated as zero. |
||||
|
||||
M: 1 |
||||
O: 10000 10000 0 -10000 10000 |
||||
S: 0 3 0 20000 -10000 -10000 10000 |
@ -1,52 +0,0 @@
@@ -1,52 +0,0 @@
|
||||
Delta-wing mixer for PX4FMU |
||||
=========================== |
||||
|
||||
Designed for Bormatec Camflyer Q |
||||
|
||||
This file defines mixers suitable for controlling a delta wing aircraft using |
||||
PX4FMU. The configuration assumes the elevon servos are connected to PX4FMU |
||||
servo outputs 0 and 1 and the motor speed control to output 3. Output 2 is |
||||
assumed to be unused. |
||||
|
||||
Inputs to the mixer come from channel group 0 (vehicle attitude), channels 0 |
||||
(roll), 1 (pitch) and 3 (thrust). |
||||
|
||||
See the README for more information on the scaler format. |
||||
|
||||
Elevon mixers |
||||
------------- |
||||
Three scalers total (output, roll, pitch). |
||||
|
||||
On the assumption that the two elevon servos are physically reversed, the pitch |
||||
input is inverted between the two servos. |
||||
|
||||
The scaling factor for roll inputs is adjusted to implement differential travel |
||||
for the elevons. |
||||
|
||||
M: 2 |
||||
O: 10000 10000 0 -10000 10000 |
||||
S: 0 0 -5000 -8000 0 -10000 10000 |
||||
S: 0 1 8000 8000 0 -10000 10000 |
||||
|
||||
M: 2 |
||||
O: 10000 10000 0 -10000 10000 |
||||
S: 0 0 -8000 -5000 0 -10000 10000 |
||||
S: 0 1 -8000 -8000 0 -10000 10000 |
||||
|
||||
Output 2 |
||||
-------- |
||||
This mixer is empty. |
||||
|
||||
Z: |
||||
|
||||
Motor speed mixer |
||||
----------------- |
||||
Two scalers total (output, thrust). |
||||
|
||||
This mixer generates a full-range output (-1 to 1) from an input in the (0 - 1) |
||||
range. Inputs below zero are treated as zero. |
||||
|
||||
M: 1 |
||||
O: 10000 10000 0 -10000 10000 |
||||
S: 0 3 0 20000 -10000 -10000 10000 |
||||
|
@ -1,53 +0,0 @@
@@ -1,53 +0,0 @@
|
||||
Rudder/elevator/throttle mixer for PX4FMU |
||||
========================================= |
||||
|
||||
This file defines mixers suitable for controlling a fixed wing aircraft with |
||||
rudder, elevator and throttle controls using PX4FMU. The configuration assumes |
||||
the rudder servo is connected to PX4FMU servo output 0, the elevator to output 1 |
||||
and the throttle to output 3. |
||||
|
||||
Inputs to the mixer come from channel group 0 (vehicle attitude), channels 0 |
||||
(roll), 1 (pitch) and 3 (thrust). |
||||
|
||||
Rudder mixer |
||||
------------ |
||||
Two scalers total (output, roll). |
||||
|
||||
This mixer assumes that the rudder servo is set up correctly mechanically; |
||||
depending on the actual configuration it may be necessary to reverse the scaling |
||||
factors (to reverse the servo movement) and adjust the offset, scaling and |
||||
endpoints to suit. |
||||
|
||||
M: 1 |
||||
O: 10000 10000 0 -10000 10000 |
||||
S: 0 0 10000 10000 0 -10000 10000 |
||||
|
||||
Elevator mixer |
||||
------------ |
||||
Two scalers total (output, roll). |
||||
|
||||
This mixer assumes that the elevator servo is set up correctly mechanically; |
||||
depending on the actual configuration it may be necessary to reverse the scaling |
||||
factors (to reverse the servo movement) and adjust the offset, scaling and |
||||
endpoints to suit. |
||||
|
||||
M: 1 |
||||
O: 10000 10000 0 -10000 10000 |
||||
S: 0 1 -10000 -10000 0 -10000 10000 |
||||
|
||||
Output 2 |
||||
-------- |
||||
This mixer is empty. |
||||
|
||||
Z: |
||||
|
||||
Motor speed mixer |
||||
----------------- |
||||
Two scalers total (output, thrust). |
||||
|
||||
This mixer generates a full-range output (-1 to 1) from an input in the (0 - 1) |
||||
range. Inputs below zero are treated as zero. |
||||
|
||||
M: 1 |
||||
O: 10000 10000 0 -10000 10000 |
||||
S: 0 3 0 20000 -10000 -10000 10000 |
@ -1,50 +0,0 @@
@@ -1,50 +0,0 @@
|
||||
Delta-wing mixer for PX4FMU |
||||
=========================== |
||||
|
||||
This file defines mixers suitable for controlling a delta wing aircraft using |
||||
PX4FMU. The configuration assumes the elevon servos are connected to PX4FMU |
||||
servo outputs 0 and 1 and the motor speed control to output 3. Output 2 is |
||||
assumed to be unused. |
||||
|
||||
Inputs to the mixer come from channel group 0 (vehicle attitude), channels 0 |
||||
(roll), 1 (pitch) and 3 (thrust). |
||||
|
||||
See the README for more information on the scaler format. |
||||
|
||||
Elevon mixers |
||||
------------- |
||||
Three scalers total (output, roll, pitch). |
||||
|
||||
On the assumption that the two elevon servos are physically reversed, the pitch |
||||
input is inverted between the two servos. |
||||
|
||||
The scaling factor for roll inputs is adjusted to implement differential travel |
||||
for the elevons. |
||||
|
||||
M: 2 |
||||
O: 10000 10000 0 -10000 10000 |
||||
S: 0 0 -3000 -5000 0 -10000 10000 |
||||
S: 0 1 -5000 -5000 0 -10000 10000 |
||||
|
||||
M: 2 |
||||
O: 10000 10000 0 -10000 10000 |
||||
S: 0 0 -5000 -3000 0 -10000 10000 |
||||
S: 0 1 5000 5000 0 -10000 10000 |
||||
|
||||
Output 2 |
||||
-------- |
||||
This mixer is empty. |
||||
|
||||
Z: |
||||
|
||||
Motor speed mixer |
||||
----------------- |
||||
Two scalers total (output, thrust). |
||||
|
||||
This mixer generates a full-range output (-1 to 1) from an input in the (0 - 1) |
||||
range. Inputs below zero are treated as zero. |
||||
|
||||
M: 1 |
||||
O: 10000 10000 0 -10000 10000 |
||||
S: 0 3 0 20000 -10000 -10000 10000 |
||||
|
@ -1,50 +0,0 @@
@@ -1,50 +0,0 @@
|
||||
Delta-wing mixer for PX4FMU |
||||
=========================== |
||||
|
||||
This file defines mixers suitable for controlling a delta wing aircraft using |
||||
PX4FMU. The configuration assumes the elevon servos are connected to PX4FMU |
||||
servo outputs 0 and 1 and the motor speed control to output 3. Output 2 is |
||||
assumed to be unused. |
||||
|
||||
Inputs to the mixer come from channel group 0 (vehicle attitude), channels 0 |
||||
(roll), 1 (pitch) and 3 (thrust). |
||||
|
||||
See the README for more information on the scaler format. |
||||
|
||||
Elevon mixers |
||||
------------- |
||||
Three scalers total (output, roll, pitch). |
||||
|
||||
On the assumption that the two elevon servos are physically reversed, the pitch |
||||
input is inverted between the two servos. |
||||
|
||||
The scaling factor for roll inputs is adjusted to implement differential travel |
||||
for the elevons. |
||||
|
||||
M: 2 |
||||
O: 10000 10000 0 -10000 10000 |
||||
S: 0 0 3000 5000 0 -10000 10000 |
||||
S: 0 1 5000 5000 0 -10000 10000 |
||||
|
||||
M: 2 |
||||
O: 10000 10000 0 -10000 10000 |
||||
S: 0 0 5000 3000 0 -10000 10000 |
||||
S: 0 1 -5000 -5000 0 -10000 10000 |
||||
|
||||
Output 2 |
||||
-------- |
||||
This mixer is empty. |
||||
|
||||
Z: |
||||
|
||||
Motor speed mixer |
||||
----------------- |
||||
Two scalers total (output, thrust). |
||||
|
||||
This mixer generates a full-range output (-1 to 1) from an input in the (0 - 1) |
||||
range. Inputs below zero are treated as zero. |
||||
|
||||
M: 1 |
||||
O: 10000 10000 0 -10000 10000 |
||||
S: 0 3 0 20000 -10000 -10000 10000 |
||||
|
@ -1,7 +0,0 @@
@@ -1,7 +0,0 @@
|
||||
Multirotor mixer for PX4FMU |
||||
=========================== |
||||
|
||||
This file defines a single mixer for a hexacopter in the + configuration. All controls |
||||
are mixed 100%. |
||||
|
||||
R: 6+ 10000 10000 10000 0 |
@ -1,7 +0,0 @@
@@ -1,7 +0,0 @@
|
||||
Multirotor mixer for PX4FMU |
||||
=========================== |
||||
|
||||
This file defines a single mixer for a hexacopter in the X configuration. All controls |
||||
are mixed 100%. |
||||
|
||||
R: 6x 10000 10000 10000 0 |
@ -1,7 +0,0 @@
@@ -1,7 +0,0 @@
|
||||
Multirotor mixer for PX4FMU |
||||
=========================== |
||||
|
||||
This file defines a single mixer for a octocopter in the + configuration. All controls |
||||
are mixed 100%. |
||||
|
||||
R: 8+ 10000 10000 10000 0 |
@ -1,7 +0,0 @@
@@ -1,7 +0,0 @@
|
||||
Multirotor mixer for PX4FMU |
||||
=========================== |
||||
|
||||
This file defines a single mixer for a octocopter in the X configuration. All controls |
||||
are mixed 100%. |
||||
|
||||
R: 8x 10000 10000 10000 0 |
@ -1,38 +0,0 @@
@@ -1,38 +0,0 @@
|
||||
Passthrough mixer for PX4FMU |
||||
============================ |
||||
|
||||
This file defines passthrough mixers suitable for testing. |
||||
|
||||
Channel group 0, channels 0-7 are passed directly through to the outputs. |
||||
|
||||
M: 1 |
||||
O: 10000 10000 0 -10000 10000 |
||||
S: 0 0 10000 10000 0 -10000 10000 |
||||
|
||||
M: 1 |
||||
O: 10000 10000 0 -10000 10000 |
||||
S: 0 1 10000 10000 0 -10000 10000 |
||||
|
||||
M: 1 |
||||
O: 10000 10000 0 -10000 10000 |
||||
S: 0 2 10000 10000 0 -10000 10000 |
||||
|
||||
M: 1 |
||||
O: 10000 10000 0 -10000 10000 |
||||
S: 0 3 10000 10000 0 -10000 10000 |
||||
|
||||
M: 1 |
||||
O: 10000 10000 0 -10000 10000 |
||||
S: 0 4 10000 10000 0 -10000 10000 |
||||
|
||||
M: 1 |
||||
O: 10000 10000 0 -10000 10000 |
||||
S: 0 5 10000 10000 0 -10000 10000 |
||||
|
||||
M: 1 |
||||
O: 10000 10000 0 -10000 10000 |
||||
S: 0 6 10000 10000 0 -10000 10000 |
||||
|
||||
M: 1 |
||||
O: 10000 10000 0 -10000 10000 |
||||
S: 0 7 10000 10000 0 -10000 10000 |
@ -1,7 +0,0 @@
@@ -1,7 +0,0 @@
|
||||
Multirotor mixer for PX4FMU |
||||
=========================== |
||||
|
||||
This file defines a single mixer for a quadrotor in the + configuration. All controls |
||||
are mixed 100%. |
||||
|
||||
R: 4+ 10000 10000 10000 0 |
@ -1,7 +0,0 @@
@@ -1,7 +0,0 @@
|
||||
Multirotor mixer for PX4FMU |
||||
=========================== |
||||
|
||||
This file defines a single mixer for a quadrotor in the V configuration. All controls |
||||
are mixed 100%. |
||||
|
||||
R: 4v 10000 10000 10000 0 |
@ -1,7 +0,0 @@
@@ -1,7 +0,0 @@
|
||||
Multirotor mixer for PX4FMU |
||||
=========================== |
||||
|
||||
This file defines a single mixer for a quadrotor in the X configuration. All controls |
||||
are mixed 100%. |
||||
|
||||
R: 4x 10000 10000 10000 0 |
@ -1,154 +0,0 @@
@@ -1,154 +0,0 @@
|
||||
PX4 mixer definitions |
||||
===================== |
||||
|
||||
Files in this directory implement example mixers that can be used as a basis |
||||
for customisation, or for general testing purposes. |
||||
|
||||
Mixer basics |
||||
------------ |
||||
|
||||
Mixers combine control values from various sources (control tasks, user inputs, |
||||
etc.) and produce output values suitable for controlling actuators; servos, |
||||
motors, switches and so on. |
||||
|
||||
An actuator derives its value from the combination of one or more control |
||||
values. Each of the control values is scaled according to the actuator's |
||||
configuration and then combined to produce the actuator value, which may then be |
||||
further scaled to suit the specific output type. |
||||
|
||||
Internally, all scaling is performed using floating point values. Inputs and |
||||
outputs are clamped to the range -1.0 to 1.0. |
||||
|
||||
control control control |
||||
| | | |
||||
v v v |
||||
scale scale scale |
||||
| | | |
||||
| v | |
||||
+-------> mix <------+ |
||||
| |
||||
scale |
||||
| |
||||
v |
||||
out |
||||
|
||||
Scaling |
||||
------- |
||||
|
||||
Basic scalers provide linear scaling of the input to the output. |
||||
|
||||
Each scaler allows the input value to be scaled independently for inputs |
||||
greater/less than zero. An offset can be applied to the output, and lower and |
||||
upper boundary constraints can be applied. Negative scaling factors cause the |
||||
output to be inverted (negative input produces positive output). |
||||
|
||||
Scaler pseudocode: |
||||
|
||||
if (input < 0) |
||||
output = (input * NEGATIVE_SCALE) + OFFSET |
||||
else |
||||
output = (input * POSITIVE_SCALE) + OFFSET |
||||
|
||||
if (output < LOWER_LIMIT) |
||||
output = LOWER_LIMIT |
||||
if (output > UPPER_LIMIT) |
||||
output = UPPER_LIMIT |
||||
|
||||
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. |
||||
|
||||
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 <control count> is zero, the sum is effectively zero and the mixer will |
||||
output a fixed value that is <offset> constrained by <lower limit> and <upper |
||||
limit>. |
||||
|
||||
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 <control count> entries describing the control |
||||
inputs and their scaling, in the form: |
||||
|
||||
S: <group> <index> <-ve scale> <+ve scale> <offset> <lower limit> <upper limit> |
||||
|
||||
The <group> value identifies the control group from which the scaler will read, |
||||
and the <index> 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. |
Loading…
Reference in new issue