29 Commits

Author SHA1 Message Date
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
bcba3dfe52 control_allocator,angular_velocity_controller: run on rate_ctrl wq 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
Beat Küng
4346ac4a37 control_allocator: add mixer metadata 2021-11-23 12:40:22 -05:00
Beat Küng
f99c2617ad control_allocator: add module.yaml, add CA_MC_R_COUNT param & update defaults 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
183ab8bbe7 control_allocator: avoid default argument for virtual method getEffectivenessMatrix
clang tidy error:
/__w/PX4-Autopilot/PX4-Autopilot/src/modules/control_allocator/ActuatorEffectiveness/ActuatorEffectivenessMultirotor.cpp:50:34: error: default arguments on virtual or override methods are prohibited [google-default-arguments,-warnings-as-errors]
ActuatorEffectivenessMultirotor::getEffectivenessMatrix(matrix::Matrix<float, NUM_AXES, NUM_ACTUATORS> &matrix,
2021-10-18 18:45:19 -04: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
Peter van der Perk
d5e3e9a7bc [Kconfig] Decompose Kconfig, now each module has its own Kconfig
Which is better for versioning and decomposability
2021-10-07 10:09:01 -04:00
bresch
f09b34007e CA: reload CA matrix to newly created CA class properly
Also remove the dependency of ActuatorEffectivenessMultirotor
to param update uORB topic; the CA module
sends a "force" parameter when needed
2021-09-11 15:07:49 -04:00
bresch
cf5917d188 control_allocator: restructure param update
recompute effectiveness on param change
clear update at the end
2021-09-11 15:07:49 -04:00
Beat Küng
291ca246d2 matrix: update submodule (improves matrix inversion) 2021-09-05 23:18:28 -04:00
Matthias Grob
b824f33ae9 battery: publish measured values also when battery not connected 2021-07-01 14:24:38 +02:00
Daniel Agar
3e5e5ab1d5 control_allocator and angular_velocity_controller throttle parameter_update subscription 2021-01-18 11:25:37 -05:00
Beat Küng
c36340d29a ActuatorEffectivenessMultirotor: set effectiveness to zero when computing the matrix
Just to be on the safe side.
2021-01-18 11:25:37 -05: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
164511a7b5 control_allocator: avoid vector copies and sqrt() 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
Beat Küng
308f614735 refactor control_allocator: directly get the effectiveness matrix when updated
Reduces stack + RAM usage
2021-01-18 11:25:37 -05:00
Beat Küng
38782029ad fix control_allocator: set _last_run at the correct place 2021-01-18 11:25:37 -05:00
Beat Küng
0e86ab47f6 fix control_allocator: use 'delete' instead of 'free', guard against out-of-memory 2021-01-18 11:25:37 -05:00
Beat Küng
066464c4e8 control_allocator: remove unused _task_start 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