Commit Graph

27 Commits

Author SHA1 Message Date
Matthias Grob f2bca92221 Fix duplicate newlines at the end of files 2024-07-19 14:33:36 +02:00
Beat Küng 666b84027d GyroFFT: disable 4096 for IMU_GYRO_FFT_LEN
saves around 10.5KB flash on px4-fmu-v5
2022-08-25 22:02:15 -04:00
Hamish Willee e6eed43648 Spelling errors (#19935) 2022-07-27 14:33:16 +10:00
Daniel Agar afeab9587e gyro_fft: peak detection exclude side FFT buckets
- when estimating the peak frequency the magnitude of side buckets will
be factored in, so it doesn't make sense to potentially treat them as
separatey detected peaks
2022-03-19 14:37:36 -04:00
Jukka Laitinen 3d35929f3e Put gyro_fft in kernel by default in protected build
It is a performance issue to run it on user side

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-03-17 08:01:51 +01: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
Thomas Debrunner fb54324f56 gyro-fft: Disable asm-operand-widths warning on apple silicon. The warning is caused by unused functions only. As with compiling for x86, the functions containing assembly never get used, but since the apple silicon is also an ARM target, they trigger a warning. 2021-11-19 09:14:11 -05:00
Beat Küng 4ba84d56c9 logger: introduce optional topics
The current practice of adding topics to the default set isn't scalable,
as it affects all setups.
By making sure topics are advertised on init, logger can just discard
topics that don't exist. This does not work for all topics, so topics are
specifically marked as optional. It can be extended to more topics later
on though.

This reduces the list of topics by ~35 on a pixracer configured as quad,
and reduces RAM usage by ~1KB.
2021-11-15 09:02:03 -05:00
Daniel Agar 47afab62e7 gyro_fft: limit noise floor to configured range (IMU_GYRO_FFT_MIN/MAX) 2021-11-08 19:14:32 -05:00
Daniel Agar dd3e0b723a gyro_fft: add IMU_GYRO_FFT_SNR parameter 2021-11-08 19:14:32 -05:00
Peter van der Perk d5e3e9a7bc [Kconfig] Decompose Kconfig, now each module has its own Kconfig
Which is better for versioning and decomposability
2021-10-07 10:09:01 -04:00
Daniel Agar cc4152e10d gyro_fft: require higher SNR for initially tracking a peak
- initial frequency peak tracking SNR increased from 10->15 db
 - after initial detection the threshold decreases to SNR 5db
 - gyro_fft large method refactored into smaller pieces
 - sensors/vehicle_angular_velocity: dynamic notch FFT make sample rate
check a percentage and relax lower bound safety threshold
2021-10-04 10:17:16 -04:00
Daniel Agar a83675c622 gyro_fft: improve scheduling
- move to high priority work queue (from low priority)
 - schedule slightly more often to avoid missing messages
 - perf counter include all FFT processing work
 - lazily allocate gyro gap perf counters on initial sensor selection
2021-08-13 15:00:08 -04:00
Daniel Agar 1b5e65df04 gyro_fft: change default length 1024 -> 512 to decrease latency
- change default FFT length (1024 -> 512)
      - this doubles the update rate because half the number of samples are required for each
 - decrease number of peaks (4 -> 3)
      - so far 3 seems to be sufficient on most vehicles
 - increase median filter window (3 -> 5)
 - decrease SNR requirement (likely needs to be configurable)
2021-07-06 21:54:18 -04:00
Daniel Agar a5ee28883a gyro_fft: track FFT peaks and median filter frequency 2021-07-06 12:32:25 -04:00
David Sidrane 3b725e5525 gyro_fft:Use inttypes 2021-06-16 17:07:47 +02:00
Daniel Agar 2a792ca201 gyro_fft: add simple SNR requirement and reduce number of peaks 2021-05-31 10:26:45 -04:00
Daniel Agar 92910de81d gyro_fft: silence initial sensor selection attempt
- early in startup the selected gyro may not be published yet
2021-03-24 18:58:18 -04:00
Daniel Agar 8000e6feba gyro_fft: reduce default max
- we're mainly looking for lower frequencies that may be an issue for control
2021-03-18 10:04:04 +01:00
Daniel Agar c7c6122bfd gyro_fft: manually inline subset of arm_rfft_init_q15 to save flash 2021-03-18 10:04:04 +01:00
Daniel Agar 1429423876 gyro_fft: support sensor_gyro (non-fifo) 2021-03-18 10:04:04 +01:00
Daniel Agar ed8f6aa8fe gyro_fft: fix bucket_index size
- needed for larger FFT lengths (eg 1024, 2048, etc)
2021-03-16 00:49:45 -04:00
Daniel Agar 20d8de2dca gyro_fft: reduce run frequency (still consuming all queued data) 2021-03-15 09:42:35 -04:00
Daniel Agar af3573e464 gyro_fft: log peak frequency magnitudes 2021-03-15 09:42:08 +01:00
Daniel Agar 3665f9a3c4 gyro_fft: increase default range and length to improve test data 2021-03-14 20:17:41 -04:00
Daniel Agar 0079cb708c gyro_fft: don't update FFT length while running
- this is used for the length of dynamically allocated buffers that
aren't resized while running
2021-03-11 21:53:59 -05:00
Daniel Agar 19de1e57e3 gyro_fft promote to modules and include on all boards 2021-03-05 10:56:54 -05:00