Jack Crossfire's blog View Details
Posted by Jack Crossfire | Apr 15, 2013 @ 04:00 AM | 5,621 Views
1) An unpowered vehicle which is shot out of a gun as a shell, then unfolds wings or a parachute & glides down under control. It would be for quick situational awareness.

2) A pocket size vehicle which has a parachute which is unfolded for a wing.

3) A vehicle which uses optical flow to augment GPS.

4) A micro Marcy 1 using a brushed motor & 4.2V battery.

Converting Marcy 1 to dual webcams was busted. After spending a week moving the radios to the latest protocol, you start implementing stereo vision for measuring distance. It doesn't work as well as measuring size. The distance between cameras is far smaller than the size of the copter, making it much less accurate.

The webcams aren't synchronized, so you can't detect distance in each frame. You stack frames in lieu of synchronizing cameras, but at 30fps in ambient light, you don't get a smooth oval. You get a number of constantly undulating blobs. The smallest conceivable monocopter would have a bigger diameter than the camera spacing.
Posted by Jack Crossfire | Apr 11, 2013 @ 06:39 PM | 5,806 Views
Optical flow on Posterboard vs Carpet (2 min 24 sec)

Flying a simple path by optical flow, the carpet barely does it at low altitude & has no hope at high altitude. The high altitude failed because sonar died, but given a more powerful transducer, the camera would have been next to fail. Still, it's smaller than any previous optical flow copter that navigated waypoints, took off & landed on its own.

Centeye never published the algorithm it used in the 2009 demo of a copter hovering in a fixed position, using only a bag of cameras. Presumably, it merely measured the X & Y translation of the images in each camera to deduce motion in 3 dimensions.

It would have been hard coded with the distance from the cameras to the features. It couldn't have measured depth, because the cameras weren't high enough resolution & weren't spaced far enough apart.

The next step in optical flow is 2 high resolution, horizontal cameras, on a panning servo. That would give the minimum amount of information required to sense 3D position, but be more robust than a downward camera with sonar. It wouldn't be as accurate as a downward camera with sonar.

It would search for the most detailed area by panning, then deduce position through depth & translation. 1 scanning pass would match the offset between both cameras. It could use the entire frame with a large scanning radius. The next pass would match the offset between frames on the same cameras. It would use a small scanning area with small scanning radius. It would need an FPGA with SRAM.

The cameras would have to be spaced 1 ft apart. The panning servo could be eliminated by relying on turning the aircraft to face the most detail or having more cameras.
Posted by Jack Crossfire | Apr 10, 2013 @ 01:51 AM | 6,374 Views
So what you want is a common ground station that works with all the vehicles & provides the best possible navigation. There is no practical use for dedicated ground stations based on the raspberry pi for each aircraft. There isn't enough capital to make enough of a dedicated product like that to pay for itself.

The best navigation is from a desktop computer & dual webcams at the highest resolution they can do at 30fps. There's a bag of webcams which max out at 640x480. Higher resolution would be nice. The ground station is ready for a sonar extension, which would support position detection for a 2nd aircraft in a dogfight game.

The monocopters can use 1 webcam. The Blade MCX uses 2 webcams. The problem discovered with the monocopters was how the diameter changed when they got off the ground, skewing the distance measurement. They'll have to use 2 webcams for highest accuracy.

When autonomous, flying, indoor robots become as common as microwaves, they'll use local RF positioning. For now, the camera station is the best.
Posted by Jack Crossfire | Apr 08, 2013 @ 10:59 PM | 4,585 Views
Manually controlled optical flow (3 min 31 sec)

It's not the same as the ground based camera. It drifts a lot, more with increasing altitude. At least it only requires a tablet.

It actually works reasonably well when over carpet & low enough.
Posted by Jack Crossfire | Apr 08, 2013 @ 03:10 AM | 4,913 Views
Posted by Jack Crossfire | Apr 07, 2013 @ 02:59 AM | 4,943 Views
There are now a few hundred photos of this thing on the hard drive.

...Continue Reading
Posted by Jack Crossfire | Apr 04, 2013 @ 01:10 AM | 5,095 Views
Damped Harmonic Oscillators | MIT 18.03SC Differential Equations, Fall 2011 (9 min 30 sec)

Control systems is the most intimidating course in an engineering program. It's extremely intensive on symbolic calculus, yet you encounter the same nonlinear differential equation notation in any research paper about control systems.

That's the difference between someone who has made zillions of flying things intelligent & someone who made zillions of flying things intelligent for a living. In a down economy, there are so many people who can do it, another means of weeding out candidates is needed. It comes down to who has paid their dues in formal education.

