So the next best thing to a Kalman filter is a least squares approximation of all IMU results. Instead of averaging 99 gyro steps + 1 accel result, you feed 99 gyro steps and 1 accelerometer result to the least squares equation and it spits out the best estimate of the true current state.

BTW, Gumstix showed the 600Mhz board in stock for the first time since it went on sale a year ago.

Simulated another flight recording with HUD, video, & moving map. The idea is to find any evidence of GPS lag. Looks like the Aiptek does 8fps in HQ mode and 4.25 in low quality mode. The AHRS is still pretty awful. This was the uBlox, dynamic model 6, 1Hz.

Finally have a way to plot flight recordings on a moving map. The uBlox autopilot tests are replayed. This was dynamic model 6, 4Hz. Underdamped oscillation clearly visible. Can't verify the GPS accuracy although it seems to lag too much for 4Hz to be useful. Time is compressed 3x.

The answer is no. The dynamic model settings didn't do much except maybe add delay. The goal with the uBlox was to increase wind resistance but everything besides DGPS is still gravy. So we fought the uBlox for 1 month. 4Hz wasn't really there without DGPS. Don't want to devote that huge amount of space and weight to something which doesn't make much difference.

Well the video overlay HUD showed a serious influence of acceleration on AHRS and it leads back to better GPS to take it out.

On the first sunny XMas in many years, finally got HUD overlays from the flight recordings. With every flight parameter + video stored on flash, we can simulate a ground station in the dumpy apartment.

It's a painstaking process, rendering the HUD & synchronizing it to the video. Just needs a few hours to capture the OpenGL output over AGP. Times like these make U wish U just wrote it in C using software graphics + YUV overlay. Overlaying on video this way is very fast. May never draw 3D graphics or run this in Windows.

It defaulted to "Automotive", so now we put it on "Airborne with <2g Acceleration". The logic seems to be more lowpass filtering the higher U go. Suspect the most sensitive model is "stationary" and the least sensitive model is "Airborne with <4g Acceleration".

Either way, high wind & rain will keep away meaningful tests for the rest of the year.

Got some good news. The bogus climb rates from the uBlox were actually a bug in the simulator. It was reading heading as climb rate, hence the range of -3.14 - 3.14. Also, the uBlox is randomly ignoring configuration lines, so it often generates garbage NMEA sentences. Climb rate is now in the meaningful range, if not actually useful.

XBee is paying off in this wind. Had 1 save which wouldn't have been possible on 72Mhz.

Well, got our first autonomous video from the Aiptek. Besides tons of manual altitude nudges, it actually maintained horizontal control in 5mph wind. The uBlox definitely has less delay.

Got 100 lousy seconds of video. Only hand stabilized 35 seconds for the viewers at home. The rolling shutter was in attendance.

Well, if U plot acceleration vs. attitude U don't get any correlation. The secret is still locked up in the neural network.

After more test flights in cyclic -> attitude mode, it looks like 4Hz without DGPS doesn't buy much. Attitude hold is also sensitive to wind. If 4Hz doesn't come through, we're dropping a few grams and going back to the EM406.

Cyclic -> attitude mode with hard coded angles is so stable it's tempting to just live on that. Can fly through trees in ways no IR stabilizer ever dreamed of.

The search for GPS noise continues. Put the antenna out from under the blades to measure blade interference. Put her on the ground and cycled the throttle from 0 to light on the skids to measure vibration effects. Got no obvious interference.

One thing is 4 sure. There are no blogs discussing DGPS experiences. Maybe Web 3.0. Have 1 more scenario with 4Hz before it's time to think about DGPS.

So with the lowpassed climb rate, got better horizontal results but no altitude hold.

To that end, we're now pushing for another step down in neural network load. This should lead to a hard coded networks for attitude -> acceleration and acceleration -> attitude. Then, a realtime calculation of neutral attitude should be possible by feeding in current acceleration.

Well, had enough pullback in the rain to resume test flights. Time to run the Rotomotion PID controller + uBlox scenario. This controller applies position error, integrated position error, and absolute velocity directly to attitude. As with the EM406, it was not even close to the Vicacopter PID controller. Suspect it could be tuned, but the Vicacopter PID controller would always be more stable.

The Vicacopter controller applies position error to target velocity. Then it applies velocity error to attitude.

This time the climb rate was out of control in the same spot it seemed stable on 12/16. It looks like altitude is the first to go back to 1Hz. Whether or not accuracy is to blame, there's a simple matter of throttle not being fast enough to keep up with GPS updates without causing yaw. Sudden yaw throws off horizontal control. That leaves only $133 of the uBlox's $200 tag intact.

The uBlox seems to be an EB85 of another kind. More and more it seems anything above 1Hz is going to require DGPS to give reasonable accuracy. The pros all use >1Hz GPS but they also use DGPS.

