mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-07-27 00:48:23 +08:00
feat(commander): add setpoint types
Switches from using VehicleControlMode to a specific setpoint type message with reply. Reasons: - in case a VehicleControlMode was dropped (e.g. when the mode switched setpoint type), no confirmation was returned, and resulting in wrong controller flags. - cleaner interface separation: external modes do not need to configure (or know) which controller to run for a certain setpoint - allows for external modes to check for compatibility: e.g. a mode using fixed-wing setpoint types can now be rejected on a multicopter. - allows for further extensions, like a setpoint timeout This makes it a bit more effort to add a new setpoint type. Specifically, setpoint_types.cpp needs to be extended when adding a new setpoint message. PX4 internal modes also make use of the setpoint types. The information flow is: nav_state -> setpoint type -> vehicle control mode flags It also adds a timeout to the setpoint config, but is not implemented yet. This changes the interface for external modes and thus the compatibility version is increased.
This commit is contained in:
19
msg/VehicleControlMode.msg
Normal file
19
msg/VehicleControlMode.msg
Normal file
@@ -0,0 +1,19 @@
|
||||
# Defines which controllers should run
|
||||
|
||||
uint64 timestamp # time since system start (microseconds)
|
||||
bool flag_armed # synonym for actuator_armed.armed
|
||||
|
||||
bool flag_multicopter_position_control_enabled
|
||||
|
||||
bool flag_control_manual_enabled # true if manual input is mixed in
|
||||
bool flag_control_auto_enabled # true if onboard autopilot should act
|
||||
bool flag_control_offboard_enabled # true if offboard control should be used
|
||||
bool flag_control_position_enabled # true if position is controlled
|
||||
bool flag_control_velocity_enabled # true if horizontal velocity (implies direction) is controlled
|
||||
bool flag_control_altitude_enabled # true if altitude is controlled
|
||||
bool flag_control_climb_rate_enabled # true if climb rate is controlled
|
||||
bool flag_control_acceleration_enabled # true if acceleration is controlled
|
||||
bool flag_control_attitude_enabled # true if attitude stabilization is mixed in
|
||||
bool flag_control_rates_enabled # true if rates are stabilized
|
||||
bool flag_control_allocation_enabled # true if control allocation is enabled
|
||||
bool flag_control_termination_enabled # true if flighttermination is enabled
|
||||
Reference in New Issue
Block a user