Accumulated rotation over time

1. Nov 22, 2008

DanielKO

Assume an object rotates arbitrarily during some time (that is, not just along a single axis). At any given instant I would like know how much it rotated, so I could, for example, rotate it back to its original rotation with a spring (with torque proportional to the total angular displacement).

My question is, what representation should I use for the accumulated rotation, integrated over time from the angular displacements? Can such representation be "projected" on an arbitrary axis to answer "how many times did the object turn around this axis"?

Last edited: Nov 22, 2008
2. Nov 22, 2008

HallsofIvy

Staff Emeritus
You haven't given enough information. How are you given the "rotation". That is, you can be given the rate of rotation as a real-valued function of time but how are you given the axis of rotation at each instant?

3. Nov 22, 2008

Werg22

This could be very complicated depending on the degree of freedom the object has. Is there a fixed center of rotation, i.e. a point where all axes of rotation meet?

4. Nov 22, 2008

DanielKO

They could be anything, whatever makes it easier to accomplish the final result: be able to tell how many times the object needs to turn on some axis to reach the initial orientation (I know that after the complete revolutions are finished the problem can be trivially solved).

For example, it could have the initial rotation described as a (unit) quaternion; and the rotations over time as constant angular velocity vectors + duration of each rotation, or just angle-axis rotations (with angles not restricted to $$\left[-\pi, \pi\right]$$).

If I had the final rotation axis from start, I believe I could just project the angular velocities along that axis; but can't obtain this axis until all rotations are done (it should be the minimum rotation to reach the initial configuration).

Indeed, Werg22, I forgot to mention, all rotations are around the same center; other axes would just translate the object somewhere else, which is not important, only the orientation.

5. Nov 22, 2008

Werg22

I am not very sure about I'm about to say, but it comes from a notion one of my profs once mentioned. Essentially, when the center of rotation is fixed, you can decompose any rotation with respect to three orthogonal referential axes, very much in the same way a translation in space can be decomposed in three components. The problem then reduces to keep track of the total rotation in each of the three axes and then simply take the 'negatives' and applying them when all is done.

6. Nov 22, 2008

DanielKO

I understand that infinitesimal rotations are commutative. But I don't think they apply here. Take this example:

Assuming a right-hand system, rotate the object 90° around Z (axis (0,0,1)). Then 90° around Y (axis (0,1,0)). At this point you should have the object's X axis on the world's Y axis, the object's Y on the world's Z, and the object's Z on world's X. The minimum rotation to reach this configuration is 120° around the (1,1,1) axis. How adding the two previous rotations could come to this answer? This particular case is equivalent to finding the minimum rotation between two quaternions.

Now take the same example, but perform a rotation of 450° instead of 90° around Z. What should the answer be? The final orientation is the same, but I would like to "undo" the full rotation around the Z axis, so the previous solution isn't acceptable here.

7. Nov 22, 2008

Werg22

I see. You need to keep track of full rotations, not just the angle difference. Now, is a rotation of 90 degree in one direction followed by a rotation of 90 degree in the opposite equivalent to no rotation at all?

8. Nov 22, 2008

DanielKO

After thinking about this for a while, I don't think there's even a "minimal" rotation through a single axis. I'm not even sure what such minimal rotation would be; that is, how to compare different rotations. Intuitively I would think that a rotation performed by a physical angular spring in 3 DOF, if there was something like this, but I have no idea how to express this mathematically; probably would need much more math than I understand right now.

In 2D one can easily adapt the rotation performed by complex numbers in the unit circle to points in a spiral. Each rotation then takes a point in the spiral into another point in the spiral in such a way that the distance from the origin tells us how much it rotated from the initial position. For a moment I thought this could be somehow extended to non-unit quaternions.

Anyway, I would appreciate any suggestion of what I should try to study to at least better understand this problem. Probably something involving geometric topology, right?