From 30af9a425847f5706ef1915ce3c4cba516f30fca Mon Sep 17 00:00:00 2001 From: Fabian Reister <fabian.reister@kit.edu> Date: Thu, 20 May 2021 10:40:37 +0200 Subject: [PATCH] attachments segment class --- .../libraries/armem_objects/CMakeLists.txt | 6 +++++ .../server/attachments/Segment.cpp | 26 ++++++++----------- .../server/attachments/Segment.h | 9 +++---- 3 files changed, 21 insertions(+), 20 deletions(-) diff --git a/source/RobotAPI/libraries/armem_objects/CMakeLists.txt b/source/RobotAPI/libraries/armem_objects/CMakeLists.txt index 30a1f2ef6..dd799ece0 100644 --- a/source/RobotAPI/libraries/armem_objects/CMakeLists.txt +++ b/source/RobotAPI/libraries/armem_objects/CMakeLists.txt @@ -34,6 +34,9 @@ armarx_add_library( # server/articulated_object/SegmentAdapter.h server/articulated_object_instance/Visu.h + server/attachments/Segment.h + + client/articulated_object/Reader.cpp client/articulated_object/Writer.cpp @@ -55,6 +58,9 @@ armarx_add_library( # server/articulated_object/SegmentAdapter.cpp server/articulated_object_instance/Visu.cpp + server/attachments/Segment.cpp + + client/articulated_object/Reader.h client/articulated_object/Writer.h client/articulated_object/interfaces.h diff --git a/source/RobotAPI/libraries/armem_objects/server/attachments/Segment.cpp b/source/RobotAPI/libraries/armem_objects/server/attachments/Segment.cpp index bfbee9a10..c2b3b77ab 100644 --- a/source/RobotAPI/libraries/armem_objects/server/attachments/Segment.cpp +++ b/source/RobotAPI/libraries/armem_objects/server/attachments/Segment.cpp @@ -5,6 +5,7 @@ #include <ArmarXCore/core/time/TimeUtil.h> #include "ArmarXCore/core/logging/Logging.h" +#include "RobotAPI/libraries/armem/util/util.h" #include "RobotAPI/libraries/aron/common/aron_conversions.h" #include <RobotAPI/libraries/armem/core/aron_conversions.h> @@ -17,7 +18,7 @@ #include <RobotAPI/libraries/armem_objects/aron/Robot.aron.generated.h> #include <RobotAPI/libraries/armem_objects/aron_conversions.h> -#include "RobotAPI/libraries/armem_objects/articulated_object_conversions.h" +#include <RobotAPI/libraries/armem_objects/aron/Attachment.aron.generated.h> namespace armarx::armem::server::obj::attachments @@ -51,37 +52,32 @@ namespace armarx::armem::server::obj::attachments // this->visu = std::make_unique<Visu>(arviz, *this); } - - std::unordered_map<armem::MemoryID, ::armarx::armem::articulated_object::ArticulatedObjectDescription> Segment::getKnownObjectClasses() const + std::vector<armarx::armem::attachments::ObjectAttachment> Segment::getAttachments(const armem::Time& timestamp) const { - std::unordered_map<armem::MemoryID, ::armarx::armem::articulated_object::ArticulatedObjectDescription> objects; + std::vector<armarx::armem::attachments::ObjectAttachment> attachments; for (const auto& [_, provSeg] : iceMemory.workingMemory->getCoreSegment(p.coreClassSegmentName)) { for (const auto& [name, entity] : provSeg.entities()) { const auto& entityInstance = entity.getLatestSnapshot().getInstance(0); - const auto description = articulated_object::convertRobotDescription(entityInstance); + const auto attachment = tryCast<armarx::arondto::attachment::ObjectAttachment>(entityInstance); - if (not description) + if (not attachment) { - ARMARX_WARNING << "Could not convert entity instance to 'RobotDescription'"; + ARMARX_WARNING << "Could not convert entity instance to 'ObjectAttachment'"; continue; } - ARMARX_INFO << "Key is " << armem::MemoryID(entity.id()); - - objects.emplace(armem::MemoryID(entity.id()), *description); + ARMARX_DEBUG << "Key is " << armem::MemoryID(entity.id()); + attachments.push_back(attachment); } } - ARMARX_IMPORTANT << "Number of known articulated object classes: " << objects.size(); - - return objects; + return attachments; } - // void Segment::RemoteGui::setup(const Segment& data) // { // using namespace armarx::RemoteGui::Client; @@ -124,4 +120,4 @@ namespace armarx::armem::server::obj::attachments // } // } -} // namespace armarx::armem::server::obj::articulated_object_class +} // namespace armarx::armem::server::obj::attachments diff --git a/source/RobotAPI/libraries/armem_objects/server/attachments/Segment.h b/source/RobotAPI/libraries/armem_objects/server/attachments/Segment.h index 16faad0bb..e974a36a2 100644 --- a/source/RobotAPI/libraries/armem_objects/server/attachments/Segment.h +++ b/source/RobotAPI/libraries/armem_objects/server/attachments/Segment.h @@ -34,6 +34,7 @@ #include "RobotAPI/components/ArViz/Client/Client.h" #include "RobotAPI/libraries/armem/core/MemoryID.h" +#include "RobotAPI/libraries/armem/core/Time.h" #include "RobotAPI/libraries/armem_objects/types.h" namespace armarx::armem @@ -55,8 +56,6 @@ namespace armarx::armem::server::obj::attachments class Visu; - - class Segment : public armarx::Logging { public: @@ -71,7 +70,7 @@ namespace armarx::armem::server::obj::attachments void init(); - std::vector<Attachments> getAttachments() const; + std::vector<armarx::armem::attachments::ObjectAttachment> getAttachments(const armem::Time& timestamp) const; private: @@ -82,7 +81,7 @@ namespace armarx::armem::server::obj::attachments struct Properties { - std::string coreClassSegmentName = "ArticulatedObjectClass"; + std::string coreClassSegmentName = "Attachments"; int64_t maxHistorySize = -1; }; Properties p; @@ -105,4 +104,4 @@ namespace armarx::armem::server::obj::attachments }; -} // namespace armarx::armem::server::obj::articulated_object_class +} // namespace armarx::armem::server::obj::attachments -- GitLab