Robotics StackExchange | Archived questions

Why MoveIt pick pipeline

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

Why this pipeline? It uses moveit_msgs/Grasp that specifies pregraspapproach (moveit_msgs/GripperTranslation), grasppose (geometry_msgs/PoseStamped), postgraspretreat (moveitmsgs/GripperTranslation) etc.

How is it different from specifying a pregrasppose (geometrymsgs/PoseStamped), grasppose (geometrymsgs/PoseStamped), and postgrasppose (geometrymsgs/PoseStamped) and using moveit::planning_interface::MoveGroupInterface to move the gripper to pregrasppose, than grasppose, calling a close gripper action and then move to the postgrasp_pose?

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

Line 745 indicates that the MoveItErrorCode pick function returns is the same as pickactionclient_ 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.

Asked by yiying on 2020-04-14 11:46:01 UTC

Comments

Answers