RigidBodyKinematics

Attitude conversions, composition, and kinematic rate maps.

Angles are in radians and Euler parameters are scalar-first unit quaternions. Use bounded MRP sets and avoid the inherent singularities of each representation. The routines use ordinary double-precision formulas; arbitrary finite magnitudes and subnormal components are not guaranteed to produce accurate finite results. See Numerical scope and representation limits for the common C, Python, Numba, and Rust limits.

RigidBodyKinematics.BdotmatMRP(q, dq)[source]

Return the time derivative of the MRP rate matrix.

Parameters:
  • q – Three dimensionless MRP components as a list, tuple, or array.

  • dq – Three MRP time derivatives in inverse seconds.

Returns:

A 3-by-3 matrix in inverse seconds.

RigidBodyKinematics.BinvEP(Q)[source]

B = BinvEP(Q) returns the 3x4 matrix which relates the derivative of euler parameter vector Q to the body angular velocity vector w.

w = 2 [B(Q)]^(-1) dQ/dt

RigidBodyKinematics.BinvEuler121(Q)[source]

B = BinvEuler121(Q) returns the 3x3 matrix which relates the derivative of the (1-2-1) euler angle vector Q to the body angular velocity vector w.

w = [B(Q)]^(-1) dQ/dt

RigidBodyKinematics.BinvEuler123(Q)[source]

B = BinvEuler123(Q) returns the 3x3 matrix which relates the derivative of the (1-2-3) euler angle vector Q to the body angular velocity vector w.

w = [B(Q)]^(-1) dQ/dt

RigidBodyKinematics.BinvEuler131(Q)[source]

B = BinvEuler131(Q) returns the 3x3 matrix which relates the derivative of the (1-3-1) euler angle vector Q to the body angular velocity vector w.

w = [B(Q)]^(-1) dQ/dt

RigidBodyKinematics.BinvEuler132(Q)[source]

B = BinvEuler132(Q) returns the 3x3 matrix which relates the derivative of the (1-3-2) euler angle vector Q to the body angular velocity vector w.

w = [B(Q)]^(-1) dQ/dt

RigidBodyKinematics.BinvEuler212(Q)[source]

B = BinvEuler212(Q) returns the 3x3 matrix which relates the derivative of the (2-1-2) euler angle vector Q to the body angular velocity vector w.

w = [B(Q)]^(-1) dQ/dt

RigidBodyKinematics.BinvEuler213(Q)[source]

B = BinvEuler213(Q) returns the 3x3 matrix which relates the derivative of the (2-1-3) euler angle vector Q to the body angular velocity vector w.

w = [B(Q)]^(-1) dQ/dt

RigidBodyKinematics.BinvEuler231(Q)[source]

B = BinvEuler231(Q) returns the 3x3 matrix which relates the derivative of the (2-3-1) euler angle vector Q to the body angular velocity vector w.

w = [B(Q)]^(-1) dQ/dt

RigidBodyKinematics.BinvEuler232(Q)[source]

B = BinvEuler232(Q) returns the 3x3 matrix which relates the derivative of the (2-3-2) euler angle vector Q to the body angular velocity vector w.

w = [B(Q)]^(-1) dQ/dt

RigidBodyKinematics.BinvEuler312(Q)[source]

B = BinvEuler312(Q) returns the 3x3 matrix which relates the derivative of the (3-1-2) euler angle vector Q to the body angular velocity vector w.

w = [B(Q)]^(-1) dQ/dt

RigidBodyKinematics.BinvEuler313(Q)[source]

B = BinvEuler313(Q) returns the 3x3 matrix which relates the derivative of the (3-1-3) euler angle vector Q to the body angular velocity vector w.

w = [B(Q)]^(-1) dQ/dt

RigidBodyKinematics.BinvEuler321(Q)[source]

B = BinvEuler321(Q) returns the 3x3 matrix which relates the derivative of the (3-2-1) euler angle vector Q to the body angular velocity vector w.

w = [B(Q)]^(-1) dQ/dt

RigidBodyKinematics.BinvEuler323(Q)[source]

B = BinvEuler323(Q) returns the 3x3 matrix which relates the derivative of the (3-2-3) euler angle vector Q to the body angular velocity vector w.

w = [B(Q)]^(-1) dQ/dt

RigidBodyKinematics.BinvGibbs(q)[source]

Return the inverse Gibbs rate matrix.

Parameters:

q – Three dimensionless Gibbs components as a list, tuple, or array.

Returns:

A dimensionless 3-by-3 matrix satisfying omega = 2 * BinvGibbs(q) @ dq_dt.

RigidBodyKinematics.BinvMRP(q)[source]

Return the inverse MRP rate matrix.

Parameters:

q – Three dimensionless MRP components as a list, tuple, or array.

Returns:

A dimensionless 3-by-3 matrix satisfying omega = 4 * BinvMRP(q) @ dq_dt.

RigidBodyKinematics.BinvPRV(q)[source]

Map the rotation-vector derivative to angular velocity.

Parameters:

q – Principal rotation vector in radians as a list, tuple, or array.

Returns:

A 3-by-3 kinematic matrix, equal to identity at zero attitude. Small-angle series avoid cancellation near zero.

RigidBodyKinematics.BmatEP(Q)[source]

B = BmatEP(Q) returns the 4x3 matrix which relates the body angular velocity vector w to the derivative of Euler parameter vector Q.

dQ/dt = 1/2 [B(Q)] w

RigidBodyKinematics.BmatEuler121(Q)[source]

B = BmatEuler121(Q) returns the 3x3 matrix which relates the body angular velocity vector w to the derivative of (1-2-1) euler angle vector Q.

dQ/dt = [B(Q)] w

RigidBodyKinematics.BmatEuler123(Q)[source]

B = BmatEuler123(Q) returns the 3x3 matrix which relates the body angular velocity vector w to the derivative of (1-2-3) euler angle vector Q.

dQ/dt = [B(Q)] w

RigidBodyKinematics.BmatEuler131(Q)[source]

B = BmatEuler131(Q) returns the 3x3 matrix which relates the body angular velocity vector w to the derivative of (1-3-1) euler angle vector Q.

dQ/dt = [B(Q)] w

RigidBodyKinematics.BmatEuler132(Q)[source]

B = BmatEuler132(Q) returns the 3x3 matrix which relates the body angular velocity vector w to the derivative of (1-3-2) euler angle vector Q.

dQ/dt = [B(Q)] w

RigidBodyKinematics.BmatEuler212(Q)[source]

B = BmatEuler212(Q) returns the 3x3 matrix which relates the body angular velocity vector w to the derivative of (2-1-2) euler angle vector Q.

dQ/dt = [B(Q)] w

RigidBodyKinematics.BmatEuler213(Q)[source]

B = BmatEuler213(Q) returns the 3x3 matrix which relates the body angular velocity vector w to the derivative of (2-1-3) euler angle vector Q.

