00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #ifndef _GRASP_EXECUTOR_WITH_APPROACH_
00037 #define _GRASP_EXECUTOR_WITH_APPROACH_
00038
00039 #include "object_manipulator/grasp_execution/grasp_executor.h"
00040
00041 namespace object_manipulator {
00042
00044
00061 class GraspExecutorWithApproach : public GraspExecutor
00062 {
00063 protected:
00065 trajectory_msgs::JointTrajectory interpolated_grasp_trajectory_;
00066
00068 object_manipulation_msgs::GraspResult
00069 getInterpolatedIKForGrasp(const object_manipulation_msgs::PickupGoal &pickup_goal,
00070 const object_manipulation_msgs::Grasp &grasp,
00071 trajectory_msgs::JointTrajectory &grasp_trajectory);
00072
00074 virtual motion_planning_msgs::OrderedCollisionOperations
00075 collisionOperationsForGrasp(const object_manipulation_msgs::PickupGoal &pickup_goal);
00076
00078 virtual std::vector<motion_planning_msgs::LinkPadding>
00079 linkPaddingForGrasp(const object_manipulation_msgs::PickupGoal &pickup_goal);
00080
00082 virtual object_manipulation_msgs::GraspResult
00083 prepareGrasp(const object_manipulation_msgs::PickupGoal &pickup_goal,
00084 const object_manipulation_msgs::Grasp &grasp);
00085
00087 virtual object_manipulation_msgs::GraspResult
00088 executeGrasp(const object_manipulation_msgs::PickupGoal &pickup_goal,
00089 const object_manipulation_msgs::Grasp &grasp);
00090
00091 public:
00093 GraspExecutorWithApproach(GraspMarkerPublisher *pub) : GraspExecutor(pub) {}
00094
00096 virtual object_manipulation_msgs::GraspResult
00097 retreat(const object_manipulation_msgs::PickupGoal &pickup_goal);
00098 };
00099
00100 }
00101
00102 #endif