From 6885f92f6c92f1c8ae263ef2be46aed49b286440 Mon Sep 17 00:00:00 2001 From: SebastianEbert <sebastian.ebert@tu-dresden.de> Date: Tue, 12 Apr 2022 10:34:25 +0200 Subject: [PATCH] changes from merge-request --- include/grasp_util.h | 43 +++++++++++++++++------------------ src/grasping/grasp_util.cpp | 24 ++++++++----------- test/grasp_from_side_test.cpp | 36 +++++++++++++++++++++++++---- test/side_grasping.test | 4 ++-- 4 files changed, 65 insertions(+), 42 deletions(-) diff --git a/include/grasp_util.h b/include/grasp_util.h index 33793a2..325a826 100644 --- a/include/grasp_util.h +++ b/include/grasp_util.h @@ -72,8 +72,7 @@ public: * @return */ geometry_msgs::Pose - getPickFromMinusXSidePose(geometry_msgs::Pose &object_pose_msg, geometry_msgs::Quaternion gripper_orientation_msg, - tf2::Quaternion object_orientation = {0, 0, 0, 1}, double reach = FRANKA_GRIPPER_FINGERTIP_SIZE / 2); + getPickFromBack(geometry_msgs::Pose &object_pose_msg, geometry_msgs::Quaternion gripper_orientation_msg, double reach = FRANKA_GRIPPER_FINGERTIP_SIZE / 2); /** * @@ -84,8 +83,7 @@ public: * @return */ geometry_msgs::Pose - getPickFromPlusXSidePose(geometry_msgs::Pose &object_pose_msg, geometry_msgs::Quaternion gripper_orientation_msg, - tf2::Quaternion object_orientation = {0, 0, 0, 1}, double reach = FRANKA_GRIPPER_FINGERTIP_SIZE / 2); + getPickFromFront(geometry_msgs::Pose &object_pose_msg, geometry_msgs::Quaternion gripper_orientation_msg, double reach = FRANKA_GRIPPER_FINGERTIP_SIZE / 2); /** * * @param object_pose_msg @@ -95,8 +93,7 @@ public: * @return */ geometry_msgs::Pose - getPickFromMinusYSidePose(geometry_msgs::Pose &object_pose_msg, geometry_msgs::Quaternion gripper_orientation_msg, - tf2::Quaternion object_orientation = {0, 0, 0, 1}, double reach = FRANKA_GRIPPER_FINGERTIP_SIZE / 2); + getPickFromLeft(geometry_msgs::Pose &object_pose_msg, geometry_msgs::Quaternion gripper_orientation_msg, double reach = FRANKA_GRIPPER_FINGERTIP_SIZE / 2); /** * @@ -107,23 +104,8 @@ public: * @return */ geometry_msgs::Pose - getPickFromPlusYSidePose(geometry_msgs::Pose &object_pose_msg, geometry_msgs::Quaternion gripper_orientation_msg, - tf2::Quaternion object_orientation = {0, 0, 0, 1}, double reach = FRANKA_GRIPPER_FINGERTIP_SIZE / 2); + getPickFromRight(geometry_msgs::Pose &object_pose_msg, geometry_msgs::Quaternion gripper_orientation_msg, double reach = FRANKA_GRIPPER_FINGERTIP_SIZE / 2); - /** - * - * @param object_to_pick_pose - * @param gripper_orientation - * @param approach_orientation - * @param y_distance_diff - * @param x_distance_diff - * @param object_orientation - * @param reach - * @return - */ - geometry_msgs::Pose - getPickFromSidePose(geometry_msgs::Pose &object_to_pick_pose, geometry_msgs::Quaternion gripper_orientation, tf2::Quaternion approach_orientation, float y_distance_diff, float x_distance_diff, - tf2::Quaternion object_orientation = {0, 0, 0, 1}, double reach = FRANKA_GRIPPER_FINGERTIP_SIZE / 2); /** * Util method to pick an object from above. * @param move_group an initialized MoveGroupInterface instance @@ -178,6 +160,23 @@ public: */ bool placeFromSide(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, bool plan_only = false); + +private: + + /** + * + * @param object_to_pick_pose + * @param gripper_orientation + * @param approach_orientation + * @param y_distance_diff + * @param x_distance_diff + * @param object_orientation + * @param reach + * @return + */ + geometry_msgs::Pose + getPickFromSidePose(geometry_msgs::Pose &object_to_pick_pose, geometry_msgs::Quaternion gripper_orientation, + tf2::Quaternion approach_orientation, float y_distance_diff, float x_distance_diff, double reach = FRANKA_GRIPPER_FINGERTIP_SIZE / 2); }; #endif //PANDA_GRASPING_GRASP_UTIL_H diff --git a/src/grasping/grasp_util.cpp b/src/grasping/grasp_util.cpp index e1973ec..7d99245 100644 --- a/src/grasping/grasp_util.cpp +++ b/src/grasping/grasp_util.cpp @@ -29,8 +29,7 @@ void GraspUtil::setupClosedGripper(trajectory_msgs::JointTrajectory &posture, do } geometry_msgs::Pose -GraspUtil::getPickFromMinusXSidePose(geometry_msgs::Pose &object_pose_msg, geometry_msgs::Quaternion gripper_orientation_msg, - tf2::Quaternion object_orientation, double reach){ +GraspUtil::getPickFromBack(geometry_msgs::Pose &object_pose_msg, geometry_msgs::Quaternion gripper_orientation_msg, double reach){ double approach_roll, approach_pitch, approach_yaw; approach_roll = -M_PI_2; @@ -40,12 +39,11 @@ GraspUtil::getPickFromMinusXSidePose(geometry_msgs::Pose &object_pose_msg, geome approach_orientation.setRPY(approach_roll, approach_pitch, approach_yaw); return getPickFromSidePose(object_pose_msg, gripper_orientation_msg, - approach_orientation, 0, -0.1, object_orientation, reach); + approach_orientation, 0, -0.1, reach); } geometry_msgs::Pose -GraspUtil::getPickFromPlusXSidePose(geometry_msgs::Pose &object_pose_msg, geometry_msgs::Quaternion gripper_orientation_msg, - tf2::Quaternion object_orientation, double reach){ +GraspUtil::getPickFromFront(geometry_msgs::Pose &object_pose_msg, geometry_msgs::Quaternion gripper_orientation_msg, double reach){ double approach_roll, approach_pitch, approach_yaw; approach_roll = M_PI_2; @@ -55,12 +53,11 @@ GraspUtil::getPickFromPlusXSidePose(geometry_msgs::Pose &object_pose_msg, geomet approach_orientation.setRPY(approach_roll, approach_pitch, approach_yaw); return getPickFromSidePose(object_pose_msg, gripper_orientation_msg, - approach_orientation, 0, 0.1, object_orientation, reach); + approach_orientation, 0, 0.1, reach); } geometry_msgs::Pose -GraspUtil::getPickFromMinusYSidePose(geometry_msgs::Pose &object_pose_msg, geometry_msgs::Quaternion gripper_orientation_msg, - tf2::Quaternion object_orientation, double reach){ +GraspUtil::getPickFromLeft(geometry_msgs::Pose &object_pose_msg, geometry_msgs::Quaternion gripper_orientation_msg, double reach){ double approach_roll, approach_pitch, approach_yaw; approach_roll = M_PI_2; @@ -70,12 +67,11 @@ GraspUtil::getPickFromMinusYSidePose(geometry_msgs::Pose &object_pose_msg, geome approach_orientation.setRPY(approach_roll, approach_pitch, approach_yaw); return getPickFromSidePose(object_pose_msg, gripper_orientation_msg, - approach_orientation, -0.1, 0, object_orientation, reach); + approach_orientation, -0.1, 0, reach); } geometry_msgs::Pose -GraspUtil::getPickFromPlusYSidePose(geometry_msgs::Pose &object_pose_msg, geometry_msgs::Quaternion gripper_orientation_msg, - tf2::Quaternion object_orientation, double reach){ +GraspUtil::getPickFromRight(geometry_msgs::Pose &object_pose_msg, geometry_msgs::Quaternion gripper_orientation_msg, double reach){ double approach_roll, approach_pitch, approach_yaw; approach_roll = -M_PI_2; @@ -85,15 +81,15 @@ GraspUtil::getPickFromPlusYSidePose(geometry_msgs::Pose &object_pose_msg, geomet approach_orientation.setRPY(approach_roll, approach_pitch, approach_yaw); return getPickFromSidePose(object_pose_msg, gripper_orientation_msg, - approach_orientation, 0.1, 0, object_orientation, reach); + approach_orientation, 0.1, 0, reach); } geometry_msgs::Pose GraspUtil::getPickFromSidePose(geometry_msgs::Pose &object_pose_msg, geometry_msgs::Quaternion gripper_orientation_msg, - tf2::Quaternion approach_orientation, float y_distance_diff, float x_distance_diff, tf2::Quaternion object_orientation, - double reach){ + tf2::Quaternion approach_orientation, float y_distance_diff, float x_distance_diff, double reach){ // object orientation + tf2::Quaternion object_orientation; tf2::fromMsg(object_pose_msg.orientation, object_orientation); // gripper orientation diff --git a/test/grasp_from_side_test.cpp b/test/grasp_from_side_test.cpp index 03f44e0..2fcda0f 100644 --- a/test/grasp_from_side_test.cpp +++ b/test/grasp_from_side_test.cpp @@ -138,9 +138,16 @@ TEST_F(Grasping, SIDE_GRASPING_1) { place_table_pose.position.z = 0.2; place_table_pose.orientation.w = 1.0; + /* obj_pose.position.x = 0.5; obj_pose.position.y = -0.5; obj_pose.position.z = 0.5; + obj_pose.orientation.w = 1.0; + */ + + obj_pose.position.x = 0; + obj_pose.position.y = 0; + obj_pose.position.z = 0; obj_pose.orientation.w = 1.0; place_pose.orientation = tf2::toMsg(place_orientation); @@ -150,7 +157,7 @@ TEST_F(Grasping, SIDE_GRASPING_1) { geometry_msgs::Vector3 approach_direction; approach_direction.x = 1; - geometry_msgs::Pose pick_pose = grasp_util.getPickFromMinusXSidePose(obj_pose, tf2::toMsg(gripper_orientation)); + geometry_msgs::Pose pick_pose = grasp_util.getPickFromBack(obj_pose, tf2::toMsg(gripper_orientation)); doTest(pick_pose, pick_table_pose, place_table_pose, obj_pose, place_pose, approach_direction); } @@ -169,9 +176,16 @@ TEST_F(Grasping, SIDE_GRASPING_2) { place_table_pose.position.z = 0.2; place_table_pose.orientation.w = 1.0; + /* obj_pose.position.x = -0.5; obj_pose.position.y = -0.5; obj_pose.position.z = 0.5; + obj_pose.orientation.w = 1.0; + */ + + obj_pose.position.x = 0; + obj_pose.position.y = 0; + obj_pose.position.z = 0; obj_pose.orientation.w = 1.0; place_pose.orientation = tf2::toMsg(place_orientation); @@ -181,7 +195,7 @@ TEST_F(Grasping, SIDE_GRASPING_2) { geometry_msgs::Vector3 approach_direction; approach_direction.x = -1; - geometry_msgs::Pose pick_pose = grasp_util.getPickFromPlusXSidePose(obj_pose, tf2::toMsg(gripper_orientation)); + geometry_msgs::Pose pick_pose = grasp_util.getPickFromFront(obj_pose, tf2::toMsg(gripper_orientation)); doTest(pick_pose, pick_table_pose, place_table_pose, obj_pose, place_pose, approach_direction); } @@ -200,9 +214,16 @@ TEST_F(Grasping, SIDE_GRASPING_3) { place_table_pose.position.z = 0.2; place_table_pose.orientation.w = 1.0; + /* obj_pose.position.x = 0.5; obj_pose.position.y = 0.5; obj_pose.position.z = 0.5; + obj_pose.orientation.w = 1.0; + */ + + obj_pose.position.x = 0; + obj_pose.position.y = 0; + obj_pose.position.z = 0; obj_pose.orientation.w = 1.0; place_pose.orientation = tf2::toMsg(place_orientation); @@ -212,7 +233,7 @@ TEST_F(Grasping, SIDE_GRASPING_3) { geometry_msgs::Vector3 approach_direction; approach_direction.y = +1; - geometry_msgs::Pose pick_pose = grasp_util.getPickFromMinusYSidePose(obj_pose, tf2::toMsg(gripper_orientation)); + geometry_msgs::Pose pick_pose = grasp_util.getPickFromLeft(obj_pose, tf2::toMsg(gripper_orientation)); doTest(pick_pose, pick_table_pose, place_table_pose, obj_pose, place_pose, approach_direction); } @@ -231,9 +252,16 @@ TEST_F(Grasping, SIDE_GRASPING_4) { place_table_pose.position.z = 0.2; place_table_pose.orientation.w = 1.0; + /* obj_pose.position.x = 0.5; obj_pose.position.y = -0.5; obj_pose.position.z = 0.5; + obj_pose.orientation.w = 1.0; + */ + + obj_pose.position.x = 0; + obj_pose.position.y = 0; + obj_pose.position.z = 0; obj_pose.orientation.w = 1.0; place_pose.orientation = tf2::toMsg(place_orientation); @@ -243,7 +271,7 @@ TEST_F(Grasping, SIDE_GRASPING_4) { geometry_msgs::Vector3 approach_direction; approach_direction.y = -1; - geometry_msgs::Pose pick_pose = grasp_util.getPickFromPlusYSidePose(obj_pose, tf2::toMsg(gripper_orientation)); + geometry_msgs::Pose pick_pose = grasp_util.getPickFromRight(obj_pose, tf2::toMsg(gripper_orientation)); doTest(pick_pose, pick_table_pose, place_table_pose, obj_pose, place_pose, approach_direction); } diff --git a/test/side_grasping.test b/test/side_grasping.test index 6b017a8..fe9ae97 100644 --- a/test/side_grasping.test +++ b/test/side_grasping.test @@ -1,10 +1,10 @@ <launch> <include file="$(find panda_simulation)/launch/simulation.launch"/> - <!--<node name="$(anon rviz)" pkg="rviz" type="rviz" respawn="false" + <node name="$(anon rviz)" pkg="rviz" type="rviz" respawn="false" args="-d $(find panda_grasping)/test/plan_visualizer.rviz" output="screen"> <rosparam command="load" file="$(find panda_moveit_config)/config/kinematics.yaml"/> - </node>--> + </node> <include file="$(find panda_moveit_config)/launch/moveit_rviz.launch" /> -- GitLab