We are designing a Cortex-M4F coupled with a Raspberry Pi running Linux or Andriod Quadrotor, here is our build log!
The Cortex would handle all the controls - sensor fusion, PID/LQR, height, RC controls etc. The Raspberry PI (or another platform) will handle GPS telemetry, communication across different quadrotors, and allowing the user to write higher level applications to do whatever they please while abstracting away the sensor/controls.
The goal is to make everything transparent as possible, from documentation of the sensor fusion algos, and also providing matlab, vpython simulation files.
Current electronic hardware specs (main features):
- CPU: STM32F4-407
- Gyro: IDG500, ISZ500
- Mag: HMC5883L
- Acc: ADXL345
- ST EEPROM
- Barometer : BMA180
- Barometer will switch to MS5611-01BA03, Accelerometer will remain, Gyros will either switch to MPU-3300, or ADXRS450 depending on vibration tolerance/bandwidth
- 8 PWM Inputs
- 8 PWM Outputs
- 3 USARTs
- 2 SPI
- 2 I2C
- 6 ADC
- 4 LED
- 5V out
- 3.3V out
- 2 DAC
All the pins and ports are broken out for additional use such as GPS etc. I would like to keep the control board as straightforward as possible and abstract all the telemetry/localization features to the Raspberry pi (or other controller)
Software:
Using the Extended Kalman Filter with quaternion state propagation as the main sensor fusion algorithm, the Unscented KF is currently written in Matlab but have yet to ported to C.
Using PID for motors now, will resort to LQR when time permits.
Magnetometer calibration using Gauss newton method, written in Matlab.
GPS localization fusion algos have yet to be determined, it is simple outdoors as a Sigma Point KF will just do, but more difficult indoors due to the lack of an absolute reference.
If you have any inquiries/questions or want to help, please let us know!
Small quadrotor: ~8 inches tip to tip
Tri blades
PWM output sonar
Light and sturdy fiberglass frame
2nd revision of the control board
Using the STM32 discovery as a programmer
It is about 200 grams with everything mounted, motors are 2200kv, currently just using an AR DRONE battery. The controllers are 10A hobbyking controllers that can handle 500hz.
Larger all carbon fiber quadrotor:
Entire quad chasis
Carbon fiber blades, hope to reduce the vibration and also increase rotor response time.
Central hub - 4400mah battery for now, the motor controllers are I2C ones.
Size difference...
4 in 1 brushless controller, theses are I2C controllers
Comments
Nice building blog... can you describe the components of the platform (frame, ESC controller, prop size, prop pitch, motor size, amps, etc... ) that you are using on your small 8 inches QUAD? thanks I was googling for it without any luck.... thanks a million. Hernan
Nice platform. Thanks for the information.
Hi, can i ask you where did you get the frame for this project?
@Luke, Thanks! We did a proof of concept using a beagleboard + 720p camera and Gstreamer, it handled 1080p pretty well. The main issue was desense - interference from the motors decreased the useable bandwidth which caused laggy video...Next thing to try is 5 ghz, or playing around with the channel settings.
Just the other day I was wondering if a Raspberry Pi or similar board could be used for higher level functionality. Today I'm reading this. I love the idea! When following my curiosity I was surprised to find the AR.Drone has a 1.0 GHz CPU and 1 Gb (gigabit not gigabyte) of memory. I suppose the use all of that power to do things like encode a live stream of the video for transmission over WiFi (it an iPad or whatever). Something like that which is open source could open doors to all kinds of things, like OpenCV capabilities on-board. Can't wait to see where this goes!
Very nice!
nice... I wish one day one could buy one pcb with all the electronics on it
congratulation great projects
Pi comes after getting all the cortex software up the running :)
When do you plan to install the Pi?