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
q1andq2.- 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
q1andq2.- 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
e1toe.- 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
e1toe.- 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
e1toe.- 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
e1toe.- 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
e1toe.- 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
e1toe.- 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
q2toq1.- 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
q2toq1.- 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
q2toq1.- 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.