Bug in Editor Mode
VHACD import breaks on import of the same/similar robot urdf.
- Deleting the prefabs in Explorer solves the issue
- Selecting "Overwrite Prefabs" does not change the result
To Reproduce
Steps to reproduce the behavior:
- Editor Mode
- Open Context Menu -> 3D Objects -> URDF Model (Import)
- Select a
.urdf file
- Import with settings: {yAxis, vHACD, overwrite: false/true} (if false or true doesnt matter, still same result)
- Repeat step 1 - 3 with the same
.urdf file (or a robot of the same type)
Console logs / stack traces
Detected an stl file at Assets\Robots\abb\abb_irb4600_support\meshes\irb4600\collision\base_link.stl - creating a mesh prefab.
UnityEngine.Debug:Log (object)
Unity.Robotics.UrdfImporter.StlAssetPostProcessor:PostprocessStlFile (string) (at ./Library/PackageCache/com.unity.robotics.urdf-importer@4ed58f8d00fe/Runtime/MeshProcessing/StlAssetPostProcessor.cs:36)
Unity.Robotics.UrdfImporter.LocateAssetHandler:FindUrdfAsset<UnityEngine.GameObject> (string) (at ./Library/PackageCache/com.unity.robotics.urdf-importer@4ed58f8d00fe/Runtime/AssetHandlers/LocateAssetHandler.cs:33)
Unity.Robotics.UrdfImporter.UrdfGeometryCollision:CreateMeshCollider (Unity.Robotics.UrdfImporter.Link/Geometry/Mesh) (at ./Library/PackageCache/com.unity.robotics.urdf-importer@4ed58f8d00fe/Runtime/Extensions/UrdfGeometryCollision.cs:72)
Unity.Robotics.UrdfImporter.UrdfGeometryCollision:Create (UnityEngine.Transform,Unity.Robotics.UrdfImporter.GeometryTypes,Unity.Robotics.UrdfImporter.Link/Geometry) (at ./Library/PackageCache/com.unity.robotics.urdf-importer@4ed58f8d00fe/Runtime/Extensions/UrdfGeometryCollision.cs:48)
Unity.Robotics.UrdfImporter.UrdfCollisionExtensions:Create (UnityEngine.Transform,Unity.Robotics.UrdfImporter.Link/Collision) (at ./Library/PackageCache/com.unity.robotics.urdf-importer@4ed58f8d00fe/Runtime/Extensions/UrdfCollisionExtensions.cs:62)
Unity.Robotics.UrdfImporter.UrdfCollisionsExtensions:Create (UnityEngine.Transform,System.Collections.Generic.List`1<Unity.Robotics.UrdfImporter.Link/Collision>) (at ./Library/PackageCache/com.unity.robotics.urdf-importer@4ed58f8d00fe/Runtime/Extensions/UrdfCollisionsExtensions.cs:36)
Unity.Robotics.UrdfImporter.UrdfLinkExtensions:Create (UnityEngine.Transform,Unity.Robotics.UrdfImporter.Link,Unity.Robotics.UrdfImporter.Joint) (at ./Library/PackageCache/com.unity.robotics.urdf-importer@4ed58f8d00fe/Runtime/Extensions/UrdfLinkExtensions.cs:26)
Unity.Robotics.UrdfImporter.UrdfRobotExtensions:ProcessJointStack (Unity.Robotics.UrdfImporter.UrdfRobotExtensions/ImportPipelineData) (at ./Library/PackageCache/com.unity.robotics.urdf-importer@4ed58f8d00fe/Runtime/Extensions/UrdfRobotExtensions.cs:132)
Unity.Robotics.UrdfImporter.UrdfRobotExtensions/<Create>d__8:MoveNext () (at ./Library/PackageCache/com.unity.robotics.urdf-importer@4ed58f8d00fe/Runtime/Extensions/UrdfRobotExtensions.cs:186)
Unity.EditorCoroutines.Editor.EditorCoroutine/YieldProcessor:MoveNext (System.Collections.IEnumerator) (at ./Library/PackageCache/com.unity.editorcoroutines@7d48783e7b8c/Editor/EditorCoroutine.cs:80)
Unity.EditorCoroutines.Editor.EditorCoroutine:ProcessIEnumeratorRecursive (System.Collections.IEnumerator) (at ./Library/PackageCache/com.unity.editorcoroutines@7d48783e7b8c/Editor/EditorCoroutine.cs:134)
Unity.EditorCoroutines.Editor.EditorCoroutine:MoveNext () (at ./Library/PackageCache/com.unity.editorcoroutines@7d48783e7b8c/Editor/EditorCoroutine.cs:115)
UnityEditor.EditorApplication:Internal_CallUpdateFunctions ()
NullReferenceException: Object reference not set to an instance of an object
MeshProcess.VHACD.GenerateConvexMeshes (UnityEngine.Mesh mesh) (at ./Library/PackageCache/com.unity.robotics.urdf-importer@4ed58f8d00fe/Runtime/VHACD/VHACD.cs:143)
Unity.Robotics.UrdfImporter.UrdfGeometryCollision.ConvertMeshToColliders (UnityEngine.GameObject gameObject, System.String location, System.Boolean setConvex) (at ./Library/PackageCache/com.unity.robotics.urdf-importer@4ed58f8d00fe/Runtime/Extensions/UrdfGeometryCollision.cs:208)
Unity.Robotics.UrdfImporter.UrdfGeometryCollision.CreateMeshCollider (Unity.Robotics.UrdfImporter.Link+Geometry+Mesh mesh) (at ./Library/PackageCache/com.unity.robotics.urdf-importer@4ed58f8d00fe/Runtime/Extensions/UrdfGeometryCollision.cs:80)
Unity.Robotics.UrdfImporter.UrdfGeometryCollision.Create (UnityEngine.Transform parent, Unity.Robotics.UrdfImporter.GeometryTypes geometryType, Unity.Robotics.UrdfImporter.Link+Geometry geometry) (at ./Library/PackageCache/com.unity.robotics.urdf-importer@4ed58f8d00fe/Runtime/Extensions/UrdfGeometryCollision.cs:48)
Unity.Robotics.UrdfImporter.UrdfCollisionExtensions.Create (UnityEngine.Transform parent, Unity.Robotics.UrdfImporter.Link+Collision collision) (at ./Library/PackageCache/com.unity.robotics.urdf-importer@4ed58f8d00fe/Runtime/Extensions/UrdfCollisionExtensions.cs:62)
Unity.Robotics.UrdfImporter.UrdfCollisionsExtensions.Create (UnityEngine.Transform parent, System.Collections.Generic.List`1[T] collisions) (at ./Library/PackageCache/com.unity.robotics.urdf-importer@4ed58f8d00fe/Runtime/Extensions/UrdfCollisionsExtensions.cs:36)
Unity.Robotics.UrdfImporter.UrdfLinkExtensions.Create (UnityEngine.Transform parent, Unity.Robotics.UrdfImporter.Link link, Unity.Robotics.UrdfImporter.Joint joint) (at ./Library/PackageCache/com.unity.robotics.urdf-importer@4ed58f8d00fe/Runtime/Extensions/UrdfLinkExtensions.cs:26)
Unity.Robotics.UrdfImporter.UrdfRobotExtensions.ProcessJointStack (Unity.Robotics.UrdfImporter.UrdfRobotExtensions+ImportPipelineData im) (at ./Library/PackageCache/com.unity.robotics.urdf-importer@4ed58f8d00fe/Runtime/Extensions/UrdfRobotExtensions.cs:132)
Unity.Robotics.UrdfImporter.UrdfRobotExtensions+<Create>d__8.MoveNext () (at ./Library/PackageCache/com.unity.robotics.urdf-importer@4ed58f8d00fe/Runtime/Extensions/UrdfRobotExtensions.cs:186)
Unity.EditorCoroutines.Editor.EditorCoroutine+YieldProcessor.MoveNext (System.Collections.IEnumerator enumerator) (at ./Library/PackageCache/com.unity.editorcoroutines@7d48783e7b8c/Editor/EditorCoroutine.cs:80)
Unity.EditorCoroutines.Editor.EditorCoroutine.ProcessIEnumeratorRecursive (System.Collections.IEnumerator enumerator) (at ./Library/PackageCache/com.unity.editorcoroutines@7d48783e7b8c/Editor/EditorCoroutine.cs:134)
Unity.EditorCoroutines.Editor.EditorCoroutine.MoveNext () (at ./Library/PackageCache/com.unity.editorcoroutines@7d48783e7b8c/Editor/EditorCoroutine.cs:115)
UnityEditor.EditorApplication.Internal_CallUpdateFunctions () (at <316d3d2a3f8c4b19b769e5bc4918c7d7>:0)
Expected behavior
The importer should import the robots without problem.
Screenshots

