September 2022

S M T W T F S
    123
45678910
11121314151617
181920 21222324
2526 27282930 

Style Credit

Expand Cut Tags

No cut tags
Friday, August 18th, 2006 02:33 pm
Wednesday, [livejournal.com profile] corivax and I flew on the Weightless Wonder.



First, since my friends list has grown a bit over the last three years, some background:


GYRE is a robot designed for navigation in freefall. It is about 17 inches on a side and weighs just under 50 pounds (the NASA limit for free-floating experiments.) It has 2 tanks filled with 4500psi of compressed air which can be fired at 100psi through any of 12 thrusters (in orange above).

The research element is applying visual processing and feedback algorithms, so that it uses 3 firewire cameras (white and blue) to determine its motion. The video is fed to 3 onboard computers, which send their perceived motion to a single control program which runs the feedback algorithms and fires thrusters accordingly. The goal was to station-keep, to kill its own rotation relative to the world it can see.

This worked just fine in the lab. Or, at least, it worked as well as we could test it, letting it spin in 1 dimension while suspended from the test frame.





2000: I was in a pub with [livejournal.com profile] xiadyn, [livejournal.com profile] neuro42 and [livejournal.com profile] corivax. And we decided we should fly on the Vomit CometWeightless Wonder. And since it turned out there was a way to fly experiment packages, we decided to build a glorious space robot. GYRE (which doesn't actually stand for anything) was born, but we had just missed the proposal deadline for the 2001 flights.

2002: Accepted for flight, but couldn't finish in time and had to drop out.

2003: Accepted again, and that time we flew. But the robot basically didn't work at all, and [livejournal.com profile] corivax wasn't able to be one of the fliers. Honor and blind-faith in happy endings demanded that we try again.

2004: Rejected due to an admittedly complacent proposal.

2005: Accepted with a much improved proposal. But the new C-9 Weightless Wonder VI had ongoing technical issues and our flight week was first pushed back and then canceled.

2006: Accepted and successfully flown. The end of GYRE.



As I posted earlier in the week, we had to replace the battery on the robot at the last minute. We were lucky enough to find enough cells in town to build a replacement, but it had even less power than the already minimal original. Coupled with the arc welding late at night, we really had no idea if the robot would work at all the next day. This was [livejournal.com profile] neuro42 and [livejournal.com profile] adularia's flight, and waiting on the ground to find out what had happened was an ordeal.

And the results were... pretty good. The robot had run just fine, though it ran out of power around parabola 25 (out of 30). But more worryingly, the thrusters didn't seem to be doing anything. Given my previous freefall experience, where just typing on a keyboard had pushed me into the air, I had never doubted our thrusters would be powerful enough. But as we watched the videos that night, it was obvious that they weren't. Careful inspection revealed a couple of places where the robot's spin did in fact change, but it was very subtle. Unfortunately, there wasn't anything we could do -- you can't change operating pressure without involving very serious NASA people again. So that night I added a new run mode that fired one set of thrusters continuously, so we could get a baseline of what the thrusters were capable of, and then went to sleep.

The next morning, [livejournal.com profile] corivax and I were mostly busy at Ellington with preflight briefings, so we left prep of the robot up to the others. During a spare moment, I was told that the Fieldpoint modules weren't working. These are the devices that convert serial commands into millisecond precise impulses to the thrusters. They're rather expensive, supposedly robust industrial control parts, and without them we're dead in the water. Since I couldn't do anything about it, I tried my best to not worry, and spent some spare moments working up a list of code that would have to be changed so things would at least run with only one of the modules operational. (Though with half the thrusters dead, it wouldn't do much good.) Just before flights I was told nothing had changed, but they were pretty sure it was a condensation problem from the murderous Houston humidity that should go away in the cold, dry air once we're in the air. Okay, sure. And with that over our heads, we took off.

The Weightless Wonder flies 3 sets of 10 parabolas out over the Gulf of Mexico. It takes about 20 minutes to get to the start position, so you have plenty of time to set things up. I turned the bot on immediately, since I was going to need that time for emergency hacking should one of the Fieldpoints fail to come up... and both came up without any problem. Which was a big yay -- I did the emergency hacking in freefall thing last time, and it sucked.

You get freefall onboard because the plane, at the top of the parabolas, is following the same path that a rock would it your threw it very, very hard. It's a ballistic trajectory, and therefore everything inside the aircraft is in freefall. It can only manage this for about 25 seconds, after which it is pointing down at about 50 degrees and needs to start pulling out. While it actually takes some time to ramp back up, it feels like gravity turns back on all at once -- the difference between freefall and any amount of gees is huge. At the bottom you're pulling about 1.7 gees, stuck to the floor. This is actually the period that makes the most people nauseous. Turn your head imprudently here, and the fluid in your inner ear starts spinning wildly. In 2003 I very nearly got sick, largely because I was overheating in the nomex flightsuit. This time I paid much closer attention and unzipped it sooner. I never felt particularly bad this time, and towards the end I was starting to push myself during the high-g sections. I even tried some pushups -- I managed 2, but they were of very poor form.

Each computer on the robot is named after the axis it is watching: xray, yankee, zulu. Each runs a copy of a program called gyre, which runs the motion estimation algorithms and sends the results out over the internal wired network to MCP, the Master Control Program, which runs on xray. MCP applies the feedback algorithms, fires the thrusters, and also presents the main user interface. We ran it by SSHing in over an adhoc wireless network. Kind of clunky, but simple enough with proper scripts set up. It lets you change current feedback algorithm, start/stop the distributed vision processing (which burns lots of CPU time, so it needed to be turned off between parabolas to save battery power), displays update times from the vision subprocesses to indicate if something has crashed, shows current motion estimate, and allows the thrusters to be toggled on and off. It's totally oldschool, using ncurses for screen layout, and I am ridiculously proud of it. It just works. I learned from 2003 and made sure the commands were all single characters, easy to remember, and didn't require moving your hand much. Typing in variable acceleration is hard.



For the first test, we ran the manual thruster firing. As feared, it barely affected the robot at all. This continues to puzzle me. It works quite well on the ground, with all the friction inherent in a test harness. I suspect the main problem is lack of time -- a lot of those precious 25 seconds is taken up getting the robot into and out of position, and the freefall is noisy enough that you frequently have to grab the robot to prevent it from floating away and ending up over someone else's head.

We switched to the normal test procedure after that, cycling through each feedback algorithm, one per parabola. At least once the bot did some real station keeping -- even one of the NASA camera guys noticed. But for the most part, the results were pretty subtle. I think with careful inspection of the tape and the onboard logs, we'll be able to get a paper out of it.



We started to have some weird power issues after parabola 10, when you get a couple minutes of rest while the plane turns around for another set. These were managable for the next full set, but during the second turn around period the bot died for good. It just didn't have the power since I had turned it on earlier fearing I would need to modify the code. Disappointing, but it meant we had the last 10 parabolas just to enjoy freefall in.

I don't think I'm any better at describing freefall now than I was 3 years ago. Instead of saying that it feels like every direction is down, I'd now say that every distance feels like depth. A subtle difference, but important. Freefall is like floating in a pool, except there is no pressure, no tendency towards any orientation, and the slightest movement can send you spinning across the room. It's simply the most amazing thing I've ever experienced, and it hurts to know that I'll never know it expect in miserly 25 seconds chunks, and probably not even that again. It's selfish, I know. I just want more. I want to be good at it.

At the very end of the flight they do 1 martian and 1 lunar parabola. I remembered to find a window to look out of during this period -- watching the horizon swing from 135 to 45 degrees while your personal gravity vector doesn't change is crazy. It doesn't parse as the horizon, since horizons don't move. Instead it feels like watching some inhuman contraption in motion. In 2003 I amused myself in lunar gravity by doing pullups. Since I can do those in 1g now, I had fun jumping across the fuselage in effortless leaps. Parkour on the moon would rock.



After the flight, [livejournal.com profile] neuro42 was floored that the bot had worked. The condensation story had been complete bullshit to keep me from worrying when I couldn't do anything.


So, that's it. After 6 years of this, we're kind of exhausted. The results weren't as great as we had hoped, but we did build a robot that could navigate in freefall using computer vision. We still need to do a final writeup for NASA, hopefully get a paper or two out of our results, but that's it. GYRE is over -- time to find a new insane project!
Saturday, August 19th, 2006 05:41 am (UTC)
I think the image that really brings it home is the groundside doorstop floating there doing its thing. (Or refusing to do its thing, as the case may have been.)

I wanna see the closeups of you-all smiling like that.
Saturday, August 19th, 2006 01:25 pm (UTC)
The fullsize versions of all these images are at http://www.cyphertext.net/images/Erato/Groups/trips/houston-2006/ (http://www.cyphertext.net/images/Erato/Groups/trips/houston-2006/). The NASA originals are pretty large.
Saturday, August 19th, 2006 08:53 am (UTC)
That's just every kind of cool in the world.
Saturday, August 19th, 2006 10:29 am (UTC)
I want to be like you when I grow up. Really.
Saturday, August 19th, 2006 03:15 pm (UTC)
So where would you submit the GYRE paper?
Saturday, August 19th, 2006 04:58 pm (UTC)
shiny post. yay!
Saturday, August 19th, 2006 06:01 pm (UTC)
Congratulations.

Last photo is my fave: "That's one small step for a man..."

Can't imagine why the thrusters would be powerful enough on the test rig but not powerful enough in the air.

Unless...

Is there a difference in barometric pressure between the test lab at UW and the interior of the plane? Or had you already compensated for that?
Saturday, August 19th, 2006 06:05 pm (UTC)
ITYM "one small step for a FISH." ;)
Tuesday, August 22nd, 2006 05:10 pm (UTC)
There is. Like most passenger aircraft, the Weightless Wonder is pressurized to the equivelent of about 8000 feet altitude. Some other details of the pressure system have changed since the original design as well. We're going to have to revisit the old equations and see if any of that could explain what we were seeing.
Saturday, August 19th, 2006 07:32 pm (UTC)
Thanks for all the details...I'm jealous of your great project & experience!