HobbyKing.com New Products Flash Sale
Jack Crossfire's blog
Posted by Jack Crossfire | Apr 14, 2008 @ 02:50 AM | 5,359 Views
So ttyS0 on the Verdex has a strong pullup resistor for its input. Contrary to many a Google link praising voltage dividers for 5V sources, the solution here is a diode pointing towards the 5V source. ttyS1 & ttyS2 have no pullup resistors. Those need voltage dividers.

With all the tty's getting 3.3V input, ttyS1 began working. Once again, spent a day banging on a CR/LF to LF issue. IGNCR was the offending bit.

Consistently dropping 1-2 bytes right before the end of the packet, diode on the ground line making no difference, requests to resend give the same erroneous packet all point to those translation bits.

Anything over 4800 baud doesn't go through ttyS1 at all anymore. Looks like that 2.8V GPS output level. It's minor enough to not justify banging on it, but keep it in mind before U Gumstix fans punch up Add to Cart.

There are many compiler options to get faster math & more neural network evolutions. Unfortunately, the other half of the autopilot is the inertial navigation. That requires very compliant trig & floating point.

As for the new power connector, it didn't change anything. Too many other boards use 0.1" pin spacing for power to use anything but an adaptor with 0.1" pin spacing on VicaCopter.

Strong winds during the next 7 days will keep us focused on The Jesus Cam instead of flying.

We have 2 movies of Mars weather from MRO.

Mars weather satellite 2 (0 min 23 sec)

Mars weather satellite (0 min 24 sec)

The annoying rotating globe from http://www.msss.com/ is held on a single longitude & time compressed on Cinelerra. Time compositing fills in gaps in telemetry.

Now the average speed of a UPS truck, assuming it drives in 12 hour shifts:

April 13, 2008 11:30:00 AM SAN PABLO CA US Arrival Scan
April 10, 2008 10:00:00 AM HODGKINS IL US Departure Scan

1827 miles / 12 hours / 3 shifts = 51mph
Posted by Jack Crossfire | Apr 12, 2008 @ 06:37 AM | 4,969 Views
After banging on it for a day, found the BTUART received data from itself & received data from a PC. The PC could receive data from GPS & from the BTUART, but the BTUART couldn't receive data from GPS. The Verdex UARTS have a slightly higher switching voltage than they did on the Basix. The EM406 UART only goes to 2.8V.

The workaround is to raise GPS ground using diodes until the switching voltage is high enough. This gets 50% of the data through. Need a comparator.

In rough tests, the PXA270 622Mhz does 4x more neural network iterations than the PXA255 200Mhz using the old 3 module network. Not the 20x that http://docwiki.gumstix.org/Benchmarks led us to believe. Below 2500 iterations/sec, the CPU usage is 1%. Between 2500 & 10,000 iterations/sec, the CPU usage jumps 25% for every 2500 iterations/sec.

What seems 2 B happening is once the back propagation errors get below a certain point, the FPU starts grinding away very slowly. Observed it before with very long reverb tails.

With a 1 module network specificially written for the PXA270, the limit is 3000 iterations/sec.

Can't compare the new network since the PXA255 was destroyed.
Posted by Jack Crossfire | Apr 11, 2008 @ 12:36 PM | 5,119 Views
More Gumstix workarounds

Just make the /usr/share/sources directory instead of adding a group or changing permissions.

source gumstix-oe/extras/profile instead of adding it to bashrc.

unset LFLAGS

When libc complains about trying to run ./configure after already being configured, comment out those tests in the configure scripts.

When bit baker complains about trying to install libraries which have already been installed, erase the previously installed libraries.

When bit baker complains about compiling as root, comment all the lines in the sanity.conf file.

Dependancy error:          Google search:
sqlite3                    sqlite
pysqlite2                  pysqlite
Locale::gettext            Locale::gettext
help2man                   help2man
The odometer was lost with the last Gumstix. It was around 17 hours. Most of that was autonomous, giving us at least 10 hours of pure autopilot. Need to add a line for autopilot time.

The firmware runs on the new computer. Sending to GPS works. Receiving from GPS doesn't work. Gumstix remapped the serial ports & yet more software magic is required to get receive to work.

So obviously no flying for yet another week.
Posted by Jack Crossfire | Apr 10, 2008 @ 03:23 AM | 4,778 Views
Well, the $190 beast arrived, but building the SDK is now a several commute affair instead of a few hours. In the mean time,

