Jack Crossfire's blog View Details
Archive for September, 2007 - Page 2
Posted by Jack Crossfire | Sep 09, 2007 @ 11:47 PM | 2,606 Views
So we're definitely going 2 get the 5Hz GPS someday. It's position sensing in a box and should relegate the inertial navigation to orientation only. Next, it's time 2 consider neural networks for position feedback.

The theory is, humans fly by comparing current inputs with memory of every previous input and recalling the previous feedback. There isn't a storage device fast enough to sequentially compare current inputs with every previous input, so we have to compress the memorized inputs. The compression algorithm is the neural network.

The neural network takes advantage of arithmetic logic processors being much faster than memory processors. It's faster to recall a value by multiplying 2 values than looking them up in a table. It can also interpolate missing values.

The trick is creating the right arrangement of neurons and setting the right constants in the neurons to store the feedback memory. The plan is 2 replay a flight recording over and over in which the neural network evolves the constants to generate the recorded feedback from the recorded inputs.

In each pass of the flight recording, maybe 1000 sets of neural network constants are tried. The best 100 from the set are taken and we try another 1000 which are closer to the 100, by reducing ranges or something.

Then, when only the flight recording inputs are played, the neural network should recall the correct feedback. Mathematical memory. Unfortunately neural networks for copters have been patented.

Now today's videos.

082807 eclipse hand stabilized (0 min 38 sec)

Got the 8/28/07 lunar eclipse hand stabilized. It's much smoother than the computer stabilized version. The original copy can be downloaded from
Hand tracked lunar eclipse (0 min 38 sec)

Cyclic response to velocity (0 min 54 sec)

Also got video of cyclic response to GPS velocity. Obviously GPS velocity is real slow and inaccurate, but this is the only space available in daylight. In the overcrowded streets of Calif*, the GPS quality is pretty horrible.
Posted by Jack Crossfire | Sep 08, 2007 @ 10:39 PM | 2,756 Views
The path to flight using GPS velocity began with static tests of GPS velocity on the ground and in a manual hover. It's actually quite good and more sensitive than subtracting position. Getting closer to spending $100 on a 5Hz GPS.

Since the GPS unit uses a Kalman filter, you're probably going, "Why can't a Kalman filter work for inertial velocity sensing too?" Already tried the Kalman filter for velocity sensing and it drifted too much.

Well, when accelerometers are used to smooth out GPS velocity, the quality of this data looks identical to the velocity data on 8/12/07, so we're not expecting this to round the corner. No matter how fast the accelerometers are, they always lag GPS. Even if we don't blend the accelerometers with the GPS data at all, they still lag.

Probably going to chase velocity from pure accelerometers for another hour and then get the 5Hz GPS.
Posted by Jack Crossfire | Sep 07, 2007 @ 03:40 PM | 2,731 Views
So it looks like quantizing the accelerometer result improved velocity integration slightly. The main problems seem 2 B noise & error in knowing the actual tilt. Acceleration from motion isn't enough to overcome the noise, so we have sideways velocity appearing as forward velocity, vertical velocity appearing as sideways velocity, variable amounts of drift depending on tilt.

Found another data product in the GPS documentation. This one is the VTG sentence. Enabling it requires a command sequence followed by CR LF. Don't forget the CR LF. Then you get ground velocity readings which appear more accurate than position differences. It's probably derived from doppler shift and could theoretically detect 10cm/sec velocity.

We'll have another round of tests with this new GPS velocity and accelerometer derived velocity probably in 2 weeks.
Posted by Jack Crossfire | Sep 06, 2007 @ 04:24 PM | 2,500 Views
Have never had much luck with MEMS accelerometers. They can detect tilt but they have trouble detecting translation. First was the LIS3LV02DQ. That looked good when it was stationary. Then it showed serious quantization, spontaneous drift in high vibration environments. Maybe it was burned out by high voltage.

Now it's the ADXL330. It detects tilt nicely but doesn't give useful translation data. Maybe 3g isn't sensitive enough. The most sensitive solution is 1.2g for 50% more money.

There is also an error in tilt measurement. That could feed back to acceleration in flat frame.
Posted by Jack Crossfire | Sep 06, 2007 @ 03:31 AM | 2,344 Views
Got too close 2 a tree after finishing an autopilot run. Just barely nicked a branch with a blade and Vicacopter came crashing down upside down.

Looks like you can construct a direction cosine matrix from the difference between accelerometer tilt and gyro tilt, then rotate a gravity vector by it to get the level acceleration. In this case, multiplying the vector by the direction cosine matrix gives the same result as an exhaustive search.

In other news, acceleration during test flights is way off and attempts to detect velocity on the test stand are going nowhere. Best results are achieved by not lowpassing acceleration at all before integrating it into velocity. Running out of explanations besides the 20'F temperature difference.
Posted by Jack Crossfire | Sep 05, 2007 @ 01:58 PM | 2,486 Views
Like no-one knew what the ultimate ground station was, years before Apple made it.

So after years of HP, OQO, Slimdevices, Palm, Blackberry, Nokia beating around over priced, quirky PDA computers which never did what everyone wanted to do, Apple finally made the PDA computer that everyone wanted and at least in OQO's case, for 1/4 the price. A bare touch screen on a tablet for $300. No stupid keyboards, stupid graffiti area, excessive buttons, or funky plastic pieces.

It's a tradition in Silicon Valley to know exactly what you have to do, but not make it and instead focus on weird derivatives until Apple finally does what needs to be done. Then when Apple finally corners the market, say "We had no idea."
Posted by Jack Crossfire | Sep 05, 2007 @ 01:11 PM | 2,474 Views
The solution was to simply subtract gyro euler angles from accel euler angles, then convert the difference back to an acceleration vector. This gives the acceleration in world frame. No DCM involved. It did require an exhaustive search to get acceleration from euler angles. Probably not enough horsepower on the ARM to do it.

The problem with DCM's is they're a product of 3 rotation matrices about the axes. The matrix products are not commutative, so the DCM rotation never follows the same sequence of rotations that originally lead between two points. The solution is probably to integrate a large number of very small DCM steps. Either this or the exhaustive search of acceleration values could probably get the same result.

Not sure how good the acceleration is when actually moving. Flight data shows a pretty huge bias. Also, the temperature when flying was 20'F cooler than the temperature when calibrating. The knife is falling on getting a thermistor on an 8th analog pin on the microcontroller. The microcontroller only has 7 analog pins. Would need to reduce the analog precision to have 8.

In every hand held test, Vicacopter wasn't moving. The next step is to try to detect hand held position changes by acceleration alone.

One other thing. Have a fog river.

Fog river (1 min 55 sec)

Posted by Jack Crossfire | Sep 04, 2007 @ 01:23 PM | 2,208 Views
The answer is no. You cannot convert angles to world frame using a direction cosine matrix. The DCM only rotates vectors. Tried rotating the acceleration Euler angles with a DCM and got garbage. Everything is heading towards an exhaustive search. Not sure what to exhaustively search for, but exhaustive searches are cool and usually solve geometric problems much more easily than trig.