Commit Graph

67 Commits

Author SHA1 Message Date
Lorenz Meier 90f5d7338c Commander: Relax pre-arm check for EKF
The previous testing ratios could lead to extremely tight pre-arm acceptance.
2021-02-22 11:17:16 -05:00
Lorenz Meier 87f98f096f Commander: Respect position circuit breaker
This ensures that commander respects the position check circuit breaker and allows arming without position.
2021-02-22 11:17:16 -05:00
Matthias Grob a002a07ed5 sdcardCheck: minor refactor
I was late for the review.
2021-02-12 00:17:43 -05:00
Claudio Micheli d4bea8323f PreFlightCheck: Detect missing FMU SD card
Signed-off-by: Claudio Micheli <claudio@auterion.com>
2021-02-05 20:14:48 +01:00
Antonio Sanjurjo Cortés fa45eacea3 Fix and unify the maximum allowed PDOP references 2021-02-04 10:20:22 +01:00
Claudio Micheli c2154df2f6 ekf2checks: split GPS checks from AHRS checks - minor cleanup
Signed-off-by: Claudio Micheli <claudio@auterion.com>
2021-02-01 09:02:19 +01:00
Chungkyeong Lee 834ac38841 fix condition in ekf2Check 2021-02-01 08:55:41 +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 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
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
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
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
Nicolas MARTIN 6579544fca arm_auth: use ack reception timestamp to compute authorization timeout 2020-11-10 09:03:59 +01:00
Nicolas MARTIN e89c21155a arm_auth: check authorization timestamp to skip old commands 2020-11-10 09:03:59 +01:00
Daniel Agar 0f411d6820 Multi-EKF support (ekf2)
- ekf2 can now run in multi-instance mode (currently up to 9 instances)
    - in multi mode all estimates are published to alternate topics (eg estimator_attitude instead of vehicle_attitude)
 - new ekf2 selector runs in multi-instance mode to monitor and compare all instances, selecting a primary (eg N x estimator_attitude => vehicle_attitude)
 - sensors module accel & gyro inconsistency checks are now relative to the mean of all instances, rather than the current primary (when active ekf2 selector is responsible for choosing primary accel & gyro)
 - existing consumers of estimator_status must check estimator_selector_status to select current primary instance status
 - ekf2 single instance mode is still fully supported and the default

Co-authored-by: Paul Riseborough <gncsolns@gmail.com>
2020-10-27 10:56:11 -04:00
FengShun eac9a6b68b Replace PublicationQueued with Publication to automatically configure ORB_QUEUE_LENGTH 2020-10-26 13:01:13 +01:00
Daniel Agar 945c17bc3f move subsystem_info entirely into commander and remove from uORB
* HealthFlags: define bitfield using 1<<X

Co-authored-by: Matthias Grob <maetugr@gmail.com>
2020-10-25 10:08:15 -04:00
Daniel Agar 81765bc06a commander: PreFlightCheck remove HIL special cases
- skipping these sensor checks in HIL no longer makes sense as each
sensor has a normal publication (sensor_accel/gyro/etc) regardless of
simulation
2020-10-23 11:25:50 -04:00
Daniel Agar be0f884dde commander: preflight check don't read mag device_id 2020-10-19 23:01:02 -04:00
Daniel Agar eecf2e7a1e sensors: allow up to 4 accels, gyros, and baros and add configurable rotations for accel & gyro 2020-10-08 19:01:44 -04:00
Daniel Agar eabbd19c1c commander: PreFlightCheck param_find all parameters immediately
- this ensures the relevant parameters are marked active immediately
before parameter sync
 - fixes https://github.com/PX4/Firmware/issues/15872
2020-10-03 14:43:21 -04:00
Daniel Agar c1936dab1f commander: accel & gyro subsystem health set within IMU check 2020-09-30 12:17:48 -04:00
Daniel Agar 25c537bae9 commander: don't impose additional timeouts in sensor checks
- the sensors hub is responsible for sensor timeouts
2020-09-30 12:17:48 -04:00
Quentin PERROT 9116acc431 change message critical state for arm authorization 2020-09-09 08:59:21 +02:00
Matthias Grob f70dda12a6 failureDetectorCheck: remove string manipulation 2020-09-08 11:42:30 +02:00
Matthias Grob ab17b6bad4 failureDetectorCheck: revise messageing 2020-09-08 11:42:30 +02:00
Daniel Agar 60d613ea04 sensors: sensor_preflight_imu -> sensors_status_imu and run continuously
- inconsistency checks now run continuously instead of only preflight
 - keep inconsistencies for all sensors
 - add per sensor data validator state as overall health flag
2020-09-06 22:06:13 -04:00
Daniel Agar 9ccc1db649 estimator_status split out estimator_states 2020-09-04 10:48:26 -04:00
Daniel Agar 2bb04f2261 commander: increase COM_ARM_MAG_ANG 35 -> 45 degrees
- in practice this is mostly useful for identifying incorrect rotations
which we mostly have in 45 degree increments
 - handling a vehicle on the ground can easily disturb one mag by more than 30 degrees, so this is often distracting noise