dQ/dt = [B(Q)] w

RigidBodyKinematics.BmatEuler231(Q)[source]

B = BmatEuler231(Q) returns the 3x3 matrix which relates the body angular velocity vector w to the derivative of (2-3-1) euler angle vector Q.

dQ/dt = [B(Q)] w

RigidBodyKinematics.BmatEuler232(Q)[source]

B = BmatEuler232(Q) returns the 3x3 matrix which relates the body angular velocity vector w to the derivative of (2-3-2) euler angle vector Q.

dQ/dt = [B(Q)] w

RigidBodyKinematics.BmatEuler312(Q)[source]

B = BmatEuler312(Q) returns the 3x3 matrix which relates the body angular velocity vector w to the derivative of (3-1-2) euler angle vector Q.

dQ/dt = [B(Q)] w

RigidBodyKinematics.BmatEuler313(Q)[source]

B = BmatEuler313(Q) returns the 3x3 matrix which relates the body angular velocity vector w to the derivative of (3-1-3) euler angle vector Q.

dQ/dt = [B(Q)] w

RigidBodyKinematics.BmatEuler321(Q)[source]

B = BmatEuler321(Q) returns the 3x3 matrix which relates the body angular velocity vector w to the derivative of (3-2-1) euler angle vector Q.

dQ/dt = [B(Q)] w

RigidBodyKinematics.BmatEuler323(Q)[source]

B = BmatEuler323(Q) returns the 3x3 matrix which relates the body angular velocity vector w to the derivative of (3-2-3) euler angle vector Q.

dQ/dt = [B(Q)] w

RigidBodyKinematics.BmatGibbs(q)[source]

Return the Gibbs rate matrix satisfying dq_dt = B @ omega / 2.

Parameters:

q – Three dimensionless Gibbs components as a list, tuple, or array.

Returns:

A dimensionless 3-by-3 matrix evaluated in double precision, including when the input array contains integers or single-precision values.

RigidBodyKinematics.BmatMRP(q)[source]

Return the MRP rate matrix satisfying dq_dt = B @ omega / 4.

Parameters:

q – Three dimensionless MRP components as a list, tuple, or array.

Returns:

A dimensionless 3-by-3 matrix.

RigidBodyKinematics.BmatPRV(q)[source]

Map angular velocity to the rotation-vector derivative.

Parameters:

q – Principal rotation vector in radians as a list, tuple, or array.

Returns:

A 3-by-3 kinematic matrix, equal to identity at zero attitude. Small-angle series avoid cancellation near zero.

RigidBodyKinematics.C2EP()[source]

Q = C2EP(C) translates the 3x3 direction cosine matrix C into the corresponding 4x1 euler parameter vector Q, where the first component of Q is the non-dimensional Euler parameter Beta_0 >= 0. Transformation is done using the Stanley method.

RigidBodyKinematics.C2Euler121(C)[source]

Convert a DCM to the (1-2-1) Euler angle set.

Parameters:

C – A 3-by-3 direction cosine matrix.

Returns:

Three Euler angles in radians. At a singularity, the third angle is zero and the first angle carries the observable combined rotation.

RigidBodyKinematics.C2Euler123(C)[source]

Convert a DCM to the (1-2-3) Euler angle set.

Parameters:

C – A 3-by-3 direction cosine matrix.

Returns:

Three Euler angles in radians. At a singularity, the third angle is zero and the first angle carries the observable combined rotation.

RigidBodyKinematics.C2Euler131(C)[source]

Convert a DCM to the (1-3-1) Euler angle set.

Parameters:

C – A 3-by-3 direction cosine matrix.

Returns:

Three Euler angles in radians. At a singularity, the third angle is zero and the first angle carries the observable combined rotation.

RigidBodyKinematics.C2Euler132(C)[source]

Convert a DCM to the (1-3-2) Euler angle set.

Parameters:

C – A 3-by-3 direction cosine matrix.

Returns:

Three Euler angles in radians. At a singularity, the third angle is zero and the first angle carries the observable combined rotation.

RigidBodyKinematics.C2Euler212(C)[source]

Convert a DCM to the (2-1-2) Euler angle set.

Parameters:

C – A 3-by-3 direction cosine matrix.

Returns:

Three Euler angles in radians. At a singularity, the third angle is zero and the first angle carries the observable combined rotation.

RigidBodyKinematics.C2Euler213(C)[source]

Convert a DCM to the (2-1-3) Euler angle set.

Parameters:

C – A 3-by-3 direction cosine matrix.

Returns:

Three Euler angles in radians. At a singularity, the third angle is zero and the first angle carries the observable combined rotation.

RigidBodyKinematics.C2Euler231(C)[source]

Convert a DCM to the (2-3-1) Euler angle set.

Parameters:

C – A 3-by-3 direction cosine matrix.

Returns:

Three Euler angles in radians. At a singularity, the third angle is zero and the first angle carries the observable combined rotation.

RigidBodyKinematics.C2Euler232(C)[source]

Convert a DCM to the (2-3-2) Euler angle set.

Parameters:

C – A 3-by-3 direction cosine matrix.

Returns:

Three Euler angles in radians. At a singularity, the third angle is zero and the first angle carries the observable combined rotation.

RigidBodyKinematics.C2Euler312(C)[source]

Convert a DCM to the (3-1-2) Euler angle set.

Parameters:

C – A 3-by-3 direction cosine matrix.

Returns:

Three Euler angles in radians. At a singularity, the third angle is zero and the first angle carries the observable combined rotation.

RigidBodyKinematics.C2Euler313(C)[source]

Convert a DCM to the (3-1-3) Euler angle set.

Parameters:

C – A 3-by-3 direction cosine matrix.

Returns:

Three Euler angles in radians. At a singularity, the third angle is zero and the first angle carries the observable combined rotation.

RigidBodyKinematics.C2Euler321(C)[source]

Convert a DCM to the (3-2-1) Euler angle set.

Parameters:

C – A 3-by-3 direction cosine matrix.

Returns:

Three Euler angles in radians. At a singularity, the third angle is zero and the first angle carries the observable combined rotation.

RigidBodyKinematics.C2Euler323(C)[source]

Convert a DCM to the (3-2-3) Euler angle set.

Parameters:

C – A 3-by-3 direction cosine matrix.

Returns:

Three Euler angles in radians. At a singularity, the third angle is zero and the first angle carries the observable combined rotation.

RigidBodyKinematics.C2Gibbs()[source]

Q = C2Gibbs(C) translates the 3x3 direction cosine matrix C into the corresponding 3x1 gibbs vector Q.

RigidBodyKinematics.C2MRP()[source]

Q = C2MRP(C) translates the 3x3 direction cosine matrix C into the corresponding 3x1 MRP vector Q where the MRP vector is chosen such that \(|Q| <= 1\).

RigidBodyKinematics.C2PRV(C)[source]

