Commit Graph

21741 Commits

Author SHA1 Message Date
dominiknatter d8831c5133 ekf2: Ignore optical flow samples with too large integration time spans. Fixes #14165
Within ekf2, optical flow messages (amongst others) are fused to the state estimates. It might occur that optical flow sensors report unreliable and unrealistic spikes. In that case, the state estimator went crazy so far and just ignored optical flow values from that moment on.

The common thread for all these spikes seems to be a too high integration time span. Therefore, this fix adds a simple logic that ignores unrealistically high integration time spans. As a threshold, 1 second was chosen.

Reported-by: Dominik Natter <dominik.natter@gmail.com>
2020-06-29 12:00:29 -04:00
Beat Küng 0c4fd2bfa0 param: also show unused params for 'param show -c'
I find this generally useful for debugging.
2020-06-29 09:49:56 -04:00
Beat Küng d22bbde7c5 logger: fix hardfault for invalid SDLOG_PROFILE setting
If some bits are set but no topic was added, _subscriptions was null but
later accessed.

During normal use this only happens when switching between different
firmware versions with different SDLOG_PROFILE definition (with custom
config).
2020-06-29 09:49:56 -04:00
PX4 BuildBot b463a2f0d5 Update submodule matrix to latest Sun Jun 28 12:38:27 UTC 2020
- matrix in PX4/Firmware (2337b7e2f7b4eecddbb9103ab7672fac2c741fc5): https://github.com/PX4/Matrix/commit/674bd99f3b9284e1088d100d765b3a09cf0c192f
    - matrix current upstream: https://github.com/PX4/Matrix/commit/f529358e9ac28b0809572c14a964ba7ba691adc4
    - Changes: https://github.com/PX4/Matrix/compare/674bd99f3b9284e1088d100d765b3a09cf0c192f...f529358e9ac28b0809572c14a964ba7ba691adc4

    f529358 2020-06-27 kamilritz - Add missing const modifier
2020-06-28 19:55:06 -04:00
bresch 1761ef3952 FlightTaskAuto: Update prev and next waypoint depending on validity
This fixes the corner case where a NAV_DELAY command changes the
validity of the next WP but not the rest of the triplet. The logic in
FlightTask was ignoring this change because the check was only based on
WP position change.
2020-06-26 09:48:22 -04:00
RomanBapst 120f188ada rtl: do not use cone logic for vehicle flying as fixed wing
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2020-06-25 09:17:23 -04:00
Daniel Agar 55808ed2f9 simulator: break out standalone battery simulator module
- this is a small step towards unifying SITL & HITL
2020-06-24 10:39:21 -04:00
PX4 BuildBot 6dd0932158 Update submodule ecl to latest Wed Jun 24 00:39:40 UTC 2020
- ecl in PX4/Firmware (fff83fdee69789ec9da259b564bbfe67585a4b5f): https://github.com/PX4/ecl/commit/a8bb8ea99fc92389a5cdd44cd7108416e0c49fb6
    - ecl current upstream: https://github.com/PX4/ecl/commit/e4b44f704bb641fa93bedc81734c5249fcd9ed42
    - Changes: https://github.com/PX4/ecl/compare/a8bb8ea99fc92389a5cdd44cd7108416e0c49fb6...e4b44f704bb641fa93bedc81734c5249fcd9ed42

    e4b44f7 2020-06-23 PX4 BuildBot - Update geo_lookup WMM  to latest Tue Jun 23 14:15:04 UTC 2020
4b746a3 2020-06-23 bresch - GPS Yaw: add consts and remove fusion starting message
2bafe9d 2020-06-22 bresch - GPS Yaw: wait to fuse at yaw at least once before declaring it faulty
51cd63d 2020-06-22 bresch - GPS Yaw: fall back to other yaw aiding source in case of bad data
fe2a9d3 2020-06-22 bresch - GPS Yaw: move isfinite checks in control.cpp
3c6790f 2020-06-22 bresch - GPS Yaw: Always reset Yaw when GPS Yaw fusion is starting
ff8b5ec 2020-06-21 kamilritz - Extract general functions into utils
fda30d8 2020-06-15 Daniel Agar - geo_lookup: expand latitude to +-80 degrees
109eca5 2020-06-15 Daniel Agar - geo_lookup: create simple python script to update tables
41b9e4f 2020-06-15 Daniel Agar - geo_lookup: move tables to separate file
2020-06-24 08:29:20 +02:00
Beat Küng fe9a971f0e logger: use subscription interval also in polling mode
Now that replay uses lockstep scheduling we don't need that work-around
anymore.
2020-06-23 11:53:55 -04:00
Beat Küng a3d1c94aa4 logger: reduce poll timeout to 20ms
Just to ensure even if the topic is not updated, logger will still update
regularly.
2020-06-23 11:53:55 -04:00
Beat Küng 157ef43e28 replay: use lockstep scheduler 2020-06-23 11:53:55 -04:00
Beat Küng 71dcf8d619 sitl: use lockstep components API
- avoids the need for ekf2_timestamp publications by q and lpe
- adds logger to the lockstep cycle and makes it poll on ekf2_timestamps
  or vehicle_attitude. This avoids dropped samples (required for replay).
2020-06-23 11:53:55 -04:00
Beat Küng 5378d1468f lockstep_scheduler: add generic lockstep component API
allows components to register and ensure the lockstep cycle waits for
all components to be updated.
2020-06-23 11:53:55 -04:00
Beat Küng 55d06241b3 fix unit tests: do not stub pthread_cond_wait
and fix the tests instead.
Some unit tests depend on pthread_cond_wait to work as expected.
2020-06-23 11:53:55 -04:00
Daniel Agar 32887193d6 systemcmds/tests: remove autodeclination test (moving to PX4/ecl) 2020-06-23 10:34:25 -04:00
Beat Küng bb36b4a63f {dshot,pwm_out}: allow mode_pwm4 for boards with 5 outputs
Required on durandal if camera triggering is enabled.
2020-06-23 09:32:13 -04:00
Matthias Grob e9eae1bd76 Refactor: Name manual_control_setpoint the same way everywhere 2020-06-22 12:06:27 -04:00
Daniel Agar c6dd8bfcd6 imu/invensense/icm20649: minor cleanup to keep in sync with icm20948 2020-06-22 10:11:22 -04:00
Daniel Agar 4bcee8e13f magnetometers/akm: new standalone AKM AK8963 & AK09916 drivers 2020-06-22 10:11:22 -04:00
Daniel Agar 8c34f47b3d imu/invensense/mpu9250: sync with other recent invensense improvements
- clenaup ak8963 with simplifed setup and health check
2020-06-22 10:11:22 -04:00
Daniel Agar 22daa26955 msgs/sensor_mag: remove unused raw, add timestamp_asmple, shrink error count
- move mpu9250 sensitivity handling back to driver (this isn't common)
2020-06-22 10:11:22 -04:00
Daniel Agar d9102ce54c imu/invensense/icm20948: sync with other recent invensense improvements
- clenaup ak09916 with simplifed setup and health check
2020-06-22 10:11:22 -04:00
Daniel Agar e50f92805b mavlink: mission minor whitespace fixes and initialization
- it's safer to zero any struct being send over mavlink to prevent
extension field surpries later
2020-06-21 11:26:02 -04:00
Daniel Agar 80c1f4e5e6 mavlink: send MISSION_CURRENT respect signed sequence number
- current_seq -1 indicates nothing currently active
2020-06-21 11:26:02 -04:00
TSC21 b3bbc351ca mavlink: DISTANCE_SENSOR: propagate signal_quality metric 2020-06-20 22:25:37 +01:00
Daniel Agar b1e360e332 simulator: only use temperature if baro updated 2020-06-18 21:34:58 -04:00
Daniel Agar 3f19335f08 drivers/imu/invensense: FIFO_MAX_SAMPLES include sensor_accel_fifo in sample size limit 2020-06-18 20:49:15 -04:00
Daniel Agar 56c86e77bd replace FIFOSample -> sensor_accel_fifo/sensor_gyro_fifo 2020-06-18 20:49:15 -04:00
Daniel Agar 87250ca47f move ecl L1, TECS, and data validator to PX4/Firmware 2020-06-18 19:26:30 -04:00
JacobCrabill 78650bdbab UAVCAN: Fix STM32H7 message RAM for FDCAN2 2020-06-18 18:55:21 -04:00
JacobCrabill 62799d9aca UAVCAN: Add STM32H7 FDCAN Driver
Took the existing uavcan_stm32 driver and replaced all bxCAN code with
the equivalent for FDCAN following ST Reference Manual RM0433.

Note: There is still a bug somewhere in regards to FDCAN2 (probably
incorrect setup of the message RAM? Not sure.)  But (FD)CAN1 is fully
functional (Classic CAN only, no CAN-FD).

Also TODO: Configure CAN filters.  Right now there are no filters; all
incoming messages are accepted.
2020-06-18 18:55:21 -04:00
Daniel Agar 0a63df25a6 create fake_magnetometer "driver" to publish magnetic field in body frame
- this can be helpful for orienting new unknown magnetometers
 - requires attitude and GPS position
2020-06-18 16:21:30 -04:00
Daniel Agar 6afa7e4368 mavlink: HIL_SENSOR receiver respect fields_updated
- keep in sync with the simulator module
2020-06-18 09:54:00 -04:00
Daniel Agar f55ed0992c accel and gyro calibration refactor and cleanup
- remove all remaining IOCTLs for accel and gyro and handle all calibration entirely in sensors module with parameters
 - sensor_accel and sensor_gyro are now always raw sensor data
 - calibration procedures no longer need to first clear existing values before starting
 - temperature calibration (TC) remove all scale (SCL) parameters
    - gyro and baro scale are completely unused
    - regular accel calibration scale can be used (CAL_ACC*_xSCALE) instead of TC scale
2020-06-17 22:50:09 -04:00
Matthias Grob 588d551098 mc_pos_control_params: set the ground slow down speed to the default maximum speed
This results in no change with defaults but a slow down to 10m/s if the maxiumum speed is set higher than that.
2020-06-17 11:47:41 -04:00
Matthias Grob bcd771d832 Update ecl and adapt to new AlphaFilter location 2020-06-17 09:29:35 -04:00
hanyang2013212 4209101333 Update uuv_att_control.cpp
Modified the thruster value to be accessed from attitude setpoint message instead of parameters
2020-06-16 19:27:54 -04:00
TSC21 6add0fff7f add iris_dual_gps config and the possibility of testing GPS blending through simulation 2020-06-16 09:57:05 +01:00
JaeyoungLim 39b803a9dc Remove gps noise multiplier parameter (#15108)
This removes the gps noise multiplier parameter that can be set on the firmware side
2020-06-15 22:32:32 +02:00
Daniel Agar 6c78c62d9d BMI088: accel get max rate from PX4Accelerometer 2020-06-15 10:19:14 -04:00
Daniel Agar e819f99064 new Bosch BMI055 IMU driver using FIFOs and DRDY
- accel & gyro FIFOs enabled
 - FIFO watermark on data ready interrupt
 - sensor side filtering completely disabled
 - gyro now respects `IMU_GYRO_RATEMAX` (up to 2 kHz)
 - saves a few % cpu (at default rate)
2020-06-15 10:19:14 -04:00
Daniel Agar daf75e40eb drivers/imu/invensense: simplify gyro range configuration 2020-06-15 09:36:21 -04:00
Matthias Grob 1efc8c27eb FlightTaskAuto: check yawspeed saturation before constraining
to avoid possible numerical float equality issues.
2020-06-15 10:40:48 +02:00
bresch 12449c23c5 FlightTaskAuto: add missing wrap_pi and do not override yaw_sp_aligned 2020-06-15 10:40:48 +02:00
bresch 7a401e5ca3 FlightTaskAuto: Create artificial yaw speed sp for feedforward 2020-06-15 10:40:48 +02:00
Matthias Grob c165327c9f INA226: revise read() and collect() error handling
to allow negative currents and simplify unnecessary redundancy.
2020-06-15 10:26:10 +02:00
Matthias Grob da9feeb699 INA226: refactor spacing and return codes 2020-06-15 10:26:10 +02:00
dino d98cf2f719 Fixe for wrong perf counter increment in ina226 driver 2020-06-15 10:26:10 +02:00
PX4 BuildBot eee87cd605 Update submodule ecl to latest Mon Jun 15 00:38:18 UTC 2020
- ecl in PX4/Firmware (adc733932566f0198a8892c3cebe9e5c8345e391): https://github.com/PX4/ecl/commit/38cbd1a18211f1702b403915ab37d5e22626432f
    - ecl current upstream: https://github.com/PX4/ecl/commit/e835bc34c4c84b526941db418f5c9d00d35cbe12
    - Changes: https://github.com/PX4/ecl/compare/38cbd1a18211f1702b403915ab37d5e22626432f...e835bc34c4c84b526941db418f5c9d00d35cbe12

    e835bc3 2020-06-06 Kamil Ritz - remove inline modifier
74780aa 2020-06-06 Kamil Ritz - Refactor gps fusion commencing
2020-06-14 22:14:14 -04:00
PX4 BuildBot f89dac03f3 Update submodule matrix to latest Sun Jun 14 12:39:39 UTC 2020
- matrix in PX4/Firmware (18f14ebefad29873ddeef6396c7c3a728c90b996): https://github.com/PX4/Matrix/commit/2bee0d078cb6b0e6205d17145899ccbb15dbe380
    - matrix current upstream: https://github.com/PX4/Matrix/commit/674bd99f3b9284e1088d100d765b3a09cf0c192f
    - Changes: https://github.com/PX4/Matrix/compare/2bee0d078cb6b0e6205d17145899ccbb15dbe380...674bd99f3b9284e1088d100d765b3a09cf0c192f

    674bd99 2020-06-11 kamilritz - Add operator* and operator/ for slice with type
38b3acc 2020-06-11 Nicolas MARTIN - fix conjugate_inversed comment
2020-06-14 11:18:00 -04:00