I'm part of a group trying to achieve semi-autonomous (to start with) control of a quadrotor as part of a university project. I've been doing a lot of reading and I think I'm starting to gain an understanding of the difficulties involved and the vibration issues of helis.
If we were being sensible about this we'd just buy one of the existing low-cost IMU/AHRS (arduimu, quadpowered, uavdevboard, chr-6d/6dm etc) and adapt it to our needs but we're trying to build something that can be used as a base for other projects within the university.
For the moment we don't have to worry about Kalman filtering, DCM, control or any of that nasty mathematics - there is another department within the university that already has all this and can help us out. What we do need to do is develop a reasonably priced IMU... which is where I have a few questions for you fine people!
1) We're trying to avoid LGA or BGA packages because of the soldering difficulties, so wherever possible we are using breakout boards such as the Sparkfun ADXRS610 gyro breakout. We were set to use the MMA7260Q 3-axis accelerometer but I've been reading that they aren't so great for helis. Is this true and if so does anyone have some suggestions for a replacement? How about the ADXL355?
2) Since we want this to be quite adaptable and future-proof, we'd like the ability, if possible, to sample all sensor inputs at 16-bit resolution at a high sample rate. So that would be 3xGyro, 3xGyroTemp, 3xAccel for a total of 9 ADC channels + ideally another 3 for air pressure/wind speed sensors. Some of these could be sampled at a much lower sample rate or resolution but for the moment we'll try for 10 16-bit ADC channels at as high as possible a sampling rate. (Magnetometer interfaces via I2C so thankfully we can ignore that). Is this doable with a chip like the STM32 (oversampling and decimating as in the CHR-6D) or would we need an external ADC? I'm assuming the latter...
3) Any thoughts on hardware vs software when we low-pass filter our sensors? And how low can we go before we start to lose good data...how fast can a quad move?! I'm assuming that the low-pass filtering is to stop aliasing so do we have to be mindful of our sample frequency when we set the filter pole?
Thank you,
Chris
Replies
As for 3) you definitely need hardware (analog) low pass filters to avoid aliasing. Quadrotors and other hovering vehicles had a bandwidth of about 0.5 - 3 Hz. You want your filters to have some headroom above this so you're not losing data. Digital control lore has it that your sample rate should be at least 10x above the system b/w. As in the CHR-6D, you'd be better off oversampling and decimating. Set your filter such that the attenuation is below 1 LSB at the nyquist frequency (or better). Oversampling allows you to make it a lower order filter (more gradual slope and less expensive).
http://books.google.com/books?id=s0k9kGs5bHYC&dq=industrial+ele...
(page 113 is what you want, I think)
- Roy