Convert a direction cosine matrix to a principal rotation vector.

Parameters:

C – A 3-by-3 direction cosine matrix.

Returns:

A three-component rotation vector in radians. Its magnitude is the rotation angle in the interval [0, pi], and its direction is the rotation axis. The identity returns a zero vector.

RigidBodyKinematics.EP2C()[source]

C = EP2C(Q) returns the direction math.cosine matrix in terms of the 4x1 euler parameter vector Q. The first element is the non-dimensional euler parameter, while the remain three elements form the eulerparameter vector.

RigidBodyKinematics.EP2Euler121(q)[source]

Convert Euler parameters to the (1-2-1) Euler angle set.

Parameters:

q – A four-component unit quaternion with its scalar component first.

Returns:

Three Euler angles in radians. At a singularity, the third angle is zero and the first angle carries the observable combined rotation.

RigidBodyKinematics.EP2Euler123(q)[source]

Convert Euler parameters to the (1-2-3) Euler angle set.

Parameters:

q – A four-component unit quaternion with its scalar component first.

Returns:

Three Euler angles in radians. At a singularity, the third angle is zero and the first angle carries the observable combined rotation.

RigidBodyKinematics.EP2Euler131(q)[source]

Convert Euler parameters to the (1-3-1) Euler angle set.

Parameters:

q – A four-component unit quaternion with its scalar component first.

Returns:

Three Euler angles in radians. At a singularity, the third angle is zero and the first angle carries the observable combined rotation.

RigidBodyKinematics.EP2Euler132(q)[source]

Convert Euler parameters to the (1-3-2) Euler angle set.

Parameters:

q – A four-component unit quaternion with its scalar component first.

Returns:

Three Euler angles in radians. At a singularity, the third angle is zero and the first angle carries the observable combined rotation.

RigidBodyKinematics.EP2Euler212(q)[source]

Convert Euler parameters to the (2-1-2) Euler angle set.

Parameters:

q – A four-component unit quaternion with its scalar component first.

Returns:

Three Euler angles in radians. At a singularity, the third angle is zero and the first angle carries the observable combined rotation.

RigidBodyKinematics.EP2Euler213(q)[source]

Convert Euler parameters to the (2-1-3) Euler angle set.

Parameters:

q – A four-component unit quaternion with its scalar component first.

Returns:

Three Euler angles in radians. At a singularity, the third angle is zero and the first angle carries the observable combined rotation.

RigidBodyKinematics.EP2Euler231(q)[source]

Convert Euler parameters to the (2-3-1) Euler angle set.

Parameters:

q – A four-component unit quaternion with its scalar component first.

Returns:

Three Euler angles in radians. At a singularity, the third angle is zero and the first angle carries the observable combined rotation.

RigidBodyKinematics.EP2Euler232(q)[source]

Convert Euler parameters to the (2-3-2) Euler angle set.

Parameters:

q – A four-component unit quaternion with its scalar component first.

Returns:

Three Euler angles in radians. At a singularity, the third angle is zero and the first angle carries the observable combined rotation.

RigidBodyKinematics.EP2Euler312(q)[source]

Convert Euler parameters to the (3-1-2) Euler angle set.

Parameters:

q – A four-component unit quaternion with its scalar component first.

Returns:

Three Euler angles in radians. At a singularity, the third angle is zero and the first angle carries the observable combined rotation.

RigidBodyKinematics.EP2Euler313(q)[source]

Convert Euler parameters to the (3-1-3) Euler angle set.

Parameters:

q – A four-component unit quaternion with its scalar component first.

Returns:

Three Euler angles in radians. At a singularity, the third angle is zero and the first angle carries the observable combined rotation.

RigidBodyKinematics.EP2Euler321(q)[source]

Convert Euler parameters to the (3-2-1) Euler angle set.

Parameters:

q – A four-component unit quaternion with its scalar component first.

Returns:

Three Euler angles in radians. At a singularity, the third angle is zero and the first angle carries the observable combined rotation.

RigidBodyKinematics.EP2Euler323(q)[source]

Convert Euler parameters to the (3-2-3) Euler angle set.

Parameters:

q – A four-component unit quaternion with its scalar component first.

Returns:

Three Euler angles in radians. At a singularity, the third angle is zero and the first angle carries the observable combined rotation.

RigidBodyKinematics.EP2Gibbs(Q1)[source]

Q = EP2Gibbs(Q1) translates the euler parameter vector Q1 into the gibbs vector Q.

RigidBodyKinematics.EP2MRP(q)[source]

Convert Euler parameters to the MRP set with norm at most one.

Parameters:

q – Four-component unit quaternion, scalar component first. Lists, tuples, and NumPy arrays are supported.

Returns:

Three dimensionless MRPs. Negative-scalar quaternions use the shadow set; both identity quaternions return zero.

RigidBodyKinematics.EP2PRV(q)[source]

Convert Euler parameters to a principal rotation vector.

Parameters:

q – A four-component unit quaternion with its scalar component first.

Returns:

A three-component rotation vector in radians. Both quaternion representations of the identity return zero. Otherwise, a negative scalar component retains a rotation angle greater than pi.

RigidBodyKinematics.MRP2C(q)[source]

Convert modified Rodrigues parameters to a direction cosine matrix.

Parameters:

q – Three dimensionless MRP components as a list, tuple, or array.

Returns:

A 3-by-3 direction cosine matrix.

RigidBodyKinematics.MRP2EP(q1)[source]

Convert modified Rodrigues parameters to Euler parameters.

Parameters:

q1 – Three dimensionless MRP components as a list, tuple, or array.

Returns:

A unit quaternion with its scalar component first. MRP norms greater than one retain a negative quaternion scalar component.

RigidBodyKinematics.MRP2Euler121(Q)[source]
E = MRP2Euler121(Q) translates the MRP

vector Q into the (1-2-1) euler angle vector E.

RigidBodyKinematics.MRP2Euler123(Q)[source]
E = MRP2Euler123(Q) translates the MRP

vector Q into the (1-2-3) euler angle vector E.

RigidBodyKinematics.MRP2Euler131(Q)[source]
E = MRP2Euler131(Q) translates the MRP

vector Q into the (1-3-1) euler angle vector E.

RigidBodyKinematics.MRP2Euler132(Q)[source]
E = MRP2Euler132(Q) translates the MRP

vector Q into the (1-3-2) euler angle vector E.

RigidBodyKinematics.MRP2Euler212(Q)[source]
E = MRP2Euler212(Q) translates the MRP

vector Q into the (2-1-2) euler angle vector E.

RigidBodyKinematics.MRP2Euler213(Q)[source]
E = MRP2Euler213(Q) translates the MRP

vector Q into the (2-1-3) euler angle vector E.

RigidBodyKinematics.MRP2Euler231(Q)[source]
E = MRP2Euler231(Q) translates the MRP

vector Q into the (2-3-1) euler angle vector E.

