# Wiggle the FSM! (Design and Implementation of a Fine Steering Control System)

Scientific balloon size and scale during launch and float. (Source: NSBF)

SwRI’s only official goal (other than getting great science!) on the BRRISON project was determining the performance of a fine steering system. What does that mean? Well let’s start big and work down. We are trying to get pictures of objects in space from a balloon floating above 99.5% of the atmosphere. That doesn’t sound horribly difficult, amateurs send up GoPro’s on weather balloons all the time. You just tie stuff to a string and let it go right? (Pretty much.) The difficulty lies in the fact that the objects of interest are usually faint, small, and far away. To see these objects we need big heavy telescopes and very sensitive cameras. Think of a GoPro on steroids with the ultimate zoom lens stuck and infinite focus. As the zoom is increased, the field of view (FOV) gets smaller. Big telescopes often have extremely small fields of view. In the case of the BRRISON telescope, the field of view is about 60 arcseconds (or 1 arcminute) across. An arcsecond is one degree divided by 60 (an arcminute) divide by 60 again – 1/3600th of a degree. For reference, the Hubble Ultra Deep Field image is 200 arcseconds across. Having this tiny FOV means looking at anything requires the ability to point a telescope to a fraction of the field of view. Otherwise the object will drift out of the FOV or never be in it to begin with. For scientific purposes we want the best pointing possible, motion in the telescope otherwise ends up as motion blur in the pictures.  We want milliarcsecond level pointing (like Hubble) for the UVVis instrument but most instruments have to settle for worse. Balloons systems can typically point their telescopes to the couple arcsecond level and the BRRISON gondola is no exception (WASP, the gondola DayStar flew on is though). Why is that? Well in the stratosphere there is still wind blowing the balloon and gondola around. The entire flight train is about 900 ft long from the bottom of the Gondola to the top of the balloon during launch and the “string” between the balloon and gondola (containing the parachute and all) is about 200 feet long during float. Just like any other pendulum, the gondola swings underneath the balloon as the wind pushes it. Here lies the challenge, the telescope has to be kept on target with incredible precision while the gondola is swinging around.

Scientific balloons act just like any old pendulum, they are just a little larger than most. (Sources: Wikipedia)

The BRRISON gondola does this in three ways. To keep the gondola from spinning with the balloon, where the string meets the gondola something is placed that can spin opposite of the balloon and keep the gondola pointed in the desired direction. This controls the direction of the gondola in azimuth (or yaw) and on the top of the gondola a giant spinning disk does all the hard work. Due to the conservation of momentum, as the disk spins one direction, the gondola spins in the other direction. The telescope also has to be controlled in elevation (or pitch) and this is done where the telescope meets the gondola. The telescope is mounted on an axle and some motors control its angle. To make this easy on the motors the telescope is precisely balanced so the telescope’s center of mass lines up with its center of rotation. While most gondolas use just these two systems, the BRRISON gondola has a third device to control roll of the gondola. This is an addition from the last flight of this telescope (STO) that will make the pointing even better.

So if the gondola can point the telescope to the arcsecond level, how do you keep what you are looking at still to 100X better than that? Some ground telescopes and satellites try to do this with movable mirrors in their optics that keep the target still while taking pictures of it. The UVVis bench uses one of these same mirrors, a fast steering mirror (FSM). Determining how the FSM should be moved to keep the image still fell to Jed Diller. He was responsible understanding how the mirror works, implementing it into our electronics and software, and determining how exactly it should move to cancel out the motion left over from the gondola control system. Oh, and just like everything else on this project it had to be done in months, testing it would be rare and difficult, and the FSM would not even be available to play with until two weeks before the entire instrument had to be shipped out to APL. Until two weeks before shipment, Jed built up a model of the FSM and used data from the STO flight to build up a control law algorithm. When it came to testing it all out, the hope was that Jed’s months of work actually meant something in the real world.

The FSM itself is made by Lefthand Design Corporation in Longmont, CO. Their proximity to SwRI was helpful in getting the FSM rapidly up and running once it was done being built. The specs of the mirror cannot be shared but it is an impressive, high performance, \$150k piece of hardware. For our purposes the mirror was overkill for size and performance but in a project driven by schedule, when we could get it was what really mattered (pretty late in the game was the answer). The FSM is commanded with voltage signals and based on the command, the FSM goes to an associated position. Determining what those voltage commands should be and actually outputting them was our challenge.

The image below shows how we did it. Starting top, center, light comes in and bounces off the FSM through the rest of the optics and into the Zyla camera (a fast sensitive scientific camera based around the same sensor that DayStar was). In software we look at the pictures of  a star or planet of whatever we are looking and compare it to other pictures taken to determine how much it has moved between pictures. We then move the mirror in the opposite direction by sending a command to the DAC connected to the mother board. The DAC (digitial to analog converter) outputs a voltage to the FSM and the FSM reacts to that voltage.

