diff --git a/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp b/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp index 89da7e8a6bbd3aa8b6febabf1de7196f1596b343..fbfdba9d7b31d4235dd82e60810156904e5c7c12 100644 --- a/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp +++ b/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp @@ -234,15 +234,16 @@ namespace armarx::armem::server::obj auto boRequest = armarx::fromIce<armem::PredictionRequest>(request); armem::PredictionResult result; result.snapshotID = boRequest.snapshotID; - if (armem::contains(workingMemory().id().withCoreSegmentName("Instance"), - boRequest.snapshotID) && - !boRequest.snapshotID.hasGap() && boRequest.snapshotID.hasInstanceIndex()) + if (armem::contains(workingMemory().id().withCoreSegmentName("Instance"), boRequest.snapshotID) + and not boRequest.snapshotID.hasGap() + and boRequest.snapshotID.hasTimestamp()) { objpose::ObjectPosePredictionRequest objPoseRequest; toIce(objPoseRequest.timeWindow, Duration::SecondsDouble(predictionTimeWindow)); objPoseRequest.objectID = toIce(ObjectID(request.snapshotID.entityName)); objPoseRequest.settings = request.settings; toIce(objPoseRequest.timestamp, boRequest.snapshotID.timestamp); + objpose::ObjectPosePredictionResult objPoseResult = predictObjectPoses({objPoseRequest}).at(0); result.success = objPoseResult.success; @@ -263,6 +264,10 @@ namespace armarx::armem::server::obj } else { + if (not boRequest.snapshotID.hasInstanceIndex()) + { + boRequest.snapshotID.instanceIndex = 0; + } auto* aronInstance = queryResult.memory.findLatestInstance( boRequest.snapshotID, boRequest.snapshotID.instanceIndex); if (aronInstance == nullptr)