RigidBodyKinematics.MRP2Euler232(Q)[source]
E = MRP2Euler232(Q) translates the MRP

vector Q into the (2-3-2) euler angle vector E.

RigidBodyKinematics.MRP2Euler312(Q)[source]
E = MRP2Euler312(Q) translates the MRP

vector Q into the (3-1-2) euler angle vector E.

RigidBodyKinematics.MRP2Euler313(Q)[source]
E = MRP2Euler313(Q) translates the MRP

vector Q into the (3-1-3) euler angle vector E.

RigidBodyKinematics.MRP2Euler321(Q)[source]
E = MRP2Euler321(Q) translates the MRP

vector Q into the (3-2-1) euler angle vector E.

RigidBodyKinematics.MRP2Euler323(Q)[source]
E = MRP2Euler323(Q) translates the MRP

vector Q into the (3-2-3) euler angle vector E.

RigidBodyKinematics.MRP2Gibbs(q1)[source]

Convert modified Rodrigues parameters to a Gibbs vector.

Parameters:

q1 – Three dimensionless MRP components as a list, tuple, or array.

Returns:

A three-component, dimensionless Gibbs vector.

Note:

The conversion is singular when the MRP norm equals one.

RigidBodyKinematics.MRP2PRV(q)[source]

Convert modified Rodrigues parameters to a principal rotation vector.

Parameters:

q – A three-component, dimensionless MRP vector.

Returns:

A three-component rotation vector in radians. A zero MRP vector returns a zero rotation vector. MRP norms greater than one retain rotation angles greater than pi.

RigidBodyKinematics.MRPshadow(q)[source]

Return the shadow set of a nonzero MRP vector.

Parameters:

q – Three dimensionless MRP components as a list, tuple, or array.

Returns:

The three-component array -q / dot(q, q).

Note:

The shadow of zero is singular and returns NaN components.

RigidBodyKinematics.MRPswitch(q, s2)[source]

Switch to the shadow MRP set when the input norm exceeds s2.

Parameters:
  • q – Three dimensionless MRP components as a list, tuple, or array.

  • s2 – Dimensionless MRP norm threshold.

Returns:

A three-component MRP array, unchanged at or below the threshold.

RigidBodyKinematics.PRV2C(q)[source]

Convert a principal rotation vector to a direction cosine matrix.

Parameters:

q (array_like, shape (3,)) – Principal rotation vector. The magnitude equals the rotation angle (rad) and the direction is the rotation axis.

Returns:

C – Direction cosine (rotation) matrix.

Return type:

ndarray, shape (3, 3)

RigidBodyKinematics.PRV2EP(qq1)[source]

Convert a principal rotation vector to Euler parameters.

Parameters:

qq1 – Three-component rotation vector in radians.

Returns:

A unit quaternion with its scalar component first. Small nonzero rotations retain their vector components.

RigidBodyKinematics.PRV2Euler121(Q)[source]

E = PRV2Euler121(Q) translates the principal rotation vector Q into the (1-2-1) euler angle vector E.

RigidBodyKinematics.PRV2Euler123(Q)[source]

E = PRV2Euler123(Q) translates the principal rotation vector Q into the (1-2-3) euler angle vector E.

RigidBodyKinematics.PRV2Euler131(Q)[source]

E = PRV2Euler131(Q) translates the principal rotation vector Q into the (1-3-1) euler angle vector E.

RigidBodyKinematics.PRV2Euler132(Q)[source]

E = PRV2Euler132(Q) translates the principal rotation vector Q into the (1-3-2) euler angle vector E.

RigidBodyKinematics.PRV2Euler212(Q)[source]

E = PRV2Euler212(Q) translates the principal rotation vector Q into the (2-1-2) euler angle vector E.

RigidBodyKinematics.PRV2Euler213(Q)[source]

E = PRV2Euler213(Q) translates the principal rotation vector Q into the (2-1-3) euler angle vector E.

RigidBodyKinematics.PRV2Euler231(Q)[source]

E = PRV2Euler231(Q) translates the principal rotation vector Q into the (2-3-1) euler angle vector E.

RigidBodyKinematics.PRV2Euler232(Q)[source]

E = PRV2Euler232(Q) translates the principal rotation vector Q into the (2-3-2) euler angle vector E.

RigidBodyKinematics.PRV2Euler312(Q)[source]

E = PRV2Euler312(Q) translates the principal rotation vector Q into the (3-1-2) euler angle vector E.

RigidBodyKinematics.PRV2Euler313(Q)[source]

E = PRV2Euler313(Q) translates the principal rotation vector Q into the (3-1-3) euler angle vector E.

RigidBodyKinematics.PRV2Euler321(Q)[source]

E = PRV2Euler321(Q) translates the principal rotation vector Q into the (3-2-1) euler angle vector E.

RigidBodyKinematics.PRV2Euler323(Q)[source]

E = PRV2Euler323(Q) translates the principal rotation vector Q into the (3-2-3) euler angle vector E.

RigidBodyKinematics.PRV2Gibbs(Q1)[source]

Q = PRV2Gibbs(Q1) translates the principal rotation vector Q1 into the gibbs vector Q.

RigidBodyKinematics.PRV2MRP(Q1)[source]

Q = PRV2MRP(Q1) translates the principal rotation vector Q1 into the MRP vector Q.

RigidBodyKinematics.PRV2elem(r)[source]

Convert a rotation vector to its angle and unit axis.

Parameters:

r – Three-component principal rotation vector in radians.

Returns:

Four components: the angle in radians followed by the unit axis. Only an exactly zero vector returns an all-zero element set.

RigidBodyKinematics.Picheck(x)[source]

Wrap an angle with any number of revolutions to the interval [-pi, pi].

Parameters:

x – Input angle in radians.

Returns:

Equivalent angle in radians. Exact half-turn remainders and zero retain the input sign. Non-finite inputs return NaN.

RigidBodyKinematics.addEP(B1, B2)[source]

Q = addEP(B1,B2) provides the euler parameter vector which corresponds to performing to successive rotations B1 and B2.

RigidBodyKinematics.addEuler121(e1, e2)[source]

Compose successive (1-2-1) rotations, including singular attitudes.

Parameters:
  • e1 – First Euler angle vector in radians.

  • e2 – Second Euler angle vector in radians.

Returns:

Euler angles in radians for the composed rotation. At a singularity, the third angle is zero and the first carries the combined rotation.

RigidBodyKinematics.addEuler123(E1, E2)[source]

Q = addEuler123(E1,E2) computes the overall (1-2-3) euler angle vector corresponding to two successive (1-2-3) rotations E1 and E2.

RigidBodyKinematics.addEuler131(e1, e2)[source]

Compose successive (1-3-1) rotations, including singular attitudes.

Parameters:
  • e1 – First Euler angle vector in radians.

  • e2 – Second Euler angle vector in radians.

Returns:

