Taking a break

Matt here! Unfortunately, its looking like we’re going to need to take another break on our quadcopter project. Our Botball season is now in full swing, not to mention we’re at the first of two “hell months” for IB sensiors, Internal Assessment February. In this one month we’ll be writing be writing the TOK paper, doing TOK group presentations, second Math IA, Spanish interactive, Individual Oral Commentaries, and History papers, in addition to our regularly scheduled workload, not to mention squeezing every possible second in to Botball. I’m expecting to be able to resume weekly copter meetings in mid to late march when Botball is over and we enter the less-stressful preparation for hell month part two, IB Exams in May.

I do want to take this post I guess, to describe our progress visually for any readers who stumble upon this between now and our project’s reawakening.


I’ll start off with this video, which shows the carbon fiber frame we constructed, as well as the power system successfully providing the power to achieve liftoff. The control board isn’t using any sensors or making any attempt to stabilise the copter, just parsing our repurposed Vex RC receiver and giving fixed throttle to all four rotors. We were still glad to know however that we could easily attain lift, however, the next, more difficult problem is simply getting it stable.


This is the control board we built over a period of several weeks. I did the majority of the circuit planning and design, while Will did the long arduous task of actually assembling it. The red board at the top is a stm32f103 header board, a powerful ARM cortex-m3 microcontroller. On the elevated board in the center is the micromag3 triple axis magnetometer, and underneath it (not visible from this angle) is the sparkfun 5 DOF breakout and yaw gyro breakout, giving us 3 axis of accelerometers and gyroscopes producing a full 9 DOF IMU.

Kalman Filter
Here’s a graph of a GNU octave script  computing a Kalman filter from sensor captured with me shaking the board. It combines the shaky red accelerometer signal with the accurate but slowly drifting green gyro signal to produce the blue output, a fairly accurate estimate of the board’s roll. The sensors and filter work pretty well in a hand test, however…


Data captured from the quad with all four motors roaring at flight velocity (although actually at the present we’re so light this only about 45% throttle or so.. we should have good payload capacity!) doesn’t look so peachy. This one of our current issues, the motors’ vibrations simply render the accelerometer useless and the Kalman filter is unable to correct for gyro drift. We’ll probably address this and our current unbalanced center of gravity first when we resume work on the quad.


At the low speeds, the Kalman filter operates successfully and allowed me to tune some PID loops making closed loop control. In this video the quad takes a while to steady itself after a large movement, but I’ve since gotten the loop quite tight by adjust the PID loops, and in particular feeding the unbiased gyro signal directly in to the D term instead of taking the derivative of the position estimate.


This was my attempt at flying the quad despite the aforementioned vibration issues. Quite unstable, and in particular the pitch axis is never able to level itself, something it didn’t have a problem with in single axis testing. We do have a poor COG for the pitch axis though that needs to be addressed. Additionally hard-iron calibration issues forced me to disable yaw stabilisation to get any meaningful behaviour out of the quad, so it spins quite nicely once off the ground too. We’ve clearly got a long way to go still, but we’re all as excited as ever to overcome these obstacles!

Advertisement

3 Responses to “Taking a break”


  1. 1 Val September 30, 2010 at 12:46 pm

    Hi !
    I’m actually building a robot with a 4DOF IMU (2 accels and 2 gyros) and a LPC1343, a Cortex-M3 too. Is it possible to see your code for the Kalman Filter please ? :)

    Regards,
    Val’

  2. 2 Nic March 28, 2011 at 9:23 pm

    Hey guys. Thanks for all the info and testing results. I also really like your explanations of the filtering techniques. Can you post your Kalman Filter code (or email it)? I’d love to see what you guys have done. Thanks

    -Nic-

  3. 3 Nic March 28, 2011 at 9:32 pm

    I have some advice for vibration dampening. I had a huge problem with this when I was making a stabilization system for an Align TRex 600 electric helicopter. Vibration resonated through the chassis destroying all sensor readings. I tried many different solutions but the best one was memory foam! If you get some relatively thick foam, and mount the circuitry to it, the foam will dampen almost all of the vibrations out. You want the foam to be pretty thick so that the movement of the quadcopter doesn’t cause the sensors to sway around. I used a sample piece of memory foam from a mattress.

    Hope this helps,

    -Nic-


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s




Project Quadcopter

Welcome to our quadcopter blog! We're a bunch of high school seniors from Florida attempting to create an awesome flying robot before we all have to go our separate ways for college. To learn more, see the about pages!

Follow

Get every new post delivered to your Inbox.