From 6e66b3b97d8d6663444349d1b377ae1de71c79f7 Mon Sep 17 00:00:00 2001
From: SebastianEbert <sebastian.ebert@tu-dresden.de>
Date: Fri, 30 Apr 2021 13:01:29 +0200
Subject: [PATCH] added plan only functionality

---
 include/grasp_util.h        |  4 ++--
 src/grasping/grasp_util.cpp | 22 ++++++++++++++++++----
 2 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/include/grasp_util.h b/include/grasp_util.h
index a6545b0..8953a48 100644
--- a/include/grasp_util.h
+++ b/include/grasp_util.h
@@ -76,7 +76,7 @@ public:
      */
     bool pickFromAbove(moveit::planning_interface::MoveGroupInterface &move_group, geometry_msgs::Pose &pick_pose,
                        geometry_msgs::Vector3 dimensions, double open_amount, std::string supporting_surface_id,
-                       std::string object_to_pick_id);
+                       std::string object_to_pick_id, bool plan_only = false);
 
     /**
      * Util method to place an object from above.
@@ -88,7 +88,7 @@ public:
      * @param object_to_place_id ID of the object to place
      */
     bool placeFromAbove(moveit::planning_interface::MoveGroupInterface &move_group, geometry_msgs::Pose &place_pose,
-                        double open_amount, std::string supporting_surface_id, std::string object_to_place_id);
+                        double open_amount, std::string supporting_surface_id, std::string object_to_place_id, bool plan_only = false);
 
 };
 
diff --git a/src/grasping/grasp_util.cpp b/src/grasping/grasp_util.cpp
index 64f79e2..0a86985 100644
--- a/src/grasping/grasp_util.cpp
+++ b/src/grasping/grasp_util.cpp
@@ -75,7 +75,7 @@ GraspUtil::getPickFromAbovePose(geometry_msgs::Pose &object_pose_msg, geometry_m
 bool
 GraspUtil::pickFromAbove(moveit::planning_interface::MoveGroupInterface &move_group, geometry_msgs::Pose &pick_pose,
                          geometry_msgs::Vector3 dimensions,
-                         double open_amount, std::string supporting_surface_id, std::string object_to_pick_id) {
+                         double open_amount, std::string supporting_surface_id, std::string object_to_pick_id, bool plan_only) {
 
     std::vector<moveit_msgs::Grasp> grasps;
     grasps.resize(1);
@@ -112,7 +112,14 @@ GraspUtil::pickFromAbove(moveit::planning_interface::MoveGroupInterface &move_gr
     }
 
     move_group.setSupportSurfaceName(supporting_surface_id);
-    moveit_msgs::MoveItErrorCodes miec = move_group.pick(object_to_pick_id, grasps);
+
+    moveit_msgs::MoveItErrorCodes miec;
+
+    if(plan_only){
+        miec = move_group.pick(object_to_pick_id, grasps, true);
+    }else{
+        miec = move_group.pick(object_to_pick_id, grasps);
+    }
 
     if (miec.val == miec.SUCCESS) {
         return true;
@@ -124,7 +131,7 @@ GraspUtil::pickFromAbove(moveit::planning_interface::MoveGroupInterface &move_gr
 
 bool
 GraspUtil::placeFromAbove(moveit::planning_interface::MoveGroupInterface &move_group, geometry_msgs::Pose &place_pose,
-                          double open_amount, std::string supporting_surface_id, std::string object_to_place_id) {
+                          double open_amount, std::string supporting_surface_id, std::string object_to_place_id, bool plan_only) {
 
     std::vector<moveit_msgs::PlaceLocation> place_location;
     place_location.resize(1);
@@ -147,7 +154,14 @@ GraspUtil::placeFromAbove(moveit::planning_interface::MoveGroupInterface &move_g
 
     setupOpenGripper(place_location[0].post_place_posture, open_amount);
     move_group.setSupportSurfaceName(supporting_surface_id);
-    moveit_msgs::MoveItErrorCodes miec = move_group.place(object_to_place_id, place_location);
+
+    moveit_msgs::MoveItErrorCodes miec;
+
+    if(plan_only){
+        miec = move_group.place(object_to_place_id, place_location, true);
+    }else{
+        miec = move_group.place(object_to_place_id, place_location);
+    }
 
     if (miec.val == miec.SUCCESS) {
         return true;
-- 
GitLab