Nah #891

Merged
meggert merged 3 commits from i-hate-it-here into main 2024-04-11 14:04:52 +02:00
3 changed files with 7 additions and 3 deletions

View File

@ -16,6 +16,10 @@ will consitute of a breaking change warranting a new major release:
# [unreleased] # [unreleased]
# [v7.8.1] 2024-04-11
- Reverted fix for wrong order in quaternion multiplication for computation of the error quaternion.
# [v7.8.0] 2024-04-10 # [v7.8.0] 2024-04-10
## Changed ## Changed

View File

@ -11,7 +11,7 @@ cmake_minimum_required(VERSION 3.13)
set(OBSW_VERSION_MAJOR 7) set(OBSW_VERSION_MAJOR 7)
set(OBSW_VERSION_MINOR 8) set(OBSW_VERSION_MINOR 8)
set(OBSW_VERSION_REVISION 0) set(OBSW_VERSION_REVISION 1)
# set(CMAKE_VERBOSE TRUE) # set(CMAKE_VERBOSE TRUE)

View File

@ -303,9 +303,9 @@ void Guidance::comparePtg(double currentQuat[4], double currentSatRotRate[3], do
// First calculate error quaternion between current and target orientation without reference // First calculate error quaternion between current and target orientation without reference
// quaternion // quaternion
double errorQuatWoRef[4] = {0, 0, 0, 0}; double errorQuatWoRef[4] = {0, 0, 0, 0};
QuaternionOperations::multiply(targetQuat, currentQuat, errorQuatWoRef); QuaternionOperations::multiply(currentQuat, targetQuat, errorQuatWoRef);
// Then add rotation from reference quaternion // Then add rotation from reference quaternion
QuaternionOperations::multiply(errorQuatWoRef, refQuat, errorQuat); QuaternionOperations::multiply(refQuat, errorQuatWoRef, errorQuat);
// Keep scalar part of quaternion positive // Keep scalar part of quaternion positive
if (errorQuat[3] < 0) { if (errorQuat[3] < 0) {
VectorOperations<double>::mulScalar(errorQuat, -1, errorQuat, 4); VectorOperations<double>::mulScalar(errorQuat, -1, errorQuat, 4);