From 5104c3b5bea33ccc8e11bfb000d0a58ee75bc4e7 Mon Sep 17 00:00:00 2001 From: phesch <ulila@student.kit.edu> Date: Mon, 9 May 2022 19:28:05 +0200 Subject: [PATCH] Implement suggestions from Gitlab MR --- .../armem/server/ObjectMemory/ObjectMemory.cpp | 18 ++++++++---------- .../armem/server/ObjectMemory/ObjectMemory.h | 2 +- .../objectpose/ObjectPoseStorageInterface.ice | 2 +- .../RobotAPI/libraries/armem/client/Reader.h | 1 + .../armem_objects/server/instance/Segment.cpp | 6 +++--- .../armem_objects/server/instance/Visu.cpp | 10 ++++------ 6 files changed, 18 insertions(+), 21 deletions(-) diff --git a/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp b/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp index b3cb8043a..4b6ec249d 100644 --- a/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp +++ b/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp @@ -61,9 +61,9 @@ namespace armarx::armem::server::obj // defs->component(kinematicUnitObserver); // Optional dependency. defs->defineOptionalProperty<std::string>("cmp.KinematicUnitObserverName", "KinematicUnitObserver", "Name of the kinematic unit observer."); - defs->optional(predictionLookbackSeconds, "prediction.LookbackSeconds", - "Lookback to use for predictions when requested via the PredictingMemoryInterface" - " (in seconds)."); + defs->optional(predictionTimeWindow, "prediction.TimeWindow", + "Duration of time window into the past to use for predictions" + " when requested via the PredictingMemoryInterface (in seconds)."); return defs; } @@ -239,14 +239,12 @@ namespace armarx::armem::server::obj !boRequest.snapshotID.hasGap() && boRequest.snapshotID.hasInstanceIndex()) { objpose::ObjectPosePredictionRequest objPoseRequest; - objPoseRequest.lookback = armarx::toIce<armarx::core::time::dto::Duration>( - Duration::SecondsDouble(predictionLookbackSeconds)); - objPoseRequest.objectID = armarx::toIce<armarx::data::ObjectID>( - ObjectID(boRequest.snapshotID.entityName + "/" + - boRequest.snapshotID.instanceIndexStr())); + toIce(objPoseRequest.timeWindow, Duration::SecondsDouble(predictionTimeWindow)); + toIce(objPoseRequest.objectID, + ObjectID(boRequest.snapshotID.entityName + "/" + + boRequest.snapshotID.instanceIndexStr())); objPoseRequest.settings = request.settings; - objPoseRequest.timestamp = armarx::toIce<armarx::core::time::dto::DateTime>( - boRequest.snapshotID.timestamp); + toIce(objPoseRequest.timestamp, boRequest.snapshotID.timestamp); objpose::ObjectPosePredictionResult objPoseResult = predictObjectPoses({objPoseRequest}).at(0); result.success = objPoseResult.success; diff --git a/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.h b/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.h index f078b436c..7067f42da 100644 --- a/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.h +++ b/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.h @@ -123,7 +123,7 @@ namespace armarx::armem::server::obj RobotStateComponentInterfacePrx robotStateComponent; KinematicUnitObserverInterfacePrx kinematicUnitObserver; - double predictionLookbackSeconds = 2; + double predictionTimeWindow = 2; clazz::Segment classSegment; diff --git a/source/RobotAPI/interface/objectpose/ObjectPoseStorageInterface.ice b/source/RobotAPI/interface/objectpose/ObjectPoseStorageInterface.ice index 3b5c76e98..a069da907 100644 --- a/source/RobotAPI/interface/objectpose/ObjectPoseStorageInterface.ice +++ b/source/RobotAPI/interface/objectpose/ObjectPoseStorageInterface.ice @@ -156,7 +156,7 @@ module armarx { armarx::data::ObjectID objectID; armarx::core::time::dto::DateTime timestamp; - armarx::core::time::dto::Duration lookback; + armarx::core::time::dto::Duration timeWindow; armem::prediction::data::PredictionSettings settings; }; sequence<ObjectPosePredictionRequest> ObjectPosePredictionRequestSeq; diff --git a/source/RobotAPI/libraries/armem/client/Reader.h b/source/RobotAPI/libraries/armem/client/Reader.h index 37bc5fba0..34b3ce320 100644 --- a/source/RobotAPI/libraries/armem/client/Reader.h +++ b/source/RobotAPI/libraries/armem/client/Reader.h @@ -178,6 +178,7 @@ namespace armarx::armem::client */ std::vector<PredictionResult> predict(const std::vector<PredictionRequest>& requests) const; + //TODO(phesch): Fix this interface with the proper type /** * @brief Get the list of prediction engines supported by the memory. * diff --git a/source/RobotAPI/libraries/armem_objects/server/instance/Segment.cpp b/source/RobotAPI/libraries/armem_objects/server/instance/Segment.cpp index 819eb729f..32398f8c4 100644 --- a/source/RobotAPI/libraries/armem_objects/server/instance/Segment.cpp +++ b/source/RobotAPI/libraries/armem_objects/server/instance/Segment.cpp @@ -589,7 +589,7 @@ namespace armarx::armem::server::obj::instance const ObjectID objID = armarx::fromIce<ObjectID>(request.objectID); - const Duration lookbackDuration = armarx::fromIce<Duration>(request.lookback); + const Duration timeWindow = armarx::fromIce<Duration>(request.timeWindow); const wm::Entity* entity = findObjectEntity(objID); if (!entity) @@ -606,7 +606,7 @@ namespace armarx::armem::server::obj::instance std::vector<Eigen::Vector3d> positions; entity->forEachSnapshotInTimeRange( - Time::Now() - lookbackDuration, Time::Invalid(), + Time::Now() - timeWindow, Time::Invalid(), [&timeOrigin, ×tampsSec, &positions](const wm::EntitySnapshot& snapshot) { snapshot.forEachInstance( @@ -632,7 +632,7 @@ namespace armarx::armem::server::obj::instance { std::stringstream sstream; sstream << "No snapshots of the object " << objID << " were found in the last " - << lookbackDuration << ". Cannot make a prediction."; + << timeWindow << ". Cannot make a prediction."; result.errorMessage = sstream.str(); return result; } diff --git a/source/RobotAPI/libraries/armem_objects/server/instance/Visu.cpp b/source/RobotAPI/libraries/armem_objects/server/instance/Visu.cpp index 0c36323b4..131a60865 100644 --- a/source/RobotAPI/libraries/armem_objects/server/instance/Visu.cpp +++ b/source/RobotAPI/libraries/armem_objects/server/instance/Visu.cpp @@ -245,13 +245,11 @@ namespace armarx::armem::server::obj::instance if (showLinearPredictions) { objpose::ObjectPosePredictionRequest request; - request.objectID = armarx::toIce<armarx::data::ObjectID>(id); + toIce(request.objectID, id); request.settings.predictionEngineID = "Linear Position Regression"; - request.lookback = - armarx::toIce<armarx::core::time::dto::Duration>(Duration::Seconds(2)); - request.timestamp = armarx::toIce<armarx::core::time::dto::DateTime>( - // ToDo: Make parametrizable. - Time::Now() + Duration::MilliSeconds(1000)); + toIce(request.timeWindow, Duration::Seconds(2)); + // TODO(phesch): Make parametrizable. + toIce(request.timestamp, Time::Now() + Duration::MilliSeconds(1000)); auto predictionResult = predictor(request); if (predictionResult.success) { -- GitLab