- split up old module into two, one handling setpoint generation, one control
- add lateral and longitudinal control setpoints topics that can also be
injected from companion computer
- add configuration topics that (optionally) configure the controller
with limits and momentary settings
Signed-off-by: RomanBapst <bapstroman@gmail.com>
Remove yaw_acceptance and altitude_acceptance_radius fields as they were only
filled by now removed avoidance controller.
Signed-off-by: Silvan <silvan@auterion.com>
* split methods to control backtransition depening on availablity of position
Signed-off-by: RomanBapst <bapstroman@gmail.com>
* fixed sign error and replace hardcoded number with constant
Signed-off-by: RomanBapst <bapstroman@gmail.com>
* make changes such that controller holds initial heading during transition
Signed-off-by: RomanBapst <bapstroman@gmail.com>
* use reference instead of copy
Signed-off-by: RomanBapst <bapstroman@gmail.com>
* added comment
Signed-off-by: RomanBapst <bapstroman@gmail.com>
* flash reduction
Signed-off-by: RomanBapst <bapstroman@gmail.com>
---------
Signed-off-by: RomanBapst <bapstroman@gmail.com>
* introduced altitude acceptance radius in position setpoint for fixed
wing guidance
- allows navigator to explicitly set the altitude acceptance radius
- needed for staright line landing support
* added ignore_alt_acceptance to position setpoint message to allow guidance
logic to ignore altitude error on waypoint
- can be useful to prevent loitering at a waypoint within a mission landing sequence
* only set altitude acceptance radius to infinity for a waypoint inside a mission landing
for fixed wing vehicles
* navigator: return altitude acceptance radius from triplet if it's valid
* FixedWingPositionControl: check if alt acceptance radius provided in position setpoint
is larger 0
---------
Signed-off-by: RomanBapst <bapstroman@gmail.com>
Co-authored-by: Alvaro Fernandez <alvaro@auterion.com>
* Remove euler angles from attitude setpoint message
* Remove usage of euler angles in attitude setpoint messages
This commit removes the usage of euler angles in the vehicle_attitude_setpoint messages
* Fix standard vtol
Remove option to track from previous wp to reduce complexity and fix
case where prev=current point and the line following broke down.
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
* FW Position Control: some cosmetical changes
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
* FW Position Control: disable roll constraining warning in VTOL transition
In transitions it is expected that the roll is constrained, and
instead of defining an aribitrary threshold let's rather disable
the user warning in that case.
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
* FW Pos C: define magic numbers for roll constraining warning as constants
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
---------
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
* battery: make time remaining estimation dependent on level flight characteristis for FW
* battery: fix that FW flight is also correctly detected when vehicle_status is not updated
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
* FixedwingPositionControl: Move constant to header file
* flight phase estimation: use tecs height rate reference to check for level flight
---------
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
Co-authored-by: Silvan Fuhrer <silvan@auterion.com>
* avoid waypoint following during backtransition
- if vehicle overshoots transition, make controller track the prev/current
waypoint line, this avoids large banking maneuvers that delay the transition further
Signed-off-by: RomanBapst <bapstroman@gmail.com>
* navigator: use SETPOINT_TYPE_LAND as setpoint type for VTOL_LAND waypoints
such that fixed wing position controller can distinguish from other types
Signed-off-by: RomanBapst <bapstroman@gmail.com>
* FixedWingPositionControl: split vtol backtransition logic into separate method
Signed-off-by: RomanBapst <bapstroman@gmail.com>
* review changes
Signed-off-by: RomanBapst <bapstroman@gmail.com>
* prevent loiter when approaching vtol backtransition and invalidate previous waypoint during mission landing
Signed-off-by: RomanBapst <bapstroman@gmail.com>
* removed unused parameter
Signed-off-by: RomanBapst <bapstroman@gmail.com>
* small renaming of transition mode
Signed-off-by: RomanBapst <bapstroman@gmail.com>
---------
Signed-off-by: RomanBapst <bapstroman@gmail.com>
* TECS: reduce default of FW_T_I_GAIN_THR
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
* TECS: reduce default of FW_T_THR_DAMP
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
* TECS: improve param descriptions and meta data of some params
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
* FW Pos C: rename FW_T_THR_DAMP to FW_T_THR_DAMPING
Rename wihtout param translation as the interpretation of this param has changed
recently (a bug was fixed that caused the damping to have a much lower effect than
it should). We want to avoid that users keep the previously tuned value (with the bug)
and do not update the tuning when using the fixed version (v1.14.0 and later).
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
* FW Pos C: rename FW_T_I_GAIN_THR to FW_T_THR_INTEG
Rename wihtout param translation as the interpretation of this param has changed
recently (a bug was fixed that caused the damping to have a much lower effect than
it should). We want to avoid that users keep the previously tuned value (with the bug)
and do not update the tuning when using the fixed version (v1.14.0 and later).
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
---------
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
* Separate offboard path setpoints as fixedwing pos control state
This commit separates offboard path following as a separate state inside the FW Poscontrol module.
This is a cleanup on clearly defining fw pos control behaviors
* Update src/modules/fw_pos_control/FixedwingPositionControl.cpp
Co-authored-by: Silvan Fuhrer <silvan@auterion.com>
* Fix format
---------
Co-authored-by: Silvan Fuhrer <silvan@auterion.com>
-remove dedicated vtol transition airspeed init logic
-init airspeed setpoint on first usage of tecs
-init to max of current airspeed and min airspeed
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
The _control_mode_current wasn't updated otherwise, and only done so by luck
because we already set the current type to SETPOINT_TYPE_POSITION.
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
-remove external init, and instead always (but only) init when dt is too large
-init the controller params correctly
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
* created a Performance Model for fixed wing vehicle
- added compensation for maximum climbrate, minimum sinkrate, minimum airspeed and trim airspeed based on weight ratio and air density
- added atmosphere lib to standard atmosphere calculations
---------
Signed-off-by: RomanBapst <bapstroman@gmail.com>
Co-authored-by: Thomas Stastny <thomas.stastny@auterion.com>