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.

## Advertising

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 additional rotation you're going through in your current time-step, and then multiply that into the quaternion representing your previous orientation. (This requires a sqrt, sin, and cos, and a lot of multiplies and adds.) 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.