Euler angles in radians for the composed rotation. At a singularity, the third angle is zero and the first carries the combined rotation.

RigidBodyKinematics.addEuler132(E1, E2)[source]

Q = addEuler132(E1,E2) computes the overall (1-3-2) euler angle vector corresponding to two successive (1-3-2) rotations E1 and E2.

RigidBodyKinematics.addEuler212(e1, e2)[source]

Compose successive (2-1-2) rotations, including singular attitudes.

Parameters:
  • e1 – First Euler angle vector in radians.

  • e2 – Second Euler angle vector in radians.

Returns:

Euler angles in radians for the composed rotation. At a singularity, the third angle is zero and the first carries the combined rotation.

RigidBodyKinematics.addEuler213(E1, E2)[source]

Q = addEuler213(E1,E2) computes the overall (2-1-3) euler angle vector corresponding to two successive (2-1-3) rotations E1 and E2.

RigidBodyKinematics.addEuler231(E1, E2)[source]

Q = addEuler231(E1,E2) computes the overall (2-3-1) euler angle vector corresponding to two successive (2-3-1) rotations E1 and E2.

RigidBodyKinematics.addEuler232(e1, e2)[source]

Compose successive (2-3-2) rotations, including singular attitudes.

Parameters:
  • e1 – First Euler angle vector in radians.

  • e2 – Second Euler angle vector in radians.

Returns:

Euler angles in radians for the composed rotation. At a singularity, the third angle is zero and the first carries the combined rotation.

RigidBodyKinematics.addEuler312(E1, E2)[source]

Q = addEuler312(E1,E2) computes the overall (3-1-2) euler angle vector corresponding to two successive (3-1-2) rotations E1 and E2.

RigidBodyKinematics.addEuler313(e1, e2)[source]

Compose successive (3-1-3) rotations, including singular attitudes.

Parameters:
  • e1 – First Euler angle vector in radians.

  • e2 – Second Euler angle vector in radians.

Returns:

Euler angles in radians for the composed rotation. At a singularity, the third angle is zero and the first carries the combined rotation.

RigidBodyKinematics.addEuler321(E1, E2)[source]

Q = addEuler321(E1,E2) computes the overall (3-2-1) euler angle vector corresponding to two successive (3-2-1) rotations E1 and E2.

RigidBodyKinematics.addEuler323(e1, e2)[source]

Compose successive (3-2-3) rotations, including singular attitudes.

Parameters:
  • e1 – First Euler angle vector in radians.

  • e2 – Second Euler angle vector in radians.

Returns:

Euler angles in radians for the composed rotation. At a singularity, the third angle is zero and the first carries the combined rotation.

RigidBodyKinematics.addGibbs(q1, q2)[source]

Return the Gibbs vector for successive rotations q1 and q2.

Parameters:
  • q1 – First dimensionless Gibbs vector as a list, tuple, or array.

  • q2 – Second dimensionless Gibbs vector as a list, tuple, or array.

Returns:

A three-component, dimensionless Gibbs array.

RigidBodyKinematics.addMRP(q1, q2)[source]

Return the MRP set for successive rotations q1 and q2.

Parameters:
  • q1 – First dimensionless MRP vector as a list, tuple, or array.

  • q2 – Second dimensionless MRP vector as a list, tuple, or array.

Returns:

A three-component, dimensionless MRP array with norm at most one.

RigidBodyKinematics.addPRV(qq1, qq2)[source]

Compose two successive principal rotation vectors.

Parameters:
  • qq1 – First rotation vector in radians.

  • qq2 – Second rotation vector in radians.

Returns:

Composed rotation vector in radians. Opposite input vectors return zero; otherwise the composed quaternion’s angle branch is retained.

RigidBodyKinematics.dEP(Q, W)[source]

dq = dEP(Q,W) returns the euler parameter derivative for a given euler parameter vector Q and body angular velocity vector w.

dQ/dt = 1/2 [B(Q)] w

RigidBodyKinematics.dEuler121(Q, W)[source]

dq = dEuler121(Q,W) returns the (1-2-1) euler angle derivative vector for a given (1-2-1) euler angle vector Q and body angular velocity vector w.

dQ/dt = [B(Q)] w

RigidBodyKinematics.dEuler123(Q, W)[source]

dq = dEuler123(Q,W) returns the (1-2-3) euler angle derivative vector for a given (1-2-3) euler angle vector Q and body angular velocity vector w.

dQ/dt = [B(Q)] w

RigidBodyKinematics.dEuler131(Q, W)[source]

dq = dEuler131(Q,W) returns the (1-3-1) euler angle derivative vector for a given (1-3-1) euler angle vector Q and body angular velocity vector w.

dQ/dt = [B(Q)] w

RigidBodyKinematics.dEuler132(Q, W)[source]

dq = dEuler132(Q,W) returns the (1-3-2) euler angle derivative vector for a given (1-3-2) euler angle vector Q and body angular velocity vector w.

dQ/dt = [B(Q)] w

RigidBodyKinematics.dEuler212(Q, W)[source]

dq = dEuler212(Q,W) returns the (2-1-2) euler angle derivative vector for a given (2-1-2) euler angle vector Q and body angular velocity vector w.

dQ/dt = [B(Q)] w

RigidBodyKinematics.dEuler213(Q, W)[source]

dq = dEuler213(Q,W) returns the (2-1-3) euler angle derivative vector for a given (2-1-3) euler angle vector Q and body angular velocity vector w.

dQ/dt = [B(Q)] w

RigidBodyKinematics.dEuler231(Q, W)[source]

dq = dEuler231(Q,W) returns the (2-3-1) euler angle derivative vector for a given (2-3-1) euler angle vector Q and body angular velocity vector w.

dQ/dt = [B(Q)] w

RigidBodyKinematics.dEuler232(Q, W)[source]

dq = dEuler232(Q,W) returns the (2-3-2) euler angle derivative vector for a given (2-3-2) euler angle vector Q and body angular velocity vector w.

dQ/dt = [B(Q)] w

RigidBodyKinematics.dEuler312(Q, W)[source]

dq = dEuler312(Q,W) returns the (3-1-2) euler angle derivative vector for a given (3-1-2) euler angle vector Q and body angular velocity vector w.

dQ/dt = [B(Q)] w

RigidBodyKinematics.dEuler313(Q, W)[source]

dq = dEuler313(Q,W) returns the (3-1-3) euler angle derivative vector for a given (3-1-3) euler angle vector Q and body angular velocity vector w.

dQ/dt = [B(Q)] w

RigidBodyKinematics.dEuler321(Q, W)[source]

dq = dEuler321(Q,W) returns the (3-2-1) euler angle derivative vector for a given (3-2-1) euler angle vector Q and body angular velocity vector w.

dQ/dt = [B(Q)] w

RigidBodyKinematics.dEuler323(Q, W)[source]

