ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

SW2URDF: Inferring the joint geometry failed...

asked 2022-07-01 16:53:20 -0600

dani97 gravatar image

updated 2022-07-05 08:54:41 -0600

Hello all. I'm the mechanical engineer on a robotics team and spend a significant portion of time generating URDF's for our system. Every so often, I get the following error:

Inferring the joint geometry failed for the joint j1 from link l1 to l2 failed. Check that the mates have not fully defined the components in the link l1 and that there is exactly one degree of freedom.

I do not, however, understand when and why this pops up and how I can solve it.

Generally, when I see this error, I can simply mate the parts to get them in the correct position and orientation. Then I dangerously suppress a single mate so that Solidworks thinks a degree of freedom exists.

This time, I'm trying to make l1 and l2 the input and output locations on a single Solidworks part and thus, there are no mates between these two links. It seems weird that the prompt claims there must be a degree of freedom between the two links when fixed joints exist and generally work. I'm not sure how to replicate this error but why is this wrong and how do I avoid this moving forward.

Thanks for your help

https://www.dropbox.com/s/wkr5g871f8e...

https://www.dropbox.com/s/3cwoz0axiac...

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2022-07-04 22:54:48 -0600

brawner gravatar image

updated 2022-07-04 22:55:21 -0600

For a fixed joint between two components, you need to fully define the joint type and the joint coordinate system through the drop-down menus. Yes it would be able to infer that it's a fixed joint, but it would not be able to infer your desired joint origin transform, which is why the UI requirement exists.

The automatic joint inference doesn't work for fixed joints because the tool would not be able to generate reasonable joint origin candidates without some notion of the axis of movement that it can for single-DOF joints. For revolute/prismatic joints, the tool calculates the axis of the DOF and then projects that axis onto the parent's joint reference frame to find the simplest transform from the parent to the child, for most people it creates sensible choices. Without that axis, it would be difficult to suggest a transform that the user would agree with.

edit flag offensive delete link more

Comments

Hello and thanks for the response!

I never use the automatic joint inference and rather, explicitly create the coordinate system and reference axis for all joints. I know to label the reference axis of fixed joints with none as well. I have edited my first post with images of my sw2urdf sw config. The vac_port_joint.jpg displays failing joint but I provided the parent as well in case it is needed for debugging

Thanks! Dani Lerner

dani97 gravatar image dani97  ( 2022-07-05 08:33:52 -0600 )edit

Hello,

Still looking for an answer to this.

dani97 gravatar image dani97  ( 2023-02-06 14:07:40 -0600 )edit

Making an issue on github as well: https://github.com/ros/solidworks_urd...

dani97 gravatar image dani97  ( 2023-02-06 15:00:27 -0600 )edit

Question Tools

1 follower

Stats

Asked: 2022-07-01 16:53:20 -0600

Seen: 376 times

Last updated: Feb 06 '23