From 28c138f65e6d3ec0b781223f11cb23e1eb62c72c Mon Sep 17 00:00:00 2001 From: Fabian Reister <fabian.reister@kit.edu> Date: Fri, 20 Sep 2024 08:09:06 +0200 Subject: [PATCH] ObjectMemory: reloadKnownObjectClasses() --- .../armem/server/ObjectMemory/ObjectMemory.cpp | 8 ++++++++ .../armem/server/ObjectMemory/ObjectMemory.h | 2 ++ .../armem/server/ObjectMemoryInterface.ice | 1 + .../armem_objects/server/class/Segment.cpp | 17 ++++++++++++++++- .../armem_objects/server/class/Segment.h | 2 ++ 5 files changed, 29 insertions(+), 1 deletion(-) diff --git a/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp b/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp index 7403e8331..deeec0ebb 100644 --- a/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp +++ b/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp @@ -350,4 +350,12 @@ namespace armarx::armem::server::obj } } + void ObjectMemory::reloadKnownObjectClasses(const Ice::Current& current) + { + ARMARX_INFO << "Reloading object classes ..."; + classSegment.reloadObjectClassesByObjectFinder(); + ARMARX_INFO << "Reloaded object classes."; + } + + } diff --git a/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.h b/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.h index 9a97c2374..ec78eb3fa 100644 --- a/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.h +++ b/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.h @@ -110,6 +110,8 @@ namespace armarx::armem::server::obj void createRemoteGuiTab(); void RemoteGui_update() override; + // Updates the list of known classes and generates a new snapshot in the memory + void reloadKnownObjectClasses(const Ice::Current& current) override; private: diff --git a/source/RobotAPI/interface/armem/server/ObjectMemoryInterface.ice b/source/RobotAPI/interface/armem/server/ObjectMemoryInterface.ice index fdae53a72..fa9d74f16 100644 --- a/source/RobotAPI/interface/armem/server/ObjectMemoryInterface.ice +++ b/source/RobotAPI/interface/armem/server/ObjectMemoryInterface.ice @@ -54,6 +54,7 @@ module armarx , FamiliarObjectInstanceSegmentInterface { + void reloadKnownObjectClasses(); }; }; diff --git a/source/RobotAPI/libraries/armem_objects/server/class/Segment.cpp b/source/RobotAPI/libraries/armem_objects/server/class/Segment.cpp index a9b406a13..c25da26b1 100644 --- a/source/RobotAPI/libraries/armem_objects/server/class/Segment.cpp +++ b/source/RobotAPI/libraries/armem_objects/server/class/Segment.cpp @@ -56,11 +56,26 @@ namespace armarx::armem::server::obj::clazz if (p.loadFromObjectsPackage) { - ARMARX_VERBOSE << "Loading objects from package"; + ARMARX_VERBOSE << "Loading objects from package `" << p.objectsPackage << "`."; loadByObjectFinder(p.objectsPackage); } } + void + Segment::reloadObjectClassesByObjectFinder() + { + if (p.loadFromObjectsPackage) + { + ARMARX_VERBOSE << "Loading objects from package `" << p.objectsPackage << "`."; + loadByObjectFinder(p.objectsPackage); + } + else + { + ARMARX_INFO << "Loading object from package in `reloadObjectClassesByObjectFinder()` " + "is disabled via property. No object classes will be reloaded!"; + } + } + void Segment::connect(viz::Client arviz) { diff --git a/source/RobotAPI/libraries/armem_objects/server/class/Segment.h b/source/RobotAPI/libraries/armem_objects/server/class/Segment.h index ba42e0072..b2da5cd1b 100644 --- a/source/RobotAPI/libraries/armem_objects/server/class/Segment.h +++ b/source/RobotAPI/libraries/armem_objects/server/class/Segment.h @@ -38,6 +38,8 @@ namespace armarx::armem::server::obj::clazz void loadByObjectFinder(const ObjectFinder& finder); void loadByObjectFinder(); + void reloadObjectClassesByObjectFinder(); + void visualizeClass(const MemoryID& entityID, bool showAABB = true, bool showOOBB = true); -- GitLab