Commit Graph

2193 Commits

Author SHA1 Message Date
Julian Kent e96e028327 Refactor LM mag calibration routines 2021-01-28 09:14:08 +01:00
Julian Kent a9fc104387 Add inline to avoid double definition errors 2021-01-28 09:14:08 +01:00
bresch c79bd033c0 mag test: add ellipsoid test 2021-01-28 09:14:08 +01:00
bresch 1da2cd5b4d mag test: add magnetometer calibration unit tests 2021-01-28 09:14:08 +01:00
bresch a8a8819060 mag cal: move sphere and ellipsoid regression algirithms 2021-01-28 09:14:08 +01:00
Daniel Agar d1dfa26903 consume all available queued vehicle_commands 2021-01-26 12:00:18 -05:00
bresch d7812f83f1 mag_cal: fix race condition causing invalid mag calibration
In some cases, the fitness of the optimizer does not shrink at each
iteration, causing the "decreasing fitness check" to fail. This stops
the optimization and returns with sub-optimal, or unrealistic results.
2021-01-20 10:50:35 -05:00
Mathieu Bresciani 8d8b58efc3 Add logging of mag calibration data (mag_worker_data)
Co-authored-by: Julian Kent <julian@auterion.com>
2021-01-20 09:44:45 -05:00
Julian Kent af8d178ae5 Fix spurious RTL triggers
Two sources:
1. global to local conversion was sometimes giving issues, so do everything in global
2. on startup the RTL didn't check if the home position was valid before processing it
2021-01-18 16:26:53 +01:00
Julian Kent 7482413005 Add Range-based RTL 2021-01-18 16:26:53 +01:00
Silvan Fuhrer cee4016665 Preflight checks: Airspeed checks update
-check for valid airspeed_validated (declared valid plus updated less than 1s ago)
-added param (COM_ARM_ARSP_EN) to enable/disable check for max airspeed for arming set max
airspeed limit to half of stall airspeed

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-01-16 10:26:55 -05:00
Daniel Agar 48f125f150 estimated IMU bias preflight checks
- commander preflightcheck use estimator_sensor_bias message instead of EKF state index magic number
 - ekf2 publish estimated bias limits in estimator_sensor_bias
 - preflightcheck only error if bias estimate exceeds half of configured limit (delete COM_ARM_EKF_AB and COM_ARM_EKF_GB parameters)
2021-01-12 09:09:42 +01:00
Daniel Agar 967d35a6b6 rate limit most parameter_update subscriptions
- parameter updates can be quite expensive because they trigger nearly all modules to reload all of their parameters immediately
 - limit modules from updating faster than once per second
2021-01-10 21:09:15 -05:00
bazooka joe 9b9163813d avoid re-initiate RTL or land in battery emergency
if the mode is already running
2021-01-10 21:19:52 +01:00
Matthias Grob 3cc8e7a210 commander_params: Make multicopter only COM_RC_OVERRIDE more visible 2021-01-10 21:12:09 +01:00
Daniel Agar 88f8da27ef save learned mag bias per sensor (Multi-EKF support)
- handle saving the mag bias per sensor (across all estimator instances using that mag) in sensors/vehicle_magnetometer
 - this is now saving back to the actual mag calibration CAL_MAGn_OFF{X,Y,Z}
 - ekf2 reset mag mag bias on any magnetometer or calibration change
 - use Kalman filter scheme to update stored mag bias parameters using all available bias estimates for that sensor

Co-authored-by: Paul Riseborough <gncsolns@gmail.com>
2021-01-07 09:54:13 -05:00
Matthias Grob f435bea57c state_machine_helper: orbit failsafe just with data link loss
RC is like the comment says not required.
2021-01-07 13:31:05 +01:00
Jaeyoung-Lim d2b0f63e1f Handle offboard mode with acceleration setpoints
The case when acceleration setpoints were being passed in offboard mode was triggering control_climbrate_mode. This prevented the vehicle from taking off, since it made the vehicle skip the rampup phase of the takeoff
This commit fixes this by handling the case properly
2021-01-06 20:38:18 +01:00
Lorenz Meier 4237c8be25 Commander: Do not acknowledge binding
This is now done in the respective modules directly and based on implementation and execution state.
2020-12-31 13:22:52 +01:00
Daniel Agar 49d4cc7d5b commander: CMD_NAV_LAND/CMD_NAV_PRECLAND reply RESULT_ACCEPTED unless transition is denied 2020-12-30 12:05:41 +01:00
Daniel Agar 91f5f26618 commander: main_state_transition call trivial style fixes 2020-12-30 00:26:14 +01:00
Daniel Agar 9f57df75e8 remove rotation 41 (ROLL_270_YAW_180)
- duplicate of 31 (ROLL_90_PITCH_180)
2020-12-28 11:07:08 +01:00
Nicolas MARTIN e06d218ff2 commander: disable arm_auth request for prearm status continuous publication 2020-12-27 16:23:05 -05:00
Lorenz Meier 4b0d8efbc1 Commander: move static overload_start to class 2020-12-27 13:44:32 -05:00
Daniel Agar 336176b2f0 Mavlink FLIGHT_INFORMATION fix arming time (ms -> us) and add takeoff time
- fixes https://github.com/PX4/PX4-Autopilot/issues/16393
2020-12-16 09:38:05 -05:00
Hamish Willee acc647c518 remove duplicate this in COM_HLDL_LOSS_T 2020-12-16 08:37:42 +01:00
Daniel Agar ae2b1a265c commander: POSCTL optical flow aiding continue updating GPOS validity
- updating the global position validity should happen regardless of
being in manual position control mode with only optical flow
 - condition_global_position_valid needs to be accurate to adjudicate
