From e6a489ecf4b67709d0050161693c4c6d13874e0f Mon Sep 17 00:00:00 2001 From: phesch <ulila@student.kit.edu> Date: Tue, 14 Jun 2022 09:48:47 +0200 Subject: [PATCH] Fix prediction errors in ObjectMemory --- .../armem/server/ObjectMemory/ObjectMemory.cpp | 7 ++++--- source/RobotAPI/libraries/armem/core/Prediction.cpp | 9 ++++++++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp b/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp index fe2a74715..89da7e8a6 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 9880d03a2..bb43a908c 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 -- GitLab