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
2 merge requests!157armem/dev => master,!145Feature/armem object memory attachments
This commit is part of merge request !157. Comments created here will be created in the context of that merge request.
......@@ -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
......
......@@ -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
......@@ -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
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