May 12, 2001 Meeting Notes
In attendance:
John Carmack
Russ Blink
Phil Eaton
Russ made an aluminum handle grip that could be added to our
new stainless steel quick disconnect so it could be popped off at 400 psi. The original quick connects we used had a
nice little lever for disconnecting, but the seals in them werent peroxide
compatible, and they deteriorated. When
I bought new stainless/Viton quick connects, we found that we couldnt get them
off when they were pressurized more than 200 psi. It still takes a pretty firm tug, but we didnt have any problems
with the new grip.
We finished up the assembly of lander 2.0.
media.armadilloaerospace.com/2001_05_12/lander2_0.jpg
The complete lander 2.0 weighs 39 pounds dry. The heavy metal of the outrigger bars has
added a bit to the mass over the first version. For larger loads of peroxide, we are going to need to raise the
initial tank pressure above 440 psi, and/or drill out the nozzles a bit to get
more thrust, or the blow down pressure will be too low to lift it as the tank
empties. A half-full tank will hold
about 10 pounds of peroxide (a whopping 1.25 mass ratio
), which should give us
about 20 seconds of flight.
This is also the basic design we are looking at for the
manned craft. You can stand on the
demonstrator and bounce on the foam pads right now, so basically we will be
building an upscaled version with a joystick on it and the main tank slightly
offset. We will be designing it for a
standing pilot, since we wont be pulling any Gs, and the legs make pretty good
shock absorbers. I was watching From
The Earth To The Moon a couple weeks ago, and the arguments for standing LEM pilots
seemed quite sensible.
We trued up the engines by using a level across each nozzle
face, shimming the engines away from the mounts with washers.
The electronics box is held between two sheets of foam
instead of being rigidly mounted to the frame.
We have big hose clamps between the side bars to prevent it from sliding
out if it came down sideways, but we will eventually want to build a small
sheet metal box lined with foam that the electronics box will exactly slide
into. The gyros are much happier with
the foam mounting. Kicking the platform
hard will still mess them up, but it can now lift off reliably without
triggering a spurious rate cutoff limit.
We water tested it to check all the new plumbing and the new
quick disconnect.
It was getting dark, so the video didnt turn out all that
great, but we got everything captured.
The first test had accidentally only pressurized the tank to
360 psi, instead of our normal 430 or so.
The lander barely lifted off the ground, and bobbled around a little.
media.armadilloaerospace.com/2001_05_12/first.mpg
media.armadilloaerospace.com/2001_05_12/first.txt
We decided that this was actually good behavior, making sure
that it wasnt going to fly up 20 feet before I could catch it, so we did the
next two tests with 380 psi tank pressure.
media.armadilloaerospace.com/2001_05_12/second.mpg
www.armadilloaerospace.com/2001_05_12/second.txt
Since the lander was tending to move away and to the left
after lifting off, I tried pulling back on the joystick a bit after liftoff,
but it overshot the desired angle by a bit.
We leveled the lander by setting two of its pads on some
extra foam for the next liftoffs. The
angle integrators are assumed to be zero at the beginning of each liftoff, and
this isnt correct if it is on an incline.
We can automatically figure this out in the future based on the
accelerometer orientation when on the ground, but it is still a good idea to
avoid an immediate attitude correction.
Now that I had a reasonable feel for it, I lifted it a
little farther in the air:
media.armadilloaerospace.com/2001_05_12/success.mpg
media.armadilloaerospace.com/2001_05_12/third.txt
This was our first credible vertical takeoff and (not crash)
landing with attitude control. We are
very happy with this performance. We
got good data from everything, and the vehicle performed well. We will be expanding the flight test program
over the following weeks.
Analysis
I will make some graphs of the telemetry later, but I spent
some time going over the raw numbers.
It looks like it takes nearly 200 msec for all the effects
of an attitude correction pulse to wind up visible to the rate sensors. This causes the back and forth bobbing,
because after waiting 100 msec, the computer thinks that its last correction
didnt do enough, and issues another one.
There are a few tiny remaining bits of latency in the
sensing system:
The current microcontroller code is reading a gyro axis 120
times a second and building a sensor string 60 times a second from the current
values. The gyros axis are reading
pitch/yaw first, then roll (redundant on both gyros) second. A full 16 msec of latency can be saved by reordering
and doing things with minimal busy waits instead of periodic interrupts: have the
microcontroller read the roll axis first, pausing just the required amount of
time for A/D, then read the pitch/yaw axis in the minimum time, then sending the
serial string immediately. Russ: lets
plan on doing this on Tuesday, it shouldnt take long.
The gyration ASIC takes nearly 3 msec to perform the A/D,
and sending the sensor message over 115kbaud serial takes about 5 msec. We could remove those latencies by directly reading
the amplified gyro outputs with the PC104 A/D board, but it probably isnt
worth the trouble.
The bulk of the latency is in the analog filtering going on
inside the gyros. The right thing to do
is just get a sensor that has more bandwidth.
I have requested information on another silicon gyro that lists an 85hz
bandwidth (the gyration units list 10hz), and we have found a couple fiber
optic gyros (FOG) with 100hz bandwidth.
There is also some degree of latency in the actuation that
we should measure. The solenoids
operate within a couple msec, but the engine chamber conditions following a
correction may influence one or more following frames.
The joystick based correction on the second run overshot due
to the sensor latency, but I am going to lower the max desired rate some more
to crutch up the latency issue. A slow
turn is better than an overshoot.
Instead of checking for and possibly performing an attitude
correction every third pulse frame, I am going to change to checking every
frame, but only performing one if the last attitude correction on that frame
was at least four or five (we will experiment) frames ago. That will allow more time for the sensor
latency, but still allow an initial action to be taken without waiting for an
even period.
Future Work
Experiment with attitude adjustment latency measures
240 hz load cell logging of the thrust changes during an
attitude correction to see the total actuation latency.
Log the tank pressure blow down curve and see how closely it
matches theory.
Add pressure blow down to the 3D simulator.
Get the accelerometer logging again.
Use the accelerometer as an inclinometer to initialize the
angle integrators so we can take off without being level.
Experiment with slower solenoid pulsing (currently at 30hz),
because the bigger solenoids will probably need it.
Translational maneuvers.
Roll control.
Landing range finder.
Try a water launch.