Experimenting with the simulator had shown that a continuously adjusting flight controller could easily get into unstable oscillations due to the low bandwidth (10hz) and long latency of the low cost Gyration gyros we were initially using. An approach that worked out on the simulator, and has worked moderately well in testing, is to only perform an attitude correction every few frames, so that the effects can be measured before trying another correction. Attitude corrections were made an all-or-nothing effect, either using equal thrust proportional to the throttle position on both engines to maintain the current rate, or making one engine full on and the other full off to change the angular rate. This allowed easier analysis of the effects of a rate correction, but tends to cause the vehicle to wobble back and forth instead of slowly settling at an angle.
The delay between attitude checks was set to two frames (34 msec each) originally, but extended to three frames on May 15, because it was clear that the corrections still weren’t being completely read after two frames. Unfortunately, only correcting a quarter of the frames was not enough control authority to fight the wind on the 15th.
As of May 19, we have a set of fiber optic gyros (FOGs) on order, which have a 100hz bandwidth. This will allow us to go to a continuous control law, making modifications of varying strength on every frame.
Blue is the sensed angular rate from the gyro, ranging from –45 to 45 degrees / second.
Green is the integrated angular position., ranging from –22.5 to 22.5 degrees.
Orange is the derivative angular acceleration, ranging from –45 to 45 d
Yellow is a rotational correction, with the length proportional to the milliseconds difference between engines in a pair.
Red is the desired position from the joystick, ranging from –22.5 to 22.5 degrees (0 unless intentionally changed)
Black vertical bars are second marks.
The top section is the side to side axis, positive tipping to the left.
The middle section is the front to back axis, positive tipping away.
The bottom section is the joystick throttle.
First and last active flight of lander 1.1
The only way we could get the metal legged lander off the ground without upsetting the gyros was to hop it off the ground at near max throttle, not giving the legs a chance to “kick”.
This took off much faster than expected, and partially due to some control latencies in the system, I wasn’t able to back it off fast enough to keep it from hitting the tethers and getting bad rate values, which cause an engine shutdown.
Both axis seemed to have a natural drift to them, but the attitude correction kept them in check. The attitude correction pulses caused large angular accelerations.
I made changes in the telemetry and remote piloting system to reduce throttle change latencies by over 100 msec, which made things much more responsive in future tests.
Another very nice benefit of moving to the FOGs will be shock insensitivity, so we should be able to continue to fly a vehicle even if it yanks on a tether pretty hard.
First flight of lander 2.0. The new lander is somewhat heavier, and all of the extra weight is in the foam block outriggers, which are outside the engines, making the moment of inertia much larger than for the previous version. Angular accelerations are much lower.
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. This did show that we can creep the new foam landing gear off the ground without immediately triggering a bad gyro rate like the old metal legs would do.
We decided that this was actually good behavior, making sure that it wasn’t going to fly up 20 feet before I could catch it, so we did the next two tests with 380 psi tank pressure.
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.
Now that I had a reasonable feel for it, I lifted it a little farther in the air:
The X axis is a perfect example of the problems with low sensor bandwidth/latency. Two correction pulses are used each time, even though one would have sufficed, because the effects of the first one were not yet fully registered after the two frames (68 msec).
May 15, 2001
Windy day flights. Control latency extended another frame, and a frame of “predicted rate” is also added based on the change in rate from the previous frame. The wind was bad enough that it wasn’t clear if the changes were good or bad.
380 psi, which was only just enough to pick it up with basically full throttle. Performance seemed down a bit from the last runs.
You can see the strong wind blow away our leveling pads of foam after liftoff.
Shows the need for active roll control.
Second run ended when the sensors saw a huge rate jerk right as the last of the peroxide was expended.
Making max corrections, and not making much headway. Probably fighting the wind.
In the future, the camera operator should stand off to the side so that all four engines are visible, and the fore/aft rotation can be seen more clearly.
Raised pressure to our full 430 psi. The altitude is still easily controllable. Now that the latencies are down, throttle response really isn’t all that much different than in the simulator.
It tips over a fair amount and comes down pretty fast, but the landing gear works perfectly!
The second run is making its maximum correction at every opportunity, but it can’t get it to turn.
The third run displayed the same rate jerk as the last of the peroxide was expended.
On the first hop I made some fairly strong manual input on the joystick to try to correct for the wind, and while it probably helped, the attitude correction couldn’t force it all the way over to where I was designating.