2020-08-21 10:12:13 -04:00
Daniel Agar 971b1e4b4d sensors: move mag aggregation to new VehicleMagnetometer WorkItem
- purge all reminaing magnetometer IOCTL usage
 - mag calibration add off diagonal (soft iron) scale factors
2020-08-21 10:12:13 -04:00
Daniel Agar e3e8c55e82 accel & gyro calibration helpers 2020-08-21 10:12:13 -04:00
Daniel Agar f19a20dc43 commander: preflight power check ignore module count if USB connected
- this check isn't relevent during bench testing
2020-08-12 11:48:38 -04:00
Silvan Fuhrer 57cbf212be PreFlightchecks: remove duplicated VTOL mode prearm check
This removes the check for the current position of the VTOL swtich, as arming is already prevented if in transition mode,
plus also if VTOL and in fixed-wing mode (unless CBRK_VTOL_ARMING is set).

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2020-07-09 10:41:43 -04:00
Matthias Grob e9eae1bd76 Refactor: Name manual_control_setpoint the same way everywhere 2020-06-22 12:06:27 -04:00
Matthias Grob 7ff25373e4 powerCheck: add power redundancy check
A parameter spcifies what the redundancy level for 5V rail supply
needs to be and a check makes sure that it's available before
taking off such that the user is aware of a broken or disconnected
redundant power module.
2020-06-10 10:13:51 -04:00
Matthias Grob 03bafd5581 powerCheck: make 5V warning threshold 0.1V lower
Because of warnings on every flight on setups without
any need for concern. Some even high quality supply voltage regulators
that are rated for 5V can with tolerances and load get lower than 4.9V.
2020-05-13 11:37:20 -04:00
Daniel Agar 04113b4d57 commander: changes when USB connected
- skip avionics rail voltage check when USB connected
 - skip forced reboot on USB disconnect if circuit breaker set
 - avionics voltage preflight check don't silently fail if system_power unavailble
     - explicitly set supply check circuit breaker (CBRK_SUPPLY_CHK)
2020-05-06 13:53:54 -04:00
Daniel Agar 466b5db36f uORB::Publication improvements and cleanup (#14784)
- create common uORB::PublicationBase
 - uORB::PublicationQueued types are now type aliases
 - ORB_PRIO use enum type everywhere to avoid accidental misuse
 - PX4Accelerometer/PX4Gyroscope/etc driver libs explicitly advertise on construction, unadvertise on destruction. This is a workaround for any potential issues that might appear when accel/gyro cdev and uORB indexing doesn't align.
2020-05-04 11:09:30 -04:00
rfu 8787780de4 some printf format and conversion fixes 2020-05-04 09:49:23 +02:00
Matthias Grob 8b76c0c023 PreFlightCheck: add checks for CPU and RAM load 2020-04-16 11:45:50 +02:00
Julian Oes d67ecc971c commander: add check for VTOL airfame on fmu-v2 (#14633)
* commander: add check for VTOL airfame on fmu-v2

This adds a preflight check when a VTOL airframe is configured
on a fmu-v2 where VTOL is no longer included.

* commander: address code review comments
2020-04-15 21:20:42 +02:00
baumanta 050d5de93b add home pos check into global pos check 2020-04-15 11:02:48 +02:00
baumanta 9710289f5f PreFlightCheck: check for RC action switches 2020-04-15 11:02:48 +02:00
Julian Oes e2b8fd7b11 commander: fix preflight check spam 2020-04-14 10:17:43 -04:00
Matthias Grob ab6606aa46 PreFlightCheck: fix magnometer typo 2020-04-02 13:53:47 +02:00
Lorenz Meier 9119f13ff7 Commander: Do not print health flags on constrained flash
Boards with constrained flash are not classic development targets and do not need this.
2020-03-17 00:17:11 +01:00
Lorenz Meier e951123cff Health Flags: Optimize flash usage
Changing from a define to a function for reporting to safe space.
2020-03-17 00:17:11 +01:00
Lorenz Meier aea68f06f9 Commander: Streamline preflight and arming checks
The checks did previously only report the first failure (to not overload the radio link). As we are moving to buffered messages and higher bandwidth links this design choice is not any more in the best interest of the drone operator. We are now reporting all detected failures. To ensure architectural consistency more checks have been moved from the commander mainloop into the respective classes.
2020-03-17 00:17:11 +01:00
Lorenz Meier bf3b55cac7 Commander: Add function to print health flags consistently
This enables us to have better situational awareness during development and when inspecting a system in the field as to which subsystem is currently faulty. These flags are from standard MAVLink and are not sufficient nor do they match well the actual critical path to a safe flight. This will be addressed in a second step with the addition of a new MAVLink message and new flags.
2020-03-17 00:17:11 +01:00