28 #include <VirtualRobot/CollisionDetection/CDManager.h>
29 #include <VirtualRobot/SceneObjectSet.h>
30 #include <VirtualRobot/Workspace/Manipulability.h>
31 #include <VirtualRobot/Workspace/Reachability.h>
32 #include <VirtualRobot/Workspace/WorkspaceGrid.h>
37 #include <RobotAPI/interface/core/RobotState.h>
40 #include <RobotComponents/interface/components/GraspingManager/RobotPlacementInterface.h>
41 #include <RobotComponents/interface/components/RobotIK.h>
44 #include <MemoryX/interface/components/WorkingMemoryInterface.h>
45 #include <MemoryX/interface/gui/EntityDrawerInterface.h>
46 #include <MemoryX/interface/memorytypes/MemorySegments.h>
49 #include <Eigen/Geometry>
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,
220 void drawWorkspaceGrid(VirtualRobot::WorkspaceGridPtr reachGrid);
222 bool getSuitablePosition(
const GeneratedGrasp& g,
223 VirtualRobot::WorkspaceGridPtr reachGrid,
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,
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);
253 void updateRobot(std::string
id,
Eigen::Matrix4f globalPose, DrawColor color);
255 void drawWorkspaceGrid(const ::armarx::GeneratedGrasp&,
256 const std::string& objectInstanceEntityId);