17#include <RobotAPI/libraries/armem_objects/aron/Attachment.aron.generated.h>
27 template <
typename AronClass,
typename ArmemClass>
32 using ArmemClassVector = std::vector<ArmemClass>;
34 ArmemClassVector attachments;
48 AronClass aronAttachment;
49 aronAttachment.fromAron(instance.
data());
71 memoryNameSystem(memoryNameSystem)
80 const std::string prefix = propertyPrefix;
82 def->optional(properties.memoryName, prefix +
"MemoryName");
84 def->optional(properties.coreAttachmentsSegmentName,
85 prefix +
"CoreSegment",
86 "Name of the memory core segment to use for object attachments.");
93 ARMARX_IMPORTANT <<
"Reader: Waiting for memory '" << properties.memoryName <<
"' ...";
96 memoryReader = memoryNameSystem.useReader(properties.memoryName);
97 ARMARX_IMPORTANT <<
"Reader: Connected to memory '" << properties.memoryName <<
"'";
106 std::vector<ObjectAttachment>
129 return getAttachments<::armarx::armem::arondto::attachment::ObjectAttachment,
133 std::vector<ObjectAttachment>
135 const std::string& providerName)
const
157 return getAttachments<::armarx::armem::arondto::attachment::ObjectAttachment,
161 std::vector<ArticulatedObjectAttachment>
184 return getAttachments<::armarx::armem::arondto::attachment::ArticulatedObjectAttachment,
189 std::vector<ArticulatedObjectAttachment>
191 const std::string& providerName)
const
213 return getAttachments<::armarx::armem::arondto::attachment::ArticulatedObjectAttachment,
Reader(armem::client::MemoryNameSystem &memoryNameSystem)
std::vector< ObjectAttachment > queryObjectAttachments(const armem::Time ×tamp) const
std::vector< ArticulatedObjectAttachment > queryArticulatedObjectAttachments(const armem::Time ×tamp) const
void registerPropertyDefinitions(armarx::PropertyDefinitionsPtr &def)
EntitySnapshotT & getFirstSnapshot()
Return the snapshot with the least recent timestamp.
const DataT & data() const
The memory name system (MNS) client.
The query::Builder class provides a fluent-style specification of hierarchical queries.
QueryInput buildQueryInput() const
CoreSegmentSelector & coreSegments()
Start specifying core segments.
CoreSegmentSelector & withName(const std::string &name) override
ProviderSegmentSelector & providerSegments()
Start specifying provider segments.
EntitySelector & all() override
SnapshotSelector & snapshots()
Start specifying entity snapshots.
ProviderSegmentSelector & withName(const std::string &name) override
EntitySelector & entities()
Start specifying entities.
ProviderSegmentSelector & all() override
SnapshotSelector & beforeOrAtTime(Time timestamp)
Indicates that a query to the Memory Name System failed.
Client-side working entity instance.
Client-side working memory.
A base class for aron exceptions.
Brief description of class memory.
#define ARMARX_IMPORTANT
The logging level for always important information, but expected behaviour (in contrast to ARMARX_WAR...
#define ARMARX_ERROR
The logging level for unexpected behaviour, that must be fixed.
#define ARMARX_DEBUG
The logging level for output that is only interesting while debugging.
#define ARMARX_WARNING
The logging level for unexpected behaviour, but not a serious problem.
void fromAron(const arondto::MemoryID &dto, MemoryID &bo)
armarx::core::time::DateTime Time
IceUtil::Handle< class PropertyDefinitionContainer > PropertyDefinitionsPtr
PropertyDefinitions smart pointer type.
ArticulatedObjectAttachment describes a fixed transformation between an agent and an articulated obje...
ObjectAttachment describes a fixed transformation between an agent and an object.
wm::Memory memory
The slice of the memory that matched the query.