If you’re savvy you might ask, “Wait… aren’t you just correcting for motion that already happened? The star has already moved somewhere else by the time you analyze the picture and send a correction command to the FSM. How does that help?” Well the faster you can get pictures and move the FSM the less behind the actual motion you are. This is how many control laws work. Because we want to correct to such small levels we could not accept this. So instead Jed had to come up with an algorithm to predict where the star would be in the future based on what happened in the past and move the mirror in anticipation. Normal control systems use one form or another of PID control and other control systems use complicated models of the system or even built up a model of the system as they go. Here, there was no time or information to build a complicated model so simple and effective was name of the game. A predictive control law based error signals was our solution.

Here is the video of the first tests with the FSM. The same day we were able to get the FSM, Jed picked it up from Lefthand and went straight to CASA with it to start getting it working. By the end of the night he had basic functionality. Because the angles are so small it is almost impossible to see if the mirror is actually moving as desired. To make it more obvious Jed bounced a green laser off the mirror onto a wall about 100 feet away. In the video you’ll see the laser move as the FSM turns on and then is commanded through its motion range in each direction and then turns off again.

Cool… the lamest laser show anyone has ever seen! Jed was actually pretty damn excited about it. After months of thinking (stressing) about it an modeling it he finally got to play with it. With an entire night of functionality testing in the bag the FSM was bolted to the optics bench with the rest of the optics. From then on, to test it we had to move a simulated star. In the clean tent at APL the simulated star was made using a small (10 microns) pin hole with, powerful light source, and small collating optics mounted underneath the optics bench so the light came from the same direction it would if it were coming from the telescope. Light from the simulated star bounces of the fold mirror mechanism, the fast steering mirror, and the rest of the optics until it hit both of the detectors.

Testing the control law, debugging it, or even determining if it was working was a challenge. Testing in the clean tent setup required Jed to test by staring the control law and then running into the tent to adjustment knobs of the linear stages after starting the control law. Only after the fact was it possible to know what happened by looking at plotting information from inside the control law. A few precious days (of one week to get the control law running before everything moved into the high bay) were wasted in confusion and frustration due to a problem with how images were being read off of the Zyla. In a crisis of faith Jed resorted to doing the simplest possible test, moving the simulated star back and forth once while the FSM was held completely still. Looking for that same motion in the pictures, it didn’t show up! We suddenly knew there was a fundamental problem with the images were getting from the Zyla. The Zyla is a high performance camera that can take full frame images at 100Hz but it does this by buffering the images. It has to do this because it is grabbing images faster than it can transfer them. In a lab setting taking these bursts of images makes perfect sense. There is no need to have the images instantly transferred over, they can be buffered and transferred as the operators leisure. In our case, using the Zyla as part of a control law, we needed the latest picture instantly but the “lab mode” would give us the first picture in the buffer. In CS terms, we needed a LIFO buffer rather than an FIFO one. We had never seen this behavior before because this was the first time we were really using the camera as part of the control law.  Jed was able to breath a sigh of relief (to Zach and Kevin’s dismay, now having to fix the Zyla once again), it turned out that the control law he had been scouring to no avail was actually right the whole time.

After figuring this out the actual control law was tested for a few hours before everything had to halt for the move into the high bay for integration with the telescope. To continue testing after integration an entirely new star simulation setup had to be made. A picture of that setup is shown below.

Pretty crazy. The same light source and pin hole created the star and the image of that star was collimated and then bounced off of two mirror and into the telescope where it then bounced around the rest of the optics in our instrument and into the cameras! At first we thought motion in the star for testing the control law could be done using either of the big fold mirrors. However, turning the adjustment screws that tilt the fold mirrors as little as humanly possible would move the star too much and too quickly to be anything like flight. Instead we had to move the star by doing what looked like giving the optics table CPR. Jed would start the control law and then run over, lean hard and bounce on one corner of the optics table (super heavy, expensive tables specially designed not to move), and then look at what happened after the fact. Here’s what it looked like when it worked.

Green is the left over motion of the star after correction and blue is how much the FSM had to move to make that happen. If the FSM had done nothing, the star would have moved around as seen in blue. An important part of how well the correction performs depends on how fast we can loop the control law. The above results are for a run around 100 Hz (100 times/ second), that mean we took a picture, analyzed it, and move the FSM accordingly in 10 milliseconds and kept doing it for 90 seconds. The fastest we have gone is 655 Hz in what we like to call “banshee mode”. If we can do anything like that during flight we will have some of the highest resolution balloon data on the planet.

That same sort of testing went on until we were out of time at APL. An important change made to the control law during the testing included how we determine the FSM’s position in the future. The original algorithm used every point in the past as they were. The new algorithm used a polynomial fit to smooth out the past points before deciding a future one. Without doing this, all motion was treated as real motion and if there was noise, we treated it as real motion, making it worse. The polynomial fit addition insures that we never add to the noise but instead split it.

Out final testing before flight was one and a half hours in the hangar with hurricane winds blowing the gondola and the gondola control system working hard to keep us steady (super impressive). This test was also the first time we operated with real star light coming into the telescope. The pictures below show the star Alpharatz without the UVVis fine control system on and with it on. Pretty cool huh? Because of the wind here in the hangar there was some motion we could not correct for that you can see in the noise level of the plot above. The environment at float is much more mundane and we expect that motion to disappear, leaving us with error in the single digit pixel number, in the milliarcseconds range – in Hubble Killer range.