Import URDF generated from solidworks into isaacsim

Isaac Sim Version

5.1.0

Operating System

Ubuntu 22.04

GPU Information

RTX 4080

Topic Description

Detailed Description

When importing a URDF into Isaac Sim 5.0 / Isaac Lab, the generated USD structure contains deeply nested Xform layers under each link.
Instead of a clean structure like:

link (Xform)
├─ visual (Mesh)
└─ collision (Mesh)

the import produces something like:

link (Xform)
 ├─ visuals (Xform)
 │   └─ link (Xform)
 │       └─ node_STL_BINARY (Xform)
 │           └─ mesh (Mesh)
 └─ collisions (Xform)
     └─ link (Xform)
         └─ node_STL_BINARY (Xform)
             └─ mesh (Mesh)

Even though my URDF visual/collision definitions use the same origin and are simple:

<link name="YJZ_R_Link">
  <visual>
    <origin xyz="0 0 0"/>
    <geometry>
      <mesh filename="package://JXB_DP_URDF/meshes/YJZ_R_Link.STL"/>
    </geometry>
  </visual>
  <collision>
    <origin xyz="0 0 0"/>
    <geometry>
      <mesh filename="package://JXB_DP_URDF/meshes/YJZ_R_Link.STL"/>
    </geometry>
  </collision>
</link>

Isaac Sim still creates several extra Xform layers.

Problems encountered

1. Visual and collision meshes do not move together

When I move/rotate the link via transform, only one of them moves.
The collision mesh stays at origin or behaves inconsistently.
This does not match the behavior of official robot USDs from Unitree or Franka.


2. I cannot manually clean the structure

Even when selecting the correct Xform (not the Mesh), I cannot reorganize the hierarchy.

Request

❶ Please clarify whether this nested Xform structure is expected in Isaac Sim 5.0.

❷ If so, provide guidance or an official script for flattening and cleaning the structure.

❸ If not expected, please confirm whether this is a bug in the URDF importer.

The video shows J1_L_Link and J2_L_Link not moving together. Could you please provide a video with collision mesh visualization enabled demonstrating the issue you described?

Thank you for your reply! It turns out that the mesh exported from SolidWorks includes all of its child meshes. For example, J1 contains the meshes of J2, J3, …, J7. That’s why, when I transform J1, one arm remains in its original position.

@sun_yubo2017 as someone who doesn’t use SW, could you elaborate the export setting(s) that you are using now to address the duplicated mesh issue? perhaps a screenshot could be beneficial for others that may run into the same problem in the future

I worked it out with Blender. A former colleague generated the URDF from SolidWorks, but he’s left the company and I don’t know SW myself, so I had to separate the meshes in Blender. If anyone knows the right SolidWorks workflow, please let me know!