diff --git a/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp b/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp index fe2a7471594c303e21ed0638bb1fa6f5e1635fa5..89da7e8a6bbd3aa8b6febabf1de7196f1596b343 100644 --- a/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp +++ b/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp @@ -251,7 +251,7 @@ namespace armarx::armem::server::obj if (objPoseResult.success) { armem::client::QueryBuilder builder; - builder.singleEntitySnapshot(boRequest.snapshotID); + builder.latestEntitySnapshot(boRequest.snapshotID); auto queryResult = armarx::fromIce<armem::client::QueryResult>( query(builder.buildQueryInputIce())); std::string instanceError = @@ -263,11 +263,12 @@ namespace armarx::armem::server::obj } else { - auto* aronInstance = queryResult.memory.findInstance(boRequest.snapshotID); + auto* aronInstance = queryResult.memory.findLatestInstance( + boRequest.snapshotID, boRequest.snapshotID.instanceIndex); if (aronInstance == nullptr) { result.success = false; - result.errorMessage << instanceError; + result.errorMessage << instanceError << ": No latest instance found."; } else { diff --git a/source/RobotAPI/libraries/armem/core/Prediction.cpp b/source/RobotAPI/libraries/armem/core/Prediction.cpp index 9880d03a2f4e4c28e649e50f08a1f0b93ce52cb2..bb43a908cb5584c5bbe911ef74258e060d56ae7e 100644 --- a/source/RobotAPI/libraries/armem/core/Prediction.cpp +++ b/source/RobotAPI/libraries/armem/core/Prediction.cpp @@ -120,7 +120,14 @@ namespace armarx::armem ice.success = result.success; ice.errorMessage = result.errorMessage; toIce(ice.snapshotID, result.snapshotID); - ice.prediction = result.prediction->toAronDictDTO(); + if (result.prediction) + { + ice.prediction = result.prediction->toAronDictDTO(); + } + else + { + ice.prediction = nullptr; + } } void