Monday, 22 April 2013

Sunday, 31 March 2013

First flight with new PID parameters

Hovering the Quad' was OK, but it still seemed to be unstable if a gust hit it or too much control was put in. This suggested the P term in the PID tuning was too large, causing oscillations if the difference between the commanded stick input and the measured attitude of the 'copter was too large. So I used the quadcopter on strings method to tune out P and I for pitch and roll (and had a stab at the yaw values). The results seemed good, so I found a nice large field in Devon, grabbed three battery packs and went flying...

PID values used were (low pass filter on the MPU-6050 set to 42Hz):

Roll and pitch: P=1.2 I=0.008 D=3
Yaw: P=2.5 I=0.016 D=0

Next step is to calibrate the auto-level!

Oh, and the crash at the end resulted in a snapped prop, and an excuse to buy lurid green and orange props :)

Wednesday, 20 March 2013

Quadcopter PID tuning and in-flight footage

Now that my quadcopter has its low-pass filter set on the accelerometer, I can fly again! This time I've put on a wee video camera from Veho to capture the quads-eye-view of the flight.

Still need to do some PID tuning as the quad reacts a bit too much to large disturbances, but its now controllable in a hover :)


Monday, 18 March 2013

MultiWii quadcopter - re-flashing the board with new code

So its March and in the UK this means we get glorious sunny skies and 20 degrees C temperatures... oh, wait... that was March 2012. This year we've mostly had snow, wind, fog and rain. All of which are counter-productive to quadcopter testing and flying.

This would be frustrating enough if I hadn't tried to re-flash the flight control board with new MultiWii software that then made the 'copter as unstable as an elephant riding a unicycle on a bouncy castle in an earthquake...

After lots of staring at code and running tests on my ECU, transmitter and motors, I noted that the accelerometer data lines on the multiwii config software were dancing all over the place. Remembering the bit of code in config.h:



      /* MPU6050 Low pass filter setting. In case you cannot eliminate all vibrations to the Gyro, you can try
         to decrease the LPF frequency, only one step per try. As soon as twitching gone, stick with that setting.
         It will not help on feedback wobbles, so change only when copter is randomly twiching and all dampening and
         balancing options ran out. Uncomment only one option!
         IMPORTANT! Change low pass filter setting changes PID behaviour, so retune your PID's after changing LPF.*/
      //#define MPU6050_LPF_256HZ     // This is the default setting, no need to uncomment, just for reference
      //#define MPU6050_LPF_188HZ
      //#define MPU6050_LPF_98HZ
      //#define MPU6050_LPF_42HZ
      //#define MPU6050_LPF_20HZ
      //#define MPU6050_LPF_10HZ
      //#define MPU6050_LPF_5HZ       // Use this only in extreme cases, rather change motors and/or props

 
I tried going through the low-pass filters until the wobbles seemed to be manageable using the 98Hz filter. I also balanced the motors, as these seemed to be creating much noise and vibration. I also added another layer of rubber grommets onto the flight controls mounting board. The results can be seen below on a kitchen table tethered flight:

Roll on Spring! Next step is to get outside and do some hardcore PID tuning :)




Saturday, 26 January 2013

Quadcopter's new brain

A new flight controller for my quadcopter arrived yesterday - a MultiWii 'Standard Edition' board. Now its half the size of the KK Multicopter board that came with my X600 kit, but after a bit of bodging with a carton from Proto-Pic, I came up with an avionics bay...

Unfortunately the FTDI (USB to serial) board didn't arrive with the MultiWii, so out came ol' faithful (without the ATMEGA chip) to let me connect the flight controller to my PC.

MultiWii has a GUI for checking the board is working and setting up the PID and receiver systems. This is incredibly useful as it lets you see what the control inputs are, the sensor values and the motor outputs. I didn't play around with the pre-loaded PID values, but I did set my radio transmitter end-stops so that the flight controller can detect full deflection or min/max throttle. There is a multiwii guide here that covers PIDs. Example guides on Tx/Rx tuning etc are here and here.

First flight with the new board was in a gently gusting south-easterly wind. I'd set an AUX channel on the transmitter to enable ACC/BARO/MAG hold (basically to stabilise pitch, roll, heading and altitude!) and flew with it ON almost exclusively. The quadcopter is much easier to handle and recover when a gust pushes it out of position. I even had a go at a few fast flybys... Not quite up to this standard though:


Monday, 21 January 2013

Quadcopter control system

I had an MPU-6050 6-axis accelerometer/gyro and an Arduino Pro-Mini, so I thought I'd have a go at breadboarding a flight control system based on open-source software/hardware

The open source options I looked at were:






Although FreeIMU isn't technically a flight control system, it provides a sound basis for coding one, as many have done!

After much code gazing, I2C pin swapping and re-flashing of the Arduino mini with known-to-work-code, eventually I gave up trying to get the MPU-6050 to work as it didn't want to talk with the MultiWii code. Instead I bought a multiWii-based board, but its really just an ATMEGA328P (like in the Arduino Uno) with a bunch of sensors on board plus handy pin headers for wiring up the receiver and motors... a snip at under £30 (The MPU-6050 breakout board is £30 on its own...) - I hope it works!

Saturday, 5 January 2013

Quadcopter first flight

With expectations of at least breaking a prop and probably bending an arm, I took to the skies today with my X600 quadcopter...


The first flight was in a steady breeze on a local football pitch (soft muddy grass to cushion landings!) I fitted the props and tightened the bolts on the folding arms, plugged in the battery and took a deep breath as I armed the quadcopter from the transmitter.

From flying IR indoor helicopters I knew that a half-hearted throttle input would tip the machine, so I ran up the motors to idle, checked everything looked OK, then gave it some beans. The quad sprang up and almost hovered. I tried to correct for the wind drift and brought it down again in a controlled flop. Success! Nothing broken!

The next 30 minutes I got to grips with the controls. First impressions are that these machines need you to fly all four axis simultaneously. My experience with fixed wing aircraft wasn't much use as the quad could go in any direction equally fast. The immediate problem I had was I couldn't always tell which way was forward... pulling back on the stick to slow down may result in the quad going faster or sideslipping.

Next step will be to put something (lights? ball-and-string?) to show which way is 'forward' on the quad. Ultimately I'd like to implement and accelerometer based system to stabilise the quad and possibly do some control mixing to make it fly more like an aeroplane.