Jason Short and I had great day of testing and improving code (and putting in a pretty good T3 contest time!). Once again we were at the RC club in Point Richmond, across the Bay from San Francisco. Jason was just back from a skiing vacation where he tangled with another snowboard to the tune of 17 stitches on his ankle (I saw them: ouch) but fortunately UAV development doesn't require a lot of running.
You can see what flight testing looks like above. I fly, he watches the telemetry and then makes changes in the code for me to test.
Here's the rundown of the day's progress. You should see all this reflected in the code in the repository in a day or so:
--Navigation is now locked in pretty well. Straight lines to waypoints (no more snaking) and pretty tight turns between them.
--Manual throttle control now works in autopilot mode! Just like you can "nudge" the plane's direction with RC controls while it's flying autonomously, you can now speed it up or down. Excellent for finding the best speed for T3 runs!
--The funky thing with one of my Futaba FASST receivers working and the other not was solved. Turns out that one of them outputs the PWM on all channels in serial, and the other in parallel. Who knew? Anyway, ArduPilot can handle either. If your radio does something weird like only letting you fly left, not right, edit this line in the config file:
#define RADIO_TYPE 0 // 0 = sequential PWM pulses(Fasst, Spektrums), 1 = simultaneous PWM pulses (Corona RP8D1)
--We flew the FunJet in RC mode (although it has an ArduPilot, we haven't set up elevon mixing yet). Amazing performance: fast, rock solid and incredibly maneuverable. Once we get it dialed in with the AP, we're going to be looking at sub 10 second Sparkfun runs ;-)
--We still don't have altitude hold working right. We finally got it to display the right altitude in the ground station, but for some reason it's not holding. Jason thinks this is just a matter of tweaking throttle and pitch gains, but for now I had to trim the pitch down manually for the T3 trial runs just to ensure the plane didn't get too high during the autonomous portion.
--We're getting different results with different sensors. I'm flying with FMA sensors, and Jason was flying with DIY Drones sensors. The calibration routines should mean that as long as you've got a matched pair it shouldn't matter where they come from. But for some reason it still does, and different sources require different gains in the code. We'll figure out a way to make that go away...
--I almost crashed one time by launching with stabilization accidentally on, but not yet calibrated (it takes a few second to calibrate in the air). Also we found that if you happen to power on in stabilization mode, it messes up your waypoint settings (for some reason it thought it was starting on waypoint 7), so for now just don't do it until we can find and fix that bug.
--I also almost crashed launching downwind. In my defense, the wind shifted direction. But still!
--I nuked another Xbee by powering on with the signal line attached. I can rescue it, of course, but I CAN'T WAIT for ArduPilot Mega to make this problem go away with the dedicated serial lines.