Quaternion representation of the rotation of a sphere into plane displacement

Last updated on Thu, 2011-06-16 12:05. Originally submitted by fabio on 2011-06-14 16:52.

This is a mathematical problem I'm facing these days.. here you go.

I do have a sphere of known radius which does have a coordinate frame rigidly attached to it. Let's call the coordinate frame attached to the sphere XYZs. The sphere can be rotated and displaced arbitrarily with respect to a fixed coordinate frame (world) called $XYZ_w$. Let's be XYZw the coordinate frame of the world where X points the north, Z points the sky and Y is orthogonal to the other 2 axis.

I'm capable of knowing the orientation of the sphere with respect to the XYZw and I have such orientation represented using a quaternion which we'll call Qsw (that is the quaternion representing the orientation of XYZs with respect to XYZw). By knowing Qsw I can easily compute Qws (that is the quaternion representing the orientation of XYZw with respect to XYZs) by computing the quaternion conjugate of Qsw.

Now, let's suppose to place the sphere on a XYw plane, so that by rotating the sphere a displacement of XYZs with respect to XYw is produced. You can visualize this by thinking of placing a ball on a table and rotating it so that it moves on then table plane.

Now, the problem is, by being able to sample Qsw, getting to know the displacement of XYZs on XYw after an indefinite rotation.

This is a practical problem araised when using PALLA (as described in chapter 8 of my MoS thesis), a spherical device which contains an accelerometer, a gyroscope and magnetometer, from which doing a sensor fusion I'm able to compute it's orientation with respect to the world. Now, once placed it on a table with the user rotating it to displace it, I'd like to compute how much it is being displaced as described in math language above.

Of course, I'm not looking for the solution to the problem, I'm just looking for hints on possible paths to the solution.

Any suggestions?