Commit Graph

2504 Commits

Author SHA1 Message Date
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
Roman Bapst 842d98d572 AirspeedValidator: fuse true airspeed before sideslip (#742)
- the states can be initialised more accurately using an airspeed measurement
and the wind estimator uses the first measurement to initialise

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2020-12-11 09:37:09 +03:00
Daniel Agar d44e537084 ekf2: update to new ecl to fix fault status getter
- estimator_status filter_fault_flags was broken because the union within ecl/EKF has exceeded 16 bits
2020-12-10 12:45:41 -05:00
PX4 BuildBot 7db555573b Update submodule ecl to latest Wed Dec 9 12:40:07 UTC 2020
- ecl in PX4/Firmware (ef162f7629ce29be8fd556b81357b96720d8e21f): https://github/commit/da7d41e78aecdc07d226bd7d723c747895d1c615
    - ecl current upstream: https://github/commit/8f3df7a97b348dd7bf06233004f9821fe2ea88d1
    - Changes: https://github/compare/da7d41e78aecdc07d226bd7d723c747895d1c615...8f3df7a97b348dd7bf06233004f9821fe2ea88d1

    8f3df7a 2020-12-09 Mathieu Bresciani - flow: restructure optical flow control logic (#928)
3835800 2020-12-09 kritz - Auto update change indication by github actions
688a054 2020-12-08 Daniel Agar - EKF: controlDragFusion() add parenthesis for readability
944b18c 2020-12-05 Paul Riseborough - EKF: Remove non useful status print
ee94980 2020-12-03 Paul Riseborough - EKF: Clean up wind state activation logic
44ebfb8 2020-12-02 Paul Riseborough - EKF: Don't report local position as valid when in a non-position mode
2020-12-09 13:12:58 -05:00
Daniel Agar 82746af07a ekf2: use new IMU and mag bias and variance getters in ecl/EKF
- reset IMU bias on calibration change (only works with multi-ekf)
 - standardize PX4_INFO/PX4_WARN/PX4_ERR output for multi-ekf with instance number
 - https://github.com/PX4/PX4-ECL/pull/924
2020-12-08 16:06:18 -05:00
Julian Oes fd261b590c battery: don't init uint16_t with -1.0f
This was flagged as undefined behaviour by fuzz testing.
2020-12-08 09:58:29 +01:00
bresch 3276916df9 HomePos: check corresponding validity before using data 2020-12-07 10:24:23 -05:00
Daniel Agar 01620420fa ekf2: update to latest ecl with RingBuffer minor improvements
- includes https://github.com/PX4/PX4-ECL/pull/938
2020-12-03 21:17:22 -05:00
Matthias Grob 25c113a527 StickAccelerationXY: boost low speed brake 2020-12-03 18:19:42 +01:00
Matthias Grob badaf1eae0 Functions: add squareroot linear function 2020-12-03 18:19:42 +01:00
Matthias Grob 3f3a82e034 FlightTaskManualAcceleration: reset position lock on reactivation
to prevent having a fixed position lock while moving the vehicle
on the ground before flying.
2020-12-03 18:19:42 +01:00
Matthias Grob 66f8fc08c0 FlightTasks: refactor to use isAnyTaskActive() 2020-12-03 18:19:42 +01:00
Daniel Agar 378c0b5093 parameters: find and get perf counters aren't threadsafe 2020-12-02 10:11:42 -05:00
Daniel Agar e69aea0a9b parameters: don't keep in memory if set to default 2020-12-02 10:11:42 -05:00
Alex Mikhalev 378b41af6a tunes: Improve logic for interrupting tunes
src/lib/tunes already knows which tunes are interruptable, so add
return values to expose than and use than in tone_alarm.
This fixes the issue that repeating tunes cannot be interrupted without
tune_override set to true.

Signed-off-by: Alex Mikhalev <alex@corvus-robotics.com>
2020-11-30 16:56:13 -05:00
Silvan Fuhrer 646b5bb578 L1: Do only check for wrong tangent_vel if in circle_mode
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2020-11-27 17:04:06 +03:00
Daniel Agar 3f9e5a6934 drivers/device/ringbuffer: move into crazyflie syslink (only remaining user) 2020-11-17 19:47:06 -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
Matthias Grob ff801fbc08 FlightTasks: remove FlightTaskManualPositionSmooth
alias first smooth position control version from 2017.

RIP it served well.
2020-11-11 21:16:18 +01:00
Matthias Grob 0b8f092d2b Add acceleration stick mapping for position mode 2020-11-11 21:16:18 +01:00
AlexanderAurora ea09d9ebbf landing_slope: added wrap_pi to getLandingSlope and getFlareCurve
- fixes https://github.com/PX4/PX4-Autopilot/issues/16132
2020-11-10 18:58:14 -05:00
PX4 BuildBot 8b9ae49508 Update submodule ecl to latest Tue Nov 10 19:18:21 UTC 2020
- ecl in PX4/Firmware (579a8c3a688e536b1ae4177c3e3edcea438e74d5): https://github/commit/a21092804a784d012939f96cc633e7da5f5e8cde
    - ecl current upstream: https://github/commit/da9f314b69585ba169d033fec293e9ea48b9d1fd
    - Changes: https://github/compare/a21092804a784d012939f96cc633e7da5f5e8cde...da9f314b69585ba169d033fec293e9ea48b9d1fd

    da9f314 2020-11-10 bresch - mag: use strength in Gauss
c4d162f 2020-11-04 Claudio Micheli - EKF: range_finder parameterize range sensor quality hysteresis time
6158d6d 2020-11-02 Daniel Agar - EKF: add const reference getters for status flags
2020-11-10 18:53:03 -05:00
Nicolas Martin 1965cd38ba arm auth: add parameters migration
should be reverted in v1.13
2020-11-10 09:03:59 +01:00
PX4 BuildBot 5ce0b5a32c Update submodule matrix to latest Sat Nov 7 19:38:27 EST 2020
- matrix in PX4/Firmware (0c3c9bea0f8466d0c14326d134fd0fa06f480cf5): https://github/commit/ce6b10b99af722a4e653387d40019a8428d2a54f
    - matrix current upstream: https://github/commit/a504b6e88152d88dba936bc74e449f2f281b84e2
    - Changes: https://github/compare/ce6b10b99af722a4e653387d40019a8428d2a54f...a504b6e88152d88dba936bc74e449f2f281b84e2

    a504b6e 2020-11-04 Mitchell-Lee-93 - precision of tol for float has been changed
2020-11-08 12:35:27 +01:00
Julian Kent d7fa5c68aa Add support for alpha/beta/rc on the vendor version (#16112)
* Add support for versioning the vendor version

* Make regex only allow either alpha/beta/rc, or vendor versions
2020-11-04 13:48:19 +01:00
Daniel Agar d14deb0e5a FFT add simple median filter 2020-11-02 12:58:46 -05:00
Daniel Agar 4578b8cdcc Update submodule ecl to latest Mon Nov 2 09:57:32 EST 2020
- ecl in PX4/Firmware (f87b19f31b9918f73d336d10e68d39c659037582): https://github/commit/48a8992caf7a95e09a5e17235133894c072b96bd
    - ecl current upstream: https://github/commit/a21092804a784d012939f96cc633e7da5f5e8cde
    - Changes: https://github/compare/48a8992caf7a95e09a5e17235133894c072b96bd...a21092804a784d012939f96cc633e7da5f5e8cde

    a210928 2020-11-01 Daniel Agar - EKF: remove virtual getters from estimator_interface
2020-11-02 12:44:14 -05:00
PX4 BuildBot 1dd3283fbb Update submodule ecl to latest Sat Oct 31 20:37:40 EDT 2020
- ecl in PX4/Firmware (6bb56ae2b3debb76669a04adb7c64bac74bb87f4): https://github/commit/d85e24d3ca767b48bdbb1594b564d30df5777769
    - ecl current upstream: https://github/commit/48a8992caf7a95e09a5e17235133894c072b96bd
    - Changes: https://github/compare/d85e24d3ca767b48bdbb1594b564d30df5777769...48a8992caf7a95e09a5e17235133894c072b96bd

    48a8992 2020-10-30 Daniel Agar - EKF: move small simple getters to header
defb35d 2020-10-29 Daniel Agar - EKF: pass imuSample by const reference
2020-10-31 21:11:44 -04:00
Daniel Agar 6b9dde59d6 update ecl to latest
- fmu-v5 debug and stackcheck builds now need to be CONSTRAINED_FLASH to fit
 - delete unused holybro_durandal-v1_stackcheck build (also CONSTRAINED_FLASH)
2020-10-29 18:56:52 -04:00
Daniel Agar d5e68bc05a mathlib: NotchFilter delete unused update method 2020-10-27 12:30:59 -04: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
bresch 09cc3120e2 OpticalFlow: add optical flow velocity logging
This is important to align the flow with the IMU data and verify that
the compensation is properly done
2020-10-26 14:10:25 -04:00
Matthias Grob 8e710294b3 FlightTaskManualAltitudeSmoothVel: fix parameter inheritance chain 2020-10-26 15:55:21 +01:00
Matthias Grob 7ba93d5452 FlightTasks: fix reActivate not calling the parent overrided method 2020-10-26 15:55:21 +01:00
FengShun eac9a6b68b Replace PublicationQueued with Publication to automatically configure ORB_QUEUE_LENGTH 2020-10-26 13:01:13 +01:00
Nicolas Martin 948bed6b5c fix ekf2 saved mag bias comments (mGauss -> Gauss) 2020-10-26 00:43:20 -04:00
Matthias Grob 1fb4f960cd FlightTaskAuto: Lock down yaw when waypoint is reached
This is done to prevent yawing 180 degrees when switching
to hold mode with high velocity and the overshoot causing a 180°
yaw turn.

The yaw is unlocked on waypoint updates and the yaw
setpoint generation had to be put at the end because otherwise the
first yaw calculation is with the old waypoint and immediately
locks again.
2020-10-23 20:54:01 +02:00
Hamish Willee d91d7e3282 parameter markdown table - remove styling 2020-10-22 08:05:41 +02:00
Beat Küng f776997a07 battery: disable secondary module by default
Avoid a GCS showing 2 battery indicators.
Alternatively we could also check the 'connected' flag, but this is more
explicit.
2020-10-20 09:18:47 +02:00
Beat Küng 83b81fbbef battery: fix isFloatEqual(), use matrix::isEqualF
Fixes param migration, e.g. if BAT_N_CELLS is set, migrates to
BAT1_N_CELLS.
2020-10-20 09:18:47 +02:00
Beat Küng 6ae17eb13c fix EscBattery: remove _battery.publish();
updateBatteryStatus() already publishes
2020-10-20 09:18:47 +02:00
Beat Küng d0fd60de8d output_limit: use add_library instead of px4_add_library
px4_add_library adds uorb dependencies, which since cf26f24387 added libm.
This in turn led to build failures for px4_io-v2 in the form of:
__aeabi_f2d' wf_sqrt.c:(.text.sqrtf+0x54): undefined reference to
__aeabi_ddiv'
2020-10-19 09:45:46 -04:00
Daniel Agar 7255f5feac parameters: add param_reset_no_notification()
- add reset() to Param<>
2020-10-15 08:32:05 +02:00
Beat Küng ff3008c051 calibration: add SYS_FAC_CAL_MODE parameter
If set, stores calibration parameters in separate storage /fs/mtd_caldata.
2020-10-12 15:22:26 +02:00
Beat Küng 3e9692c5bd param_import: add mark_saved argument
Behavior of the 'param import' command:
- if no file provided, parameters are marked as saved (differs from before)
- if a file is provided: parameters are not marked as saved
2020-10-12 15:22:26 +02:00
Beat Küng f6e8ddfaa0 param_export: add optional filter method 2020-10-12 15:22:26 +02: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
PX4 BuildBot deee2af7ae Update submodule ecl to latest Wed Oct 7 12:41:05 UTC 2020
- ecl in PX4/Firmware (6a18e45cf8225c6dab2e7c495ed687f449e8c44e): https://github.com/PX4/ecl/commit/4c2355a63821836bf8801e996d4651dcabe0287f
    - ecl current upstream: https://github.com/PX4/ecl/commit/f666ebb99552eed796e82a20bb60e813d45eee03
    - Changes: https://github.com/PX4/ecl/compare/4c2355a63821836bf8801e996d4651dcabe0287f...f666ebb99552eed796e82a20bb60e813d45eee03

    f666ebb 2020-10-06 Paul Riseborough - EKF: Code format fix - replace 1E-x with 1e-x
e82d0af 2020-10-06 Paul Riseborough - EKF: Improve code clarity - non functional change
1a7c68e 2020-10-06 Paul Riseborough - EKF: update change indicator
759d217 2020-10-05 Paul Riseborough - EKF: Improve protection for GSF weight collapse
7c81350 2020-10-04 Paul Riseborough - EKF: Don't yaw reset if not yaw induced nav failure
bf0d70f 2020-10-04 Paul Riseborough - EKF: Protect against collapse of GSF weights
2020-10-07 14:12:10 -04:00
Daniel Agar 378cb155d6 simulator: support accel/gyro instances and stuck failure
- expand simulator to 3 accels and gyros
 - PX4Accelerometer/PX4Gyroscope switch to old param usage due to copy constructor issues with ModuleParams
2020-10-07 13:20:13 -04:00
Silvan Fuhrer 5a184d2f5c Commenting and formating fixes
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2020-10-06 09:31:58 +02:00