main state changes (eg going into AUTO MISSION)
2020-12-11 15:33:50 -05:00
Daniel Agar 6bda8af97c commander: merge duplicated position and velocity validity checks 2020-12-11 15:33:50 -05:00
Daniel Agar 5cd4a9c73f commander: global position validity respect local position xy_valid 2020-12-11 15:33:50 -05:00
Daniel Agar ef6209ba03 new manual_control_switches msg (split out of manual_control_setpoint) (#16270)
- split out switches from manual_control_setpoint into new message manual_control_switches
 - manual_control_switches published at minimal rate (~ 1 Hz) or immediately on change
 - simple switch debounce in rc_update (2 consecutive identical decodes required)
 - manual_control_switches logged at full rate rather than sampled at (5-10% of messages logged)
 - manual_control_setpoint publish at minimal rate unless changing
 - commander handle landing gear switch for manual modes
 - processing of mode_slot and mode_switch is now split so we only do one or the other (not both)
     - a future step will be to finally drop mode_switch and accompanying switches entirely

Co-authored-by: Matthias Grob <maetugr@gmail.com>
2020-12-11 12:11:35 -05:00
Igor Campos c316af6ec7 update to match new feature as a new mavlink command Oblique Survey 260 2020-12-09 17:54:53 +01:00
Daniel Agar cd1ffa63cd commander: auto transition to LOITER if disarmed with no RC only requires a valid global position 2020-12-08 18:26:03 -05:00
Daniel Agar 8f5f564c05 commander: preflightcheck only report failure once per sensor type
- either way the user action is to recalibrate, so we might as well try
to minimize the noise/annoyance
2020-12-08 13:18:22 -05:00
bresch 711bd2ce87 Commander: use helper to set home position 2020-12-07 10:24:23 -05:00
bresch f3e5b86b06 Commander: set home position in air
en/dis-able in-air home position via parameter COM_HOME_IN_AIR
2020-12-07 10:24:23 -05:00
Julian Oes 8900c6200d commander: remove typedef of anonymous struct
Clang doesn't seem to like these.
2020-12-06 23:55:59 -05:00
Daniel Agar c305774fae commander: move vehicle_status into class 2020-12-02 10:20:50 +01:00
Daniel Agar b7de10fca3 commander: move vehicle_status_flags to class 2020-12-02 10:20:50 +01:00
Daniel Agar dc435c4c90 commander: control_status_leds() use _armed directly 2020-12-02 10:20:50 +01:00
Daniel Agar 8ac2581d7b commander: handle_command() use _armed directly 2020-12-02 10:20:50 +01:00
Daniel Agar 741a0b43e8 commander: move mavlink_log_pub into class 2020-12-02 10:20:50 +01:00
Daniel Agar a03b91c01e commander: move answer_command() to class 2020-12-02 10:20:50 +01:00
Daniel Agar d5dc7e2873 commander: move actuator_armed state into class 2020-12-02 10:20:50 +01:00
Beat Küng 05a3492174 commander: remove low priority thread, run tasks in a worker thread on demand
- removes race conditions
- removes dependencies on static data & methods
- reduces RAM usage by ~3.8KB
2020-11-30 11:53:22 -05:00
Beat Küng 419b336a15 commander: fix ModuleBase usage, remove volatile flag 2020-11-30 11:53:22 -05:00
Ricardo Marques 3215c50660 commander: Fix comment typos.
Signed-off-by: Ricardo Marques <marques.ricardo17@gmail.com>
2020-11-27 10:25:32 +01:00
Daniel Agar ec9f8998a7 commander: limit mode switch re-evaluation logic on estimate validity changes
- re-evaluating mode switches on altitude or position validity change can create confusing when also relying on mode changes via mavlink
 - limiting this logic to only apply when disarmed solves the original problem (respecting initial switch position) without introducing potential problems mid-flight
 - fixes https://github.com/PX4/PX4-Autopilot/issues/16235
2020-11-25 21:14:55 -05:00
Daniel Agar 5e855c6747 commander: preflightcheck and calibration remove hash (#) from mavlink message
- QGroundControl is reading these as "Hash" and I don't think it's ambiguous if removed
2020-11-23 21:56:23 -05:00
Daniel Agar d14b4221f1 sensor calibration: apply board level adjustment to external sensors (#16127)
- apply SENS_BOARD_{X,Y,Z}_OFF to external sensors to prevent unnecessary misalignment with internal IMU
2020-11-12 10:37:30 -05:00
Nicolas MARTIN 8b96ff57d7 arm auth: split COM_ARM_AUTH in 3 parameters
new params are:
- COM_ARM_AUTH_ID
- COM_ARM_AUTH_MET
- COM_ARM_AUTH_TO
2020-11-10 09:03:59 +01:00