Proper Multi-Axis Rotational Analysis Method

  • Context: Graduate 
  • Thread starter Thread starter Hardy
  • Start date Start date
Click For Summary

Discussion Overview

The discussion revolves around the analysis of multi-axis rotations of a unit sphere in space, particularly focusing on the dependency of the resulting paths of specific points on the sphere based on the order of axis rotations. Participants explore theoretical models, computational approaches, and the implications of non-commutative rotations in three-dimensional space.

Discussion Character

  • Exploratory
  • Technical explanation
  • Conceptual clarification
  • Debate/contested
  • Mathematical reasoning

Main Points Raised

  • Some participants note that the path of points on the sphere varies significantly depending on the order of axis rotations, highlighting the non-commutative nature of 3D rotations.
  • One participant suggests that the step size of each iteration may affect the convergence of the rotation paths, questioning whether limits exist as the step size approaches zero.
  • Another participant mentions Euler's rotation theorem, indicating that any sequence of rotations can be represented as a single rotation around an equivalent axis, and proposes finding this axis numerically.
  • A participant discusses the use of Rodrigues' rotation formula for numerical and analytical calculations related to rotations.
  • One participant reflects on their learning process regarding the implications of non-abelian rotation groups and the challenges of reducing multiple rotations to a single axis and angle.
  • Another participant describes an analytical approach to derive the path taken by the sphere, involving the evaluation of velocity vectors and their cross-products to determine the rotational axis.
  • It is noted that decreasing the iteration interval leads to convergence towards a single path, although differences remain observable at high precision.

Areas of Agreement / Disagreement

Participants generally agree on the non-commutative nature of rotations and the complexity of deriving a single axis of rotation from multiple axes. However, there are multiple competing views on the best methods to analyze and compute these rotations, and the discussion remains unresolved regarding the most effective approach to predict the unique paths of the points on the sphere.

Contextual Notes

Some limitations include the dependence on the chosen step size for iterations, the need for precise definitions of rotation axes, and unresolved mathematical steps in deriving the spin matrix from multiple rotations.

Hardy
Messages
11
Reaction score
1
Imagine a unit sphere in space that is initially aligned with a universal xyz coodinate axis. The coordinate axis are attached to the sphere at the six fixed points (+/-1,0,0) (0,+/-1,0) and (0,0,+/-1). The sphere starts rotating around each axis. The six points are now at new points in the universal frame. In real life, these 6 points will transverse a unique path through space.

In trying to predict this path, I have created a model to iterate in each axis. But, I am seeing that the path depends on the order I calculate the axis rotation. I see six possible iteration orders : XYZ, YXZ, XZY, YZX, ZXY ans ZYX. The paths are similar, but not the same and eventually vary widely. To be clear, after every iteration, 2 of the 3 axis change directions, like you expect to happen to the 'local axis' in a space ship, but subsequent rotation will happen around the new axis position.

How can one predict the unique path the 6 points will take? I can only account for one axis at a time here. When I look at each iteration closely, the change in position seem to follow the expect path, its just that the final point after each complete set of iterations is different - depending on the order.
 
Last edited by a moderator:
Physics news on Phys.org
It depends on the step size of each iteration. I don't know if the limits as the step size goes to zero converge to the correct rotation. In Euclidean 3-space, every rotation can be represented as a simple rotation around a particular axis. You might want to take that approach. For general use, rotations are handled better using quaternions. If you have a computer language in mind, there are probably tools you can use in that language.
 
  • Like
Likes   Reactions: Hardy
Hardy said:
I am seeing that the path depends on the order I calculate the axis rotation.
In case you are puzzled about this dependency on order you may want to read more about Euler angle rotations and how sequences of these chain together.
 
  • Like
Likes   Reactions: Hardy and FactChecker
Hardy said:
But, I am seeing that the path depends on the order I calculate the axis rotation.
Rotations in 3D do not commute.
 
  • Like
Likes   Reactions: Hardy and FactChecker
Here is what I am taking away:

1) What I am seeing is not necessarily an error in my analysis.

2) Found a definitive statement in a discussion in wiki on the SO3 group:
"Furthermore, the rotation group is nonabelian. That is, the order in which rotations are composed makes a difference. For example, a quarter turn around the positive x-axis followed by a quarter turn around the positive y-axis is a different rotation than the one obtained by first rotating around y and then x. "
I probably read this before, but it didn't sink in - until now.

3) Trying to reduce the 3 rotations to a single rotation around a single axis is something I was doing in creating the spin matrix (which I take to be a member of the S03 group). I was looking how a single point moves when rotated around each axis, and composing the spin matrix from this data. But, the issue is how to find that single axis and single rotation angle when there is rotation around each local axis - the calculation needs to account for the point moving when all 3 axis are moving at the same time.