Whether the future will be dominated by an economy of self made makers building businesses in their garages or corporations building on formal college education & strict roles is a contentious issue. The fact is making enough money working for yourself to leave your day job has been the dream for centuries, whether it took the form of web site designing 15 years ago, flipping houses 7 years ago, or the maker revolution now.

There has always been a new tool, promising to bring the self employment dream to the masses. For years, Sparkfun & diydrones had declared the maker revolution would free everyone from their day jobs, just by buying their products. Guys like Dean Goedde & Jordi Munoz were posterboys on how new products like batchpcb, sparkfun breakout boards, & 3D printers...Continue Reading
Posted by Jack Crossfire | Apr 01, 2013 @ 11:46 PM | 4,731 Views
Optical flow odometry (1 min 9 sec)

The copter flies away & returns to the starting point at 2 different altitudes, using only optical flow odometry for position. The fact that it landed at nearly the takeoff position was probably coincidence, but optical flow has proven very accurate in a 30 second hover. It may depend more on time than movement.

The takeoff is hard coded for a certain battery charge. This battery may have put out a lot more than the battery it was hard coded for, causing it to bounce during the takeoff. Nothing optical flow guided besides the AR Drone has been shown doing autonomous takeoffs & landings. It takes a lot of magic.

It was a lot more stable than the ground based camera. Ground based vision had a hard time seeing the angle of movement, relative to the copter. Optical flow has precise X & Y detection in copter frame.

That finishes the hardest steps for this vehicle. The next step is manely writing software.
Posted by Jack Crossfire | Mar 31, 2013 @ 09:01 PM | 5,654 Views
Optical flow duel: AR Drone vs Marcy 2 (0 min 55 sec)

How long can they stay in bounds? The home made micro copter did surprisingly well, compared to the commercially successful AR Drone. The degradation was reasonable for a camera with 1/3 the resolution & 2/3 the frame rate. It's not likely to get more accurate. The mane problem is glitches in the Maxbotix.

Removing the 10R from the Maxbotix power filter made no difference. It now has a bare 470uF. It's not likely wifi interference. It seems to glitch over sections of paper which aren't flat. Unfolding some garbage bags might work better.

Measuring all the navigation in mm * 256 was the final leap in accuracy. Comparing it to the AR Drone showed it wasn't the math, anymore. The academic way to convert pixels to ground distance involves a tan of the pixel shift to compensate for parallax. The pixels are so small, this was neglected & the pixel shift was just multiplied by altitude.
Posted by Jack Crossfire | Mar 31, 2013 @ 03:35 AM | 6,331 Views
As bad as optical flow is at absolute position, it's hovering for around 90 seconds at 0.5m before slipping off the floor pattern. Above 1m, it slips off after 1 minute. At 1.5m, it slips off after 30 seconds. Most of the slippage seems attributable to fixed point math errors. The Maxbotix falls apart at 1.5m over posterboard.

Foaming the IMU & applying some fixed point integral magic made the attitude real stable. It's unbelievable how stable that thing became, comparable to the Blade MCX.

If scaling pixels to distance based on altitude must be done in fixed point, it's another area which would be best done with a lookup table instead of getting the angle, getting the tangent & multiplying by the altitude. Horizontal distance also needs a lot more precision than 1/256 meters. There are many navigation routines where fixed point dictates combining many steps in high level lookup tables instead of using discrete trig functions.

Stability is still comparable to the 20 second hover in the px4flow demo video. Time for some waypoints.
Posted by Jack Crossfire | Mar 29, 2013 @ 12:28 AM | 6,446 Views
Optical flow Syma X1 (1 min 21 sec)

There it is. What made it stable enough was discarding the accelerometer & letting the gyros free roll except for heading. There's a real problem in the fixed point blending code. For now, a large integral with just the right gain keeps up with the drift, as always.

The problem went back to optical flow slippage. It's not good enough to fly to a waypoint. There's not enough computing power to track a single object.

The motors get flaming hot in 1 minute, so there's not a problem with the gyros drifting after 2 minutes.
Posted by Jack Crossfire | Mar 28, 2013 @ 02:27 AM | 6,549 Views
The entire available floor space in the apartment was finally painted. It seems to provide a very easy surface for optical flow. Noted the angular motion needs to be very accurately eliminated from optical flow or it won't work, at all.

Then there was a reversion of the altitude algorithm to a rate feedback. Altitude with the indoor vehicles has always been the easiest direction, even at 10Hz.

Wifi continues to interfere with sonar, with an evolution of wire arrangements in progress. Twisting the wires & having them at the same level as the sonar improves it.

The motors overheat after 2 minutes of flying.

This leads to the IMU drift being too high. Usually, it crashes right away. Sometimes, it hovers for a while & drifts into a wall. The problem is the IMU drifting until the controls are saturated. Optical flow seems to very accurately track the position, but you can see the controls saturating just to keep it level.

