So transitions between stopped/not stopped respect the slew rate.
- Remove previous stopped motor handling in publish_actuator_controls
- Replace with handle_stopped_motors, called in Run() before slew
- Introduce ApplyNanToActuators in ControlAllocation to stop
- Refactor ice shedding slightly to fit new structure
This feature periodically spins the unused motors on VTOL airframes, to
break off ice that has built up in the motor while it is still feasible
to do so. Each ice shedding event sends a motor ouput of 0.01 to the
unused motors for 2 seconds.
Configured by `CA_ICE_PERIOD`, the duration of the entire cycle. Set to
0 to disable.
* rft: initial merging of controllers for spacecraft vehicles
* feat: rate controller nominal
* feat: spacecraft tooling for commander and VehicleStatus
* feat: spacecraft tooling for commander and VehicleStatus
* fix: format
* fix: format
* fix: remove iostream
* fix: remove iostream
* feat: spacecraft attitude control and minor refactoring of params
* feat: add position controller
* fix: format
* fix: moved trajectories to new message, removed derivative filters
* fix: format
* fix: removed extra newline
* fix: spacecraft allocation builds
* feat: add thrusters to effectivenes, add spacecraft build to cmake, clean comments
* feat: required changes for allocation
* feat: thruster simulation interface
* fix: update maximum and minimums
* fix: format
* fix: added newline at the end of spacecraft actuator effectiveness
* feat: configurable board pwm freq from Kconfig
* feat: mavlink compliant spacecraft definition
* feat: add orbiter to define
* boards: Increase TELEM2 rx buffer size for DDS over serial use-case (ARK Jetson)
feat: spacecraft tooling for commander and VehicleStatus
fix: format
fix: remove iostream
feat: mavlink compliant spacecraft definition
* feat: add orbiter to define
* feat: add orbiter to define
* fix: change mav_type to new spacecraft orbiter enum value
* fix: build issue
* feat: update mavlink
* feat: update mavlink to latest master with spacecraft
* feat: update mavlink
* feat: update mavlink to latest
* feat: cleanup and synchronization with new mavlink vehicle definition
* fix: get away without specifying spacecraft vehicle
* fix: removed unnecessary definition
* fix: format
* feat: cmake variant for spacecraft
* feat: proper mav_type and rc init
* fix: removed dart from build system
* add: thrusters to actuator type
* rft: reordering actuator type
* rft: initial merging of controllers for spacecraft vehicles
* feat: rate controller nominal
* fix: format
* feat: spacecraft attitude control and minor refactoring of params
* feat: add position controller
* fix: format
* fix: moved trajectories to new message, removed derivative filters
* fix: format
* fix: removed extra newline
* fix: spacecraft allocation builds
* feat: add thrusters to effectivenes, add spacecraft build to cmake, clean comments
* feat: required changes for allocation
* feat: thruster simulation interface
* fix: update maximum and minimums
* fix: format
* fix: added newline at the end of spacecraft actuator effectiveness
* feat: configurable board pwm freq from Kconfig
* feat: add orbiter to define
* feat: cleanup and synchronization with new mavlink vehicle definition
* fix: get away without specifying spacecraft vehicle
* fix: conflicts
* fix: format
* fix: remove duplicate entry
* rft: remove Kconfig changes
* rft: revert main Kconfig
* rft: revert main kcoonfig on platforms
* rft: remove changes to board PWm (go on another PR)
* rft: revert changes to commander (main is correct)
* fix: extra char on commander_helper
* rft: removed extra spaces
* rft: moved effectiveness to spacecraft
* fix: spacecraft effectiveness
* fix: extra space
* feat: preliminary version, still using thrusters
* rft: initial pipeline on PX4 side with rotors instead of thrusters
* feat: add atmos model
* feat: spacecraft with rotor pipeline tested, working
* feat: update gz
* rft: removed thruster interfaces
* fix: format
* fix: remove control allocation
* fix: thruster normalization
* fix: format
* fix: nuttx version
* fix: clang tidy error
* feat: updated gz to add atmos model
* fix: update gz
* fix: update mavlink
* fix: remove friend class from allocation lib
* fix: remove actuator_outputs/motors
---------
Co-authored-by: Alexander Lerach <alexander@auterion.com>
- limit to handling only 1 motor failure
- Log which motor failures are handled
- Remove motor from effectiveness matrix without
recomputing the scale / normalization
-pass flag EffectivenessUpdateReason into effectiveness, indicating if there was an external
update or not. Reasons for external updates are:
-config changes (parameter)
-motor failure detected or certain redundant motors are switched off to save energy
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
- 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
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
- 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>