Rotations: from one Euler angle sequence to another

Let’s suppose we are given an Euler angle sequence ZYX with angles

as = {0.2, 0.25, 0.3}

We have been asked to convert that to ZYZ.

(You probably want to have read the previous quaternion posts.) I will remind us that the notation ZYX means the rotation

Rx Ry Rz,

with the Z-axis rotation first; and I write the angles in the same order, ZYX,, so the given rotation is

m0 = Rx(.3) Ry(.25) Rz(.2).

We do not need to compute it, but we might as well; if for no better reason than that we will be able to check our answer. The rotation matrix for the given Euler angle sequence works out to:

m0 = \left(\begin{array}{ccc} 0.949599 & 0.192493 & -0.247404 \\ -0.118141 & 0.950819 & 0.286333 \\ 0.290353 & -0.242673 & 0.925637\end{array}\right)
Read the rest of this entry »

Happenings – 2010 Aug 28

I continued working on linear programming and quaternions last weekend and a little during this week.

As I said last week, I know how to get “the final tableau” of a linear programming problem using only the problem statement (“the initial tableau”) and the optimal solution.

What I’ve been working on is “sensitivity analysis”, which requires the final tableau. Although I know most of the rules, I’m still trying to fully understand exactly why the rules work. I’m also, in the back of my mind, composing an introduction to linear programming problems.

The story with quaternions is different… I thought I was done with them. But then someone posted a question about them on the sci.math newsgroup… and I thought it was an interesting application of all the work I had already done.
Read the rest of this entry »

Rotations, especially Euler angle sequences

In this post, I simply want to play with the Euler angle representations of some rotations. This is not a thorough test suite, merely a handful of different cases:

  1. for a random rotation…
  1. ZYX
  2. ZXZ
  • ZXZ for…
    1. x-axis rotation
    2. y-axis rotation
    3. z-axis rotation
  • ZYX for…
    1. x-axis rotation
    2. y-axis rotation
    3. z-axis rotation

    A random orthogonal matrix

    In the previous post, we worked an example starting from a given Euler angle sequence of the form ZYX. This time, let’s begin with a random matrix. By issuing the command
    Read the rest of this entry »

    Happenings – 2010 Aug 21

    I expect to be drafting another post on quaternions today… mostly examples.

    But what I’ve been putting time into when I could during the week, is linear programming.

    Speaking for myself, I would say: forget about the specific linear programming functions in Mathematica®. Instead, just use Minimize or NMinimize (resp. Maximize or NMaximize).

    No matter what we use in Mathematica, however, we face the problem that we get the optimal solution, but sensitivity analysis requires that we have what’s called the “final tableau”… and Mathematica doesn’t give that to us.

    Well, it turns out that we can construct the final tableau from the initial tableau – which is just the problem statement, after all – and the optimal solution.

    I’m looking forward to showing you how to do that.

    It turns out that what I’m doing in linear programming, and what I’ve just done in quaternions, have something in common. They are both problems that I put down about five years ago, because I had gone as far as I could, or wanted. You might say, I’d had enough, and other things looked more interesting.
    Read the rest of this entry »

    Quaternions and Rotations 2: Euler angles etc.

    Let me create a simple example. You may want to have read Quaternions and Rotations 1, and the introductory post as well.

    I will specify an Euler angle sequence, “ZYX”, with angles:

    The notation “ZYX” means that we first rotate about the z-axis, then about y, then about x; and I choose to let the angles be in the same order. This is typically used in aerospace applications. The other Euler angle sequence common in my experience is “ZXZ” for orbits. Altogether, I count 12 kinds: three choices for the first axis, two for the second, and two for the third. There is no point in choosing consecutive axes the same, because consecutive rotations about the same axis are equivalent to one rotation, through the sum of the angles, about that axis.

    The obvious first step is to construct the combined rotation matrix for that Euler angle sequence, but I’m going to go in a different order. I’m going to test all 8 transformations among rotation matrices, angle/axis, quaternion, and Euler angle sequences.

    What the heck? Pictures are good.

    Read the rest of this entry »

    Happenings – 2010 Aug 14

    Well, I’ve been playing a time-wasting computer game… an old DOS game called Ascendancy…. It required that I re-install Windows on my Mac, which is the only reason I haven’t been wasting even more time! Grrr!

    Still, I looked at a little math during the week.
    Read the rest of this entry »

    Quaternions and Rotations 1

    What I’m heading for is to compute the following eight transformations (shown by arrows) among representations of a 3D rotation.

    Let me begin by talking about rotations generally (see rotations 1 for more detail).
    Read the rest of this entry »