Foaming the IMU didn't improve it. 5 deg of drift in 25 seconds is too high. The Ladybird uses the same gyros with less drift.
Posted by Jack Crossfire | Mar 26, 2013 @ 12:25 AM | 6,727 Views
The 1st dead brushed motor happened. It manifested itself as a propeller that wouldn't turn without a lot of resistance, despite having no hair clog. The brushes must have disintegrated, leaving high friction copper. None of the other 3 motors have disintegrated, however. Those things don't last long.

Time to paint some more of the floor. Painter's drop cloth doesn't work because it's only 3' wide. A tarp would be ideal if it was black or white. The apartment is only big enough to paint a small area at a time.
Posted by Jack Crossfire | Mar 25, 2013 @ 01:25 AM | 6,794 Views
Intermediate memory bootloaders (16 min 29 sec)

Mike had a useful nugget on the intermediate memory bootloader. The bootloader hasn't gotten much attention between all the other issues, but an easier way to update firmware would go a long way. The problem is there's no dominant communication method. Wifi interferes with too many sensors. USB is only used on the ground stations. The flight protocol would take 100 seconds.

Don't remember any intermediate memory bootloaders before 2009. The dominant embedded system was the camera. It was a 1 step process where the mane program flashed itself while telling you not to turn the power off. Only when smartphones appeared did the 2 step concept of downloading to scratch memory & rebooting to flash it become the normal routine. Requiring users to reboot got a bad reputation from Windows, but now they've gotten used to it.

Optical flow odometry is pure hell. Technologies are born & die over real short timescales. You can tell when particular technologies peaked by the dates on the goog searches. For brushless gimbals, all the pages are in the last 4 months, so it's the current big thing. For optical flow odometry, the pages concentrate near 2005, then it sporadically bubbles up after 2009.

Optical flow odometry seems to come & go as key improvements in microprocessors & cameras appear, people take up the issue again & drop it. It has a real problem navigating outside the 1 specific altitude it's tuned for.

Helicommand will always be the product that got it on the radar. Those were everywhere in 2007, but after the uBlox 5 came out, everyone switched to GPS.
Posted by Jack Crossfire | Mar 24, 2013 @ 04:20 AM | 6,428 Views
The growing list of things to either build or buy, deferred indefinitely by the almighty dollar:

outdoor copter
brushless, direct drive gimbal
indoor dogfight game
monocopter FPV
blade MCX FPV
tethered copter

The game was always about getting aerial video, but the mane turnoff was always the lousy results unless you had a big, heavy copter & expensive, heavy gimbal. There was a time when a 450 size copter was considered too small for stable video. Guys used to preach about the small stick movements, calm weather, & flight stabilization it took to get results that still didn't compare to full size copters.

JAZZ DDG + Alex Mos + octocopter jazz8 (7 min 1 sec)

The brushless gimbal changes everything & the desire is back. Model copters can finally surpass full size copters in stability. Every aerial video made is going to look like a professional studio made it. It's not just going to change the look of amateur movies, but the way all professional movies look.

It's amazing how bad even the best servo gimbal footage now looks.

Aerial Showreel 2012 (3 min 33 sec)
...Continue Reading
Posted by Jack Crossfire | Mar 23, 2013 @ 05:40 AM | 7,702 Views
Remember the disastrous PT785-S pan/tilt mount? It was too slow & too inaccurate to be any use in position sensing, but it's been made obsolete in the last 4 months by the rise of cheap, fast, accurate, direct drive, brushless gimbals.

Brushless gimbals came out of nowhere & are going to replace all servo gimbals in no time. All the goog results are coming from the last 4 months. You know it's a disruptive technology when it goes from nowhere to everywhere in 4 months. It's going to have a lot of people now using gimbal stabilization who previously were satisfied with hard mounting, it's going to make model copters a lot more ubiquitous in professional production, & it's going to make these steadicam quality shots the baseline quality for aerial video.

Servo gimbals always had a slight wobble that wasn't in full size copter footage, but that's now gone. Brushless gimbals produce a leap in video stability in a much smaller package. They were around for a long time, in the form of the DJI Zenmuse, but very expensive. The key development was a crazy Russian guy named Alex Moskalenko figuring out cheap hobby motors could be rewound to make the perfect high torque, low cogging stepper motors a camera mount needed.

This is a big leap towards making pan/tilt mounts small enough to put in phones, finally bringing steadicam stability to the masses. It's basically the 1st device which successfully replaces all the mechanics & tuning in a steadicam with...Continue Reading
Posted by Jack Crossfire | Mar 23, 2013 @ 03:11 AM | 7,098 Views
Maxbotix vs wifi (8 min 17 sec)

