0
$\begingroup$

Rosanswers logo

For an application I am planning in different static frames (tf2). On the first screenshot you see an example frame, named pm_slot2. By using the command move_group.set_pose_reference_frame('pm_slot2'), I can describe the pose target in this frame and planning works as expected. Target 0,0,0 is right in the center of the pm_slot2 frame.

image description

But if I turn the frame like in the next screenshot, the planning fails. I am 100% sure, the pose is possible for the robot (like in first screenshot but tool turned 45 degrees).

image description

For the orientation of the pose_target in quaternions I am using both times 0,0,0,1 (qX, qY, qZ, qW).

Whats going wrong? Any ideas? Thanks in advance!

nico


Originally posted by nicob on ROS Answers with karma: 37 on 2021-12-02

Post score: 1


Original comments

Comment by Ranjit Kathiriya on 2021-12-02:
Hello @nicobo,

I don't know if I have understood your question is correct or not, but I think from the first image your robot facing position is there in the pm_smot2 direction then it is identifying and working perfectly and if your robot is facing in opposite direction then you are not able to plan path. Is this your Question?

Comment by nicob on 2021-12-02:
The position of the pm_slot2 frame is in both screenshots the same, but the orientation is different. In the second screenshot the frame is turned 45 degrees along z-axis. The startpoint of the robot for planning is in both examples the same on the right side like shown in second screenshot.

The planning fails if the frame is turnend along the z-axis. I think there is a problem with the definition of the orientation of the target pose in the pm_slot2 frame.

Comment by Ranjit Kathiriya on 2021-12-02:
Can you please! share your transformation code? and can you tell me why the arrow link is starting from 2 Joint?

Comment by nicob on 2021-12-02:\

[...] and can you tell me why the arrow link is starting from 2 Joint?

Sorry, I do not fully understand this question. The position and orientation of pm_slot2 frame depends on the base-frame. The base frame is the world frame in the fanuc world. I think the yellow line shows this dependence.

I do no transformation. I just set the pose reference frame to pm_slot2 and define a pose-msg (not a poseStamped-msg) with the coordinates in the pm_slot2 frame (0,0,0) (x,y,z) / (0,0,0,1) (quaternions). For the position (x,y,z) this is correct, but I think the orientation (quaternions) is wrong.

Thank you!

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

Finally, I found the solution. I had to transform my target to the pm_slot2 frame.

It was just one line of code: target = tubehandling.tfl.transformPose('/base', target)


Originally posted by nicob with karma: 37 on 2021-12-09

This answer was ACCEPTED on the original site

Post score: 0


Original comments

Comment by Ranjit Kathiriya on 2021-12-09:\

can you tell me why the arrow link is starting from 2 Joint?

Yes, I asked this question because of your link line starting for joint 2 instead of the base. That's good you found a solution.

Comment by nicob on 2021-12-14:
I am working with the FANUC models from ROS industrial package. For FANUC robots base is the origin of the "world coordinatesystem" (in the real robot, too). The hardware base of the robot is defined by the base_link TF.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.