Daniel Agar and alexklimaj
d5839e2dd5
optical flow sensor pipeline overhaul
...
- all sources of optical flow publish sensor_optical_flow
- sensor_optical_flow is aggregated by the sensors module, aligned with integrated gyro, and published as vehicle_optical_flow
Co-authored-by: alexklimaj <alex@arkelectron.com >
2022-06-20 20:56:56 -04:00
alexklimaj
4cc3e78558
Add mag bias estimator to CAN GPS units with IMUs
...
- run `sensors` hub to process sensor_mag and publish vehicle_magnetometer
- update uavcannode to use vehicle_magnetometer
2022-06-19 15:46:36 -04:00
Daniel Agar
c7cec4252c
sensors: add CONFIG_SENSORS_VEHICLE_AIRSPEED for airspeed/differential pressure
...
- disable CONFIG_SENSORS_VEHICLE_AIRSPEED on boards only used for multicopter
2022-06-17 19:31:45 -04:00
Daniel Agar
c46fa01195
sensors: add kconfig mechanism to optionally exclude sensor types
2022-06-17 19:31:45 -04:00
Daniel Agar
ce70b6f4ac
sensors/vehicle_angular_velocity: add IMU_GYRO_RATEMAX constraints
2022-06-07 15:45:47 -04:00
Daniel Agar
01f0992f49
sensors/vehicle_imu: don't bother checking IMU_GYRO_RATEMAX
2022-06-07 15:45:47 -04:00
Serhat Aksun
bc220ddb82
sensors/vehicle_magnetometer: fix multi_mode check
...
Signed-off-by: Serhat Aksun <serhat.aksun@maxwell-innovations.com >
2022-05-23 10:09:41 -04:00
mcsauder
6b0788ff46
Standardize variable naming and formatting across vehicle attitude controller files.
2022-05-21 12:22:18 -04:00
mcsauder
e8da98fd14
Add gyro clipping to mirror accel clipping monitoring instances.
2022-05-18 21:16:05 -04:00
Daniel Agar
f390f52058
drivers/differential_pressure: remove lib/drivers/airspeed dependency and cleanup
...
- split ms4525_airspeed into separate ms4515 and ms4525 drivers
2022-04-26 08:39:19 -04:00
Daniel Agar
d1d15a6f6d
differential pressure remove filters from drivers and average in sensors/airspeed
2022-04-26 08:39:19 -04:00
Daniel Agar
258f558fea
apply differential pressure calibration (SENS_DPRES_OFF) centrally
...
- remove drv_airspeed.h and ioctls
2022-04-26 08:39:19 -04:00
Daniel Agar
b4158c1b48
sensors/vehicle_imu: Integrator use 1 microsecond for minimum DT
...
- this is a more realistic minimum for the system
2022-04-13 10:36:45 -04:00
Daniel Agar
d2f1349d1a
sensors/vehicle_imu: replace coning metric with actual integrator coning correction (averaged)
...
- this saves a relatively expensive higih rate cross product and gives
better visibility into what's actually happening internally
2022-04-13 10:36:45 -04:00
Daniel Agar
bb2ea574aa
ekf2: properly reset IMU biases on calibration change (non-multi-EKF)
...
- this was working in the multi-EKF case using vehicle_imu, but missing
in sensor_combined
2022-04-11 12:23:55 -04:00
Daniel Agar
0595efbd9b
sensors/vehicle_magnetometer: publish sensors_status_mag and other minor updates to stay in sync with air data
2022-03-26 16:08:41 -04:00
Daniel Agar
0c31f63896
sensors: add baro calibration and cleanup
...
- sensor_baro.msg use SI (pressure in Pascals)
- update all barometer drivers to publish directly and remove PX4Barometer helper
- introduce baro cal (offset) mainly as a mechanism to adjust
relative priority
- commander: add simple baro cal that sets baro offsets to align with
GPS altitude (if available)
- create new sensors_status.msg to generalize sensor reporting
2022-03-26 16:08:41 -04:00
Daniel Agar
6135bb384b
cleanup module callback registration failed errors
2022-03-23 20:44:50 -04:00
Daniel Agar
f4c3084c26
init adjustments to ensure used topics are advertised early (primarily for logging)
...
- multi-EKF create each instance as soon as IMU & mag are advertised (before device id populated)
2022-03-23 16:51:16 -04:00
Daniel Agar
475bd42ab8
sensors: add 2nd static notch and migrate existing parameters
...
- new static notch filter configured via IMU_GYRO_NF1_FRQ and IMU_GYRO_NF1_BW
- existing notch parameters IMU_GYRO_NF_FREQ and IMU_GYRO_NF_BW become
IMU_GYRO_NF0_FRQ and IMU_GYRO_NF0_BW
2022-03-19 14:38:04 -04:00
Daniel Agar
3d54d25867
sensor calibration delete temperature (CAL_ACCx_TEMP, CAL_GYROx_TEMP, CAL_MAGx_TEMP)
...
- this was an experiment to casually monitor sensor offsets relative to temperature, but now that all calibration offsets can be adjusted post-flight the stored temperature can be misleading
- deleting to save a little bit of flash (and storing the temperature wasn't useful)
2022-03-12 11:38:49 -05:00
wangwwno1
aa64789792
sensors/vehicle_imu: Fix Integration Rate greater than Gyro Rate ( #19318 )
2022-03-12 11:29:23 -05:00
Jukka Laitinen
9449ed6e66
Add support for protected build in drivers, systemcmds and modules Kconfig
...
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae >
2022-02-18 07:58:58 +01:00
Daniel Agar
97a75fc388
sensors: skip selection and failover checks during parameter update cycles
2022-02-10 09:31:23 -05:00
Daniel Agar
86f81680fb
sensors: check uORB::SubscriptionData validity before use
2022-02-08 13:19:01 -05:00
Daniel Agar
f9d87fd97a
sensors/vehicle_angular_velocity: improve error handling (especially during initial selection)
2022-02-07 12:47:02 -05:00
Daniel Agar
138ff7a316
sensors: ensure that best accel/gyro is in bounds
2022-02-02 17:14:46 -05:00
Daniel Agar
07c273fc31
sensors/vehicle_angular_velocity: print full sensor_selection if device id not found
2022-02-02 17:14:46 -05:00
Daniel Agar
ae3070bbf1
ekf2: make filter update period configurable
...
- introduces new parameter EKF2_PREDICT_US to configure the filter
update period in microseconds
- actual filter update period will be an integer multiple of IMU
2022-01-26 10:57:09 -05:00
Daniel Agar
5ded1aedcb
sensors/vehicle_angular_velocity: add IMU_GYRO_DNF_HMC to configure number of ESC RPM notch filter harmonics
2022-01-24 09:23:03 -05:00
Daniel Agar
7cb8ed3a1f
sensors/vehicle_gps_position: don't work with 64 time with 32 bit floats
2022-01-21 09:18:49 -05:00
Daniel Agar
36605bfff6
sensors: lower SENS_MAG_RATE default
...
- reduce estimator 3D mag fusion cpu load (-3% on Pixhawk4)
2022-01-19 08:51:57 -05:00
Daniel Agar
dd6b7fa98f
sensors: switch status PX4_INFO -> PX4_INFO_RAW
2022-01-18 15:00:18 -05:00
Daniel Agar
b1d2a0cc4e
sensors: simplify timestamp data validator handling
2022-01-18 14:57:18 -05:00
Daniel Agar
548b7d5ece
sensors/vehicle_imu: on calibration change don't resume in flight calibration learning immediately
2022-01-18 11:22:41 -05:00
Daniel Agar
bb1177d504
sensor_calibration: refactor and centralize calibration slot logic
...
- centralize logic for selecting a preferred calibration slot
- automatically use existing calibration slot if it exists, otherwise
find first available slot, with a preference for a requested index
- existing commander calibration methods rewrite all calibration slots
to match current sensor ordering
2022-01-12 16:16:26 -05:00
Daniel Agar
2eec7842ae
sensors/vehicle_imu: fix SENS_IMU_AUTOCAL saving logic
...
- on cycles that don't check for updated calibraton (estimated bias) we
check if there's anything valid to save (when disarmed)
2022-01-11 11:47:02 -05:00
Daniel Agar
cc1fee525a
lib/sensor_calibration: handle calibration slot change on parameter update
2022-01-10 17:16:50 -05:00
Daniel Agar
ab547bb982
sensors/vehicle_angular_velocity: RPM notch don't fully disable if first harmonic frequency drops below minimum frequency
...
- keep higher frequency harmonics enabled per ESC
- cleanup timestamp handling (timeouts, etc)
2022-01-10 14:51:29 -05:00
Daniel Agar
b58922a5d7
sensors/vehicle_angular_velocity: notch filters automatically reset on sufficient parameter change
2022-01-10 14:51:29 -05:00
Daniel Agar
7d632254be
NotchFilter push initialization/reset into filter
...
- this simplifies the reset by allowing a notch filter to reset as
needed
- improves cascade initialization, on reset each filter will reset
properly from the previous
2022-01-10 14:51:29 -05:00
Daniel Agar
d9e7315420
sensors: automatically set initial accel/gyro calibration if stable bias available
2022-01-10 10:46:37 -05:00
Daniel Agar
e731fcdbc0
sensors (accel/gyro/mag) determine if external with device id
2022-01-10 10:31:07 -05:00
Daniel Agar
6c97700eaa
move sensor calibration parameters to yaml
2022-01-07 19:00:41 -05:00
Daniel Agar
c17a9e8003
sensors/vehicle_imu: refactor SensorCalibrationUpdate() to separate accel/gyro cal saving
2022-01-07 09:40:51 -05:00
Daniel Agar
aec97e0020
sensors: minor IMU bias saving updates
...
- sensors/vehicle_imu: reset learned cal on any calibration change
during parameter update
- sensors/vehicle_imu: cleanup logic estimated bias -> calibration offset
saving
- don't invalidate saved calibration (the point is to keep the last valid)
- remove old debug code, etc
- sensors/vehicle_imu: notify parameter changes if accel or gyro
calibration has changed
- lib/sensor_calibration: add calibrated() and calibration_index()
getters, keep Accelerometer/Gyroscope/Magnetometer in sync
2022-01-07 09:40:51 -05:00
Daniel Agar
30ccfdb2ed
sensors/vehicle_magnetomeer: fix copyright year
2022-01-06 20:27:56 -05:00
Daniel Agar
170849c8f8
ekf2: expand accel bias stability criteria
2022-01-04 13:57:49 -05:00
Daniel Agar
47fcdb1fdb
sensors/vehicle_angular_velocity: replace ESC/FFT elapsed perf counters with single cycle perf counter
...
- non-trivial perf counters (elapsed & interval) are relatively expensive
- if ESC and FFT notch filtering are enabled this reduces 6 updates (2 per axis) to 1
2021-12-21 14:21:10 -05:00
Daniel Agar
2190f66096
sensors/vehicle_magnetometer: add SENS_MAG_AUTOCAL to enable initial auto cal
2021-12-01 20:24:56 -05:00