Perhaps there is not a well know procedure to come up with a deterministic spin matrix from spin around all 3 axis. So, needs more thought, at least from me. Three things I see now are:
1) The spin matrix seems to solely depend on the new point position (after taking to account all three rotations). In other words, once the spin matrix is defined, I simply apply the matrix to the new point position to get the position for the next interation.
2) Once the spin matrix is defined, its remains unchanges so long as the rotation rate about each axis remains the same
3) An outside observer would be unable to tell if the point motion was due to rotation around a single arbitrary axis, or rotation around 2, 3 or more arbitrary axis. In fact, the reverse problem to the one I asked might how the same point motion could be described by different rotations (interpreting that this is turning a member of the S03 into products of 2 or more members of the S03 group).

Thank you so much for the input. And, thanks to the moderator for adding the whitespace (paragraphs) into my post - it definetly helped. This was the first time I have attempted to define this issue I had to anyone. It was a success that at least some understood!
 
Hardy said:
the issue is how to find that single axis and single rotation angle when there is rotation around each local axis
You need Euler's rotation theorem, which, as FactChecker mentioned in post #2, states that for any sequence of rotations you can always find an equivalent rotation around a single (Euler) axis. Finding the Euler axis and angle numerically for a given sequence is fairly straight forward.

By the way, working with rotation using rotation matrices I have found Rodrigues' rotation formula in matrix form very useful, both for numerical and analytical calculations. This formula solves the opposite problem you mentioned, i.e. it gives the rotation (matrix) for a given Euler axis and angle.
 
  • Like
Likes   Reactions: FactChecker
Digging deeper into the problem, here is a follow-up on what I learned.

As expected, when I decreased the iteration interval, all 6 possible orders of iteration gravitated to a single path, although you could still see differences in the actual numbers if you looked out to enough digits.

Here is a rather extreme example to show the different paths. I put together this plot to evaluate the differences. This is a path the sphere would travel if left spinning on the floor, starting out at the red point. Each colored plot is the path taken for each possible iteration order, the black path the one each drifted to when reducing the iteration size.

ball_rolling_plot.png


I would call this an analytical solution. However, was able to find a theoretical way to derive the path. If I evaluated the velocity at each point on the sphere, the velocity for each point rotates about a single axis (as suggested). Further, this axis of rotation of the sphere would be at right angles to the plane containing the velocity vector.

So, finding the velocity vector at two points, then taking the cross-product of these two vectors, provided a means to get to the rotational axis. (Taking the cross product of two vectors produces a vector that is perpendicular to both of the vectors, regardless if the first two vectors are orthogonal or not).

To find the rotation rate about this rotational axis was just a matter of evaluating the speed of the points on the unit circle centered at the origin in the plane perpendicular to this net rotational axis. This produced the path that all the different orders of iteration gravitated towards (the plot above).

The key to this method was finding the velocity at any point on the unit sphere when the sphere was spinning at a constant rate about the x, y and z axis’s. After several trials of getting everything aligned with a right-handed coordinate system, the result was:

psi = rotation rate around x axis
theta = rotation rate around y axis
phi = rotation rate around z axis
xv = unit vector on x axis
yv = unit vector on y axis
zv = unit vector on z axis
xp = x component of point where evaluating velocity
yp = y component of point where evaluating velocity
zp = z component of point where evaluating velocity
Remember on unit sphere so SQUARE ROOT(xp2 + yp2 + zp2 ) = 1

velocity due to rotation about the x axis: psi * ( yp*(zv) + zp*(-yv) )
velocity due to rotation about the y axis: theta * ( xp*(-zv) + zp*(xv) )
velocity due to rotation about the z axis: phi * ( yp*(-xv) + xp*(yv) )

(there is some derivation to get these equations I have omitted here).

The velocity at the point is a superposition of these three velocities and can be added in any order ( unlike multiplying matrices :) ), the net result being:

V = (zp*theta-yp*phi)xv + (xp*phi-zp*psi)yv + (yp*psi-xp*theta)zv

Nothing earth shattering I suppose, and probably many ways to get to the same result, but at least now I have one way. Thanks again, all your suggestions that put me on the right path!
 
Last edited:

Similar threads

  • · Replies 7 ·
Replies
7
Views
2K
Replies
29
Views
4K
  • · Replies 26 ·
Replies
26
Views
3K
  • · Replies 7 ·
Replies
7
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 13 ·
Replies
13
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 8 ·
Replies
8
Views
2K