Skip to content

Latest commit

 

History

History
35 lines (25 loc) · 4.54 KB

README.md

File metadata and controls

35 lines (25 loc) · 4.54 KB

sfte2022

SFTE Symposium 2022 Workshop presentation, PDAS information, and demo code.

Demos

Demo software is located in the demos folder. All software is written in Arduino to work with the BFS FMU-R mini v1.0 UAS research flight control system, which uses a Teensy 4 MMOD processor, MPU-6500 IMU, BMP388 static pressure sensor, and LIS3MDL magnetometer.

imu_raw

This demonstrates raw accel and gyro data from the MPU-6500, a low-cost MEMS IMU. Requires the BFS Invensense IMU library and the BFS Eigen library.

accel_cal

Calibrates the MPU-6500 accelerometer by having the user rotate the board in all 6 directions (3-axis, up and down), using the gravity vector to excite the accel and estimating bias and scale factor for each axis. Requires the BFS Invensense IMU library, the BFS Eigen library and the BFS Statistics library.

imu_cal

This demonstrates calibrated data from the MPU-6500. The gyro is calibrated during startup and the accel calibration factors from the accel_cal code are loaded from EEPROM. Requires the BFS Invensense IMU library, the BFS Eigen library and the BFS Statistics library.

gyro_integration

This demonstrates integrating gyro data at 1 kHz to estimate attitude. Gyro data works well for estimating attitude in dynamic environments, but drifts over time. The gyro is calibrated during startup. Requires the BFS Invensense IMU library, the BFS Eigen library, the BFS Statistics library, and the BFS Units library.

mag_cal

Calibrates the LIS3MDL magnetometer by having the user slowly rotate the board over 60 seconds while trying to have each axis draw a sphere. Requires the BFS Invensense IMU library, the BFS LIS3MDL library and the BFS Eigen library.

tilt_compass

Demonstrates a tilt compass to estimate attitude and heading. The gyro is calibrated during startup and the accel and mag calibration factors from accel_cal and mag_cal are loaded from EEPROM. Requires the BFS Invensense IMU library, the BFS LIS3MDL library, the BFS Eigen library, the BFS Statistics library, the BFS Navigation library, and the BFS Units library.

ahrs

Demonstrates a 7 state EKF to estimate attitude, heading, and real-time gyro biases. The gyro is calibrated during startup and the accel and mag calibration factors from accel_cal and mag_cal are loaded from EEPROM. Requires the BFS Invensense IMU library, the BFS LIS3MDL library, the BFS Eigen library, the BFS Statistics library, and the BFS Units library.

wireless_air_data

This example demonstrates setting up a wireless air data probe to work with PDAS using the PDAS external data inputs. The code samples data from static and differential pressure transducers (AMS5915-1200B and AMS5915-0020D). The differential pressure bias is removed on startup. Pressures are low pass filtered and used to estimate airspeed (m/s) and pressure altitude (m). Two potentiometers are read over analog, simulating angle of attack and flank angle vanes. Polynomial evaluation is performed to convert the measured voltages to angles. This data is packaged in the PDAS external data format and sent to PDAS over a wireless radio modem. The following libraries are needed: