Skip to content
Snippets Groups Projects
Commit 30af9a42 authored by Fabian Reister's avatar Fabian Reister
Browse files

attachments segment class

parent abd5e8f2
No related branches found
No related tags found
No related merge requests found
...@@ -34,6 +34,9 @@ armarx_add_library( ...@@ -34,6 +34,9 @@ armarx_add_library(
# server/articulated_object/SegmentAdapter.h # server/articulated_object/SegmentAdapter.h
server/articulated_object_instance/Visu.h server/articulated_object_instance/Visu.h
server/attachments/Segment.h
client/articulated_object/Reader.cpp client/articulated_object/Reader.cpp
client/articulated_object/Writer.cpp client/articulated_object/Writer.cpp
...@@ -55,6 +58,9 @@ armarx_add_library( ...@@ -55,6 +58,9 @@ armarx_add_library(
# server/articulated_object/SegmentAdapter.cpp # server/articulated_object/SegmentAdapter.cpp
server/articulated_object_instance/Visu.cpp server/articulated_object_instance/Visu.cpp
server/attachments/Segment.cpp
client/articulated_object/Reader.h client/articulated_object/Reader.h
client/articulated_object/Writer.h client/articulated_object/Writer.h
client/articulated_object/interfaces.h client/articulated_object/interfaces.h
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
#include <ArmarXCore/core/time/TimeUtil.h> #include <ArmarXCore/core/time/TimeUtil.h>
#include "ArmarXCore/core/logging/Logging.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/aron/common/aron_conversions.h"
#include <RobotAPI/libraries/armem/core/aron_conversions.h> #include <RobotAPI/libraries/armem/core/aron_conversions.h>
...@@ -17,7 +18,7 @@ ...@@ -17,7 +18,7 @@
#include <RobotAPI/libraries/armem_objects/aron/Robot.aron.generated.h> #include <RobotAPI/libraries/armem_objects/aron/Robot.aron.generated.h>
#include <RobotAPI/libraries/armem_objects/aron_conversions.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 namespace armarx::armem::server::obj::attachments
...@@ -51,37 +52,32 @@ namespace armarx::armem::server::obj::attachments ...@@ -51,37 +52,32 @@ namespace armarx::armem::server::obj::attachments
// this->visu = std::make_unique<Visu>(arviz, *this); // this->visu = std::make_unique<Visu>(arviz, *this);
} }
std::vector<armarx::armem::attachments::ObjectAttachment> Segment::getAttachments(const armem::Time& timestamp) const
std::unordered_map<armem::MemoryID, ::armarx::armem::articulated_object::ArticulatedObjectDescription> Segment::getKnownObjectClasses() 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& [_, provSeg] : iceMemory.workingMemory->getCoreSegment(p.coreClassSegmentName))
{ {
for (const auto& [name, entity] : provSeg.entities()) for (const auto& [name, entity] : provSeg.entities())
{ {
const auto& entityInstance = entity.getLatestSnapshot().getInstance(0); 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; continue;
} }
ARMARX_INFO << "Key is " << armem::MemoryID(entity.id()); ARMARX_DEBUG << "Key is " << armem::MemoryID(entity.id());
attachments.push_back(attachment);
objects.emplace(armem::MemoryID(entity.id()), *description);
} }
} }
ARMARX_IMPORTANT << "Number of known articulated object classes: " << objects.size(); return attachments;
return objects;
} }
// void Segment::RemoteGui::setup(const Segment& data) // void Segment::RemoteGui::setup(const Segment& data)
// { // {
// using namespace armarx::RemoteGui::Client; // using namespace armarx::RemoteGui::Client;
...@@ -124,4 +120,4 @@ namespace armarx::armem::server::obj::attachments ...@@ -124,4 +120,4 @@ namespace armarx::armem::server::obj::attachments
// } // }
// } // }
} // namespace armarx::armem::server::obj::articulated_object_class } // namespace armarx::armem::server::obj::attachments
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
#include "RobotAPI/components/ArViz/Client/Client.h" #include "RobotAPI/components/ArViz/Client/Client.h"
#include "RobotAPI/libraries/armem/core/MemoryID.h" #include "RobotAPI/libraries/armem/core/MemoryID.h"
#include "RobotAPI/libraries/armem/core/Time.h"
#include "RobotAPI/libraries/armem_objects/types.h" #include "RobotAPI/libraries/armem_objects/types.h"
namespace armarx::armem namespace armarx::armem
...@@ -55,8 +56,6 @@ namespace armarx::armem::server::obj::attachments ...@@ -55,8 +56,6 @@ namespace armarx::armem::server::obj::attachments
class Visu; class Visu;
class Segment : public armarx::Logging class Segment : public armarx::Logging
{ {
public: public:
...@@ -71,7 +70,7 @@ namespace armarx::armem::server::obj::attachments ...@@ -71,7 +70,7 @@ namespace armarx::armem::server::obj::attachments
void init(); void init();
std::vector<Attachments> getAttachments() const; std::vector<armarx::armem::attachments::ObjectAttachment> getAttachments(const armem::Time& timestamp) const;
private: private:
...@@ -82,7 +81,7 @@ namespace armarx::armem::server::obj::attachments ...@@ -82,7 +81,7 @@ namespace armarx::armem::server::obj::attachments
struct Properties struct Properties
{ {
std::string coreClassSegmentName = "ArticulatedObjectClass"; std::string coreClassSegmentName = "Attachments";
int64_t maxHistorySize = -1; int64_t maxHistorySize = -1;
}; };
Properties p; Properties p;
...@@ -105,4 +104,4 @@ namespace armarx::armem::server::obj::attachments ...@@ -105,4 +104,4 @@ namespace armarx::armem::server::obj::attachments
}; };
} // namespace armarx::armem::server::obj::articulated_object_class } // namespace armarx::armem::server::obj::attachments
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment