Jack Crossfire's blog View Details
Archive for June, 2008
Posted by Jack Crossfire | Jun 30, 2008 @ 04:42 PM | 6,657 Views
Now some quotes from The Georgia Tech Unmanned Aerial Research Vehicle by Eric N. Johnson* and Daniel P. Schrage. It's basically the insides of the mighty Henrik Copter.

Does Henrik Copter use a kalman filter?

He uses a 17 state Extended Kalman Filter. The states include: vehicle position, velocity, attitude (quaternion), accelerometer biases, gyro biases, and terrain height error. The system is all-attitude capable and updates at 100 Hz.

Does Henrik Copter use a neural network?

An adaptive neural network trajectory following controller with 18 neural network inputs, 5 hidden layer neurons, and 7 outputs for each of the 7 degrees of freedom. The 7 degrees of freedom include the usual 6 rigid-body degrees of freedom plus a degree of freedom for rotor RPM.

How does he train the neural network?

He uses a simple hover simulation offline, then corrects model errors using online training. U need to pay to find out anything specific.

How did he get automatic takeoff & landing to work?

The navigation system determines if the helicopter is on the ground by comparing the altitude above ground level [sonar] with a preselected [hard coded] value. That is, if the helicopter is within a few inches of the ground it acts as though it is on the ground. Commanded position is slaved to the current position when the helicopter is declared on the ground. Also, internal states of the flight control system are frozen.

Takeoffs are performed by ramping rotor RPM and collective until the helicopter is detected airborne, at which point the trajectory generator produces a smooth climb trajectory. Landings end with a slow vertical descent command until ground contact is detected and rotor RPM and collective pitch are reduced to an idle state.

What language is his software in?

ANSI C/C++ (and the OpenGL API for graphics used in simulations and graphical user interfaces).

Why did GATech do all this work when the R-Max already has an autopilot?

More jobs, more money.
Posted by Jack Crossfire | Jun 30, 2008 @ 12:18 AM | 6,896 Views
Log yaw damping is in, but without an exhaust manifold & with the falling home equity around the golf course, there's no way to test it. Need to get those condominiums back over $4 million so flying isn't a problem again. There was a time when yaw damping was a black art. Now it's routine graphing & theory.

Big surprise in the GPS logging department, the 32MB MMC card died. It recorded half of a walk, then suddenly stopped recording. It would read but not write even when used as a raw device on Linux. Maybe there's a hardware write protect in the protocol. Maybe it was static electricity. An MMC interface without enough RAM to store a complete block is a mess.
Posted by Jack Crossfire | Jun 28, 2008 @ 10:11 PM | 7,640 Views
So much for exhaust manifold 1. Got 8 years & 144,000 miles before discovering it. The exhaust manifold + new oxygen sensors should be from $1000-$2000. It hits 600F so no J-B weld. No aftermarket exhaust manifolds in Calif* are legal for HeroineCar. Amazing that your entire economy is based on rusted, brittle cast iron technology from the 1800's. Without it, your jobs would all be done in India over internet connections.
Posted by Jack Crossfire | Jun 27, 2008 @ 04:10 PM | 6,939 Views
Running as fast as possible is going to be a very important skill under Hillary & what better way to test your chances of survival under Hillary than VicaCopter's spare GPS module.

It's up to where it can record very consistently in shaky conditions once it initializes. Saving & recovering state from the MMC card is still flaky. May just revert that part to the PIC EEPROM. Running speed is slightly lower because we have to carry the GPS board.
Posted by Jack Crossfire | Jun 26, 2008 @ 12:25 AM | 6,916 Views
Getting GPS logger to work in the dumpy apartment was easy. Getting it to work in a hand held, portable device in the real world is a major operation. Going to need a lot more error detection, recovery, & redundancy with that one.

The next step with VicaCopter will be logarithmic yaw damping on the PIC. This should reduce oscillation to increase tail servo life & increase the amount of rate damping available.


The equation was pwm = yaw rate * gain / sqrt(yaw rate * falloff).
gain = 0.2
falloff = 4

Found some more showstoppers with the neural network plan. Mainly observing the real world performance of many sets of weights to determine the optimum set would probably take eternity to yield useful results. Each set would need several seconds in the loop to determine its fitness & it takes thousands of sets to converge on a solution. E-Coli evolves faster.

