Commit Graph
936 Commits
Author SHA1 Message Date
Daniel Agar 0b9e4a5902 sensors/vehicle_imu: Integrator simplify and make header only 2021-05-31 10:05:10 -04:00
Silvan Fuhrer cf5e6e4133 Sensors: subscribe to differential_pressure in vehicle_air_data to calculate air density
-constrain range to -20..35°C
-do not use temperature readings if exactly 0 (as likley not filled by driver at all in this case)

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-05-31 09:53:47 +02:00
Daniel Agar b264577daa sensors/vehicle_acceleration: require valid sample rate before running
- this fixes a minor edge case when you only have a single accelerometer and haven't made any parameter changes, the sensor sample rate (used for filtering) might not have been updated from default
2021-05-24 21:39:42 -04:00
Daniel Agar 0fc98b2793 move IMU_GYRO_FFT_EN parameter to developer category
- these need more work and testing before we should encourage wider usage
2021-05-24 18:59:32 -04:00
Daniel Agar 87b861d0f0 IMU_GYRO_CUTOFF and IMU_DGYRO_CUTOFF increase default slightly 2021-05-17 17:37:52 +02:00
Jukka Laitinen fa9fdce6e6 sensors/vehicle_gps_position: Fix raw_dt and present_dt calculation in gps_blending
If the GPS data is passed from companion computer, there may be inaccuracies
with timesync. This may cause time deltas to overflow.

