31 #include <RobotAPI/interface/core/RobotState.h>
37 #include <MemoryX/interface/components/GraphNodePoseResolverInterface.h>
49 defineOptionalProperty<std::string>(
"WorkingMemoryName",
51 "Name of the WorkingMemory that should be used");
52 defineOptionalProperty<std::string>(
53 "RobotStateComponentName",
54 "RobotStateComponent",
55 "Name of the RobotStateComponent that should be used");
66 virtual public GraphNodePoseResolverInterface,
78 return "GraphNodePoseResolver";
91 armarx::FramedPoseBasePtr
93 const ::Ice::Current& = Ice::emptyCurrent)
override;
95 const std::string& nodeParentName,
98 const ::Ice::Current& = Ice::emptyCurrent)
override;
101 const std::string& nodeParentName,
104 const ::Ice::Current& = Ice::emptyCurrent)
override;
106 const std::string& nodeParentName,
107 const armarx::FramedPoseBasePtr& pose,
108 const ::Ice::Current& = Ice::emptyCurrent)
override;
110 const std::string& nodeParentName,
111 const armarx::FramedPoseBasePtr& pose,
112 const ::Ice::Current& = Ice::emptyCurrent)
override;
115 const ::Ice::Current& = Ice::emptyCurrent)
override;
118 const ::Ice::Current& = Ice::emptyCurrent)
override;
121 const ::Ice::Current& = Ice::emptyCurrent)
override;
146 const GraphNodeBasePtr& node);
149 struct CachedNodeInfo
153 std::vector<std::string> parents;
156 CachedNodeInfo getCacheEntry(
const std::string& nodeId);
157 GraphNodeBasePtr getNearestNodeToPoseImpl(
const std::string& sceneName,
158 const std::string& nodeParentName,
160 bool ignoreOrientation =
false,
161 bool ignoreParent =
false);
163 memoryx::PriorKnowledgeInterfacePrx prior;
164 memoryx::WorkingMemoryInterfacePrx wm;
167 memoryx::ObjectInstanceMemorySegmentBasePrx objectInstances;
168 memoryx::GraphMemorySegmentBasePrx graphSegment;
170 std::map<std::string, std::map<std::string, armarx::FramedPositionPtr>>
171 relativePlacesettingPositions;
172 std::map<std::string, CachedNodeInfo> nodeInfoCache;
173 std::map<std::string, GraphNodeBaseList> sceneNodesCache;
175 std::recursive_mutex cacheMutex;