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