somebody-once-told-me
3943025f32
Centralize yaw margin ( #23982 )
2024-11-20 09:52:36 +01:00
BazookaJoe1900
4d83badba1
fix files tags on the header comments ( #23564 )
2024-09-19 09:25:18 +03:00
somebody-once-told-me
f40ede6087
Control Allocation Sequential Desaturation unit tests ( #22612 )
...
* [control_allocation] add unit tests for ControlAllocationSequentialDesaturation
* complete first 2 unit tests
* add yaw test
* add more unit tests
* improve comments
* format
* address review comments
* submodule update
* Update src/modules/control_allocator/ControlAllocation/ControlAllocationSequentialDesaturationTest.cpp
Co-authored-by: Silvan Fuhrer <silvan@auterion.com >
* Update src/modules/control_allocator/ControlAllocation/ControlAllocationSequentialDesaturationTest.cpp
Co-authored-by: Silvan Fuhrer <silvan@auterion.com >
* Update src/modules/control_allocator/ControlAllocation/ControlAllocationSequentialDesaturationTest.cpp
Co-authored-by: Silvan Fuhrer <silvan@auterion.com >
* remove float suffix for logical integers, add missing float suffixes for logical float zeros, and make YAW_MOTORS an int
---------
Co-authored-by: Master Chief <master-chief@the-void.com >
Co-authored-by: Silvan Fuhrer <silvan@auterion.com >
2024-01-26 15:17:54 +01:00
somebody-once-told-me
3d5c2ef6c4
[control_allocation] small function comment typo fix ( #22607 )
...
Co-authored-by: Master Chief <master-chief@the-void.com >
2024-01-08 11:12:06 +01:00
Silvan Fuhrer
6db92b4011
ControlAllocation: remove actuator trim value from actuator_sp to calculate allocated control
...
Signed-off-by: Silvan Fuhrer <silvan@auterion.com >
2022-10-04 07:51:25 +02:00
Alessandro Simovic
20ccfbb719
control_allocator: remove failed motor from effectiveness
...
- limit to handling only 1 motor failure
- Log which motor failures are handled
- Remove motor from effectiveness matrix without
recomputing the scale / normalization
2022-05-12 07:58:56 +02:00
Beat Küng
ddad4c31c9
control_allocator: compute thrust scaling individually per axis
...
Before, adding the pusher to the same matrix as the upwards motors affected
the scaling for the upwards motors, resulting in values not equal to -1
anymore.
2022-02-25 08:30:58 +01:00
Silvan Fuhrer
cbb8c90245
ControlAllocation: fix calculation of roll/pitch normalization scale
...
Take into account the actual number of roll and pitch acutators,
instead of assuming that all actuators have a roll/pitch component.
Signed-off-by: Silvan Fuhrer <silvan@auterion.com >
2022-01-19 08:22:12 +01:00
Silvan Fuhrer
0950bb81ab
ControlAllocation: update normalization scale only if matrix updated is forced
...
The forced flag is used to distinguish between updates due to a configuration
(parameter) change (only enabled when disarmed), and matrix updates due to motor
tilt change. Only update the normalization scale if the forced flag is true, and
use a tilt angle of vertical position for it to have the scales tilt-invariant.
Signed-off-by: Silvan Fuhrer <silvan@auterion.com >
2022-01-19 08:22:12 +01:00
Beat Küng
5259877b1b
control_allocator: update matrix normalization
...
- only normalize rpy for MC matrices
- for thrust use the 3D vector, so it works for FW and tilt rotors as well
This keeps MC unchanged.
2021-12-24 20:06:13 -05:00
Beat Küng
4c80adfaf1
control_allocator: implement trim + slew rate limits configuration
2021-12-24 20:06:13 -05:00
Beat Küng
70e46a194f
control_allocator: major refactoring & additions
...
- allow effectiveness matrix to select control allocator method
(desaturation algorithm)
- add actuator_servos publication
- add support for multiple matrices (for vtol)
- add updateSetpoint callback method to actuator effectiveness to allow it
to manipulate the actuator setpoint after allocation
- handle motor stopping & reversal
- add control surfaces & tilt servos
- handle standard vtol + tiltrotor
- rename MC rotors params & class to be more generically usable
- fixes and enables ActuatorEffectivenessRotorsTest
2021-12-24 20:06:13 -05:00
Beat Küng
2809dd8944
control_allocator: remove min/max/scale params
2021-11-23 12:40:22 -05:00
Beat Küng
b29d9db7f1
control_allocator: limit status publication rate to 200Hz
...
Reduces CPU load by ~3.5% on F4 @2khz.
And compute getAllocatedControl as needed (~1.5% CPU reduction)
2021-11-23 12:40:22 -05:00
Beat Küng
a0e43bca96
msg: remove unused vehicle_actuator_setpoint topic
2021-11-23 12:40:22 -05:00
Beat Küng
52a2ef34fd
mixer_module: add THR_MDL_FAC for SYS_CTRL_ALLOC=1
2021-11-23 12:40:22 -05:00
bresch
d47f9f155a
MC mixer: replace multirotor_motor_limits by control_allocator_status
...
CA: fix saturation computation
Since the CA matrix is normalized, the same scale applied to be used when using the effectiveness matrix
MCRateControl: use control_allocator_status to get saturation info
2021-11-09 10:35:10 -05:00
Beat Küng
38fa65a47e
control_allocator: remove direct mixer, add actuator_{motors,servos} instead
2021-10-18 18:45:19 -04:00
bresch
ba1b7f3a07
CA pseudo inverse: set all small elements in CA matrix to zero
...
This avoids problems in the sequencial desaturation method where vectors
of the CA matrix are used to desaturate the motors.
2021-10-08 09:35:40 +02:00
bresch
b18b7e84d2
CA pseudo-inverse: normalize control allocation matrix
2021-10-08 09:35:40 +02:00
Beat Küng
291ca246d2
matrix: update submodule (improves matrix inversion)
2021-09-05 23:18:28 -04:00
Beat Küng
212ec821b1
control_allocator: set unused actuators to trim instead of min
2021-01-18 11:25:37 -05:00
Beat Küng
3606f86518
control_allocator: ensure unused outputs are initialized to min
...
Mostly important in cases where the ouputs would change (e.g. param change)
2021-01-18 11:25:37 -05:00
Beat Küng
3dad79d8f5
control_allocator: inline one-line setters & getters
2021-01-18 11:25:37 -05:00
Beat Küng
0e66b0876b
control_allocator: change SequentialDesaturation to existing MC mixer
...
And limit the operations to the number of configured outputs.
Only using the number of configured actuators reduces CPU load by ~2% on
F7 @1khz.
2021-01-18 11:25:37 -05:00
Julien Lecoeur
343cf5603e
initial control allocation support
...
- control allocation module with multirotor, VTOL standard, and tiltrotor support
- angular_velocity_controller
- See https://github.com/PX4/PX4-Autopilot/pull/13351 for details
Co-authored-by: Silvan Fuhrer <silvan@auterion.com >
Co-authored-by: Roman Bapst <bapstroman@gmail.com >
2021-01-18 11:25:37 -05:00