root@gumstix-custom-verdex:~$ df                                                
Filesystem           1k-blocks      Used Available Use% Mounted on              
/dev/mtdblock1           31488     10324     21164  33% /                       
/dev/mtdblock1           31488     10324     21164  33% /dev/.static/dev        
tmpfs                     2048        24      2024   1% /dev                    
tmpfs                    63952        56     63896   0% /var/volatile           
tmpfs                    63952         0     63952   0% /media/ram  
root@gumstix-custom-verdex:~$ free           
              total         used         free       shared      buffers         
  Mem:       127908        15456       112452            0            0         
 Swap:            0            0            0                                   
Total:       127908        15456       112452   
root@gumstix-custom-verdex:~$ cat /proc/cpuinfo                                 
Processor       : XScale-PXA270 rev 7 (v5l)                                     
BogoMIPS        : 622.59                                                        
Features        : swp half thumb fastmult edsp iwmmxt                           
CPU implementer : 0x69
...Continue Reading
Posted by Jack Crossfire | Apr 09, 2008 @ 02:52 AM | 5,097 Views
New tail boom, new drive belt, new main shaft, new main blades, new main gear, new tail rotor shaft, & IMU realignment later, finally finished the mecha. Only computer installation, neural network profiling, blade tracking, gear lubrication & we'll be out of things to do without flying.
Posted by Jack Crossfire | Apr 08, 2008 @ 04:04 AM | 4,502 Views
Power plug: 7.04
Crash repairs: 47.36
Gumstix: 190.31
$244.71 so far

Batteries: 146.97
Blades: 17.35
More blades, servo: 109.73
Screws: 9.62
Sonar: 28.25

Was hoping the flying costs would go down as we moved away from the T-Rex build. Saturday's crash was only $47.36 so far, cheap by T-Rex standards. The killer was the Gumstix incident. When accidents like that happen, U just eat the cost quietly.
Posted by Jack Crossfire | Apr 07, 2008 @ 02:14 AM | 4,479 Views
Alkaline batteries: 60g
3.3Ah: 260g

BEC power rig: 20g
4.1Ah: 324g

Well, built a camera power rig & got the 4.1Ah battery payload down to only 0.85oz over the weight of a 3.3Ah battery payload + alkaline batteries. Have no tests in flight conditions until the new computer arrives.

Found another anomaly in the navigation neural network. It was feeding current GPS in and using the same current GPS as output for training. With a well tuned autopilot, U can't tell if the neural network is accurately predicting velocity without flying because the predicted velocity feeds back into the future velocity.
Posted by Jack Crossfire | Apr 06, 2008 @ 02:52 AM | 4,268 Views
Well, tried to photograph love making with Russian Heroine from VicaCopter on autopilot. Had a tail rotor failure straight away. 1 tail boom destroyed. Next, began the rework to power the camera off the Castle BEC. Accidentally plugged the camera shutter into +14V. Fried the Gumstix & the PIC.

The good news is we'll upgrade to a 600Mhz computer & have a more generic neural network for navigation.

Now the last notes on turning.

Well, the way turning works is U have a copter equilibrium tilt which produces 0 acceleration in an environment of no wind. That one is hard coded & relative to the IMU. U have a world equilibrium tilt which produces 0 acceleration in the current wind & it's relative to the world. That one is constantly updated by converting copter equilibrium to world frame & subtracting it from the current velocity feedback tilt in world frame.

The world equilibrium is translated to copter frame & added to the copter equilibrium to get the target for attitude hold. This way the force we exert against the wind always stays relative to the wind as the heading changes.

The problem is wind hitting the tail rotor & fuselage from different angles changes the world equilibrium. The hard coded copter equilibrium changes based on payload. It really is a kludge we avoided for a long time.

Interpolated Timelapse montage (4 min 55 sec)

A compilation of our still photo movies during hovering. This uses interpolated motion & it really is the pinnacle of stabilization.
Posted by Jack Crossfire | Apr 04, 2008 @ 05:25 AM | 2,476 Views
Found another bug in the inertial navigation. To get the quaternion integration to work, had to use negative pitch for nose up. That bought her first pirouettes without complete loss of control & it may have improved stability. Turning is still risky business because the GPS is slow.

Can finally say the global equilibrium tilt is working. The IMU is not perfectly square so yaw does talk to pitch. To get good pirouettes on 1Hz GPS, it takes real sharp alignment of all the bits. Neural network swashplate mixing seems to be working. Sttill seems 2 B less coupling of cyclic inputs with it.
Posted by Jack Crossfire | Apr 03, 2008 @ 03:22 AM | 2,568 Views
The XCite batteries arrived after 2 weeks completely unbalanced. The actual weight was much more than the quoted weight 2 weeks ago. At 319g, they're the heaviest we've flown. Will need another BEC to power the camera.

