Sign in to follow this  
rahman_f_t

How to find rotation parameters in sphere?

Recommended Posts

Suppose there is one circle on the sphere ( not exact circle, say like as sine shape or other signal shape). then the sphere rotate. By comparing the sphere before and after rotation, is it possible to find 3 rotation parameters or angles in Euler coordinate (or 2 rotation angle, sphere coordinate)? Thanks

Share this post


Link to post
Share on other sites
As long as a particular point on the sphere can be found both before and after rotation, then of course the rotation can be computed. The approach would be to contruct 2 direction vectors, namely from the center of the sphere to the said point before and after rotation, and to use cross-procuct and dot-product to compute the axis (plane) of rotation and the angle. From that conversions could be done to yield in a quaternion or matrix or Euler angles, whatever.

So, if a marking (e.g. your signal) allows to find such a point, all is okay. However, if I understood your OP correctly, a pure circle provides infinite many possible matches generally, and a structured but periodic, closed marking provides finite (but still many) matches. The former case does IMHO prohibit your desire, while the latter case may work although with additional constraints like using the lowest available angle (assuming slow/incremental rotations) or something similar. EDIT: Similarly, additional constraints may also allow to use a circle, but those constraint would be hard; e.g. the axis of rotation lies in the plane of the circle.

Share this post


Link to post
Share on other sites
Problem is here that there arent any particular point. Should find the rotation angles just from comparing the signal. And because this signal is not pure circle, surly it has only one solution.

Share this post


Link to post
Share on other sites
So the actual problem is to correlate 2 signals which are (unfortunately) mapped onto a sphere? How unique is the signal? E.g. a sine curve is periodic and hence self similarities can be found at several locations.

Of course, in the image domain, something like a block matching can be done. I.e. the pattern irregularities on the surface of the sphere may be used to detect where the signal lies on the surface. This can reduce the search range. Perhaps the pattern can be splitted up into several blocks, where block oriented towards the viewer may be preferred for the following matching. Then the blocks can be transformed either approximately (e.g. translational) or by considering the underlying model (i.e. rotational transform), and be matched against the blocks on the rotated sphere.

The above way can compute the rotational parameters more or less directly. However, I have no clue how your problem is actually structured, and hence the above is just some guessing. Have you some typical example pictures at hand? And/or can you describe how the signal and spherical images are made?

Share this post


Link to post
Share on other sites
Quote:
Original post by rahman_f_t
Problem is here that there arent any particular point. Should find the rotation angles just from comparing the signal. And because this signal is not pure circle, surly it has only one solution.


I think I understand what you mean. Is the signal really in 3D space, or just in 2D space? Also, is it literally on a sphere, or was that just to describe the rotation?

Share this post


Link to post
Share on other sites
Thank you for your interest.
Your solution is almost correct (Because signals are not exact the same, we cant use one part of whole signal and need correlation). But it needs long time to process. I want to find a better and fast way.

[Edited by - rahman_f_t on May 15, 2008 4:41:36 AM]

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this