29 #include <RobotAPI/interface/core/RobotState.h>
33 #include <MemoryX/interface/components/GraphNodePoseResolverInterface.h>
48 defineOptionalProperty<std::string>(
"WorkingMemoryName",
"WorkingMemory",
"Name of the WorkingMemory that should be used");
49 defineOptionalProperty<std::string>(
"RobotStateComponentName",
"RobotStateComponent",
"Name of the RobotStateComponent that should be used");
60 virtual public GraphNodePoseResolverInterface,
70 return "GraphNodePoseResolver";
82 armarx::FramedPoseBasePtr
resolveToGlobalPose(
const GraphNodeBasePtr& node, const ::Ice::Current& = Ice::emptyCurrent)
override;
85 std::string
getNearestNodeIdToPose(
const std::string& sceneName,
const std::string& nodeParentName,
const armarx::FramedPoseBasePtr& pose, const ::Ice::Current& = Ice::emptyCurrent)
override;
86 GraphNodeBasePtr
getNearestNodeToPose(
const std::string& sceneName,
const std::string& nodeParentName,
const armarx::FramedPoseBasePtr& pose, const ::Ice::Current& = Ice::emptyCurrent)
override;
90 void forceRefetch(
const std::string& nodeId, const ::Ice::Current& = Ice::emptyCurrent)
override;
117 struct CachedNodeInfo
121 std::vector<std::string> parents;
124 CachedNodeInfo getCacheEntry(
const std::string& nodeId);
125 GraphNodeBasePtr getNearestNodeToPoseImpl(
const std::string& sceneName,
const std::string& nodeParentName,
const Eigen::Matrix4f& pose,
126 bool ignoreOrientation =
false,
bool ignoreParent =
false);
128 memoryx::PriorKnowledgeInterfacePrx prior;
129 memoryx::WorkingMemoryInterfacePrx wm;
132 memoryx::ObjectInstanceMemorySegmentBasePrx objectInstances;
133 memoryx::GraphMemorySegmentBasePrx graphSegment;
135 std::map<std::string, std::map<std::string, armarx::FramedPositionPtr>> relativePlacesettingPositions;
136 std::map<std::string, CachedNodeInfo> nodeInfoCache;
137 std::map<std::string, GraphNodeBaseList> sceneNodesCache;
139 std::recursive_mutex cacheMutex;