dq = dEuler323(Q,W) returns the (3-2-3) euler angle derivative vector for a given (3-2-3) euler angle vector Q and body angular velocity vector w.

dQ/dt = [B(Q)] w

RigidBodyKinematics.dGibbs(q, w)[source]

Map angular velocity to the Gibbs vector derivative.

Parameters:
  • q – Dimensionless Gibbs vector.

  • w – Body angular velocity in radians per second.

Returns:

Gibbs time derivative in inverse seconds.

RigidBodyKinematics.dMRP(q, w)[source]

Map angular velocity to the MRP time derivative.

Parameters:
  • q – Dimensionless MRP vector.

  • w – Body angular velocity in radians per second.

Returns:

MRP time derivative in inverse seconds.

RigidBodyKinematics.dMRP2Omega(q, dq)[source]

Recover angular velocity from the MRP time derivative.

Parameters:
  • q – Dimensionless MRP vector.

  • dq – MRP time derivative in inverse seconds.

Returns:

Body angular velocity in radians per second.

RigidBodyKinematics.dPRV(q, w)[source]

Map angular velocity to the principal rotation vector derivative.

Parameters:
  • q – Three-component principal rotation vector in radians.

  • w – Body angular velocity in radians per second.

Returns:

Rotation vector derivative in radians per second.

RigidBodyKinematics.ddMRP(q, dq, w, dw)[source]

Map angular acceleration to the MRP second derivative.

Parameters:
  • q – Dimensionless MRP vector.

  • dq – MRP time derivative in inverse seconds.

  • w – Body angular velocity in radians per second.

  • dw – Body angular acceleration in radians per second squared.

Returns:

MRP second derivative in inverse seconds squared.

RigidBodyKinematics.ddMRP2dOmega(q, dq, ddq)[source]

Recover angular acceleration from MRP derivatives.

Parameters:
  • q – Dimensionless MRP vector.

  • dq – MRP time derivative in inverse seconds.

  • ddq – MRP second derivative in inverse seconds squared.

Returns:

Body angular acceleration in radians per second squared.

RigidBodyKinematics.elem2PRV(R)[source]

Q = elem2PRV(R) translates a prinicpal rotation element set R into the corresponding principal rotation vector Q.

RigidBodyKinematics.euler1(x)[source]

EULER1 Elementary rotation matrix Returns the elementary rotation matrix about the first body axis.

RigidBodyKinematics.euler1212C(q)[source]

Euler1212C

C = euler1212C(Q) returns the direction cosine matrix in terms of the 1-2-1 euler angles. Input Q must be a 3x1 vector of euler angles.

RigidBodyKinematics.euler1212EP(e)[source]

Euler1212EP(E)

Q = euler1212EP(E) translates the 121 euler angle vector E into the euler parameter vector Q.

RigidBodyKinematics.euler1212Gibbs(e)[source]

Euler1212Gibbs(E)

Q = euler1212Gibbs(E) translates the (1-2-1) euler angle vector E into the gibbs vector Q.

RigidBodyKinematics.euler1212MRP(E)[source]

Q = euler1212MRP(E) translates the (1-2-1) euler angle vector E into the MRP vector Q.

RigidBodyKinematics.euler1212PRV(E)[source]

Q = euler1212PRV(E) translates the (1-2-1) euler angle vector E into the principal rotation vector Q.

RigidBodyKinematics.euler1232C()[source]

C = euler1232C(Q) returns the direction cosine matrix in terms of the 1-2-3 euler angles. Input Q must be a 3x1 vector of euler angles.

RigidBodyKinematics.euler1232EP(E)[source]

Q = euler1232EP(E) translates the 123 euler angle vector E into the euler parameter vector Q.

RigidBodyKinematics.euler1232Gibbs(E)[source]

Q = euler1232Gibbs(E) translates the (1-2-3) euler angle vector E into the gibbs vector Q.

RigidBodyKinematics.euler1232MRP(E)[source]

Q = euler1232MRP(E) translates the (1-2-3) euler angle vector E into the MRP vector Q.

RigidBodyKinematics.euler1232PRV(E)[source]

Q = euler1232PRV(E) translates the (1-2-3) euler angle vector E into the principal rotation vector Q.

RigidBodyKinematics.euler1312C()[source]

C = euler1312C(Q) returns the direction cosine matrix in terms of the 1-3-1 euler angles. Input Q must be a 3x1 vector of euler angles.

RigidBodyKinematics.euler1312EP(E)[source]

Q = euler1312EP(E) translates the 131 euler angle vector E into the euler parameter vector Q.

RigidBodyKinematics.euler1312Gibbs(E)[source]

Q = euler1312Gibbs(E) translates the (1-3-1) euler angle vector E into the gibbs vector Q.

RigidBodyKinematics.euler1312MRP(E)[source]

Q = euler1312MRP(E) translates the (1-3-1) euler angle vector E into the MRP vector Q.

RigidBodyKinematics.euler1312PRV(E)[source]

Q = euler1312PRV(E) translates the (1-3-1) euler angle vector E into the principal rotation vector Q.

RigidBodyKinematics.euler1322C()[source]

C = euler1322C(Q) returns the direction cosine matrix in terms of the 1-3-2 euler angles. Input Q must be a 3x1 vector of euler angles.

RigidBodyKinematics.euler1322EP(E)[source]

Q = euler1322EP(E) translates the 132 euler angle vector E into the euler parameter vector Q.

RigidBodyKinematics.euler1322Gibbs(E)[source]

Q = euler1322Gibbs(E) translates the (1-3-2) euler angle vector E into the gibbs vector Q.

RigidBodyKinematics.euler1322MRP(E)[source]

Q = euler1322MRP(E) translates the (1-3-2) euler angle vector E into the MRP vector Q.

RigidBodyKinematics.euler1322PRV(E)[source]

Q = euler1322PRV(E) translates the (1-3-2) euler angle vector E into the principal rotation vector Q.

RigidBodyKinematics.euler2(x)[source]

EULER2 Elementary rotation matrix Returns the elementary rotation matrix about the second body axis.

RigidBodyKinematics.euler2122C()[source]

C = euler2122C(Q) returns the direction cosine matrix in terms of the 2-1-2 euler angles. Input Q must be a 3x1 vector of euler angles.

RigidBodyKinematics.euler2122EP(E)[source]

Q = euler2122EP(E) translates the 212 euler angle vector E into the euler parameter vector Q.

RigidBodyKinematics.euler2122Gibbs(E)[source]

Q = euler2122Gibbs(E) translates the (2-1-2) euler angle vector E into the gibbs vector Q.

RigidBodyKinematics.euler2122MRP(E)[source]

Q = euler2122MRP(E) translates the (2-1-2) euler angle vector E into the MRP vector Q.

RigidBodyKinematics.euler2122PRV(E)[source]

Q = euler2122PRV(E) translates the (2-1-2) euler angle vector E into the principal rotation vector Q.