Looking through a few thousand more copies of copies of a few papers on The Goog, correlating observed outputs & inputs in a neural network & inverting it to predict inputs was probably the right direction. The pros call it Dynamic Inversion & it's only possible with enough computing power to crunch huge data tables in flight.

It probably didn't work with acceleration because the data was too noisy & we didn't have enough computing power to gather enough points. There literally was no correlation between attitude & acceleration in 30 seconds of data.

Attitude changes from cyclic could be a different story. A lot more data points in a lot less time & they could be more accurate. Record attitude changes & cyclic inputs so you always have data points in all the ranges of magnitude. Either genetically adapt the recurrent network to get integral behaviour or go back to back propagating the feedforward network from your EM406 days & hope it adapts faster than an integral.
Posted by Jack Crossfire | Jun 22, 2008 @ 11:11 PM | 6,890 Views
Well, considering they have PIC's that run on 3.3V & have dual hardware UARTS, this was a huge waste of time & space. Maybe one day you'll need an underpowered software MMC interface. It's our first mass storage interface in hardware.

It's all spare parts. The MMC socket came from VicaCopter's old Gumstick. The 12Mhz oscillator was for a 68HC11 before we discovered The PIC. GPS was VicaCopter's old EM406.

All this does is dump the raw GPS output to an MMC card. The MMC protocol is all PIC software. There's no confirmation of navigation lock, no filesystem, & no way of erasing in the field. Erasing requires plugging in a serial cable & running a command on the shell. It doesn't really erase. It just resets the write offset to 0.

The write offset is written to the PIC EEPROM when recording is stopped. Always stop recording before powering off.

Using software SPI & the 12Mhz clock, the MMC card's data rate is 500 bytes/sec. At this rate, it takes just as long to dump the contents as it does to record them. The Linux serial port driver times out before 1MB can be transferred so U need to use an SD card reader.

It can record 50 days of data on a 2gig card & 19 hours of data on a 32meg card, but we won't be trying any 2gig cards for fear of fire. Theoretically SD cards should work just as well as MMC cards.

For persistence of vision displays, Microchip has the methusela of free samples, the PIC6585. 53 GPIO's.

sdcc notes:

Be sure to unset that low voltage programming bit if U float PGM.

Be sure to enable brownout protection to protect the flash.

Variables must be initialized in functions.

To put constant strings in flash, declare them as "code unsigned char string[]"

SDCC is pretty awful for pointer math. Copying bits using bitfields doesn't always work either.
Posted by Jack Crossfire | Jun 20, 2008 @ 07:45 PM | 8,312 Views
1) The budget is growing & becoming mainly rising operations cost with very little new territory. Battery failures & servo failures mainly.

2) Most of the navigation problems were solved by uBlox.

3) The next problem is attitude stability in high wind, for which we have no good solution. Henrik showed really stable attitude on his 450 in the wind & he's not giving away any secrets.

4) Something needs to have a real high chance of working to justify the cost of driving way out to the wind tunnel.

The best bet for smarter attitude feedback:

Train a recurrent network offline to act like a PID loop. The offline training gets it to copy the output of a standard PID loop in a recorded flight. This requires a genetic algorithm with large learning rate.

Then online, you have a genetic algorithm with a very small learning rate adjust it to respond to real conditions, & save the weights between flights. Eventually it becomes completely based on real conditions.

In our last experience with neural network feedback, the feedback always headed towards 0. That one used straight back propagation to predict cyclic from attitude change. That fiasco has cursed all future investments in the radically different genetic approach. The genetic approach would constantly evaluate the attitude tracking & standardize networks which track better. How do U keep it from forgetting high wind feedback when evolving in low wind?
Posted by Jack Crossfire | Jun 19, 2008 @ 12:10 AM | 7,218 Views
Well, got the Sansa to play videos, read a microSD card, & synchronize with the ignition. The best formula we came up with was:

Encode video in MPEG-1 132x80, 256kbit fixed rate
Encode audio in MPEG layer II, 256kbit

mplex -r 630 -o output.mpg video.mpg audio.mp2

