Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

URDF tool0 frames do not match the ABB tool0 orientation. #32

Closed
shaun-edwards opened this issue Mar 13, 2014 · 3 comments
Closed

URDF tool0 frames do not match the ABB tool0 orientation. #32

shaun-edwards opened this issue Mar 13, 2014 · 3 comments

Comments

@shaun-edwards
Copy link
Member

There is/was some ambiguity in the ROS-Industrial documentation about the tool0 frame (see here). The original intent of tool0 was to match exactly (pose & orientation) of the robot tool0. This would allow a comparison between ROS-I reported positions and controller positions for tool0. However, due to conflicting requirements for creating URDF (i.e. a preferred orientation of frames), the tool0 has not always matched the robot controller frame.
Reference: #31

@Samsagax
Copy link
Contributor

To keep both compatibilities I suggest to add two tools: one according to the ROS-I documentation (generic tool0) and other according to each robot manufacturer's choice of reference (and naming it something like ABB_tool0) So depending on each manufacturer we can use the manufacturer-provided tool0 and one tool0 according to ROS-I conventions.

@gavanderhoorn
Copy link
Member

@Samsagax: I'm wondering which ROS conventions you are refering to? ROS specifies a right-handed coordinate system, with Z up, X to 'the front' and Y to 'the left'. That doesn't mean we can't rotate it in place, AFAIU.

For backward compatibility, we can just leave the toolframes as they are in the existing urdfs, but make sure that all new support packages (such as your IRB-1600) do have the correct toolframe. We can then deprecate the abb_common package (or at least the urdf bits in it), and gradually phase it out over 2 ROS distributions (ie: deprecate in Hydro, remove in Indigo).

Also, I'm not really sure I like the idea of adding 2 tool links, as this would negate the advantage of having the tool0 link in the first place (having a standardised EEF attachment point on all robot urdfs). As @shaun-edwards wrote: the intent of the ROS-I tutorial was to "have the tool0 link match exactly the robot tool frame" (ie: the complete pose, not just the position). Adding multiple tool links would also become confusing I think, as a Fanuc (fi) can have up to 10 different tool frames.

@Samsagax
Copy link
Contributor

@Samsagax: I'm wondering which ROS conventions you are refering to? ROS specifies a right-handed coordinate system, with Z up, X to 'the front' and Y to 'the left'. That doesn't mean we can't rotate it in place, AFAIU.

@gavanderhoorn: I reffer to exactly that, the convention adopted by ROS-I is "X-axis pointing to the front in the 'zero' position", and ABB (don't know exactly about others) use the Z-axis pointing to the front (that's tool0's default position).

And I agree it can be a mess about having two or more tool0's but the problem is that references in the ROS-I world and the IRC-5 controller won't match. That's specially dangerous and error prone if we want to do something like pose-based trajectory downloading (i.e. using the IRC-5's MoveL/J interpolation)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

3 participants