28 #include <MemoryX/interface/components/WorkingMemoryInterface.h>
60 std::string oldFrameName = pose->frame;
65 robotStateProxy->getRobotSnapshot(robotStateProxy->getRobotName());
68 ret->changeFrame(oldFrameName);
72 memoryx::MultivariateNormalDistributionBasePtr
77 ARMARX_DEBUG_S <<
"MotionModelStaticObject::getUncertaintyInternal()";
79 if (uncertaintyAtLastLocalization)
84 const float positionDistance =
85 (oldRobotPose.block<3, 1>(0, 3) - newRobotPose.block<3, 1>(0, 3)).
norm();
86 const float positionChangeUncertaintyFactor = 0.1 * positionDistance;
87 float additionalUncertaintyFactor = positionChangeUncertaintyFactor;
89 << positionChangeUncertaintyFactor;
93 armarx::TimestampVariantPtr::dynamicCast(timeOfLastSuccessfulLocalization)
95 IceUtil::Time timeSinceLastLocalization = IceUtil::Time::now() - timeAtLastLocalization;
96 const float timeUncertaintyFactor =
97 0.0005 *
abs(timeSinceLastLocalization.toMilliSeconds());
98 additionalUncertaintyFactor += timeUncertaintyFactor;
99 ARMARX_DEBUG_S <<
"timeUncertaintyFactor: " << timeUncertaintyFactor;
102 additionalUncertaintyFactor *
105 MultivariateNormalDistributionPtr::dynamicCast(uncertaintyAtLastLocalization)
106 ->toEigenCovariance();
107 Eigen::Matrix3f newUncertainty = oldUncertainty + additionalUncertainty;
110 ARMARX_DEBUG_S <<
"additionalUncertainty: " << additionalUncertainty;
114 armarx::Vector3Ptr::dynamicCast(poseAtLastLocalization->position)->toEigen(),
128 if (globalRobotPoseAtLastLocalization)
131 armarx::PosePtr::dynamicCast(globalRobotPoseAtLastLocalization)->toEigen();
132 newRobotPose = armarx::PosePtr::dynamicCast(
133 robotStateProxy->getSynchronizedRobot()->getGlobalPose())