34#include <MemoryX/interface/components/WorkingMemoryInterface.h>
35#include <MemoryX/interface/observers/ObjectMemoryObserverInterface.h>
43CheckLocalizationResult::SubClassRegistry
53 memoryx::ObjectMemoryObserverInterfacePrx objectMemoryObserver = getObjectMemoryObserver();
55 if (in.getObjects().empty())
61 bool all_found =
true;
62 for (std::string& objectName : in.getObjects())
65 if (objectName.find(
"/") != std::string::npos)
74 for (
const auto& p : objectPoses)
88 <<
"' looks like an armarx::ObjectID, "
89 <<
"but no such object was found in ObjectPoseStorage (offering "
90 << objectPoses.size() <<
" objects)."
91 <<
"Trying to interpret it as memory instance ID.";
96 std::vector<ChannelRefBasePtr> objectInstanceList =
97 objectMemoryObserver->getObjectInstancesByClass(objectName);
99 for (ChannelRefBasePtr objectInstanceChannel : objectInstanceList)
102 ChannelRefPtr channelRef = ChannelRefPtr::dynamicCast(objectInstanceChannel);
103 if (!channelRef || !channelRef->hasDatafield(
"pose"))
111 if (localizationTimestamp->toTime() > startTime->toTime())
A known object ID of the form "Dataset/ClassName" or "Dataset/ClassName/InstanceName".
static SubClassRegistry Registry
CheckLocalizationResult(const XMLStateConstructorParams &stateData)
static XMLStateFactoryBasePtr CreateInstance(XMLStateConstructorParams stateData)
Implements a Variant type for timestamps.
#define ARMARX_IMPORTANT
The logging level for always important information, but expected behaviour (in contrast to ARMARX_WAR...
#define ARMARX_WARNING
The logging level for unexpected behaviour, but not a serious problem.
std::vector< ObjectPose > ObjectPoseSeq
void fromIce(const Box &box, simox::OrientedBox< float > &oobb)
This file offers overloads of toIce() and fromIce() functions for STL container types.
IceInternal::Handle< ChannelRef > ChannelRefPtr
IceInternal::Handle< XMLStateFactoryBase > XMLStateFactoryBasePtr
IceInternal::Handle< TimestampVariant > TimestampVariantPtr