RigidBodyKinematics.euler2132C()[source]

C = euler2132C(Q) returns the direction cosine matrix in terms of the 2-1-3 euler angles. Input Q must be a 3x1 vector of euler angles.

RigidBodyKinematics.euler2132EP(E)[source]

Q = euler2132EP(E) translates the 213 euler angle vector E into the euler parameter vector Q.

RigidBodyKinematics.euler2132Gibbs(E)[source]

Q = euler2132Gibbs(E) translates the (2-1-3) euler angle vector E into the gibbs vector Q.

RigidBodyKinematics.euler2132MRP(E)[source]

Q = euler2132MRP(E) translates the (2-1-3) euler angle vector E into the MRP vector Q.

RigidBodyKinematics.euler2132PRV(E)[source]

Q = euler2132PRV(E) translates the (2-1-3) euler angle vector E into the principal rotation vector Q.

RigidBodyKinematics.euler2312C()[source]

C = euler2312C(Q) returns the direction cosine matrix in terms of the 2-3-1 euler angles. Input Q must be a 3x1 vector of euler angles.

RigidBodyKinematics.euler2312EP(E)[source]

Q = euler2312EP(E) translates the 231 euler angle vector E into the euler parameter vector Q.

RigidBodyKinematics.euler2312Gibbs(E)[source]

Q = euler2312Gibbs(E) translates the (2-3-1) euler angle vector E into the gibbs vector Q.

RigidBodyKinematics.euler2312MRP(E)[source]

Q = euler2312MRP(E) translates the (2-3-1) euler angle vector E into the MRP vector Q.

RigidBodyKinematics.euler2312PRV(E)[source]

Q = euler2312PRV(E) translates the (2-3-1) euler angle vector E into the principal rotation vector Q.

RigidBodyKinematics.euler2322C()[source]

C = euler2322C(Q) returns the direction cosine matrix in terms of the 2-3-2 euler angles. Input Q must be a 3x1 vector of euler angles.

RigidBodyKinematics.euler2322EP(E)[source]

Q = euler2322EP(E) translates the 232 euler angle vector E into the euler parameter vector Q.

RigidBodyKinematics.euler2322Gibbs(E)[source]

Q = euler2322Gibbs(E) translates the (2-3-2) euler angle vector E into the gibbs vector Q.

RigidBodyKinematics.euler2322MRP(E)[source]

Q = euler2322MRP(E) translates the (2-3-2) euler angle vector E into the MRP vector Q.

RigidBodyKinematics.euler2322PRV(E)[source]

Q = euler2322PRV(E) translates the (2-3-2) euler angle vector E into the principal rotation vector Q.

RigidBodyKinematics.euler3(x)[source]

EULER3 Elementary rotation matrix Returns the elementary rotation matrix about the third body axis.

RigidBodyKinematics.euler3122C()[source]

C = euler3122C(Q) returns the direction cosine matrix in terms of the 1-2-3 euler angles. Input Q must be a 3x1 vector of euler angles.

RigidBodyKinematics.euler3122EP(E)[source]

Q = euler3122EP(E) translates the 312 euler angle vector E into the euler parameter vector Q.

RigidBodyKinematics.euler3122Gibbs(E)[source]

Q = euler3122Gibbs(E) translates the (3-1-2) euler angle vector E into the gibbs vector Q.

RigidBodyKinematics.euler3122MRP(E)[source]

Q = euler3122MRP(E) translates the (3-1-2) euler angle vector E into the MRP vector Q.

RigidBodyKinematics.euler3122PRV(E)[source]

Q = euler3122PRV(E) translates the (3-1-2) euler angle vector E into the principal rotation vector Q.

RigidBodyKinematics.euler3132C()[source]

C = euler3132C(Q) returns the direction cosine matrix in terms of the 3-1-3 euler angles. Input Q must be a 3x1 vector of euler angles.

RigidBodyKinematics.euler3132EP(E)[source]

Q = euler3132EP(E) translates the 313 euler angle vector E into the euler parameter vector Q.

RigidBodyKinematics.euler3132Gibbs(E)[source]

Q = euler3132Gibbs(E) translates the (3-1-3) euler angle vector E into the gibbs vector Q.

RigidBodyKinematics.euler3132MRP(E)[source]

Q = euler3132MRP(E) translates the (3-1-3) euler angle vector E into the MRP vector Q.

RigidBodyKinematics.euler3132PRV(E)[source]

Q = euler3132PRV(E) translates the (3-1-3) euler angle vector E into the principal rotation vector Q.

RigidBodyKinematics.euler3212C()[source]

C = euler3212C(Q) returns the direction cosine matrix in terms of the 3-2-1 euler angles. Input Q must be a 3x1 vector of euler angles.

RigidBodyKinematics.euler3212EP(E)[source]

Q = euler3212EP(E) translates the 321 euler angle vector E into the euler parameter vector Q.

RigidBodyKinematics.euler3212Gibbs(E)[source]

Q = euler3212Gibbs(E) translates the (3-2-1) euler angle vector E into the gibbs vector Q.

RigidBodyKinematics.euler3212MRP(E)[source]

Q = euler3212MRP(E) translates the (3-2-1) euler angle vector E into the MRP vector Q.

RigidBodyKinematics.euler3212PRV(E)[source]

Q = euler3212PRV(E) translates the (3-2-1) euler angle vector E into the principal rotation vector Q.

RigidBodyKinematics.euler3232C()[source]

C = euler3232C(Q) returns the direction cosine matrix in terms of the 3-2-3 euler angles. Input Q must be a 3x1 vector of euler angles.

RigidBodyKinematics.euler3232EP(E)[source]

Q = euler3232EP(E) translates the 323 euler angle vector E into the euler parameter vector Q.

RigidBodyKinematics.euler3232Gibbs(E)[source]

Q = euler3232Gibbs(E) translates the (3-2-3) euler angle vector E into the gibbs vector Q.

RigidBodyKinematics.euler3232MRP(E)[source]

Q = euler3232MRP(E) translates the (3-2-3) euler angle vector E into the MRP vector Q.

RigidBodyKinematics.euler3232PRV(E)[source]

Q = euler3232PRV(E) translates the (3-2-3) euler angle vector Q1 into the principal rotation vector Q.

RigidBodyKinematics.gibbs2C(q)[source]

Convert a Gibbs vector to a direction cosine matrix.

Parameters:

q – Three dimensionless Gibbs components as a list, tuple, or array.

Returns:

A 3-by-3 direction cosine matrix.

RigidBodyKinematics.gibbs2EP(q1)[source]

Convert a Gibbs vector to Euler parameters.

Parameters:

q1 – Three dimensionless Gibbs components as a list, tuple, or array.

Returns:

A unit quaternion with a positive scalar component first.

RigidBodyKinematics.gibbs2Euler121(Q)[source]

E = gibbs2Euler121(Q) translates the gibbs vector Q into the (1-2-1) euler angle vector E.

