Commit Graph
11 Commits
Author SHA1 Message Date
Daniel Agar e49112d406 invensense/icm20608-g: delete unnecessary perf counters 2020-01-30 13:07:44 -05:00
Daniel Agar aad27c4f94 invensense/icm20602: use watermarak interrupt instead of data ready and remove unnecessary perf counters 2020-01-30 13:07:44 -05:00
Daniel Agar ca4b8e4e76 invensense/mpu9250: delete redundant interval perf counter 2020-01-30 13:07:44 -05:00
Daniel Agar 6fe35d522a new icm20689 driver using FIFOs and raw sampling (8 kHz gyro, 4 kHz accel) 2020-01-30 13:07:44 -05:00
Daniel Agar 3910028fc5 new mpu6000 driver using FIFOs and raw sampling (8 kHz gyro, 1 kHz accel) 2020-01-30 13:07:44 -05:00
Daniel Agar 116716ad22 new mpu9250 driver using FIFOs and raw sampling (8 kHz gyro, 4 kHz accel)
- currently disabled by default
2020-01-29 22:53:21 -05:00
Daniel Agar 2410b31662 sensors: move accel filtering to sensors/vehicle_acceleration
I've added a queue depth of 4 for sensor_accel and sensor_gyro. This is initially added because it's not always possible for the `vehicle_acceleration` to keep up with every publication of the primary accelerator as it runs in the same thread as ekf2, various controllers, etc. 

Later this mechanism will be used in a few areas
 - rate limit `vehicle_angular_velocity` and `vehicle_acceleration` without missing any raw data
 - move IMU integration to `vehicle_imu` and out of the actual driver threads, eliminating the need for sensor_accel_integrated and sensor_gyro_integrated
 - integrate raw gyro synchronized with optical flow measurements
2020-01-29 16:13:38 -05:00
Daniel Agar 24f0c2d72a sensors: move gyro filtering to sensors/vehicle_angular_velocity
- gyro filtering (low-pass and notch) only performed on primary gyro in `sensors/vehicle_angular_velocity` instead of every gyro in `PX4Gyroscope`
 - sample rate is calculated from actual updates (the fixed value was slightly wrong in many cases, and very wrong in a few)
 - In the FIFO case the array is now averaged and published in `sensor_gyro` for filtering downstream. I'll update this in the future to use the full FIFO array (if available), but right now it should be fine.
2020-01-27 10:05:33 -05:00
Daniel Agar 009ba638f5 PX4Accelerometer/PX4Gyroscope update FIFO case to trapezoidal integration 2020-01-22 18:35:41 -05:00
Daniel Agar 1d932f6ec9 IMU drivers using FIFOs increase max length to 16 and sync similar implementations
- this provides some extra space when the FIFO transfers don't align perfectly
 - I've also made an effort to keep the different drivers (icm20602, icm20608g, ism330ldc) in sync so we can factor out the common portions later once we've confident in the pattern.
2020-01-17 22:06:09 -05:00
Daniel Agar 709961ec8c InvenSense ICM20602 and ICM20608-G: new standalone optimized drivers
- uses the FIFO and SPI DMA to transfer full raw data (8 kHz gyro, 4 kHz accel)
 - new sensor messages for better visibility
   - sensor_{accel, gyro}_fifo: full raw data for optional logging and analysis
   - sensor_{accel, gyro}_status: metadata, clipping, etc
 - currently not enabled by default
2019-12-03 23:21:32 -05:00