Robotics StackExchange | Archived questions

Why is the transformation chosen in this particular way to induce a successful robot arm manipulation?

I am wondering how to choose a rotation and translation instructing a robot arm to successfully grasps an object. In particular, I am using the moveit task constructor and illustrate my question with the screenshot below. image description

The frame around the cylinder (to be picked up) is drawn by default and I added the world and panda_hand frame. Whether the grasp is successful is determined by a configuration labeled as:

# Gripper grasp frame transform [x,y,z,r,p,y]    
grasp_frame_transform: [0, 0, 0.1, 1.571, 0.785, 1.571]

This configuration is read by the following lines of code :

auto wrapper = std::make_unique<stages::ComputeIK>("grasp pose IK", std::move(stage));
wrapper->setIKFrame(grasp_frame_transform_, hand_frame_)

Unfortunately, I do not know why the grasp_frame_transform specifies this particular transform and what its reference frame is. In particular, to transform the hand frame to the frame around the cylinder, I would rotate first around the x-axis by Pi and then around the z-axis by Pi/2. If I specified the transform around the cylinder in terms of the world frame, I would simply rotate around the z-axis by Pi/2. In contrast, the configuration seems to specify euler angles of [Pi/2, Pi/4, Pi/2].

Does somebody have an idea why the transformation is specified in that particular way? Starting from the robot configuration in its resting position, how would you choose a transformation to guide the robot? Am I making a mistake in my calculations? I am grateful for any help or hints!

Asked by fabian on 2021-02-16 03:53:47 UTC

Comments

I'm not sure and can't look into it right now, but is it the transform from the end effector base (wrist/hand frame) to a frame between the gripper tips (= where they would be when they close)? I think the next stage tries to place that frame at different grasp poses. If that doesn't help, look at what setIKFrame does to be sure.

Asked by fvd on 2021-02-17 02:49:24 UTC

Answers