RigidBodyKinematics.gibbs2Euler123(Q)[source]
E = gibbs2Euler123(Q) translates the gibbs

vector Q into the (1-2-3) euler angle vector E.

RigidBodyKinematics.gibbs2Euler131(Q)[source]
E = gibbs2Euler131(Q) translates the gibbs

vector Q into the (1-3-1) euler angle vector E.

RigidBodyKinematics.gibbs2Euler132(Q)[source]

E = gibbs2Euler132(Q) translates the gibbs vector Q into the (1-3-2) euler angle vector E.

RigidBodyKinematics.gibbs2Euler212(Q)[source]
E = gibbs2Euler212(Q) translates the gibbs

vector Q into the (2-1-2) euler angle vector E.

RigidBodyKinematics.gibbs2Euler213(Q)[source]
E = gibbs2Euler213(Q) translates the gibbs

vector Q into the (2-1-3) euler angle vector E.

RigidBodyKinematics.gibbs2Euler231(Q)[source]
E = gibbs2Euler231(Q) translates the gibbs

vector Q into the (2-3-1) euler angle vector E.

RigidBodyKinematics.gibbs2Euler232(Q)[source]
E = gibbs2Euler232(Q) translates the gibbs

vector Q into the (2-3-2) euler angle vector E.

RigidBodyKinematics.gibbs2Euler312(Q)[source]
E = gibbs2Euler312(Q) translates the gibbs

vector Q into the (3-1-2) euler angle vector E.

RigidBodyKinematics.gibbs2Euler313(Q)[source]
E = gibbs2Euler313(Q) translates the gibbs

vector Q into the (3-1-3) euler angle vector E.

RigidBodyKinematics.gibbs2Euler321(Q)[source]
E = gibbs2Euler321(Q) translates the gibbs

vector Q into the (3-2-1) euler angle vector E.

RigidBodyKinematics.gibbs2Euler323(Q)[source]
E = gibbs2Euler323(Q) translates the gibbs

vector Q into the (3-2-3) euler angle vector E.

RigidBodyKinematics.gibbs2MRP(q1)[source]

Convert a Gibbs vector to modified Rodrigues parameters.

Parameters:

q1 – Three dimensionless Gibbs components as a list, tuple, or array.

Returns:

A three-component, dimensionless MRP array with norm at most one.

RigidBodyKinematics.gibbs2PRV(q)[source]

Convert a Gibbs vector to a principal rotation vector.

Parameters:

q – A three-component, dimensionless Gibbs vector.

Returns:

A three-component rotation vector in radians. A zero Gibbs vector returns a zero rotation vector.

RigidBodyKinematics.subEP(B1, B2)[source]

Q = subEP(B1,B2) provides the euler parameter vector which corresponds to relative rotation from B2 to B1.

RigidBodyKinematics.subEuler121(e, e1)[source]

Return the relative (1-2-1) rotation from e1 to e.

Parameters:
  • e – Final Euler angle vector in radians.

  • e1 – Reference Euler angle vector in radians.

Returns:

Relative Euler angles in radians. At a singularity, the third angle is zero and the first carries the combined rotation.

RigidBodyKinematics.subEuler123(E, E1)[source]

E2 = subEuler123(E,E1) computes the relative (1-2-3) euler angle vector from E1 to E.

RigidBodyKinematics.subEuler131(e, e1)[source]

Return the relative (1-3-1) rotation from e1 to e.

Parameters:
  • e – Final Euler angle vector in radians.

  • e1 – Reference Euler angle vector in radians.

Returns:

Relative Euler angles in radians. At a singularity, the third angle is zero and the first carries the combined rotation.

RigidBodyKinematics.subEuler132(E, E1)[source]

E2 = subEuler132(E,E1) computes the relative (1-3-2) euler angle vector from E1 to E.

RigidBodyKinematics.subEuler212(e, e1)[source]

Return the relative (2-1-2) rotation from e1 to e.

Parameters:
  • e – Final Euler angle vector in radians.

  • e1 – Reference Euler angle vector in radians.

Returns:

Relative Euler angles in radians. At a singularity, the third angle is zero and the first carries the combined rotation.

RigidBodyKinematics.subEuler213(E, E1)[source]

E2 = subEuler213(E,E1) computes the relative (2-1-3) euler angle vector from E1 to E.

RigidBodyKinematics.subEuler231(E, E1)[source]

E2 = subEuler231(E,E1) computes the relative (2-3-1) euler angle vector from E1 to E.

RigidBodyKinematics.subEuler232(e, e1)[source]

Return the relative (2-3-2) rotation from e1 to e.

Parameters:
  • e – Final Euler angle vector in radians.

  • e1 – Reference Euler angle vector in radians.

Returns:

Relative Euler angles in radians. At a singularity, the third angle is zero and the first carries the combined rotation.

RigidBodyKinematics.subEuler312(E, E1)[source]

E2 = subEuler312(E,E1) computes the relative (3-1-2) euler angle vector from E1 to E.

RigidBodyKinematics.subEuler313(e, e1)[source]

Return the relative (3-1-3) rotation from e1 to e.

Parameters:
  • e – Final Euler angle vector in radians.

  • e1 – Reference Euler angle vector in radians.

Returns:

Relative Euler angles in radians. At a singularity, the third angle is zero and the first carries the combined rotation.

RigidBodyKinematics.subEuler321(E, E1)[source]

E2 = subEuler321(E,E1) computes the relative (3-2-1) euler angle vector from E1 to E.

RigidBodyKinematics.subEuler323(e, e1)[source]

Return the relative (3-2-3) rotation from e1 to e.

Parameters:
  • e – Final Euler angle vector in radians.

  • e1 – Reference Euler angle vector in radians.

Returns:

Relative Euler angles in radians. At a singularity, the third angle is zero and the first carries the combined rotation.

RigidBodyKinematics.subGibbs(q1, q2)[source]

Return the relative Gibbs vector from q2 to q1.

Parameters:
  • q1 – Final dimensionless Gibbs vector as a list, tuple, or array.

  • q2 – Reference dimensionless Gibbs vector as a list, tuple, or array.

Returns:

A three-component, dimensionless Gibbs array.

RigidBodyKinematics.subMRP(q1, q2)[source]

Return the relative MRP set from q2 to q1.

Parameters:
  • q1 – Final dimensionless MRP vector as a list, tuple, or array.

  • q2 – Reference dimensionless MRP vector as a list, tuple, or array.

Returns:

A three-component, dimensionless MRP array with norm at most one.

RigidBodyKinematics.subPRV(q1, q2)[source]

Return the relative principal rotation vector from q2 to q1.

Parameters:
  • q1 – Final rotation vector in radians.

  • q2 – Reference rotation vector in radians.

Returns:

Relative rotation vector in radians. Equal input vectors return zero; otherwise the relative quaternion’s angle branch is retained.