Not very efficient but the only thing that worked.

FYI, it has a dual core 100Mhz ARM in it. The ARM runs between 30Mhz & 80Mhz to conserve power. Was lucky to get an obsolete version which supported Rockbox. Sandick was quick to release a new version that disabled 3rd party firmware of course. 30fps video + 44.1 audio is no problem but have not exceeded the RAM buffer in video length.

Have some video of a video playing on the Sansa. Though useless, there's a modern fascination with getting tiny gadgets to play video the same way we were fascinated with watchmen in the 80's. There is aliasing from of the LCD pixels interfering with the camera pixels.

In other news, SegaToys began selling Femisapiens in Japan for only $175. The heroine robot has no claws, unlike her $100 predecessor. Anyone obsessed enough to have a heroine robot would definitely build their own out of servos & enclose it in a custom heroine frame, especially the way China is getting stingy.

If Chinese keep cutting output & raising prices like they are, they'll need a good talking to. Maybe a bit more.

Sansa C250 plays video (1 min 39 sec)

Video on its 132x80 display is slightly worse than Goo Tube.
Posted by Jack Crossfire | Jun 17, 2008 @ 03:18 AM | 7,126 Views
Combine an 8 year old car, a free car radio, & the most beautiful voice in the world, a $50 mp3 player & U get huge amounts of work. Theoretically this player can automatically synchronize with the ignition & replace everything the Pioneer did. It definitely plays FLAC, WAV, & mp3. MicroSD support seems broken. It was $40 in May & went up to $50 with inflation even as it was discontinued. It's successor is $60.
Posted by Jack Crossfire | Jun 16, 2008 @ 03:08 AM | 7,050 Views
Another 40 minutes in the wind & have decided the gyro skewing is fixed. The problem is now orientation control in the wind. PID control is horrible. Had 2 aborts due to loss of tail rotor control pointing downwind. Rotors simply don't produce linear response the way ailerons & elevators do, so we should take the neural controller more seriously or do some kind of heading hold in the PIC.

Concluded 1 of our GPS modules could be turned into a simple position logger. 1 switch for power. 1 switch to start & stop logging. A flashing LED says when it's logging or idle. A serial shell dumps recorded paths in a binary format. The hard part would be accessing an SD card.

Thought more about VicaGlider & decided it would be an EasyStar with the PG-03 gyro damping roll. Size minimization is the factor.
Posted by Jack Crossfire | Jun 14, 2008 @ 04:46 AM | 7,483 Views
4 the record, the Airtronics 94761 lasted around 20 hours & failed at odometer reading 13 hours.

Today was 40 minutes in the light wind, no gyro skewing observed, & no computer crashes. Unfortunately, our beloved wind has died. Once avoiding wind at all costs, now chasing after it to expand the envelope.

Unfortunately, with the rate damping done in software, there's not enough PIC power to send telemetry to the groundstation. Get nasty servo glitches with the groundstation on. Kill the groundstation & the glitches go away. A battery display on the ground would still be very useful. A battery LED on the airframe might also work....Continue Reading
Posted by Jack Crossfire | Jun 13, 2008 @ 03:03 AM | 7,545 Views
The Futaba is back. Instead of reusing the one from the Corona, we have a new one. It costs 15% less than it was in 2006, & much cheaper than risking a failure with the old one.

Tuning yaw damping would be real hard if we couldn't do it near the dumpy apartment. This segment requires flashing the PIC. Doing it with the ARM would add a lot of complexity to the low level routine.

In other news, PBS had a show on Sissel central, so we put together some PBS segments with a Sissel soundtrack 4 total Siss immersion.

Sissel vs Norway (2 min 51 sec)
...Continue Reading
Posted by Jack Crossfire | Jun 12, 2008 @ 03:11 AM | 7,810 Views
Finally got a syslog feature & an automatic reboot for software crashes. Hopefully by counting the restart entries, U can figure out if the software crashed.

