crv2rotationΒΆ
Given a Cartesian rotation vector, \(\boldsymbol{\Psi}\), the function produces the rotation matrix required to rotate a vector according to \(\boldsymbol{\Psi}\).
The rotation matrix is given by
\[\mathbf{R} = \mathbf{I} + \frac{\sin||\boldsymbol{\Psi}||}{||\boldsymbol{\Psi}||} \tilde{\boldsymbol{\Psi}} +
\frac{1-\cos{||\boldsymbol{\Psi}||}}{||\boldsymbol{\Psi}||^2}\tilde{\boldsymbol{\Psi}} \tilde{\boldsymbol{\Psi}}\]
To avoid the singularity when \(||\boldsymbol{\Psi}||=0\), the series expansion is used
\[\mathbf{R} = \mathbf{I} + \tilde{\boldsymbol{\Psi}} + \frac{1}{2!}\tilde{\boldsymbol{\Psi}}^2.\]
param psi: | Cartesian rotation vector \(\boldsymbol{\Psi}\). |
---|---|
type psi: | np.array |
returns: | equivalent rotation matrix |
rtype: | np.array |
References
Geradin and Cardona, Flexible Multibody Dynamics: A finite element approach. Chapter 4