Make the time delta calculation using floats directly, wich results in negative
numbers in case there are such inaccuracies.

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2021-05-02 13:59:50 -04:00
Daniel Agar 6e9e503ee6 sensors/vehicle_imu: accel clipping warning minor improvements
- no warning if accel is disabled
 - threshold increased 100 -> 1000 (only warn if severe ongoing clipping)
 - more generic warning message (vehicle isn't necessarily in air flying)
2021-04-25 17:03:43 -04:00
Daniel Agar 8478d1ea37 sensors/vehicle_angular_velocity: properly handle filter reset on FIFO data scale changes
For the sake of efficiency (at 8 kHz) all filtering is performed on the raw data before the calibration and rotation is applied to only the final output. As a result we have to be a bit more careful when switching between sensors or in cases where the gyro scale factor changes (eg icm42688p 20 bit data rescaled to fit in int16 output).
2021-04-25 14:20:32 -04:00
Daniel Agar 047fb13922 IMU_GYRO_RATEMAX: enforce reasonable constraint and update metadata 2021-04-13 20:26:57 -04:00
Daniel Agar 31b9efdaeb sensors/vehicle_imu: increase threshold for clipping warning 2021-04-06 15:42:26 -04:00
Daniel Agar b30f3917d3 sensors/vehicle_imu: periodically send mavlink critical message if clipping 2021-04-03 10:32:16 -04:00
Daniel Agar 9171a84324 IMU_DGYRO_CUTOFF increase default 10 -> 20 Hz 2021-04-01 08:30:09 -04:00
Beat Küng 2d2799b739 IMU_GYRO_CUTOFF: add 800 (used by SITL) 2021-03-30 08:18:49 +02:00
Beat Küng 346f269d8f IMU_INTEG_RATE: add 250 (used by SITL) 2021-03-30 08:18:49 +02:00
Daniel Agar ae010ea55c sensors/vehicle_angular_velocity: unify filtering for both FIFO and regular use cases 2021-03-24 09:23:40 +01:00
Beat Küng 629f7ba15b params: ensure short description is only a single line
So a UI can display it properly
2021-03-23 12:55:11 -04:00
Daniel Agar e57aaaaa5e rotate accel/gyro FIFO before publish and fix angular velocity filter resets
- rotates accel & gyro FIFO data before publication both to simplify downstream usage (including log review) and fix other issues
     - to best handle int16_t data rotations are now either performed with swaps if possible, otherwise promoted to float, rotated using the full rotation matrix, then rounded back to int16_t
 - fix sensors/vehicle_angular_velocity filter reset both with proper rotation and new calibration uncorrect helper
      - in FIFO case filtering is done before calibration is applied, but we need to handle a possible reset from a completely different sensor (vehicle body angular velocity -> sensor frame uncorrected data)
2021-03-22 12:01:12 -04:00
Daniel Agar 7563438558 sensors/vehicle_angular_velocity: fix dynamic notch ESC in FIFO case
- last timestamp sample must be set in FIFO case for ESC RPM dynamic filter update
 - slightly relax thresholds for dynamic notch FFT apply or reset
2021-03-21 20:46:54 -04:00
Daniel Agar b74bdb0250 sensors/vehicle_angular_velocity: RPM filter add harmonics 2021-03-18 19:34:51 -04:00
Daniel Agar cbb2fa440b sensors/vehicle_angular_velocity: only allocate dynamic notch perf counters if enabled (IMU_GYRO_DYN_NF) 2021-03-08 10:35:48 -05:00
Daniel Agar fddcb73802 sensors/vehicle_angular_velocity: dynamic notch filter support ESC RPM (untested) 2021-03-05 10:56:54 -05:00
Daniel Agar d5d5b7d82e sensors/vehicle_angular_velocity: add perf counters 2021-03-05 10:56:54 -05:00
Daniel Agar 00b3b3678b sensors/vehicle_angular_velocity: gyro dynamic notch filters updated from onboard FFT 2021-03-05 10:56:54 -05:00
Daniel Agar c9a2d0ed34 IMU_GYRO_RATEMAX set system default to 400 Hz
- MC default is still 800 Hz
2021-03-02 10:08:49 -05:00
Daniel Agar 9d0c966b15 sensors: publish sensor_selection initially regardless of SENS_IMU_MODE
- in multi-EKF mode the EKF selector becomes repsonsible for sensor
selector rather than the sensors module
 - this updates the sensors module to still make the initial primary IMU
selection on startup before the EKF selector (including if the
estimators never fully initialize)
2021-02-27 20:19:05 +01:00
Daniel Agar 6482120d9a sensors/vehicle_angular_velocity: use full raw FIFO data (sensor_gyro_fifo) if available 2021-02-25 10:06:17 -05:00
Daniel Agar 5f3e883f2c sensors/vehicle_imu: vehicle_imu_status include accel/gyro full raw FIFO sample rate 2021-02-24 08:13:53 -05:00
Lorenz Meier 2be482c5ae Sensors: New parameter for baro priority
This allows to give external barometers priority if they are present.
2021-02-14 11:17:28 +01:00
Daniel Agar a76e429b1a calibration parameters volatile (offsets and scale factors)
- anything set vehicle side should be volatile and excluded from the
param hash
2021-02-10 09:01:47 +01:00
bazooka joe 8834741be8 gps blending make test to work without templated gps_blending class 2021-02-06 12:59:04 +01:00
bazooka joe 8087fac3fc gps_blending add protection against accessing non-exist array item 2021-02-06 12:59:04 +01:00
bazooka joe a0d500b30a changing gps_blending to be non-template class
because there is no multiple instance types on singular machine
2021-02-06 12:59:04 +01:00
Julian Oes be3cdc0439 sensors: correct comment logic
By removing the no the comment matches the implementation (which I think
makes sense).
2021-02-04 10:14:44 +01:00
Daniel Agar 6a4835bbcc sensors: vehicle_magnetometer combine extra _vehicle_magnetometer_pub 2021-01-30 21:50:01 -05:00
Daniel Agar ce76c84ce2 sensors: vehicle_magnetometer respect publication rate limit SENS_MAG_RATE 2021-01-30 21:50:01 -05:00
Daniel Agar 318c7e83b3 support up to PWM 14
- generate PWM_MAIN 1-14
 - generate PWM_AUX 1-8
 - generate PWM_EXTRA 1-8
 - px4io and pwm_out directly read configuration parameters
    - only available and active physical outputs are actually shown for configuration
 - overall saves flash despite adding many new parameters
2021-01-30 15:55:53 +01:00
bresch cdd6df4e27 VehicleGPSPosition: remove unused "using" 2021-01-30 11:32:47 +01:00
bresch 6abbbdeb4b gps blend: add parameter to select the primary instance 2021-01-30 11:32:47 +01:00
bresch 889602ed5e gps blend: always pass through GpsBlending class for selection 2021-01-30 11:32:47 +01:00
bresch b4051b62a3 gps blend: add failover logic and unit test
also remove dependency to hrt library
2021-01-30 11:32:47 +01:00
bresch 9bff7a1c41 gps blend: add selector unit tests 2021-01-30 11:32:47 +01:00
bresch 1dbf4957df vehicle gps pos: remove useless gps_updated array 2021-01-30 11:32:47 +01:00
bresch b60bfb920c gps blend: add initial working test 2021-01-30 11:32:47 +01:00
bresch 1cde5074ea gps blend: move definition to header file 2021-01-30 11:32:47 +01:00
bresch 1333664a14 gps blend: move blending logic to class 2021-01-30 11:32:47 +01:00
Claudio Micheli c2a68debd9 add jamming_state to gps sensor module
Signed-off-by: Claudio Micheli <claudio@auterion.com>
2021-01-30 11:26:42 +01:00
Daniel Agar 3b26b7adaf sensors: magnetometer preserve original mag cal offset for status message 2021-01-26 16:04:10 -05:00
Ricardo Marques e817fb83f5 pwm_extra: Add PWM_EXTRA parameters.
Signed-off-by: Ricardo Marques <marques.ricardo17@gmail.com>
2021-01-18 15:43:28 +01:00
Daniel Agar a0d8d5ac74 sensors/vehicle_gps_position: untangle and remove unnecessary state 2021-01-13 20:17:49 -05: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