Why MoveIt pick pipeline

asked 2020-04-14 11:46:01 -0600

yiying gravatar image

updated 2020-04-14 11:46:46 -0600

This is a general question regarding MoveIt pick and place pipeline.

Why this pipeline? It uses moveit_msgs/Grasp that specifies pre_grasp_approach (moveit_msgs/GripperTranslation), grasp_pose (geometry_msgs/PoseStamped), post_grasp_retreat (moveit_msgs/GripperTranslation) etc.

How is it different from specifying a pre_grasp_pose (geometry_msgs/PoseStamped), grasp_pose (geometry_msgs/PoseStamped), and post_grasp_pose (geometry_msgs/PoseStamped) and using moveit::planning_interface::MoveGroupInterface to move the gripper to pre_grasp_pose, than grasp_pose, calling a close gripper action and then move to the post_grasp_pose?

One problem that stems from the pick pipeline or this function MoveItErrorCode pick (const std::string &object, const std::vector< moveit_msgs::Grasp > &grasps, bool plan_only=false), is that we loose some control over the picking operation.

Line 745 indicates that the MoveItErrorCode pick function returns is the same as pick_action_client_ result. But in my case, I am happy when the gripper controller is still running, mentioned in my earlier post. I am looking to add a gazebo grasp fix plugin that will attach the object to the gripper, so the controller running is not really a problem since the object is going to be fixed on the gripper.

Thanks in advance.

edit retag flag offensive close merge delete