Archive for May, 2008

Strapdown IMU + Flight Computer

Posted by machack on 7 May 2008

Overall system:


Closeup of sensor stack:

The processor is an Atmel AT91SAM7S256 on an Olimex development board, courtesy SparkFun Electronics. The sensor stack includes a MicroMag3 3-axis magnetometer, a 5-DOF inertial sensor, and an additional rate gyro. We gratefully acknowledge SparkFun's contribution to this project.

Elphel is working!

Posted by lindes on 7 May 2008

Many many thanks to the folks over at Elphel, Inc. for sending us a camera. We got it last week, and after some careful wiring (we were worried about supplying 12 volts to data lines, though apparently our worries were mostly superfluous, as they had accounted for that), we got it working last Sunday! Yay!

The web interface is amazingly complex, especially since it seems to all be html and javascript, without any flash or anything. Very slick. There's so much crammed into it that I had to spend some time figuring things out, but we definitely got images!

Images from the initial testing of the camera can be seen here. More will be added as I progress.

Much more to do, and alas I'm a bit behind, but I plan to work on this for a good number of hours over the next couple days, and I expect we'll have images from space within a few days time!

OK, back to work. :-)

Balloon launch scheduled!

Posted by 3ricj on 5 May 2008

We are go for launch on Saturday morning, 5/10/2008 around 9am PST!

We will post information about the launch, and provide links so you can watch the location from the comfort of your own home.

Here is the short summary of our plan:

- Launch an autonomous glider which has been lifted by a huge balloon to over 90,000 feet. If it goes as planned, the software will glide the glider back to us. Codename: Habit.
- Launch a ballloon with scientific instrumentation onboard. Codename: Rehab.

There are also rumors of a 3rd balloon launch. Watch this spot for more information. Wish us luck.

Up, up and...down.

Posted by JonM on 4 May 2008

We took advantage of fantastic weather today to get out to the flying field and test out our new plane. We loaded it up with our set of IMU sensors, a data logger, and the APRS transmitter, and set out to get some sample data.

The glider I've been flying with, a Multiplex Easy Glider, is a little brother to our flight glider, a Multiplex Cularis. With a wingspan of 71 inches, and an all-up weight of 35 ounces, it's a cinch to fly, and fun to tootle around the field with.

I took a few flights with the Easy Glider to get warmed up, getting good airtime and smooth landings.

Then came the moment of truth. We powered up the electronics in the HABIT glider, and I walked out to the field. I waited for the go-ahead from the ground crew, and prepared to launch.

I powered up the throttle, gave her a good toss, and she was off, like a rocket!

Compared to my Easy Glider, the brushless motor that came with the Cularis was really strong, and pulled hard. The plane quickly gained altitude.

I took it around on a couple of turns, and then brought it around for a landing approach. The plane was nowhere near as stable as the Easy Glider, and I had to fight to keep it in line. It stalled in a too-sharp turn, and took a nose dive into the ground. We ran over to the plane, to find that the entire nose section holding the motor had broken off.

We carted the broken craft back to the vehicles, and I got to work gluing the nose back on.

While we waited for the glue to set, I took another go around with the Easy Glider, which lived up to it's name and came around well.

With the Cularis patched and reassembled, I headed back out to the field. I got a good launch, and man did the motor pull hard. So hard that the plane pulled a loop-the-loop. After which it took another dive into the bushes. No damage this time, just a popped off wing. I plugged it back in, walked back onto the field, and gave it another toss. This time, it immediately caught the wind, and took another nose dive, doing even more damage to the front end.

At this point, we clearly needed a new fuselage for the plane, so we decided to pack it in. I made everyone wait around for one more flight with the Easy Glider. No problems there, good fly time, beautiful landing.

We were curious if we had simply overloaded the Cularis, so we decided to test the Easy Glider's handling with extra weight. Searching around, my Leatherman tool was a good fit, and plenty heavy, so I shoved it in, aimed for a good center of gravity, and took out to the field for one last flight. My first throw was a little weak, but on the second throw I caught the wind right, and took off around the field. The climb rate was a little slow, but the plane actually seemed to handle better with the extra weight.

