Visited some hobby shops last week to see what kind of trainer airplanes they have. (Trying to fly on a custom model without any experience isn't the best idea). There are several in the Markham area, prices usually above $150.
One of the reasons I wanted to see a trainer was to get a sense of sizing the receiver board. Well, 1.5"x1.5"x3" cockpit is about it (4' wingspan). That puts a stopper on much of my modular design. I intended to have modules on separate PCBs bolted together either with heatsink. Initial modules were to be:
-Power (Bucks, LDOs and battery)
-Motor (half H-bridge, servo control transceiver)
-XBEE router
-Main (featuring dsPIC33FJ256MC510, a 100 pin, 12mm x 12mm, TQFP, scary)
Design being like that, I can replace motor board to handle single or double DC or AC motor, replace XBEE with WiFi or custom interface and so on.
Unfortunately, size being what it is, I have to combine modules to minimize size.
One option is to combine a future IMU module with the Main Board. Its been quiet interesting week, seeing all of those motion integrals being applied to real things. While nothing definite is set in stone yet, an ideal IMU module would contain 3 gyroscopes (IDG-300 and ADXRS610=32pin BGA, brrrr) 3 Accelerometers (ADXL330 or ADXL103+ADXL203) and 3 magnetometers (HMC1052L and HMC1051ZL). Besides the price and IDG-300 needing a special order, there are many other things to consider.
First, as a requirement for the IMU, I wish to track position and attitude (6 numbers). While the calculations to obtain the requirements from the available 9 measurements are not quantum level, they are nothing to sneeze at (just working it out now, quiet a pain to visualize).
Next, one has to consider the drift and error inherent to all those sensors. The solution is a Kalman filter... An 'decent' explanation is available on wikipedia; good thing I just finished a probability course, because the math is still pretty muddy.
Next, there are all the vibrations in the frame affecting the measurements. The obvious one is the motor producing a given frequency of motor revolutions per minute. It makes the rest of the frame vibrate, probably at other frequencies. Bottom line, all the data has to be passed through an FFT, filtered, reverse-FFT and finally given to to the Kalman filter (Kalman filter is done in time domain, never heard of those before).
Lastly, all of that massive filtering has to be efficient, because the same processor is to be used to control the PWM channels (i.e. motors and servos), communicate through XBEE and other on-board modules. Lets hope those 40 MIPS will cover all of the processing (never mind that the whole design has to be power efficient...)
So, I am going back to all those rotation matrices...
0 comments:
Post a Comment