Skip to content

Commit 5b50148

Browse files
committed
implement base pose calib also for orientation task
1 parent 2c61a3e commit 5b50148

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

src/IK/src/InverseKinematics.cpp

+9-2
Original file line numberDiff line numberDiff line change
@@ -546,7 +546,14 @@ bool HumanIK::calibrateAllWithWorld(std::unordered_map<int, nodeData> nodeStruct
546546
Eigen::Matrix3d IMU_R_link = (m_OrientationTasks[node].calibrationMatrix * data.I_R_IMU).rotation().transpose()
547547
* iDynTree::toEigen(m_kinDyn->getWorldTransform(m_OrientationTasks[node].frameName).getRotation());
548548
m_OrientationTasks[node].IMU_R_link = BipedalLocomotion::Conversions::toManifRot(IMU_R_link);
549-
m_OrientationTasks[node].calibrationMatrix = toManifRot(m_initialBasePose.topLeftCorner<3, 3>()) * secondaryCalib * m_OrientationTasks[node].calibrationMatrix;
549+
if (m_useMeasuredBasePose)
550+
{
551+
m_OrientationTasks[node].calibrationMatrix = toManifRot(m_initialBasePose.topLeftCorner<3, 3>()) * secondaryCalib * m_OrientationTasks[node].calibrationMatrix;
552+
} else
553+
{
554+
m_OrientationTasks[node].calibrationMatrix = secondaryCalib * m_OrientationTasks[node].calibrationMatrix;
555+
BiomechanicalAnalysis::log()->info("{} Assuming initial base pose is identity for OrientationTask.", logPrefix);
556+
}
550557
} else
551558
{
552559
// compute the rotation matrix from the IMU to the link frame as:
@@ -560,7 +567,7 @@ bool HumanIK::calibrateAllWithWorld(std::unordered_map<int, nodeData> nodeStruct
560567
} else
561568
{
562569
m_GravityTasks[node].calibrationMatrix = secondaryCalib * m_GravityTasks[node].calibrationMatrix;
563-
BiomechanicalAnalysis::log()->info("{} Assuming initial base pose is identity.", logPrefix);
570+
BiomechanicalAnalysis::log()->info("{} Assuming initial base pose is identity for GravityTask.", logPrefix);
564571
}
565572
}
566573
}

0 commit comments

Comments
 (0)