We packed up the gear and headed off to get some food, collect our thoughts, and process data.

I'm disappointed at the damage to the plane, and surprised at how much harder the larger model is to fly, but we should still be good to launch, if we can get Multiplex to send us a replacement airframe in time. Hopefully the software will have a better time at it than me. :)

(Thanks for the pictures, DavidL.)

Characterizing our IMU

Posted by lisa on 4 May 2008

We're flying one of those neat degree of freedom IMUs (inertial measurement unit) from Sparkfun. It integrates a 3-axis accelerometer and a 2-axis gyro into a cute tiny package.

As is common for sensors, the manufacturer of these sensors only supplies a range of values for certain crucial sensor characteristics - after all, every single sensor differs slightly, and on top of everything, the accelerometer output is ratiometric to the supplyvoltage you drive the sensor with. The datasheet gives a range of values for a supply voltage of 3V, but we're driving our IMU at 3.3 V.

This means that we need to characterize our sensors. There are all kinds of nifty things that come under the heading of "sensor characterization", such as temperature testing, which serves to tell you how temperature influences the sensor output. But we need to get the basics first. If you're curious, have a look at the accelerometer's datasheet. In the section "Specification", you'll find a number of sensor characteristics listed. For now, the most important ones to us are the sensitivity and the 0g bias level. What we want to know is: What voltage does the sensor output if it's experiencing exactly 1g, i.e. if it's just sitting there in a neutral state, and by how much does the voltage change if it experiences a fixed and known amount of g force.

The way this is commonly done is this: Put each of the sensor's axes perfectly parallel to the earth. It then experiences only earth's gravity. Then tilt it by exactly 90 degrees, first in one direction, then in the other, making it perpendicular to the earth. Log the sensor's output.

The X and Y axes span one plane, the Z axis opens a plane perpendicular to that one. This means that we can treat the X and Y axes in one experiment together. This gives us four orientations for the sensor that we need to log the outputs for: two in which the X and Y axes are parallel to the earth, in which case the Z axes is perpendicular to it, and two in which the Z axis is parallel to the earth, in which case X and Y are perpendicular.

So that's what I did. I used our flight computer platform, the AT91SAM7S256 to log data to a serial USB device. The sensors outputs went into the SAM7's ADC. The sensor was powered via what happened to be a datalogger over USB. This is a bit of a crude setup, but it was handy and ready to go when I needed it.

I then abused the optics table that someone else built for making holographs, an acrylic board to mount the sensor, an assortment of wood blocks to fix the acrylic board in one position and a level for adjustment. The optics table is a large box filled with sand that is resting on tires. When the tires are inflated, whatever is on the table is pretty safe from vibrations. Although, the reason why I chose the optics table for my data captures is more that a heap of sand is easier to work with when you're trying to get a small board level.

Here are photos of the four different positions that I captured data for:

X and Y axes parallel to the ground, Z perpendicular, position one

This is one of the two setups where the X and Y axes are parallel to the ground and the Z axes is perpendicular to it.

X and Y axes parallel to the ground, Z perpendicular, position two

This is the other one of the two setups where the X and Y axes are parallel to the ground and the Z axes is perpendicular to it. It's simply rotated by 180 degrees to the first one.

Z axis parallel to ground, X and Y axes perpendicular, position one

This is the first setup in which the Z axis is parallel to the ground and the X and Y axes are perpendicular.

Z axis parallel to ground, X and Y axes perpendicular, position two

This is the second setup in which the Z axis is parallel to the ground and the X and Y axes are perpendicular, rotated by 180 degrees against the first one.

I shall now have a look at the data I captured and extract the characteristics of our accelerometer we're interested in. The captures should also tell me something about the gyros, but that's the next step.

First, I shall need to get the sand out of my keyboard now.


Tag Cloud