Environment (please complete the following information, where applicable):
- Unity Version: Unity 6.1 6000.1.2f1.1833.5804
- Unity machine: Windows 10 Education - 10.0.19045 Build 19045
- Branch or version: URDF Importer 0.5.2-preview
Additional context
The urdf files are from https://github.com/Daniella1/urdf_files_dataset/tree/main/urdf_files/ros-industrial/xacro_generated/abb
I extracted every urdf outside the support folders to achieve the expected importer folder hierarchy.
Directory state before Import:
...\Unity\ValCIUM\Assets\Robots\abb\abb_irb4600_support
│ meshes.meta
│ meta-information.json
│ meta-information.json.meta
│
└───meshes
│ irb4600.meta
│ irb4600_20_250.meta
│ irb4600_40_255.meta
│ irb4600_60_205.meta
│
├───irb4600
│ │ collision.meta
│ │ visual.meta
│ │
│ ├───collision
│ │ base_link.stl
│ │ base_link.stl.meta
│ │ link_1.stl
│ │ link_1.stl.meta
│ │
│ └───visual
│ base_link.dae
│ base_link.dae.meta
│ link_1.dae
│ link_1.dae.meta
│
├───irb4600_20_250
│ │ collision.meta
│ │ visual.meta
│ │
│ ├───collision
│ │ link_2.stl
│ │ link_2.stl.meta
│ │ link_3.stl
│ │ link_3.stl.meta
│ │ link_4.stl
│ │ link_4.stl.meta
│ │ link_5.stl
│ │ link_5.stl.meta
│ │ link_6.stl
│ │ link_6.stl.meta
│ │
│ └───visual
│ link_2.dae
│ link_2.dae.meta
│ link_3.dae
│ link_3.dae.meta
│ link_4.dae
│ link_4.dae.meta
│ link_5.dae
│ link_5.dae.meta
│ link_6.dae
│ link_6.dae.meta
│
├───irb4600_40_255
│ │ collision.meta
│ │ visual.meta
│ │
│ ├───collision
│ │ link_2.stl
│ │ link_2.stl.meta
│ │ link_3.stl
│ │ link_3.stl.meta
│ │ link_4.stl
│ │ link_4.stl.meta
│ │ link_5.stl
│ │ link_5.stl.meta
│ │ link_6.stl
│ │ link_6.stl.meta
│ │
│ └───visual
│ link_2.dae
│ link_2.dae.meta
│ link_3.dae
│ link_3.dae.meta
│ link_4.dae
│ link_4.dae.meta
│ link_5.dae
│ link_5.dae.meta
│ link_6.dae
│ link_6.dae.meta
│
└───irb4600_60_205
│ collision.meta
│ visual.meta
│
├───collision
│ link_2.stl
│ link_2.stl.meta
│ link_3.stl
│ link_3.stl.meta
│ link_4.stl
│ link_4.stl.meta
│ link_5.stl
│ link_5.stl.meta
│ link_6.stl
│ link_6.stl.meta
│
└───visual
link_2.dae
link_2.dae.meta
link_3.dae
link_3.dae.meta
link_4.dae
link_4.dae.meta
link_5.dae
link_5.dae.meta
link_6.dae
link_6.dae.meta
Directory State after first Import:
...\Unity\ValCIUM\Assets\Robots\abb\abb_irb4600_support
│ meshes.meta
│ meta-information.json
│ meta-information.json.meta
│
└───meshes
│ irb4600.meta
│ irb4600_20_250.meta
│ irb4600_40_255.meta
│ irb4600_60_205.meta
│
├───irb4600
│ │ collision.meta
│ │ visual.meta
│ │
│ ├───collision
│ │ base_link.prefab
│ │ base_link.prefab.meta
│ │ base_link.stl
│ │ base_link.stl.meta
│ │ base_link_0.asset
│ │ base_link_0.asset.meta
│ │ base_link_1.asset
│ │ base_link_1.asset.meta
│ │ link_1.prefab
│ │ link_1.prefab.meta
│ │ link_1.stl
│ │ link_1.stl.meta
│ │ link_1_0.asset
│ │ link_1_0.asset.meta
│ │ link_1_1.asset
│ │ link_1_1.asset.meta
│ │
│ └───visual
│ base_link.dae
│ base_link.dae.meta
│ link_1.dae
│ link_1.dae.meta
│
├───irb4600_20_250
│ │ collision.meta
│ │ visual.meta
│ │
│ ├───collision
│ │ link_2.prefab
│ │ link_2.prefab.meta
│ │ link_2.stl
│ │ link_2.stl.meta
│ │ link_2_0.asset
│ │ link_2_0.asset.meta
│ │ link_2_1.asset
│ │ link_2_1.asset.meta
│ │ link_3.prefab
│ │ link_3.prefab.meta
│ │ link_3.stl
│ │ link_3.stl.meta
│ │ link_3_0.asset
│ │ link_3_0.asset.meta
│ │ link_3_1.asset
│ │ link_3_1.asset.meta
│ │ link_4.prefab
│ │ link_4.prefab.meta
│ │ link_4.stl
│ │ link_4.stl.meta
│ │ link_4_0.asset
│ │ link_4_0.asset.meta
│ │ link_4_1.asset
│ │ link_4_1.asset.meta
│ │ link_5.prefab
│ │ link_5.prefab.meta
│ │ link_5.stl
│ │ link_5.stl.meta
│ │ link_5_0.asset
│ │ link_5_0.asset.meta
│ │ link_5_1.asset
│ │ link_5_1.asset.meta
│ │ link_6.prefab
│ │ link_6.prefab.meta
│ │ link_6.stl
│ │ link_6.stl.meta
│ │ link_6_0.asset
│ │ link_6_0.asset.meta
│ │ link_6_1.asset
│ │ link_6_1.asset.meta
│ │
│ └───visual
│ link_2.dae
│ link_2.dae.meta
│ link_3.dae
│ link_3.dae.meta
│ link_4.dae
│ link_4.dae.meta
│ link_5.dae
│ link_5.dae.meta
│ link_6.dae
│ link_6.dae.meta
│
├───irb4600_40_255
│ │ collision.meta
│ │ visual.meta
│ │
│ ├───collision
│ │ link_2.stl
│ │ link_2.stl.meta
│ │ link_3.stl
│ │ link_3.stl.meta
│ │ link_4.stl
│ │ link_4.stl.meta
│ │ link_5.stl
│ │ link_5.stl.meta
│ │ link_6.stl
│ │ link_6.stl.meta
│ │
│ └───visual
│ link_2.dae
│ link_2.dae.meta
│ link_3.dae
│ link_3.dae.meta
│ link_4.dae
│ link_4.dae.meta
│ link_5.dae
│ link_5.dae.meta
│ link_6.dae
│ link_6.dae.meta
│
└───irb4600_60_205
│ collision.meta
│ visual.meta
│
├───collision
│ link_2.stl
│ link_2.stl.meta
│ link_3.stl
│ link_3.stl.meta
│ link_4.stl
│ link_4.stl.meta
│ link_5.stl
│ link_5.stl.meta
│ link_6.stl
│ link_6.stl.meta
│
└───visual
link_2.dae
link_2.dae.meta
link_3.dae
link_3.dae.meta
link_4.dae
link_4.dae.meta
link_5.dae
link_5.dae.meta
link_6.dae
link_6.dae.meta
Bug in Editor Mode
VHACD import breaks on import of the same/similar robot urdf.
To Reproduce
Steps to reproduce the behavior:
.urdffile.urdffile (or a robot of the same type)Console logs / stack traces
Expected behavior
The importer should import the robots without problem.
Screenshots

Environment (please complete the following information, where applicable):
Additional context
The urdf files are from https://github.com/Daniella1/urdf_files_dataset/tree/main/urdf_files/ros-industrial/xacro_generated/abb
I extracted every urdf outside the support folders to achieve the expected importer folder hierarchy.
Directory state before Import:
Directory State after first Import: