Design, Build, Test, Iterate

Tricopter: gyro damping and PID control (fail)

I’ve been working on stabilization code for the tricopter using direction cosine matrices but haven’t yet gotten too far because the DCM updates too slowly. I must be doing something wrong.

For now, I’ve got basic damping (basically D control) using low-pass-filtered gyro outputs and some PID control that needs adjustment. Actually that’s a misnomer because I don’t yet have much control at all.

In short, the X and Y input values from the joystick are converted into roll and pitch angles, respectively, from vertical. The PID control I have now is a stripped-down AeroQuad PID function (limited to only P control) that processes the joystick inputs.

The last few days have been hours and hours of guess-and-checking P and D gains while worrying about midterms. My brain is too muddled to think, so check out the videos after the break.

Gyro gain 60 (not that this means anything specific), PID disabled:

You can see it oscillate quickly out of control (it was much worse and scary at 90 gain and broke my old tethers). I tried with a lower gain:

Gyro gain 15, PID disabled. You can see it lift off a bit at 0:27.

Gyro gain 15 with P = 15, I = 0, D = 0. I started fiddling with the controls at 0:16 to see if it would oscillate out of control. Thankfully, it didn’t, but it stabilized too slowly. On the todo list: use a D value.

Around 1:01, you can hear a short zapping sound as the tail prop brushes against the ESC. I need to make the motor mounts higher so the propellers are farther away from the booms.

I’m also starting to think that despite what I said in my last post about constraining flight movements, this tether thing is getting in the way of development. Then again, I don’t need parts flying into the garage ceiling again. But I don’t need parts flying into a tree, either. What I need is a gigantic, net-covered room like the ones at Penn State.

Categorised as: Projects

Leave a Reply

Your email address will not be published. Required fields are marked *