HobbyKing.com New Products Flash Sale
Jack Crossfire's blog
Posted by Jack Crossfire | Apr 21, 2008 @ 01:45 AM | 4,964 Views
Had exactly 1 day off since Heroine Cam arrived. Once a company begins 6 day work weeks, getting back to 5 day work weeks is a matter of either getting into a low profile project or quitting. Once acquired, the taste for winning more contracts by leveraging employee personal time rarely gets sour.

Path through 35mm (0 min 40 sec)


Flight projection through the 35mm sensor followed by projection in Google Earth....Continue Reading
Posted by Jack Crossfire | Apr 19, 2008 @ 03:04 AM | 4,911 Views
Decided to finally try a washout filter instead of a neural network. Recommended by none other than Major League Baseball himself.

The washout filter was much looser than the neural network in stable air. Maybe it could be tuned, but we're after major improvement & clearly that isn't washing out.

Got better focusing by focusing on the tail boom & setting the flash to stop down -1. It's beginning to look like an extremely narrow depth of field, very small pixels, combined with a lack of the focusing assist range we had on the 20D. The IR assist just doesn't cut it & there's no way back to flash assist. It's clearly focusing in front of the object.

Would now agree the 5D sensor is slightly less noisy at ISO 1600 than the 20D sensor.

Finally hovered out a battery. The flight time with a brand new 4.1Ah battery in ground effect is 16 min.

The day job is requiring work on weekends. It's one of those jobs where it's more tradition than necessity. We have probably only 10 hours in Rain Ramon per week now.
Posted by Jack Crossfire | Apr 18, 2008 @ 03:54 AM | 4,873 Views
Clearly the swashplate neural network has nicely decoupled the 3 swashplate axes since the long coveted single module for navigation made no difference. We're looking for significant improvements here, but all the designs seem to have milked the last bit of information out of 1 Hz GPS.

There's a slight chance adding MEMS acceleration to the 3 module network improved its altitude hold. More evolutions to grind than the 1 module network.

Would be nice if the software could automatically throttle the evolutions to hit an exact CPU load. It's the times it gets it wrong that we're worried about.

1 module, 30 sec history
----------------------------
current GPS acceleration
commanded tilt
|
\/
predicted GPS acceleration

same as 3 modules




3 module, 30 sec history
----------------------------
current GPS acceleration
current MEMS acceleration
commanded tilt
|
\/
predicted GPS acceleration

Same as without MEMS.
Significant oscillation during training.
Possibly better altitude hold.





3 module, 60 sec history
----------------------------
current GPS acceleration
commanded tilt
|
\/
predicted GPS acceleration

Same as 30 sec.
Longer training time.

So much for that....Continue Reading
Posted by Jack Crossfire | Apr 17, 2008 @ 01:05 PM | 5,081 Views
Got lucky with the crash damage. Only $25 & 5 hours of repairs. Remarkably, the main shaft didn't bend. Got the computer running again. The tiny hirose connector was predicted to break in it's first opportunity, & it did. Now we know where to pad the computer.

Got the serial port reading SiRF binary, 9600 baud, & low latency, thanks to Canadia. U need to set c_cc[VMIN] to 1 & c_cc[VTIME] to 1. Now we know the binary protocol gives much more accurate readings than NMEA.

Discovered if U have multiple BEC's, only connect 1 of the ground lines. Reversing the polarity of the computer tap causes a short circuit between +12V from the ground & +6V from the BEC. That's what melted a wire http://www.rcgroups.com/forums/showthread.php?t=812551 before. Now the remaining unmelted RCE-BL35X wires are 6V & PWM. The computer's diode protects the +12V line but not the ground.

The answer is yes, using SiRF binary protocol gives much more accurate readings than NMEA. Got good results using the 3 module network. The 1 module network was disappointing. Still have more combinations to try before declaring the 622Mhz a waste of money.

Web 2.0 is getting back to full power after a few months of mass layoffs, & lots of middle managers R getting promoted. The bigger the manager, the smaller the car. Spending almost all day in traffic. Monster accidents shut down the freeway all morning. More accidents stopped traffic all night. Only getting...Continue Reading
Posted by Jack Crossfire | Apr 16, 2008 @ 03:38 AM | 5,271 Views
After the Jesus camera arrived, wanted to get some autonomous flight photographed at any cost. Reverted the neural network to the 200Mhz configuration. Reverted GPS to NMEA, but managed to get it up to 9600 baud. Autonomous hover locked in again.

NMEA works because the linefeeds flush the buffer. Clearly the non canonical mode is broken on ttyS1.

She was losing altitude erratically but a small turn was stable. In our excitement, hit engine kill instead of autopilot kill. Attempt to restart followed by crash followed by computer crash followed by thrash followed by PIC shutdown.

The Corona would have been a matter of straightening aluminum. The T-Rex is offline until May for probably $50. Computer boots but no longer detects console input.

The flash had plenty of power, but the EOS 5D simply couldn't focus sharply. Worked around it by stopping down....Continue Reading
Posted by Jack Crossfire | Apr 14, 2008 @ 02:50 AM | 5,418 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 | 5,030 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,180 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.

Code:
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,848 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,


Code:
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,161 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,573 Views
April:
Power plug: 7.04
Crash repairs: 47.36
Gumstix: 190.31
----------------------
$244.71 so far



March:
Batteries: 146.97
Blades: 17.35
More blades, servo: 109.73
Screws: 9.62
Sonar: 28.25
--------------------
$311.92

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,539 Views
Payloads:
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,332 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,514 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,611 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,941 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.

http://diydrones.com/photo/photo/lis...=JackCrossfire
Posted by Jack Crossfire | Apr 01, 2008 @ 04:01 AM | 2,644 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,506 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