Stepped up the XBee telemetry rate yet again by reducing accuracy. The test video is still from the lousy pencam. Obviously the pencam is a bit tilted and we have a few radio dropouts.

So after the sessions with straight PID feedback & GPS devestated AHRS, put the neural network back in the loop. With the neural network providing only a 1/4sec prediction and the increased cyclic gain, got good hovers pointing North. Pointing anywhere else was impossible.

The increased cyclic gain was the key to higher GPS speeds. The feedback rate & the GPS update rate have to resonate like a tuning fork. Of particular note, 4Hz climb rate on the uBlox is coming out pretty worthless. Climb rate probably has to be stepped down to 1Hz. Climb rate didn't have a problem on 12/15, making the different parts of the test range suspect.

Unfortunately lost the Gumstix flash again. It would not boot.

Images

Well, we have simulations with and without GPS assisted attitude calculations. The trick with this is GPS is delayed & prone to glitches. U have to dilute the GPS corrections over many output samples and delay the accelerometer readings.

The accelerometer reading corrected with GPS is blended with the gyro readings. We do not apply GPS corrections directly to gyros.

The GPS corrections gave more accurate but seriously delayed gyro results. Finding the less inputs U put into the attitude, the faster and less accurate the result. The more inputs U put in, the slower and more accurate the result.

Should reduce blade pitch one of these days. Raised it to lift HD cameras, but it made wind very hard for even humans.

Have over $100 invested in worthless SD cards. The Canon A450 seems the most practical way to recover that investment with less crash risk. Still having post budget stress syndrome from the Canon TX1 crash. With official inflation at 4.3%, it's easer to blow cash & crash cameras.

No issues with anything even though the 4Hz GPS could not hover itself for very long. The neural network is gone. Put the cyclic gains way up again, so it can actually respond at 4Hz, and didn't have any problems. We think 4Hz GPS has what it takes.

The XBee with HUD is a dream to fly. No more guessing about battery level & radio quality. Climb rate & acceleration would be nice, but we don't have time when flying to see anything but the tick marks. Faster update rates would be huge. The laptop still goes 35 minutes with full time OpenGL. File upload from the HUD would be nice.

The HUD revealed very fast GPS measurements from the uBlox. Also, it showed the algebraic AHRS is not just broken, it is completely broken. It can't recover from coordinated turns or any sudden acceleration at all.

We need to be taking more GPS acceleration out of the AHRS. This step is a hack. U need current attitude to subtract GPS acceleration from the current attitude.

Well, this is what U get when the HUD is getting full navigation data from XBee telemetry. There is no live video. This was stacked on some archive photos. The navigation data was from sitting in the dumpy apartment.

The XBee latency problem is a real buster. If few people are trading Spektrum DX7's for XBees, now U know why. The command to set the packet timeout is either unreliable or it has a minimum timeout of 3 characters. If U set it for a 1 character timeout, sometimes it works. If U give it the default packet timeout the latency goes away every time but U lose a lot of bandwidth.

Now page 2

The award for the ground station GUI goes to Java OpenGL. Java has many 3D standards. Most of the 3D standards peaked years ago and went on life support when Sun focused on J2EE.

Java OpenGL seems to have the most current activity on the internet, but if U want a big corporate job programming flight simulators, Java3D is actually more valuable. A peculiar move for corporations, or is it?

A HUD overlaid on video would be nice. Our first video capture board was $80 in 1999. How much does video capture on a laptop set U back now? $150 and U have to rip the firmware from a Windows installation. With that, the best route is no live video and HUD playback on recorded video in the dumpy apartment. Virtual economy U might say.

Optimization round 3 got 2620bits/sec uploads to copter thanks to compression. Firmware replacement only takes 3 minutes. AHRS readings came in at 4Hz thanks to 5 responses being sent for every request. File downloads from copter only reached 2200 bits/sec using the same trick + compression.

The horrible downloading performance only makes sense in terms of our horribly inefficient Java algorithm, but this story has been beaten as far as possible. It's so cold, we don't predict much file transferring in the field.

The main problem is still a 1/4 second delay sending flight controls. Sometimes it hits exactly when the control is sent and sometimes it delays.

Wholesale inflation hit 38% annual rate in November, a new world record. Guess the 20% rise in LiPo prices wasn't just maxamps.

In the second optimization run, file transfers from ground to copter were all the way up to 1900 bits/sec. A complete firmware upload takes 6 min. From copter to ground it's 826 bits/sec. Full navigation data is still 2Hz. If U just do attitude it's 6Hz. Copter to ground just isn't optimized because there's less value in it. But it's so cold, flying isn't very attractive either.

Well the Sanyo HD2 went from $500 to $660 in the last month. Guess we won't be resuming HD video for a long long time. The Canon itself dropped to $400, but it's only worth $300.