Unfortunately, now seem to have a dead tail servo. In testing, got 1 nudge out of it which caused it & the ESC to get real hot, followed by an ESC reboot. If the tail servo burned out in flight, it would have gone into a spin, caused the same ESC reboot shortly afterwards, & not written a flight recording. This was the most expensive tail servo ever made by the hand of man in all history.
Posted by Jack Crossfire | Jun 11, 2008 @ 03:13 AM | 7,419 Views
Everything we had 2 years ago is desintegrating. Now The Pioneer is dead. Pioneer optical drives have always had short laser lifetimes. It gradually started losing bits on the dirty CD's 6 months ago & now can't read even the cleanest CD's. However the radio still works.

Zen Stone Plusses R everywhere. Low end electronics R going up in price. All roads lead to another economic stimulus package.

Since most of the problems in VicaCopter have been solved & the budget is now entirely upkeep, going to take our time with the testing before return to flight....Continue Reading
Posted by Jack Crossfire | Jun 09, 2008 @ 01:58 AM | 7,012 Views
Because T-Rex blade direction can be reversed & the tail rotor is so problematic, one idea was to make a tandem T-Rex.

2 computer failures in 3 weeks after 1 year with none is too suspicious. With the timing of the 2 crashes, everything points to the Hirose repair on https://www.rcgroups.com/forums/showthread.php?t=851112 .
Posted by Jack Crossfire | Jun 07, 2008 @ 07:52 PM | 6,798 Views
Having met many former aerospace engineers, we have uncovered the standard aerospace career path 4 U.

Aerospace -> unemployment -> Web 1.0 startup -> unemployment -> special effects -> poverty -> computer games -> more poverty -> Web 2.0 startup

Now the news.


News flash: someone in the media covered someone other than Ubama & Hill. The answer is McCain would freeze NASA's budget. Ubama would cut it and subsidize preschool entitlements with the money. A lot of people went to preschool and now hope to one day afford a 1 bedroom apartment. Best entitlement ever.


Next, we have more concept studies, stylish moon rovers, dot com/NASA relationships, astronauts who tried to climb Mt. Everest, & the next great NASA portal: twitter. Aerospace is a lot easier when U don't actually have to do aerospace. Should have stuck with dot com relationships instead of flying.

Strutless IMU seemed 2 work with the low RPM. Need a few more hours in the wind 2 B sure.

Actually fighting 2 kinds of vibration: high frequency vibration from the tail rotor & low frequency vibration from the mane rotor. Strutless IMU should now have low frequency problems.

Had yet another engine loss in autopilot. Definitely a software crash in the ARM this time. Got major tail wagging long before engine cutoff & no flight recording was written. The tail slowly started losing it, then suddenly entered a spin. Then the engine cut off.

Tail wag would have increased if the ARM crashed, but rate damping would have continued. PWM is programmed to shut down if the ARM crashes, so rate damping would have stopped next & allowed the spin. A partial flight recording would have been written if the ARM was still alive.
Posted by Jack Crossfire | Jun 06, 2008 @ 01:54 AM | 6,849 Views
Flying to Novay on Google flight simulator revealed 2 things. U can't boot a second copy of Google Earth to visualize your heading on a 3D globe & while there are many software globes, the world needs a physical LED globe which can plot latitude, longitude & heading. Google flight simulator is awful otherwise. Need a better flight simulator with a faster plane.

If you've got an army of free Chinese labor & unlimited home equity, U can build this LED monster:

3D LED Cube (三维显示器) (4 min 0 sec)

Well, it's a new world of not being able to test fly, make structural changes, & test fly. Now we get 1 structural change per day. Today's change has no tail struts & more lateral padding.
Posted by Jack Crossfire | Jun 05, 2008 @ 02:29 AM | 7,034 Views
1) Increased accelerometer trust: Doesn't work. Still need 0.001 accelerometer trust to handle any wind with the uBlox.

2) Increased I limit in attitude feedback: Recovers from gyro skew but not until after flying out of control for a minute.

3) Increased RPM: less gyro skew but not elimated. Unfortunately the RCE-BL35X doesn't have fine RPM selection. U get either too fast or too slow with variations depending on starting collective.

So our goal of making the Boeing A160 of Silicon Valley isn't going to happen. Stuck with high RPM & extreme noise because of the MEMS.

The next step is taking GPS acceleration back out of the accelerometer results & increasing accelerometer trust. It goes back to delaying GPS & recomputing the last 0.25 sec.