# [PSAS] rocket science session summary

```I thought I'd try to summarize what we discussed in the session last
night. Now I'm going to call it "rocket science", just to annoy Dan,
because "physics" wasn't broad enough. :-P But seriously, whatever we
call it, apparently we're going to continue this experiment and take
weekly meeting time to discuss important topics in whatever we happen to
be working on.```
```
As promised, we did get FAB 86-01 booked through the end of the school
year, and http://schedule.psas.pdx.edu is updated to reflect that. We
tried the room out last night and I think it worked well.

Alright, summary time: We spent an hour or so just on quaternions. The
material I showed on the projector primarily came from:

http://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation#Describing_rotations_with_quaternions

with some supplementary material from:

http://en.wikipedia.org/wiki/Quaternion

Jules gave us a more mathematical grounding than the semi-practical
approach I began with, but don't ask me for details. I'll relay one of
his comments though: if you're comfortable with representing rotations
as matrices, you can look at that first Wikipedia article above for
"Conversion to and from the matrix representation" to convince yourself
that quaternions make sense.

I'm most excited about an equation Dan dug up and shared with us, from a
book that I believe was about GPS-aided INS in helicopters. In the
meeting I tried to explain why it's cool first:

If you have angular velocity measurements from three orthogonal
gyroscopes, you might like to use them to update the quaternion
representing your current orientation. The reasonably obvious way to do
that is to convert the measurements into a quaternion representing the
then multiply that into the quaternion representing your previous
orientation. (This requires a sqrt, sin, and cos, and a lot of

However, quaternion multiplication is obnoxious both in Kalman
filtering, where you'd prefer to represent the state update using a
linear matrix multiply, and in numerical integration techniques like
Runge-Kutta, where you need the partial derivative of each component of
your state vector. (Jules says quaternion multiplication is linear if
you do it in log-space, which would mean that the Extended Kalman Filter
techniques work, but still not ideal.)

The equation Dan shared is much nicer. Given a vector <p,q,r> of angular
velocity measurements from three orthogonal gyroscopes, and a quaternion
representing your current orientation <e0,e1,e2,e3>, this equation
yields the partial derivative of the components of the quaternion, using
nothing more complicated than real multiplies. That's exactly what we
want for numerical integration and I think it's perfect for a straight
Kalman filter too. (Jules looked at it and claims it's derived from
converting the quaternion and the gyro measurements into their rotation
matrix representations and simplifying the resulting matrices. We choose
to believe him and move on.)

Here's an attempt to transcribe the equation in ASCII:

[ de0/dt ]         [ -e1 -e2 -e3 ]
| de1/dt |         |  e0 -e3  e2 | [ p ]
| de2/dt |         |  e3  e0 -e1 | | q |
[ de3/dt ] = 1/2 * [ -e2  e1  e0 ] [ r ]

We concluded that somebody should take the gyro data from a past flight
and integrate it using this equation, plotting the orientation over
time. Since Nathan wasn't present, we decided he should do it. We'll
expect that next week, Nathan.

After that, the discussion moved on to how control theory and Bayesian
Particle Filtering interact. As I understood it, Jules explained the
basic procedure this way: For each particle, compute a control decision
however control theory says you should do that; then combine all the
proposed control decisions according to the Bayesian likelihood estimate
of the corresponding particles.

For a simple example, if your only decision is "should I deploy the
chutes now?", you might choose to deploy the chutes when more than 75%
of your particle weight is in states where that looks like a good idea.

I didn't follow all of the discussion but I caught two sensible
objections that Dan raised: 1) we're trying to make continuous control
decisions, not just simple "are we there yet?" ones; and 2) we'd like to
be using model-predictive control, which is already expensive, and doing
it once per particle sounds really expensive. Jules said a lot in
response to both objections but if he really answered them, I missed it.

Please reply with any notes I've missed, and we'll see you next week,
when we will do science to it.

Jamey

_______________________________________________
psas-team mailing list
psas-team@lists.psas.pdx.edu
http://lists.psas.pdx.edu/mailman/listinfo/psas-team

This list's membership is automatically generated from the memberships of the
psas-airframe, psas-avionics, and psas-general mail lists. Visit
http://lists.psas.pdx.edu to individually subscribe/unsubscribe yourself from
these lists.
```