96 return "SimpleRobotPlacement";
119 GraspingPlacementList
121 const Ice::Current&
c = Ice::emptyCurrent)
override;
134 GraspingPlacementList
136 const FramedPoseBasePtr& target,
137 const PlanarObstacleList& planarObstacles,
139 const Ice::Current&
c = Ice::emptyCurrent)
override;
142 GraspingPlacementList
144 const Ice::Current&
c = Ice::emptyCurrent)
override;
183 VirtualRobot::WorkspaceRepresentationPtr
187 memoryx::WorkingMemoryInterfacePrx
wm;
188 memoryx::WorkingMemoryEntitySegmentBasePrx objectInstances;
189 memoryx::AgentInstancesSegmentBasePrx agentInstances;
190 memoryx::PriorKnowledgeInterfacePrx prior;
191 memoryx::PersistentObjectClassSegmentBasePrx objectClasses;
195 std::string robotName;
196 std::string robotFilePath;
197 std::string colModel;
198 std::vector<std::string> workspaceFilePaths;
199 std::vector<VirtualRobot::WorkspaceRepresentationPtr> workspaces;
200 std::string drawRobotId;
201 std::string visuLayerName;
202 VirtualRobot::WorkspaceGridPtr visualizedGrid;
205 memoryx::EntityDrawerInterfacePrx entityDrawerPrx;
206 RobotIKInterfacePrx rik;
210 VirtualRobot::SceneObjectSetPtr sceneObjects;
215 std::vector<CSpaceVisualizerTaskHandle> planningTasks;
218 VirtualRobot::WorkspaceGridPtr createWorkspaceGrid(GeneratedGrasp g,
219 const Eigen::Matrix4f& globalObjectPose);
220 void drawWorkspaceGrid(VirtualRobot::WorkspaceGridPtr reachGrid);
222 bool getSuitablePosition(
const GeneratedGrasp& g,
223 VirtualRobot::WorkspaceGridPtr reachGrid,
224 const Eigen::Matrix4f& globalGraspPose,
227 float& storeGlobalYaw,
229 const VirtualRobot::MathTools::ConvexHull2DPtr& placementArea =
230 VirtualRobot::MathTools::ConvexHull2DPtr());
232 std::vector<RobotPlacement>
233 getSuitablePositions(
const GeneratedGrasp& g,
234 VirtualRobot::WorkspaceGridPtr reachGrid,
235 const Eigen::Matrix4f& globalGraspPose,
236 float requiredReachabilityFraction,
239 const VirtualRobot::MathTools::ConvexHull2DPtr& placementArea =
240 VirtualRobot::MathTools::ConvexHull2DPtr());
244 void loadWorkspaces();
246 bool hasWorkspace(std::string tcp);
248 GeneratedGraspList filterGrasps(
const GeneratedGraspList grasps);
250 float getPlatformRotation(
const Eigen::Matrix4f& frameGlobal,
251 const Eigen::Matrix4f& globalTarget);
253 void updateRobot(std::string
id, Eigen::Matrix4f globalPose, DrawColor color);
254 void drawNewRobot(Eigen::Matrix4f globalPose);
255 void drawWorkspaceGrid(const ::armarx::GeneratedGrasp&,
256 const std::string& objectInstanceEntityId);
GraspingPlacementList generateRobotPlacementsForGraspPose(const std::string &endEffectorName, const FramedPoseBasePtr &target, const PlanarObstacleList &planarObstacles, const ConvexHull &placementArea, const Ice::Current &c=Ice::emptyCurrent) override
Computes a list of candidate robot placements for a grasp pose.