px4 mixer原文
来源:互联网 发布:qq聊天监控软件 编辑:程序博客网 时间:2024/04/28 14:00
原文链接:https://pixhawk.org/dev/mixing
Control Mixing
This page discusses the general-purpose control mixing architecture in PX4. If you are looking for specific mixer setup instructions, you should go to the Platforms page.
Custom Mixer
Terminology
- Actuator Control Groups: An actuator control group is a set of 8 outputs which cover one type of actuation, e.g. for the airframe, payload or gimbals. It is emitted by an actuator and the input to the mixer. Different control groups can be emitted by different processes.
- Mixers: A mixer is a set of individual scalers / mappers which read from control inputs and write to actuator outputs.
- Actuator Output Groups: An actuator output group is a set of 1 to 8 outputs which are part of one physical output device, e.g. PX4FMU or PX4IO. It represents the output of the mixer.
Video Example
The mixing architecture is capable to deal with relatively complex airframes, as shown in this video:
Example Mixers and Syntax Explanation
The following image explains the mixing for a wing only elevon configuration (roll and pitch inputs mixed together for 2 elevon servo actuators) The “output channels” (Pixhawk pins) are assigned to the mixer description file based upon the order they appear in the mix's file:
If you wanted to change only the second output, channel-1 (Pixhawk pin 2), you still need an entry for first output, channel-0 (Pixhawk pin 1)
EXAMPLE: Roll has no mix here, but is needed to have the pitch description be second in the file.
When using the multirotor mixer (R:), it takes the place of the first three output pins mixes. The first mix after an “R:” is pin4.
Output Groups and Rates
Configuration
The output rates can be configured with this command line app: pwm (Application) or via IOCTLs (please refer to the source code of the app for examples on how to use the IOCTL interface).
Output Rates
The default output rate in the RC industry is 50 Hz, which normal analog servos sustain well. Digital servos can accept higher rates. The recommended output rate for multicopter ESCs is 400 Hz, in order to minimise latency (NOT because the outputs would require 400 Hz, as multicopter rotors spin only at 80-120 Hz and can't change speed multiple times during a single revolution, but to actually overcome the input filtering most motor controllers have and to minimize worst-case latency if the attitude control loop is not synchronized to the PWM generation).
Output Groups
The hardware generating the PWM signal is grouped into different timers, and each timer outputs on one or multiple pins. These pins can change their output rate only together. The three groups for IO (MAIN output on Pixhawk) are:
- channel group 0: channels 1 2
- channel group 1: channels 5 6 7 8
- channel group 2: channels 3 4
Mixing Details
Terminology
Mixer
A module that combines a set of inputs according to pre-defined rules and parameters to produce a set of outputs.
Scaler
An arithmetic module that adjusts a single input according to parameters to generate a single output.
Input
Inputs are expected to be in the range -1.0 (-10000) to 1.0 (10000) for roll, pitch and yaw, and 0 - 1.0 (10000) for thrust and made available to the mixer by the module or component that owns the mixer. This may be a vehicle control such as 'roll', or any other number.
Output
The result of applying the mixer rules to zero or more inputs.
Mixing Basics
A module invokes a mixer (or mixer group, see below) when it wants to generate a fresh set of outputs; for example, when it is notified that the inputs it has been watching have changed.
The mixer will obtain the inputs it requires, scale and mix them according to the mixer definition, and generate the output set. The module is then free to use the outputs as required; for example to update servo outputs, or to publish the results for other modules to use.
Scaling
Mixer inputs are often scaled in order to adjust the relative significance of each input during the mixing phase. Several different scaling approaches are used, depending on circumstance.
Simple Scaling
The simplest form of scaling simply multiplies the input value by a constant scaling factor. This approach is used when the base value for an input is well-known, or the value is not otherwise required to be adjusted.
Linear Scaling
This scaling technique allows for asymmetrical scaling either side of input zero, as well as biasing the result and clamping the output.
Inputs to this scaler are:
- negative scale factor
- positive scale factor
- offset
- lower output limit
- upper output limit
The scaling workflow looks like this:
if (input < 0) output = (input * NEGATIVE_SCALE) + OFFSETelse output = (input * POSITIVE_SCALE) + OFFSETif (output < LOWER_LIMIT) output = LOWER_LIMITif (output > UPPER_LIMIT) output = UPPER_LIMIT
Mixers
The rules that are applied vary from mixer to mixer, with the following mixers being defined:
Simple Mixer
As its name suggests, the simple mixer reads one or more inputs, scales them, sums the scaled values, scales the result and returns a single output.
input input input | | | v v v scale scale scale | | | | v | +-------> mix <------+ | scale | v output
Parameters to the simple mixer are:
- the set of inputs
- scaling parameters for each input
- scaling parameters for the output
Both the input and output scaling is performed using linear scalers.
Multirotor Mixer
This mixer is designed for mixing flight controls (roll, pitch, yaw, thrust) to produce motor speed control outputs suitable for multirotor air vehicles.
Parameters to the multirotor mixer (R:) are:
R: <geometry> <roll scale> <pitch scale> <yaw scale> <deadband>
- the geometry of the vehicle
- separate roll, pitch and yaw control scaling factors
- motor output deadband
A variety of vehicle geometries are known to the mixer, including common quad (4X,4+), hex (6X,6+) and octo (8X,8+) and tri (3y)configurations. The mixer can be extended to any configuration that can be expressed using separate roll, pitch and yaw compensation factors for each rotor. In all cases, simple scaling is applied to the inputs.
Ratio Clamping
The output from the multirotor mixer is clamped such that at most one rotor output is saturated, in order to avoid issues rolling heavy vehicles, and the output value is never permitted to fall into the deadband in order to avoid issues with motor re-start whilst in flight.
In addition to that, any clamping respects the ratio of the input, to prevent multi rotors from flipping over. If a motor gets into positive or negative saturation, the overall thrust will be reduced so that the ratio between the individual motors can be satisfied without saturation.
Clamping Example
Input (quadrotor, four motors), Limit is 100:
150 75 75 75
Resulting clamped output:
100 50 50 50
Note that motor 1 has still double the speed of motors 2-4, so the resulting attitude will be correct. The vehicle will however not increase altitude (or decrease altitude) compared to the non-clamped motor inputs. If the clamping would just limit motor 1, the vehicle may flip over or become unstable, because the ratio between the motors that defines the collective thrust plane is violated.
Control Groups
Control groups are grouped actuator control positions. These functional groups are centered around core flight control (group 0), auxiliary flight control (group 1), payload (group 2) and manual passthrough (group 3, e.g. for gimbal control).
Control groups 1, 2, and 3 are not sent to the actuators unless there is a change in control group 0. If, for example, aux0 was being used to control the pitch setting of a gimbal motor, the pitch would only change when the flight control motors associated with control group 0 were armed.
Control Group #0 (Flight Control)
- 0: roll (-1..1)
- 1: pitch (-1..1)
- 2: yaw (-1..1)
- 3: throttle (0..1 normal range, -1..1 for variable pitch / thrust reversers)
- 4: flaps (-1..1)
- 5: spoilers (-1..1)
- 6: airbrakes (-1..1)
- 7: landing gear (-1..1)
Control Group #1 (Flight Control VTOL/Alternate)
- 0: roll ALT (-1..1)
- 1: pitch ALT (-1..1)
- 2: yaw ALT (-1..1)
- 3: throttle ALT (0..1 normal range, -1..1 for variable pitch / thrust reversers)
- 4: reserved / aux0
- 5: reserved / aux1
- 6: reserved / aux2
- 7: reserved / aux3
Control Group #2 (Payload)
- 0: gimbal roll
- 1: gimbal pitch
- 2: gimbal yaw
- 3: gimbal shutter
- 4: reserved
- 5: reserved
- 6: reserved
- 7: reserved (parachute, -1..1)
Control Group #3 (Manual Passthrough)
- 0: RC roll
- 1: RC pitch
- 2: RC yaw
- 3: RC throttle
- 4: RC mode switch
- 5: RC aux1
- 6: RC aux2
- 7: RC aux3
Virtual Control Groups
These groups are NOT mixer inputs, but serve as meta-channels to feed fixed wing and multicopter controller outputs into the VTOL governor module.
Control Group #4 (Flight Control MC VIRTUAL)
- 0: roll ALT (-1..1)
- 1: pitch ALT (-1..1)
- 2: yaw ALT (-1..1)
- 3: throttle ALT (0..1 normal range, -1..1 for variable pitch / thrust reversers)
- 4: reserved / aux0
- 5: reserved / aux1
- 6: reserved / aux2
- 7: reserved / aux3
Control Group #5 (Flight Control FW VIRTUAL)
- 0: roll ALT (-1..1)
- 1: pitch ALT (-1..1)
- 2: yaw ALT (-1..1)
- 3: throttle ALT (0..1 normal range, -1..1 for variable pitch / thrust reversers)
- 4: reserved / aux0
- 5: reserved / aux1
- 6: reserved / aux2
- 7: reserved / aux3
- px4 mixer原文
- px4: actuators control, control group 和 mixer科普
- 原文
- Mixer API
- mixer函数
- Mixer是指混音器
- Mixer编程
- hw mixer还是sw mixer实现setMasterVolume?
- PX4时钟
- PX4调试
- PX4概念
- PX4二次开发
- PX4 - position_estimator_inav
- px4学习
- px4基本知识
- 噪音及mixer
- 音效:pygame.mixer
- Simple Mixer Control Wrapper
- Windows驱动开发——WDM驱动
- java中+(加号)的作用区分
- 【量化小讲堂-Python&Pandas系列13】数据告诉你:惊人的指数定投策略
- windows 驱动开发 DDK与WDK WDM的区别
- Linux dubbo监控中心的安装
- px4 mixer原文
- 浅谈java多线程中的内存可见性
- linux卸载内核
- Android之四大布局
- 欢迎使用CSDN-markdown编辑器
- 内存池的理解
- maven设置打jar包并引入依赖包
- 11.13时间序列还要看理论
- 浅谈测量javascript脚本程序执行消耗的时间