Didn’t make it..

So, this weekend unfortunately fell short in many ways, not the least of which is my failure to write a blog post for every day, because, simply put it, not a lot happened. We actually had a lot more school work and other schedule conflicts than anticipated, and could only work for a few hours on friday (teacher planning day), saturday, and today.

Friday, Jeff and I investigated the use of fishing wire to suspend the copter from my ceiling fan as a way to do balance testing and yaw testing. We ran out of time, however, and were just barely getting the copter to exert some control of itself without spiralling out of control when he had to leave. Monday, Karsh was also pretty busy but was able to come over for a little bit. This time, however, the harness broke while attempting to do a yaw control test, resulting in our first crash, though the copter fortunately survived it unharmed.

Today, Will and I did manage to be fairly productive. We started off from the beginning, studying kalman filters with motors running again on a single axis, and noticed that our filters were failing to cope with the accelerometer noise. We now know this to be be due to the fact that our motors cause significantly more accelerometer noise at higher speeds (kinda obvious, but some kind of complex resonance-y thing must be going on because it seems to be a greater than linear build up). We decided to tune the kalman filters again with motors running at as high of a speed as possible before it started to drift away from our mostly crappy test setup, and got back to good performance (though the filter does have a greater tendency to drift due to less reliance on the accelerometer).

Will then suspended the copter from the fan again, using a proper knot this time, and we got a successful yaw pid control up. We decided for now, we’d shoot for very stable at the expense of possibly lower response time, because we suspected that when adding the filters together noise or instabilities would build from each one, and we did not want oscillations when we went to do test flights. After getting a decent yaw loop, we worked on single axis roll and pitch loops, and found that we really need separate PID values for each one, but made do with a makeshift loop considering the software changes would waste what little precious time we had left. We finally decided to go for broke and the four spars of the copter down to the board, giving it about 4 inches of airspace to work with in all directions. Unfortunately, despite our PID loops and tuning, it really didn’t look much different than the uncontrolled lift off we attempted earlier. In looking at the outputs, we saw again that our Kalman had become somewhat jittery again, giving the PID loops an inconsistent response. There is apparently once again a new level of noise attained between the throttle that caused the copter to drift out of our one axis testing setups and the throttle that actually achieves left. At this point the low voltage cut-off of the speed controls kicked in while taking the motors up to speed, and the work day was brought to an end.

This annoying realisation that we need to retune again is an unfortunate conclusion to the weekend. Next time we’re able to get together, we’re going to log and determine exactly what liftoff velocity is, then devise a setup (probably including lots of duct tape) that will enable us to do single axis logging and testing at that flight velocity, and basically work again from the ground up, getting a stable kalman and good PID control. To do a good takeoff, we also need to pay more attention to the large error response time of the PID loop, and try and get a quick but accurate response without losing steady state performance or entering oscillations. It’ll be tricky, but we’re not giving up yet!

Where’s the pics, our faithful (but according to stats, mostly nonexistent) reader might ask? Well.. Will took a few videos with his camera, but none of them were all that impressive. I think this blog post might just have to be like the weekend.. long, time consuming, and relatively uneventful. Next weekend is also the start to our Botball season, but hopefully we’ll still be able to find time to do some testing. I’ll probably attempt to retune the Kalmans at flight velocity during the week, giving us a head start on the weekend’s PID tuning.

The tilt compenstated compass performance is also extremely poor right now, owing to the fact that I computed tilt compensation only from a slightly averaged raw accelerometer signal. I need to figure out a way to convert the IMU’s roll and pitch back in to axis angle or a matrix or something to work with for tilt compensation, but the IMU doesn’t really output “correct” rotation values. My understanding of the rotation group and the like is getting fuzzy at this point, but just having a roll angle and a pitch angle doesn’t give you a rotation unless you know what order those should be executed in in.. but they’re calculated in the IMU completely independently of one another, they’re not Euler angles and combining them in either way doesn’t work out (or at least not when I’d tried it earlier). I’ll need to do some more experimenting, or, failing that, simply average the accelerometer even more heavily or eliminate it all together and just use two axis of the magnetometer (though thats a waste of a nice magnetometer..)

Matt

0 Responses to “Didn’t make it..”



  1. Leave a Comment

Leave a comment




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!