Once upon a time Robin was made happy #800
@ -460,13 +460,13 @@ void Guidance::targetRotationRate(const int8_t timeElapsedMax, const double time
|
|||||||
if (VectorOperations<double>::norm(savedQuaternion, 4) == 0) {
|
if (VectorOperations<double>::norm(savedQuaternion, 4) == 0) {
|
||||||
std::memcpy(savedQuaternion, quatInertialTarget, sizeof(savedQuaternion));
|
std::memcpy(savedQuaternion, quatInertialTarget, sizeof(savedQuaternion));
|
||||||
}
|
}
|
||||||
if (timeDelta < timeElapsedMax) {
|
if (timeDelta < timeElapsedMax and timeDelta != 0.0) {
|
||||||
double q[4] = {0, 0, 0, 0}, qS[4] = {0, 0, 0, 0};
|
double q[4] = {0, 0, 0, 0}, qS[4] = {0, 0, 0, 0};
|
||||||
QuaternionOperations::inverse(quatInertialTarget, q);
|
QuaternionOperations::inverse(quatInertialTarget, q);
|
||||||
QuaternionOperations::inverse(savedQuaternion, qS);
|
QuaternionOperations::inverse(savedQuaternion, qS);
|
||||||
double qDiff[4] = {0, 0, 0, 0};
|
double qDiff[4] = {0, 0, 0, 0};
|
||||||
VectorOperations<double>::subtract(q, qS, qDiff, 4);
|
VectorOperations<double>::subtract(q, qS, qDiff, 4);
|
||||||
VectorOperations<double>::mulScalar(qDiff, 1 / timeDelta, qDiff, 4);
|
VectorOperations<double>::mulScalar(qDiff, 1. / timeDelta, qDiff, 4);
|
||||||
|
|
||||||
double tgtQuatVec[3] = {q[0], q[1], q[2]};
|
double tgtQuatVec[3] = {q[0], q[1], q[2]};
|
||||||
double qDiffVec[3] = {qDiff[0], qDiff[1], qDiff[2]};
|
double qDiffVec[3] = {qDiff[0], qDiff[1], qDiff[2]};
|
||||||
|
Loading…
Reference in New Issue
Block a user