Tweeked the image stabilization settings some more & got some really smooth results on footage once deemed unusable.

Autonomous helicopter photographs pilot (0 min 20 sec)

Posted by Jack Crossfire | Apr 02, 2008 @ 03:21 AM | 2,902 Views
Was surprised to learn the first stabilization algorithm we wrote 8 years ago is quite effective on timelapse copter footage. It only compares the current frame to the previous frame & accumulates offset. It emulated cheap camcorder stabilization & was too slow for past computers to do it very well.

Now, it's back & fortified with frame stacking & a few Opterons. It's overall, quite an improvement over hand stabilization. Stabilization can be even smoother by increasing frame rate & waiting a few days.

Windy hover with software stabilization (1 min 58 sec)

The download is in 1920x1440 if U want 2 feel like you're really flying.

Decided the RCE-BL35X is pegging up to full throttle when the battery is dead instead of giving throttle warning pulses. What a piece of trash.

In terms of modern photo support, rcgroups sux. We now have full resolution photos from CopterCam on Ning. U can see just how sharp a flybarless 450 on autopilot can be & how useful that might be for spying. It also lets U set your own GooTube resolution in HTML.

Posted by Jack Crossfire | Apr 01, 2008 @ 04:01 AM | 2,603 Views
Wrote a cheat sheet for the swashplate. Tweeked the video recognition. Have the cyclic alignment down to just feeding in a phase & the computer figures out the blade pitches for the disc.

Well, the phase ended up being 15' instead of 30' like it was before & still is on the rate damping.

Neural network mixing works & is a lot neater than the algebraic method so it's staying. Have hardly flown the T-Rex in manual mode at all since its birth but a backwards figure 8 definitely felt easier with neural network mixing & the phase tweek.

Stepped up the cyclic gain to where it oscillates & got more turn stability. Oscillation is caused by the neural network velocity predictions. Stepped collective P gain back to 0.01 & got the usual less stable altitude but no vortex ring states.

Did an endurance test & our oldest 3.3Ah battery hovered 10 minutes in ground effect. It's previous flight ended after 7 min with the camera payload. This one is mainly used for test stand operations.

Well, like millions of others, got charged $4 by The Portland Chap & the credit card had to be disabled. All it takes is 1 insecure website. Charge $4 on a million credit card numbers. No-one cares about a $4 charge, but U just made $4 million.

No camera replacement this week. The total amount of fraud between Blockbuster accounting errors & credit card charges is $30 this year. Over 30 years, that could end up $900 just in fraud.

2 weeks after ordering, xcitebattery.com said they shipped the next round of batteries.
Posted by Jack Crossfire | Mar 31, 2008 @ 03:25 AM | 4,439 Views
The answer is yes. U can mix a swashplate with a neural network. Most of the time, it works. Made really rough video & an LED tracking program to train the network. The head would always rotate during the tests. The linkages had a lot of play. The camera couldn't be exactly level. Video synchronization seemed to work.

Have a really rough conversion of cyclic to pitch phase in the disc. Since the goal is isolating collective from cyclic, phase alignment is secondary.

Video of training the neural network using machine vision followed by a strapdown test of neural network swashplate mixing.

Swashplate mixing with a neural network (1 min 51 sec)

Well, she certainly flies like this. Can't say it's any better than algebraic mixing. Swashplate phase is way off. Have some nasty glitches when the wrong combination of collective & cyclic is applied.

The credit card is nuked. All things considered, the EOS 5D is only rent inflation since last year....Continue Reading
Posted by Jack Crossfire | Mar 30, 2008 @ 01:27 AM | 4,465 Views
The problem with swashplates is they don't convert servo angle to lift very accurately. Every pushrod, reduction arm, & control horn from the servos to the blades is nonlinear & talks to each other. Collective lift for neutral cyclic is always different than collective lift for steep cyclic.

The ideal CCPM converts the sticks to an exact lift for every phase in the rotor disc, but we can't measure lift very accurately. Lacking direct lift measurements, the plan is to measure blade pitch for every phase. Mount an LED jig on a blade grip & videograph the pitch for the entire range of servo positions. Repeat with the phase in 120' increments.

Then the computer converts the sticks to pitch for 3 phases in the disc. A neural network converts the 3 pitch values into servo values. Hopefully that gives U a smoother ride.

The trick is synchronizing the video with the test program & keeping the head from turning during the test program.

Have our first daylight timelapse in HD.

Daylight timelapse from autonomous helicopter (0 min 32 sec)

Posted by Jack Crossfire | Mar 28, 2008 @ 03:36 AM | 4,536 Views
The RCE-BL35X has proven 2 B a real disaster. Firstly, spool up with too much positive collective & it locks in a hopelessly low RPM. Spool up with neutral collective to get it into a useful RPM. Secondly, it frequently loses its settings during reboots & goes to variable RPM mode.

