Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Singularity for Rodrigues Parameters at 180 degree #131

Closed
federkamm opened this issue Aug 22, 2020 · 2 comments
Closed

Singularity for Rodrigues Parameters at 180 degree #131

federkamm opened this issue Aug 22, 2020 · 2 comments

Comments

@federkamm
Copy link

README.md says that the Rodrigues Parameters would have a singularity at 180 degree. What does that mean? To my understanding, the Rodrigues Parameters are a 3-vector p that parametrize the rotation R = exp([p]_x) where [.]_x is the skew symmetric cross-product matrix and exp is the matrix exponential function. This function is continous differentiable. To me, a singularity would mean that the differential of p -> exp([p]_x) would not have full rank at some point p. So I tried the point p = (pi, 0, 0) and tried to visually picture the exponential map and their derivative and it looks to me that it is of full rank (i.e. rank 3). Obviously, (pi+dx,0,0) turns further around x but (pi,dy,0) and (pi,0,dz) don't, and for symmetry reason the directions where (pi,dy,0) and (pi,0,dz) turn around cannot fall together (except if they would both only turn around x). So, am I wrong or do you mean something different by "singularity"?

@bjack205
Copy link
Collaborator

The mapping from quaternions to rodrigues params is v ./ s, where s and and v are the scalar and vector parts of the quaternion, respectively. This mapping will go singular when s -> 0. The scalar part of the quaternion goes to zero at a rotation of 180 degrees. To see this, you can look at the exponential map, which defines the quaternion to be [cos(theta/2); u * sin(theta/2), where theta is the rotation angle and u is the rotation axis. The term cos(theta/2) = 0 when theta = 180.

@federkamm
Copy link
Author

Thank you for the explaination. I confused "Rodrigues Parameters" [tan(theta/2) * u] with "Rodrigues Vector" [theta * u]. Now, I agree that the Rodrigues Parameters have a singularity at theta = 180 degree.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants