Arduino - Razor6DOF IMU : gyroscope and acceleration vibration tests
I wanted to test if vibration of the UAV, ok Radio Controlled plane :), has an influence on Razor6DOF gyroscopes and accelerometers, any if any special considerations needs to be addressed when placing IMU inside the airplane. Baseline gyroscope and accelerometer Arduino / Razor6DOF data were obtained during original evaluation. Gyroscopes used are LPR530AL and LY530ALH, and accelerometer is ADXL335.Set-up
Getting airplane test setup on the bench to mimic real in-flight vibration will not be easy - best configuration I came up is to suspend RC plane from the ceiling with few strings - one at the nose and two at the tail. Additionally piece of styrofoam was placed in front of the nose of the plane to absorb forward movement when motor is turned on. I also loosely placed piece of styrofoam just forward of horizontal stabilizator in order to dampen oscillations produced when motor is on and is trying to "push-into" foam at the front. I did try running without it but plane was oscillating - not much, but still enough that I could see that it is result of forward push. Idea of the foam at the tail is just to loosely hold it in place - i.e. no rigid connection.
Razor6DOF / Arduino IMU was placed inside airplane just forward of leading edge. Note that Razor6DOF board is mounted
on the Arduino in the shield type of configuration, and is on the prototype board - it's an experimental setup and not a
neat and pretty as UAVDevBoard, ArduIMU, etc. I didn't want to pack RC battery,
nor make everything really neat as I didn't know how many times I'll have to take things out. Arduino was powered
from external supply and data was collected via USB cable connected to the laptop. All external cables were "strain relived".
Data was collected using simple custom LabVIEW program and logged to a text file. With everything in place, data acquisition was started and for first few
seconds was collecting 'baseline' data without motor on. Then I would add throttle to a first or second notch on the RC transmitter stick, wait for few seconds, move it to half throttle, wait a little and then move it towards full throttle, and finally ending it with another baseline condition.
You can see live acquisition in the picture below - note that propeller is spinning, and in the background you can see data being acquired.
Afterwards I added padding - blue foam - between Arduino board and fuselage, and repeated the test.
Taking it one step further, I added padding to the RC motor base mount, and took measurements one more time.
Test Data
First three plots show accelerometer and gyroscope (4x amplified) data for all three test conditions.Plots are in following order: just the IMU (no padding), padding under Arduino, and padding under Arduino and motor base.
Since Arduino has only six analog inputs I had make another run per combination to get data for non-amplified data signals. In that case I acquired data for all gyros so that comparison can be made. I had to physically move test set-up in order to do so, but I tried to minimally affect board placement. Analysis of amplified gyro signals can be used as a comparison.
It should be noted that Razor6DOF board has 0.1uF capacitors on the ADXL335 accelerometer outputs to create low pass filter with 50 Hz bandwidth. And I did sample data at 20ms...
Also gyroscopes have a high-pass filter on the 4x amplified outputs which is likely making them not very suitable for UAV - RC airplane applications under certain conditions. Suggestion is to remove high pass filter by removing 4.7uF and 1MOhm resistor. This is based on discussions at DIYdrone's threads here and here BTW, join DIY Drones - it's a good community! Gyros have low pass filter as well - at it could likely use bigger capacitor there as well. It would be interesting to test Razor6DOF board with those modifications....
What this test also showed me is that IMU board should be reasonably isolated from airplane body in order to reduce effects of vibrations (this is sort of expected common sense). Looking especially at gyro data, overall magnitude at different regimes for most part reduced as more padding was added. But padding and board location should be carefully considered - if you look at data with IMU padding vs IMU + motor padding it appears that gyros are more stable with IMU padding only at lower throttle. This data might be "real" but I might of have board in slightly different position and more to it's liking...