Now, after 5 min flying the A560 in autopilot, disengaged the autopilot & everything was nominal.

Pulled collective to neutral to descend & the RCE-BL35X went into full throttle. It stayed locked wide open through landing & cutoff. Having pitch set extra high for low RPM made for exciting flying.

Suspect the 35X let its throttle integral increase very slowly in response to the high payload and it didn't drop when the collective dropped. The workaround is to use the autopilot to descend out of the shooting position.

Finally got our first 3k images from the computerized beast. 173 3k images taken during autopilot were scaled down to 1920x1440 & hand stabilized. Gootube can't play 1920x1440 of course. This segment includes operator directed climb in, 2 minutes of autonomous hover & operator directed descent out.

The HD master is on
Night timelapse from autonomous helicopter (0 min 17 sec)

Posted by Jack Crossfire | Mar 27, 2008 @ 07:02 AM | 5,281 Views
So U have 2 choices: replace the entire shutter assembly on the Canon for $400 or get a 5D system for $3000. The 5D requires a flash ($400) & normal lens ($310) but it would make those space station flyby's much easier. Don't think the 5D Mark II is valuable enough to justify $3500. The credit card won't reset until next week, so no Canon replacement for a long long long long, really long time.

Decided we had enough still photos from last year's shuttle/station flyby & photos like this R so rare that it justified making a movie. All 47 handheld photos were hand stabilized. The 200mm lens couldn't bring out any detail. The only novelty is the fact that U know what they R & U can see how low they R by the aspect ratio changes as they move across the sky. Next time, use a 180' wide angle lens.

Shuttle & Station flyby (0 min 10 sec)

Finally figured out a way to stack timelapse photos, so U get some UAV painting.

...Continue Reading
Posted by Jack Crossfire | Mar 26, 2008 @ 05:34 AM | 4,473 Views
The mane reason for this was to see if the flight controller was robust enough to do it. 3 simple letters is the most a single battery charge can handle. Strong winds R forming every night, making for sloppy movement. These missions R performed completely in hover mode with the safety pilot following her all the way downrange. Increased the velocities to 2m/s to try to extend the battery range. After 20 minutes of careful rotor manipulation, she finished CAT & DOG.

Unfortunately the American electronics worked & the Japanese electronics failed. The EOS 20D died halfway through DOG. It passed 70,000 exposures & now goes into infinite mirror flips whenever powered up. Suspect a broken sensor is reporting a stuck mirror & it's trying to unstick the mirror. It was rated for 100,000 exposures & only did 70,000.

Given our 35mm lens collection, the obsolete EOS 5D may be the next move. The only major purchases for 2008 so far R the T-Rex airframe ($1000) & the HP ($1300). Everything we buy works until it either crashes or desintegrates from old age.

Robotic sky writing (1 min 23 sec)

Posted by Jack Crossfire | Mar 25, 2008 @ 04:40 AM | 5,556 Views
Finally got around to making operator directed velocity actually work. U can't just couple the stick to X & Y velocities because wind just blows it off course & increases velocity in the undesirable direction.

The trick is keeping movement on 1 axis. In copter frame, just keep copter X position constant while changing copter Y velocity. In world frame, the axis U want to stay 0 is related to heading.

To simplify the math, just have a fake waypoint farther down the direction line & have her follow it.

Altitude is a different story. Vortex ring states occur after every movement which is long enough to build up translational lift. The workaround is storing the collective integral while hovering & recalling it after the movement is finished. Also adding a bit more to the movement when commanded to stop so the stop is more gradual.

This field is just too small. Lost tail rotor again & ran into a tree. Got a lucky crash right side up.
Posted by Jack Crossfire | Mar 24, 2008 @ 03:49 AM | 4,679 Views
The Gumstix has been rebooting itself a lot. Managed to get the Canon A560 in the air for the first time. On the first engine spoolup, the computer rebooted spontaneously & the engine stopped. On the next engine spoolup, it was stable. The T-Rex probably has the same vibration as the Corona. The A560 handles it better than the TX-1 because it doesn't have a wobbly stabilizing lens. The days of calm afternoons R over until October. Could only manage 2 minutes of autopilot before the wind took her away.

Download the raw version from http://vimeo.com/818267.

The camera flies again (3 min 50 sec)

Got some nighttime airborn footage. Unfortunately the Gumstix rebooted during the landing. Engine cutoff didn't work & she thrashed around for a while. Fortunately the battery was too dead to do any major damage.

...Continue Reading