Long & boring video documenting interference between wifi & the Maxbotix MB1043, the world's most temperamental sensor. Some orientations do better than others. At least any wifi problems aren't due to lack of power. The Maxbotix & wifi wouldn't be very useful on any smaller vehicle.

A totally random orientation of wire & dongle was required. Wire orientation, wire insulation, dongle orientation, dongle distance all determined whether the Maxbotix died. Any slight movement of the wire breaks it.

The automatic takeoff & altitude hold were extremely accurate. The 10Hz update rate wasn't as problematic as feared.

It's back again to the hardest part, the horizontal position.
Posted by Jack Crossfire | Mar 22, 2013 @ 04:53 AM | 7,473 Views
So the Maxbotix actually took off & after bouncing off the floor & ceiling a few times, held the altitude at 0.5m, when it worked. It couldn't do 1m. The problem is it's jammed by wifi. Unlike the USB host jamming I2C when wifi was on, this was a real RF interference problem. No voltage ripple appeared when wifi was on.

The RC filter made no difference, but it did work when a probe was connected to it & ground. Disconnect the probe from either 3.3V or ground & jamming resumed. It didn't matter if the probe was connected to the oscilloscope. The probe must have shifted the resonant frequency of the susceptible Maxbotix part or injected an out of phase waveform. Throwing in a low ESR 10uF didn't work.

Connecting the wifi to an umbilical cable & moving it away worked. Maxbotix worked best when wifi was right next to the motors & completely died when wifi got 1/2 way from a motor. With wifi yet another problem for the Maxbotix, it continues to be a real turd. But to be sure, no-one else in the world ever put a Maxbotix on a wifi aircraft.

After this problem, all the other systems are known to be working with wifi, but there are some huge problems making wifi unviable in a product. The ground station has to be running before associating the access point, because of the inability of the USB host to transmit without 1st receiving.

So the parallax weighs 9g & the Maxbotix weighs 4.3g without the RC filter. It's heading back towards not another STM32 ground station but a raspberry pi routing wifi to 900Mhz. Not the most effecient or cost effective solution but it's the easiest to use.
Posted by Jack Crossfire | Mar 21, 2013 @ 03:52 AM | 7,774 Views
As with everything Bezos, his discovery of an F-1 engine from Apollo 11 was held in deep secrecy. In 2012, he only briefly mentioned he found an engine, but didn't reveal any photos or the location. Only today, 1 year after the discovery & raising enough money to raise an engine did he release some obliquely angled photos of the engine.

The gubment & the voters did not have the money or the desire to recover the engine. Only the power of your amazon.com purchases & the imagination of 1 man could get it done.

The generation which launched the engines believed it was the beginning of a new era of interplanetary exploration, discarding the engines forever, on the ocean floor. Only after the hindsight that human exploration beyond Earth orbit was over for good, did the next generation finally revisit an engine to recover it.

It was of course the huge demand for oil exploration that improved the underwater robot technology & sonar enough to discover & recover the engine. It would have been a lot harder & probably required a government budget, 14 years ago.

The engine was 1/2 a mile deeper than Titanic, it's parts broken off & strewn around the ocean floor.

The engine thrust chamber as seen on the sea floor, where it has rested ever since producing 1.5 million lbs of thrust for 150 seconds to push Niel Armstrong 42 miles off the ground & a speed of 6000 mph. The 356 braze welded tubes of the nozzle wall would...Continue Reading
Posted by Jack Crossfire | Mar 20, 2013 @ 03:26 AM | 7,045 Views
After years of being outsold by Parallax sensors in the AR Drone, the Maxbotix finally saw widespread use in Arducopter. It's ironic for the exclusive sensor of Sparkfun to not have made it into a product 1st, since Sparkfun owns the maker market. The only reason Arducopter uses Maxbotix is the branding with Sparkfun. They certainly don't care about the size.

It's only here because it's the lightest. If it has too many problems, it'll be replaced by a Parallax, but the PX4Flow should really be used.

So basically, after 6 years, the Maxbotix still has to be powered up facing away from the ground or it returns bogus values. This continues to be the greatest scourge of sonar navigation. The Parallax sensor in the AR Drone initializes properly with no clearance.

It still needs an external RC filter to filter the power supply. You'd think they would have found a way to store the calibration data on the flash or make a bigger board with integrated power filter to generate the best readings.

They treat the tiny form factor of 6 years like a religion, which makes sense, since they're in Minnesota. Religion is everything in Minnesota. The jesus & cross symbols of Minnesota fame are on all their boards.

The Maxbotix still requires a manual trigger to range at its maximum rate of 10Hz, but it repeats the same value if triggered at less than 25Hz. It needs to be triggered at 50Hz to output 10Hz of unique data.