scipy.spatial.transform.Rotation.as_dcm¶
-
Rotation.
as_dcm
()[source]¶ Represent as direction cosine matrices.
3D rotations can be represented using direction cosine matrices, which are 3 x 3 real orthogonal matrices with determinant equal to +1 [1].
Returns: - dcm :
numpy.ndarray
, shape (3, 3) or (N, 3, 3) Shape depends on shape of inputs used for initialization.
References
[1] (1, 2) Direction Cosine Matrix Examples
>>> from scipy.spatial.transform import Rotation as R
Represent a single rotation:
>>> r = R.from_rotvec([0, 0, np.pi/2]) >>> r.as_dcm() array([[ 2.22044605e-16, -1.00000000e+00, 0.00000000e+00], [ 1.00000000e+00, 2.22044605e-16, 0.00000000e+00], [ 0.00000000e+00, 0.00000000e+00, 1.00000000e+00]]) >>> r.as_dcm().shape (3, 3)
Represent a stack with a single rotation:
>>> r = R.from_quat([[1, 1, 0, 0]]) >>> r.as_dcm() array([[[ 0., 1., 0.], [ 1., 0., 0.], [ 0., 0., -1.]]]) >>> r.as_dcm().shape (1, 3, 3)
Represent multiple rotations:
>>> r = R.from_rotvec([[np.pi/2, 0, 0], [0, 0, np.pi/2]]) >>> r.as_dcm() array([[[ 1.00000000e+00, 0.00000000e+00, 0.00000000e+00], [ 0.00000000e+00, 2.22044605e-16, -1.00000000e+00], [ 0.00000000e+00, 1.00000000e+00, 2.22044605e-16]], [[ 2.22044605e-16, -1.00000000e+00, 0.00000000e+00], [ 1.00000000e+00, 2.22044605e-16, 0.00000000e+00], [ 0.00000000e+00, 0.00000000e+00, 1.00000000e+00]]]) >>> r.as_dcm().shape (2, 3, 3)
- dcm :