Selaa lähdekoodia

Test scene with robotic arm

Signed-off-by: Michał Pełka <[email protected]>
Michał Pełka 2 vuotta sitten
vanhempi
commit
360c6aac3e
52 muutettua tiedostoa jossa 7162 lisäystä ja 2 poistoa
  1. 2567 0
      Assets/Importer/panda.prefab
  2. 372 0
      Assets/URDF/husky/husky.urdf
  3. 22 0
      Assets/URDF/husky/license.txt
  4. 17 0
      Assets/URDF/husky/meshes/base_link.dae
  5. BIN
      Assets/URDF/husky/meshes/bumper.stl
  6. BIN
      Assets/URDF/husky/meshes/top_plate.stl
  7. BIN
      Assets/URDF/husky/meshes/user_rail.stl
  8. 82 0
      Assets/URDF/husky/meshes/wheel.dae
  9. BIN
      Assets/URDF/panda_description.zip
  10. BIN
      Assets/URDF/panda_description/panda_description/meshes/collision/finger.stl
  11. 85 0
      Assets/URDF/panda_description/panda_description/meshes/collision/finger.stl.assetinfo
  12. BIN
      Assets/URDF/panda_description/panda_description/meshes/collision/hand.stl
  13. 85 0
      Assets/URDF/panda_description/panda_description/meshes/collision/hand.stl.assetinfo
  14. BIN
      Assets/URDF/panda_description/panda_description/meshes/collision/link0.stl
  15. 85 0
      Assets/URDF/panda_description/panda_description/meshes/collision/link0.stl.assetinfo
  16. BIN
      Assets/URDF/panda_description/panda_description/meshes/collision/link1.stl
  17. 85 0
      Assets/URDF/panda_description/panda_description/meshes/collision/link1.stl.assetinfo
  18. BIN
      Assets/URDF/panda_description/panda_description/meshes/collision/link2.stl
  19. 85 0
      Assets/URDF/panda_description/panda_description/meshes/collision/link2.stl.assetinfo
  20. BIN
      Assets/URDF/panda_description/panda_description/meshes/collision/link3.stl
  21. 85 0
      Assets/URDF/panda_description/panda_description/meshes/collision/link3.stl.assetinfo
  22. BIN
      Assets/URDF/panda_description/panda_description/meshes/collision/link4.stl
  23. 85 0
      Assets/URDF/panda_description/panda_description/meshes/collision/link4.stl.assetinfo
  24. BIN
      Assets/URDF/panda_description/panda_description/meshes/collision/link5.stl
  25. 85 0
      Assets/URDF/panda_description/panda_description/meshes/collision/link5.stl.assetinfo
  26. BIN
      Assets/URDF/panda_description/panda_description/meshes/collision/link6.stl
  27. 85 0
      Assets/URDF/panda_description/panda_description/meshes/collision/link6.stl.assetinfo
  28. BIN
      Assets/URDF/panda_description/panda_description/meshes/collision/link7.stl
  29. 85 0
      Assets/URDF/panda_description/panda_description/meshes/collision/link7.stl.assetinfo
  30. 61 0
      Assets/URDF/panda_description/panda_description/meshes/visual/finger.dae
  31. 163 0
      Assets/URDF/panda_description/panda_description/meshes/visual/hand.dae
  32. 336 0
      Assets/URDF/panda_description/panda_description/meshes/visual/link0.dae
  33. 41 0
      Assets/URDF/panda_description/panda_description/meshes/visual/link1.dae
  34. 41 0
      Assets/URDF/panda_description/panda_description/meshes/visual/link2.dae
  35. 101 0
      Assets/URDF/panda_description/panda_description/meshes/visual/link3.dae
  36. 101 0
      Assets/URDF/panda_description/panda_description/meshes/visual/link4.dae
  37. 81 0
      Assets/URDF/panda_description/panda_description/meshes/visual/link5.dae
  38. 361 0
      Assets/URDF/panda_description/panda_description/meshes/visual/link6.dae
  39. 181 0
      Assets/URDF/panda_description/panda_description/meshes/visual/link7.dae
  40. 554 0
      Assets/URDF/panda_description/panda_description/panda.urdf
  41. BIN
      Doc/robotic_arm.gif
  42. 3 0
      Gem/CMakeLists.txt
  43. 85 0
      Gem/Source/PhysXJointTestComponent.cpp
  44. 36 0
      Gem/Source/PhysXJointTestComponent.h
  45. 2 0
      Gem/Source/Physics_TestModule.cpp
  46. 1 0
      Gem/enabled_gems.cmake
  47. 2 0
      Gem/physics_test_files.cmake
  48. 549 0
      Levels/Robot/Robot.prefab
  49. 503 0
      Levels/robotic-arm/robotic-arm.prefab
  50. 8 0
      README.md
  51. 40 0
      Registry/sceneassetimporter.setreg
  52. 2 2
      project.json

+ 2567 - 0
Assets/Importer/panda.prefab

@@ -0,0 +1,2567 @@
+{
+    "ContainerEntity": {
+        "Id": "ContainerEntity",
+        "Name": "panda",
+        "Components": {
+            "Component_[12358832423608736683]": {
+                "$type": "EditorVisibilityComponent",
+                "Id": 12358832423608736683
+            },
+            "Component_[1274189681831648722]": {
+                "$type": "EditorLockComponent",
+                "Id": 1274189681831648722
+            },
+            "Component_[14937191109674505901]": {
+                "$type": "EditorPendingCompositionComponent",
+                "Id": 14937191109674505901
+            },
+            "Component_[15216907759427825252]": {
+                "$type": "EditorInspectorComponent",
+                "Id": 15216907759427825252
+            },
+            "Component_[298461213799198995]": {
+                "$type": "EditorEntityIconComponent",
+                "Id": 298461213799198995
+            },
+            "Component_[3969252952258928548]": {
+                "$type": "EditorDisabledCompositionComponent",
+                "Id": 3969252952258928548
+            },
+            "Component_[465294739564050186]": {
+                "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                "Id": 465294739564050186,
+                "Parent Entity": ""
+            },
+            "Component_[5207792897692430596]": {
+                "$type": "EditorEntitySortComponent",
+                "Id": 5207792897692430596,
+                "Child Entity Order": [
+                    "Entity_[1475387690728]"
+                ]
+            },
+            "Component_[8350829816643235425]": {
+                "$type": "EditorPrefabComponent",
+                "Id": 8350829816643235425
+            },
+            "Component_[8639458971073745730]": {
+                "$type": "EditorOnlyEntityComponent",
+                "Id": 8639458971073745730
+            }
+        }
+    },
+    "Entities": {
+        "Entity_[1385193377512]": {
+            "Id": "Entity_[1385193377512]",
+            "Name": "panda_link4_visual",
+            "Components": {
+                "Component_[14287266945980718124]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 14287266945980718124
+                },
+                "Component_[15423599006702051658]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 15423599006702051658
+                },
+                "Component_[1745417603957320505]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 1745417603957320505,
+                    "Parent Entity": "Entity_[1423848083176]"
+                },
+                "Component_[5155854814240048828]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 5155854814240048828
+                },
+                "Component_[560001276088059164]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 560001276088059164
+                },
+                "Component_[5763330635070305639]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 5763330635070305639
+                },
+                "Component_[7267783405598135630]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 7267783405598135630
+                },
+                "Component_[7823388539508378209]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 7823388539508378209
+                },
+                "Component_[9093049256124672578]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 9093049256124672578
+                },
+                "Component_[9926315479429674853]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 9926315479429674853,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{8010A867-2272-5387-8E0F-38EDD7794D27}",
+                                    "subId": 272266539
+                                },
+                                "assetHint": "assets/urdf/panda_description/panda_description/meshes/visual/link4.azmodel"
+                            }
+                        }
+                    }
+                }
+            }
+        },
+        "Entity_[1389488344808]": {
+            "Id": "Entity_[1389488344808]",
+            "Name": "panda_link6",
+            "Components": {
+                "Component_[10818990819368899390]": {
+                    "$type": "EditorHingeJointComponent",
+                    "Id": 10818990819368899390,
+                    "Configuration": {
+                        "Local Rotation": [
+                            0.0,
+                            -89.99999237060547,
+                            0.0
+                        ],
+                        "Parent Entity": "Entity_[1453912854248]",
+                        "Child Entity": "Entity_[1389488344808]"
+                    },
+                    "Angular Limit": {
+                        "Positive Limit": 215.0,
+                        "Negative Limit": -1.0
+                    },
+                    "Motor": {
+                        "Use Motor": true
+                    }
+                },
+                "Component_[12504405826328742383]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 12504405826328742383,
+                    "Parent Entity": "Entity_[1453912854248]",
+                    "Transform Data": {
+                        "Rotate": [
+                            89.9999771118164,
+                            0.0,
+                            0.0
+                        ]
+                    }
+                },
+                "Component_[12731293240319367915]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 12731293240319367915
+                },
+                "Component_[14000936388412406776]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 14000936388412406776
+                },
+                "Component_[14213095225389336453]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 14213095225389336453,
+                    "Child Entity Order": [
+                        "Entity_[1466797756136]",
+                        "Entity_[1441027952360]"
+                    ]
+                },
+                "Component_[16025065597270922877]": {
+                    "$type": "EditorRigidBodyComponent",
+                    "Id": 16025065597270922877,
+                    "Configuration": {
+                        "entityId": "",
+                        "Compute Mass": false,
+                        "Mass": 1.5025805234909058,
+                        "Compute COM": false,
+                        "Centre of mass offset": [
+                            0.05105099827051163,
+                            0.00910796970129013,
+                            0.010634300298988819
+                        ],
+                        "Compute inertia": false,
+                        "Inertia tensor": [
+                            0.0030329322908073664,
+                            0.0,
+                            0.0,
+                            0.0,
+                            0.0039459276013076305,
+                            0.0,
+                            0.0,
+                            0.0,
+                            0.005447301082313061
+                        ]
+                    },
+                    "PhysXSpecificConfiguration": {
+                        "SolverPositionIterations": 40,
+                        "SolverVelocityIterations": 10
+                    }
+                },
+                "Component_[17139042666337948529]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 17139042666337948529
+                },
+                "Component_[18264423770334575921]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 18264423770334575921
+                },
+                "Component_[2359965994665001390]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 2359965994665001390
+                },
+                "Component_[3914375426784549412]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 3914375426784549412
+                },
+                "Component_[4775424680940370350]": {
+                    "$type": "GenericComponentWrapper",
+                    "Id": 4775424680940370350,
+                    "m_template": {
+                        "$type": "ImGuiJointDemo"
+                    }
+                },
+                "Component_[7129885340583146507]": {
+                    "$type": "EditorColliderComponent",
+                    "Id": 7129885340583146507,
+                    "ColliderConfiguration": {
+                        "MaterialSlots": {
+                            "Slots": [
+                                {
+                                    "Name": "DefaultMaterial"
+                                }
+                            ]
+                        }
+                    },
+                    "ShapeConfiguration": {
+                        "PhysicsAsset": {
+                            "Asset": {
+                                "assetId": {
+                                    "guid": "{35FBF335-8EFA-515E-A6ED-F208E4026BE1}",
+                                    "subId": 2873254469
+                                },
+                                "assetHint": "assets/urdf/panda_description/panda_description/meshes/collision/link6.pxmesh"
+                            },
+                            "Configuration": {
+                                "PhysicsAsset": {
+                                    "assetId": {
+                                        "guid": "{35FBF335-8EFA-515E-A6ED-F208E4026BE1}",
+                                        "subId": 2873254469
+                                    },
+                                    "loadBehavior": "QueueLoad",
+                                    "assetHint": "assets/urdf/panda_description/panda_description/meshes/collision/link6.pxmesh"
+                                },
+                                "UseMaterialsFromAsset": false
+                            }
+                        }
+                    }
+                },
+                "Component_[7988828044386689767]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 7988828044386689767
+                }
+            }
+        },
+        "Entity_[1393783312104]": {
+            "Id": "Entity_[1393783312104]",
+            "Name": "panda_link7_visual",
+            "Components": {
+                "Component_[10006120602032282279]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 10006120602032282279
+                },
+                "Component_[10209659168699423010]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 10209659168699423010
+                },
+                "Component_[11831591325934627847]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 11831591325934627847
+                },
+                "Component_[12400126467336495344]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 12400126467336495344
+                },
+                "Component_[1263234983567762233]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 1263234983567762233
+                },
+                "Component_[16330963393679257892]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 16330963393679257892
+                },
+                "Component_[17975853688876812202]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 17975853688876812202
+                },
+                "Component_[4800510986270891644]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 4800510986270891644,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{AC0A4138-214E-53AA-8581-0F539ECCB03F}",
+                                    "subId": 271787153
+                                },
+                                "assetHint": "assets/urdf/panda_description/panda_description/meshes/visual/link7.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[9245607391699601563]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 9245607391699601563
+                },
+                "Component_[9984646770241766623]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 9984646770241766623,
+                    "Parent Entity": "Entity_[1441027952360]"
+                }
+            }
+        },
+        "Entity_[1398078279400]": {
+            "Id": "Entity_[1398078279400]",
+            "Name": "panda_hand_tcp",
+            "Components": {
+                "Component_[10582914669692011379]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 10582914669692011379
+                },
+                "Component_[11327277288832805612]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 11327277288832805612,
+                    "PendingComponents": [
+                        {
+                            "$type": "EditorFixedJointComponent",
+                            "Id": 17021558034967498113,
+                            "Configuration": {
+                                "Parent Entity": "",
+                                "Child Entity": ""
+                            }
+                        }
+                    ]
+                },
+                "Component_[1474299501676068654]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 1474299501676068654
+                },
+                "Component_[1517674267450270052]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 1517674267450270052
+                },
+                "Component_[15552109761671889265]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 15552109761671889265
+                },
+                "Component_[17444019532647519607]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 17444019532647519607
+                },
+                "Component_[3176941860568013745]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 3176941860568013745
+                },
+                "Component_[3520662844547153627]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 3520662844547153627,
+                    "Parent Entity": "Entity_[1445322919656]",
+                    "Transform Data": {
+                        "Translate": [
+                            0.0,
+                            0.0,
+                            0.10340005159378052
+                        ]
+                    }
+                },
+                "Component_[7666659741322162513]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 7666659741322162513
+                }
+            }
+        },
+        "Entity_[1402373246696]": {
+            "Id": "Entity_[1402373246696]",
+            "Name": "panda_link3",
+            "Components": {
+                "Component_[11727172097126435982]": {
+                    "$type": "EditorColliderComponent",
+                    "Id": 11727172097126435982,
+                    "ColliderConfiguration": {
+                        "MaterialSlots": {
+                            "Slots": [
+                                {
+                                    "Name": "DefaultMaterial"
+                                }
+                            ]
+                        }
+                    },
+                    "ShapeConfiguration": {
+                        "PhysicsAsset": {
+                            "Asset": {
+                                "assetId": {
+                                    "guid": "{8CC80F0B-5096-5651-8098-D988869E2383}",
+                                    "subId": 3772333143
+                                },
+                                "assetHint": "assets/urdf/panda_description/panda_description/meshes/collision/link3.pxmesh"
+                            },
+                            "Configuration": {
+                                "PhysicsAsset": {
+                                    "assetId": {
+                                        "guid": "{8CC80F0B-5096-5651-8098-D988869E2383}",
+                                        "subId": 3772333143
+                                    },
+                                    "loadBehavior": "QueueLoad",
+                                    "assetHint": "assets/urdf/panda_description/panda_description/meshes/collision/link3.pxmesh"
+                                },
+                                "UseMaterialsFromAsset": false
+                            }
+                        }
+                    }
+                },
+                "Component_[13077654605065003917]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 13077654605065003917
+                },
+                "Component_[13728954510791227418]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 13728954510791227418
+                },
+                "Component_[14245938964861179278]": {
+                    "$type": "EditorRigidBodyComponent",
+                    "Id": 14245938964861179278,
+                    "Configuration": {
+                        "entityId": "",
+                        "Compute Mass": false,
+                        "Mass": 2.329371452331543,
+                        "Compute COM": false,
+                        "Centre of mass offset": [
+                            0.04698929935693741,
+                            0.03163740038871765,
+                            -0.031704001128673553
+                        ],
+                        "Compute inertia": false,
+                        "Inertia tensor": [
+                            0.008572063408792019,
+                            0.0,
+                            0.0,
+                            0.0,
+                            0.010206575505435467,
+                            0.0,
+                            0.0,
+                            0.0,
+                            0.008844639174640179
+                        ]
+                    },
+                    "PhysXSpecificConfiguration": {
+                        "SolverPositionIterations": 40,
+                        "SolverVelocityIterations": 10
+                    }
+                },
+                "Component_[14907715773005187526]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 14907715773005187526
+                },
+                "Component_[15328952216984693045]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 15328952216984693045
+                },
+                "Component_[4134176143233927709]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 4134176143233927709
+                },
+                "Component_[4892654314170343746]": {
+                    "$type": "GenericComponentWrapper",
+                    "Id": 4892654314170343746,
+                    "m_template": {
+                        "$type": "ImGuiJointDemo"
+                    }
+                },
+                "Component_[6173638295034155689]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 6173638295034155689
+                },
+                "Component_[6222086343109095048]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 6222086343109095048,
+                    "Parent Entity": "Entity_[1432438017768]",
+                    "Transform Data": {
+                        "Translate": [
+                            0.0,
+                            -0.31599998474121094,
+                            4.708766709882184e-8
+                        ],
+                        "Rotate": [
+                            89.99998474121094,
+                            0.0,
+                            0.0
+                        ]
+                    }
+                },
+                "Component_[6510318466342434784]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 6510318466342434784
+                },
+                "Component_[7217134742910750120]": {
+                    "$type": "EditorHingeJointComponent",
+                    "Id": 7217134742910750120,
+                    "Configuration": {
+                        "Local Rotation": [
+                            0.0,
+                            -89.99999237060547,
+                            0.0
+                        ],
+                        "Parent Entity": "Entity_[1432438017768]",
+                        "Child Entity": "Entity_[1402373246696]"
+                    },
+                    "Angular Limit": {
+                        "Positive Limit": 166.0,
+                        "Negative Limit": -166.0
+                    },
+                    "Motor": {
+                        "Use Motor": true
+                    }
+                },
+                "Component_[8594347468316697810]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 8594347468316697810,
+                    "Child Entity Order": [
+                        "Entity_[1483977625320]",
+                        "Entity_[1423848083176]"
+                    ]
+                }
+            }
+        },
+        "Entity_[1406668213992]": {
+            "Id": "Entity_[1406668213992]",
+            "Name": "panda_link2_visual",
+            "Components": {
+                "Component_[10743067004290866453]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 10743067004290866453
+                },
+                "Component_[13976896481940066282]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 13976896481940066282
+                },
+                "Component_[14682939577405652049]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 14682939577405652049
+                },
+                "Component_[15988037462304272081]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 15988037462304272081
+                },
+                "Component_[3841867526270835667]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 3841867526270835667
+                },
+                "Component_[5240270843337574030]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 5240270843337574030,
+                    "Parent Entity": "Entity_[1432438017768]"
+                },
+                "Component_[689242563866392767]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 689242563866392767
+                },
+                "Component_[8347641877266382208]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 8347641877266382208
+                },
+                "Component_[8566152613248338821]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 8566152613248338821
+                },
+                "Component_[8720387153198876277]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 8720387153198876277,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{52A69A08-9329-5701-8830-7D4AA2AEF721}",
+                                    "subId": 274321438
+                                },
+                                "assetHint": "assets/urdf/panda_description/panda_description/meshes/visual/link2.azmodel"
+                            }
+                        }
+                    }
+                }
+            }
+        },
+        "Entity_[1410963181288]": {
+            "Id": "Entity_[1410963181288]",
+            "Name": "panda_link8",
+            "Components": {
+                "Component_[11435467948483981588]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 11435467948483981588
+                },
+                "Component_[13133135808911036058]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 13133135808911036058,
+                    "Parent Entity": "Entity_[1441027952360]",
+                    "Transform Data": {
+                        "Translate": [
+                            0.0,
+                            -1.2755386080698372e-8,
+                            0.10699993371963501
+                        ],
+                        "Rotate": [
+                            0.000006830188794992864,
+                            0.0,
+                            -44.99999237060547
+                        ]
+                    }
+                },
+                "Component_[13216106324570750657]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 13216106324570750657,
+                    "Child Entity Order": [
+                        "Entity_[1445322919656]"
+                    ]
+                },
+                "Component_[13446215410378826063]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 13446215410378826063
+                },
+                "Component_[13650706386029047639]": {
+                    "$type": "EditorFixedJointComponent",
+                    "Id": 13650706386029047639,
+                    "Configuration": {
+                        "Parent Entity": "Entity_[1441027952360]",
+                        "Child Entity": "Entity_[1410963181288]"
+                    }
+                },
+                "Component_[14163936775156600644]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 14163936775156600644
+                },
+                "Component_[16624535759732586231]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 16624535759732586231
+                },
+                "Component_[289992594927393495]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 289992594927393495
+                },
+                "Component_[3176888828131774058]": {
+                    "$type": "GenericComponentWrapper",
+                    "Id": 3176888828131774058,
+                    "m_template": {
+                        "$type": "ImGuiJointDemo"
+                    }
+                },
+                "Component_[3280907557383416321]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 3280907557383416321
+                },
+                "Component_[5995599092492179191]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 5995599092492179191
+                },
+                "Component_[983138046737252067]": {
+                    "$type": "EditorRigidBodyComponent",
+                    "Id": 983138046737252067,
+                    "Configuration": {
+                        "entityId": ""
+                    },
+                    "PhysXSpecificConfiguration": {
+                        "SolverPositionIterations": 40,
+                        "SolverVelocityIterations": 10
+                    }
+                }
+            }
+        },
+        "Entity_[1415258148584]": {
+            "Id": "Entity_[1415258148584]",
+            "Name": "panda_hand_visual",
+            "Components": {
+                "Component_[11211061689771920349]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 11211061689771920349
+                },
+                "Component_[12203146110749621458]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 12203146110749621458
+                },
+                "Component_[15651020913592034875]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 15651020913592034875
+                },
+                "Component_[1651217386630922893]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 1651217386630922893,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{0439E4F6-C733-55C6-BFD3-7F57D941CA58}",
+                                    "subId": 274875023
+                                },
+                                "assetHint": "assets/urdf/panda_description/panda_description/meshes/visual/hand.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[17061060562978745083]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 17061060562978745083
+                },
+                "Component_[1769651324208618943]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 1769651324208618943,
+                    "Parent Entity": "Entity_[1445322919656]"
+                },
+                "Component_[1814292244042225763]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 1814292244042225763
+                },
+                "Component_[4607802330473043710]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 4607802330473043710
+                },
+                "Component_[4633219056900219123]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 4633219056900219123
+                },
+                "Component_[9787806027699440895]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 9787806027699440895
+                }
+            }
+        },
+        "Entity_[1419553115880]": {
+            "Id": "Entity_[1419553115880]",
+            "Name": "panda_link1_visual",
+            "Components": {
+                "Component_[10717308837344584694]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 10717308837344584694
+                },
+                "Component_[17180248397752904708]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 17180248397752904708,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{137E3661-B18A-5E9E-A3C3-200C0686A3B6}",
+                                    "subId": 273711524
+                                },
+                                "assetHint": "assets/urdf/panda_description/panda_description/meshes/visual/link1.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[17772052042030128999]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 17772052042030128999
+                },
+                "Component_[202003433758858498]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 202003433758858498
+                },
+                "Component_[3821965428177115719]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 3821965428177115719
+                },
+                "Component_[5338863740674084556]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 5338863740674084556
+                },
+                "Component_[5689269783850696894]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 5689269783850696894,
+                    "Parent Entity": "Entity_[1479682658024]"
+                },
+                "Component_[6495449098420195088]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 6495449098420195088
+                },
+                "Component_[696774216364958126]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 696774216364958126
+                },
+                "Component_[7224194133862218263]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 7224194133862218263
+                }
+            }
+        },
+        "Entity_[1423848083176]": {
+            "Id": "Entity_[1423848083176]",
+            "Name": "panda_link4",
+            "Components": {
+                "Component_[1095448228505114581]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 1095448228505114581,
+                    "Child Entity Order": [
+                        "Entity_[1385193377512]",
+                        "Entity_[1453912854248]"
+                    ]
+                },
+                "Component_[13052382700243123758]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 13052382700243123758
+                },
+                "Component_[143687481129803698]": {
+                    "$type": "EditorHingeJointComponent",
+                    "Id": 143687481129803698,
+                    "Configuration": {
+                        "Local Rotation": [
+                            0.0,
+                            -89.99999237060547,
+                            0.0
+                        ],
+                        "Parent Entity": "Entity_[1402373246696]",
+                        "Child Entity": "Entity_[1423848083176]"
+                    },
+                    "Angular Limit": {
+                        "Positive Limit": -4.0,
+                        "Negative Limit": -175.99998474121094
+                    },
+                    "Motor": {
+                        "Use Motor": true
+                    }
+                },
+                "Component_[15888283843276217511]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 15888283843276217511
+                },
+                "Component_[17783744754927152065]": {
+                    "$type": "EditorColliderComponent",
+                    "Id": 17783744754927152065,
+                    "ColliderConfiguration": {
+                        "MaterialSlots": {
+                            "Slots": [
+                                {
+                                    "Name": "DefaultMaterial"
+                                }
+                            ]
+                        }
+                    },
+                    "ShapeConfiguration": {
+                        "PhysicsAsset": {
+                            "Asset": {
+                                "assetId": {
+                                    "guid": "{F5E29D7C-8368-5FC8-9A50-581377F71686}",
+                                    "subId": 4152747898
+                                },
+                                "assetHint": "assets/urdf/panda_description/panda_description/meshes/collision/link4.pxmesh"
+                            },
+                            "Configuration": {
+                                "PhysicsAsset": {
+                                    "assetId": {
+                                        "guid": "{F5E29D7C-8368-5FC8-9A50-581377F71686}",
+                                        "subId": 4152747898
+                                    },
+                                    "loadBehavior": "QueueLoad",
+                                    "assetHint": "assets/urdf/panda_description/panda_description/meshes/collision/link4.pxmesh"
+                                },
+                                "UseMaterialsFromAsset": false
+                            }
+                        }
+                    }
+                },
+                "Component_[18296731948827876847]": {
+                    "$type": "GenericComponentWrapper",
+                    "Id": 18296731948827876847,
+                    "m_template": {
+                        "$type": "ImGuiJointDemo"
+                    }
+                },
+                "Component_[400097927689277130]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 400097927689277130
+                },
+                "Component_[4402808457661149375]": {
+                    "$type": "EditorRigidBodyComponent",
+                    "Id": 4402808457661149375,
+                    "Configuration": {
+                        "entityId": "",
+                        "Compute Mass": false,
+                        "Mass": 2.310476303100586,
+                        "Compute COM": false,
+                        "Centre of mass offset": [
+                            -0.036050498485565186,
+                            0.0337068997323513,
+                            0.031901899725198746
+                        ],
+                        "Compute inertia": false,
+                        "Inertia tensor": [
+                            0.008783389814198017,
+                            0.0,
+                            0.0,
+                            0.0,
+                            0.008992866612970829,
+                            0.0,
+                            0.0,
+                            0.0,
+                            0.010481616482138634
+                        ]
+                    },
+                    "PhysXSpecificConfiguration": {
+                        "SolverPositionIterations": 40,
+                        "SolverVelocityIterations": 10
+                    }
+                },
+                "Component_[4933521255346694545]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 4933521255346694545
+                },
+                "Component_[5860484528716318296]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 5860484528716318296,
+                    "Parent Entity": "Entity_[1402373246696]",
+                    "Transform Data": {
+                        "Translate": [
+                            0.08249999582767487,
+                            7.105427357601002e-15,
+                            0.0
+                        ],
+                        "Rotate": [
+                            89.99998474121094,
+                            0.0,
+                            0.0
+                        ]
+                    }
+                },
+                "Component_[6490914511829866754]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 6490914511829866754
+                },
+                "Component_[8603938901844339696]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 8603938901844339696
+                },
+                "Component_[9561217997100605762]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 9561217997100605762
+                }
+            }
+        },
+        "Entity_[1428143050472]": {
+            "Id": "Entity_[1428143050472]",
+            "Name": "panda_rightfinger_visual",
+            "Components": {
+                "Component_[10427126601697002200]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 10427126601697002200
+                },
+                "Component_[10689701807611894787]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 10689701807611894787,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{3FD33201-6283-5104-80D7-34AD0DCEF99C}",
+                                    "subId": 279808703
+                                },
+                                "assetHint": "assets/urdf/panda_description/panda_description/meshes/visual/finger.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[13864387599980986616]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 13864387599980986616,
+                    "Parent Entity": "Entity_[1488272592616]",
+                    "Transform Data": {
+                        "Rotate": [
+                            0.0,
+                            0.0,
+                            180.0
+                        ]
+                    }
+                },
+                "Component_[14849482791957566358]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 14849482791957566358
+                },
+                "Component_[15740343562745812959]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 15740343562745812959
+                },
+                "Component_[17958433759910135046]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 17958433759910135046
+                },
+                "Component_[18262241756789109341]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 18262241756789109341
+                },
+                "Component_[3260035828538141562]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 3260035828538141562
+                },
+                "Component_[5734562379059832260]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 5734562379059832260
+                },
+                "Component_[6043899250469168749]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 6043899250469168749
+                }
+            }
+        },
+        "Entity_[1432438017768]": {
+            "Id": "Entity_[1432438017768]",
+            "Name": "panda_link2",
+            "Components": {
+                "Component_[11685274051949602286]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 11685274051949602286,
+                    "Child Entity Order": [
+                        "Entity_[1406668213992]",
+                        "Entity_[1402373246696]"
+                    ]
+                },
+                "Component_[12349387052897331986]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 12349387052897331986
+                },
+                "Component_[13122209249433830961]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 13122209249433830961
+                },
+                "Component_[13380066656769127874]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 13380066656769127874
+                },
+                "Component_[17263294978659087417]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 17263294978659087417,
+                    "Parent Entity": "Entity_[1479682658024]",
+                    "Transform Data": {
+                        "Rotate": [
+                            -89.99998474121094,
+                            0.0,
+                            0.0
+                        ]
+                    }
+                },
+                "Component_[17289496917523961264]": {
+                    "$type": "EditorRigidBodyComponent",
+                    "Id": 17289496917523961264,
+                    "Configuration": {
+                        "entityId": "",
+                        "Compute Mass": false,
+                        "Mass": 2.6652755737304688,
+                        "Compute COM": false,
+                        "Centre of mass offset": [
+                            3.1783301324139757e-7,
+                            -0.06860999763011932,
+                            0.0322284996509552
+                        ],
+                        "Compute inertia": false,
+                        "Inertia tensor": [
+                            0.017786940559744835,
+                            0.0,
+                            0.0,
+                            0.0,
+                            0.0075951870530843735,
+                            0.0,
+                            0.0,
+                            0.0,
+                            0.01637038215994835
+                        ]
+                    },
+                    "PhysXSpecificConfiguration": {
+                        "SolverPositionIterations": 40,
+                        "SolverVelocityIterations": 10
+                    }
+                },
+                "Component_[2584117957770865332]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 2584117957770865332
+                },
+                "Component_[4068300133305965099]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 4068300133305965099
+                },
+                "Component_[4583303953242386342]": {
+                    "$type": "EditorColliderComponent",
+                    "Id": 4583303953242386342,
+                    "ColliderConfiguration": {
+                        "MaterialSlots": {
+                            "Slots": [
+                                {
+                                    "Name": "DefaultMaterial"
+                                }
+                            ]
+                        }
+                    },
+                    "ShapeConfiguration": {
+                        "PhysicsAsset": {
+                            "Asset": {
+                                "assetId": {
+                                    "guid": "{AA03F296-279D-5409-BCFE-F5B97343C4EE}",
+                                    "subId": 3244359312
+                                },
+                                "assetHint": "assets/urdf/panda_description/panda_description/meshes/collision/link2.pxmesh"
+                            },
+                            "Configuration": {
+                                "PhysicsAsset": {
+                                    "assetId": {
+                                        "guid": "{AA03F296-279D-5409-BCFE-F5B97343C4EE}",
+                                        "subId": 3244359312
+                                    },
+                                    "loadBehavior": "QueueLoad",
+                                    "assetHint": "assets/urdf/panda_description/panda_description/meshes/collision/link2.pxmesh"
+                                },
+                                "UseMaterialsFromAsset": false
+                            }
+                        }
+                    }
+                },
+                "Component_[5327684577197146487]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 5327684577197146487
+                },
+                "Component_[7097245922569463235]": {
+                    "$type": "EditorHingeJointComponent",
+                    "Id": 7097245922569463235,
+                    "Configuration": {
+                        "Local Rotation": [
+                            0.0,
+                            -89.99999237060547,
+                            0.0
+                        ],
+                        "Parent Entity": "Entity_[1479682658024]",
+                        "Child Entity": "Entity_[1432438017768]"
+                    },
+                    "Angular Limit": {
+                        "Positive Limit": 101.0,
+                        "Negative Limit": -101.0
+                    },
+                    "Motor": {
+                        "Use Motor": true,
+                        "Gear Ratio": 10.0
+                    }
+                },
+                "Component_[804351385537396011]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 804351385537396011
+                },
+                "Component_[9659878281939243278]": {
+                    "$type": "GenericComponentWrapper",
+                    "Id": 9659878281939243278,
+                    "m_template": {
+                        "$type": "ImGuiJointDemo"
+                    }
+                }
+            }
+        },
+        "Entity_[1436732985064]": {
+            "Id": "Entity_[1436732985064]",
+            "Name": "panda_link5_visual",
+            "Components": {
+                "Component_[11060167279999234858]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 11060167279999234858
+                },
+                "Component_[1462147876988610058]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 1462147876988610058
+                },
+                "Component_[14652798813504289690]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 14652798813504289690,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{5B73CB39-7795-5819-813D-E05E3B212AE7}",
+                                    "subId": 272451005
+                                },
+                                "assetHint": "assets/urdf/panda_description/panda_description/meshes/visual/link5.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[17338603180772065985]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 17338603180772065985
+                },
+                "Component_[2581768843261959063]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 2581768843261959063,
+                    "Parent Entity": "Entity_[1453912854248]"
+                },
+                "Component_[3309211502415539]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 3309211502415539
+                },
+                "Component_[483903852765706409]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 483903852765706409
+                },
+                "Component_[5705049197738806759]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 5705049197738806759
+                },
+                "Component_[8284507001227361542]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 8284507001227361542
+                },
+                "Component_[9375903850292364080]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 9375903850292364080
+                }
+            }
+        },
+        "Entity_[1441027952360]": {
+            "Id": "Entity_[1441027952360]",
+            "Name": "panda_link7",
+            "Components": {
+                "Component_[10558063142983517177]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 10558063142983517177
+                },
+                "Component_[10696870744191823255]": {
+                    "$type": "EditorHingeJointComponent",
+                    "Id": 10696870744191823255,
+                    "Configuration": {
+                        "Local Rotation": [
+                            0.0,
+                            -89.99999237060547,
+                            0.0
+                        ],
+                        "Parent Entity": "Entity_[1389488344808]",
+                        "Child Entity": "Entity_[1441027952360]"
+                    },
+                    "Angular Limit": {
+                        "Positive Limit": 166.0,
+                        "Negative Limit": -166.0
+                    },
+                    "Motor": {
+                        "Use Motor": true
+                    }
+                },
+                "Component_[14642315946499918737]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 14642315946499918737
+                },
+                "Component_[17559529945025583655]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 17559529945025583655
+                },
+                "Component_[17957063234535786630]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 17957063234535786630
+                },
+                "Component_[2078894635549348933]": {
+                    "$type": "EditorRigidBodyComponent",
+                    "Id": 2078894635549348933,
+                    "Configuration": {
+                        "entityId": "",
+                        "Compute Mass": false,
+                        "Mass": 0.523766815662384,
+                        "Compute COM": false,
+                        "Centre of mass offset": [
+                            0.010969500057399273,
+                            0.010796500369906425,
+                            0.0650411993265152
+                        ],
+                        "Compute inertia": false,
+                        "Inertia tensor": [
+                            0.0008711396949365735,
+                            0.0,
+                            0.0,
+                            0.0,
+                            0.000874157587531954,
+                            0.0,
+                            0.0,
+                            0.0,
+                            0.0007030463311821222
+                        ]
+                    },
+                    "PhysXSpecificConfiguration": {
+                        "SolverPositionIterations": 40,
+                        "SolverVelocityIterations": 10
+                    }
+                },
+                "Component_[2207140849554352415]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 2207140849554352415,
+                    "Parent Entity": "Entity_[1389488344808]",
+                    "Transform Data": {
+                        "Translate": [
+                            0.08799998462200165,
+                            0.0,
+                            0.0
+                        ],
+                        "Rotate": [
+                            90.00001525878906,
+                            0.0,
+                            0.0
+                        ]
+                    }
+                },
+                "Component_[2932430117545506753]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 2932430117545506753
+                },
+                "Component_[5924196996510927056]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 5924196996510927056,
+                    "DisabledComponents": [
+                        {
+                            "$type": "EditorColliderComponent",
+                            "Id": 4132830031301136330,
+                            "ColliderConfiguration": {
+                                "MaterialSlots": {
+                                    "Slots": [
+                                        {
+                                            "Name": "DefaultMaterial"
+                                        }
+                                    ]
+                                }
+                            },
+                            "ShapeConfiguration": {
+                                "PhysicsAsset": {
+                                    "Asset": {
+                                        "assetId": {
+                                            "guid": "{F88B053A-E59A-5DCA-BA48-C65A7F9AAE4E}",
+                                            "subId": 4045727865
+                                        },
+                                        "assetHint": "assets/urdf/panda_description/panda_description/meshes/collision/link7.pxmesh"
+                                    },
+                                    "Configuration": {
+                                        "PhysicsAsset": {
+                                            "assetId": {
+                                                "guid": "{F88B053A-E59A-5DCA-BA48-C65A7F9AAE4E}",
+                                                "subId": 4045727865
+                                            },
+                                            "loadBehavior": "QueueLoad",
+                                            "assetHint": "assets/urdf/panda_description/panda_description/meshes/collision/link7.pxmesh"
+                                        },
+                                        "UseMaterialsFromAsset": false
+                                    }
+                                }
+                            }
+                        }
+                    ]
+                },
+                "Component_[7225487299122439955]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 7225487299122439955,
+                    "Child Entity Order": [
+                        "Entity_[1393783312104]",
+                        "Entity_[1410963181288]"
+                    ]
+                },
+                "Component_[9499506582606601758]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 9499506582606601758
+                },
+                "Component_[9831211553258061846]": {
+                    "$type": "GenericComponentWrapper",
+                    "Id": 9831211553258061846,
+                    "m_template": {
+                        "$type": "ImGuiJointDemo"
+                    }
+                }
+            }
+        },
+        "Entity_[1445322919656]": {
+            "Id": "Entity_[1445322919656]",
+            "Name": "panda_hand",
+            "Components": {
+                "Component_[12551621526998967469]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 12551621526998967469
+                },
+                "Component_[13402524642038966171]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 13402524642038966171,
+                    "Child Entity Order": [
+                        "Entity_[1415258148584]",
+                        "Entity_[1398078279400]",
+                        "Entity_[1471092723432]",
+                        "Entity_[1488272592616]"
+                    ]
+                },
+                "Component_[14327394426014884890]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 14327394426014884890
+                },
+                "Component_[14907218637753709498]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 14907218637753709498
+                },
+                "Component_[1747436092034981914]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 1747436092034981914
+                },
+                "Component_[2421854069690983538]": {
+                    "$type": "EditorFixedJointComponent",
+                    "Id": 2421854069690983538,
+                    "Configuration": {
+                        "Parent Entity": "Entity_[1410963181288]",
+                        "Child Entity": "Entity_[1445322919656]"
+                    }
+                },
+                "Component_[2510677924607121608]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 2510677924607121608
+                },
+                "Component_[3636147994185355839]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 3636147994185355839
+                },
+                "Component_[3653972652814557705]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 3653972652814557705,
+                    "DisabledComponents": [
+                        {
+                            "$type": "EditorColliderComponent",
+                            "Id": 12527173394158692186,
+                            "ColliderConfiguration": {
+                                "MaterialSlots": {
+                                    "Slots": [
+                                        {
+                                            "Name": "DefaultMaterial"
+                                        }
+                                    ]
+                                }
+                            },
+                            "ShapeConfiguration": {
+                                "PhysicsAsset": {
+                                    "Asset": {
+                                        "assetId": {
+                                            "guid": "{0F8D8030-40D0-50BC-AE6D-DBFDB1423A01}",
+                                            "subId": 3467673227
+                                        },
+                                        "assetHint": "assets/urdf/panda_description/panda_description/meshes/collision/hand.pxmesh"
+                                    },
+                                    "Configuration": {
+                                        "PhysicsAsset": {
+                                            "assetId": {
+                                                "guid": "{0F8D8030-40D0-50BC-AE6D-DBFDB1423A01}",
+                                                "subId": 3467673227
+                                            },
+                                            "loadBehavior": "QueueLoad",
+                                            "assetHint": "assets/urdf/panda_description/panda_description/meshes/collision/hand.pxmesh"
+                                        },
+                                        "UseMaterialsFromAsset": false
+                                    }
+                                }
+                            }
+                        }
+                    ]
+                },
+                "Component_[377223145072966889]": {
+                    "$type": "EditorRigidBodyComponent",
+                    "Id": 377223145072966889,
+                    "Configuration": {
+                        "entityId": "",
+                        "Compute Mass": false,
+                        "Mass": 0.14060765504837036,
+                        "Compute COM": false,
+                        "Centre of mass offset": [
+                            -0.00000676240006214357,
+                            0.0015243500238284469,
+                            0.027591200545430183
+                        ],
+                        "Compute inertia": false,
+                        "Inertia tensor": [
+                            0.0005365450633689761,
+                            0.0,
+                            0.0,
+                            0.0,
+                            0.00007705121242906898,
+                            0.0,
+                            0.0,
+                            0.0,
+                            0.0004938176716677845
+                        ]
+                    },
+                    "PhysXSpecificConfiguration": {
+                        "SolverPositionIterations": 40,
+                        "SolverVelocityIterations": 10
+                    }
+                },
+                "Component_[9416643980828405623]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 9416643980828405623,
+                    "Parent Entity": "Entity_[1410963181288]",
+                    "Transform Data": {
+                        "Rotate": [
+                            2.9822420032597774e-13,
+                            3.438553424200269e-13,
+                            -8.948826745840486e-28
+                        ]
+                    }
+                }
+            }
+        },
+        "Entity_[1449617886952]": {
+            "Id": "Entity_[1449617886952]",
+            "Name": "panda_link0_visual",
+            "Components": {
+                "Component_[10825680498731110401]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 10825680498731110401
+                },
+                "Component_[12362213493842313231]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 12362213493842313231
+                },
+                "Component_[12516294397900397214]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 12516294397900397214,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{3842707A-4020-555F-B569-937D34857A04}",
+                                    "subId": 274182450
+                                },
+                                "assetHint": "assets/urdf/panda_description/panda_description/meshes/visual/link0.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[13167613343964391547]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 13167613343964391547,
+                    "Parent Entity": "Entity_[1462502788840]"
+                },
+                "Component_[14604114869224247260]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 14604114869224247260
+                },
+                "Component_[15669940640302432085]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 15669940640302432085
+                },
+                "Component_[16044878493014329073]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 16044878493014329073
+                },
+                "Component_[16467534599593027034]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 16467534599593027034
+                },
+                "Component_[785659650618515401]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 785659650618515401
+                },
+                "Component_[9873929354130186388]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 9873929354130186388
+                }
+            }
+        },
+        "Entity_[1453912854248]": {
+            "Id": "Entity_[1453912854248]",
+            "Name": "panda_link5",
+            "Components": {
+                "Component_[11146083690564568129]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 11146083690564568129
+                },
+                "Component_[16029546392385670672]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 16029546392385670672
+                },
+                "Component_[18047203202819023681]": {
+                    "$type": "EditorRigidBodyComponent",
+                    "Id": 18047203202819023681,
+                    "Configuration": {
+                        "entityId": "",
+                        "Compute Mass": false,
+                        "Mass": 2.6226425170898438,
+                        "Compute COM": false,
+                        "Centre of mass offset": [
+                            -0.000006125249910837738,
+                            0.061042699962854385,
+                            -0.10417599976062775
+                        ],
+                        "Compute inertia": false,
+                        "Inertia tensor": [
+                            0.0290705393999815,
+                            0.0,
+                            0.0,
+                            0.0,
+                            0.028618328273296356,
+                            0.0,
+                            0.0,
+                            0.0,
+                            0.008555254898965359
+                        ]
+                    },
+                    "PhysXSpecificConfiguration": {
+                        "SolverPositionIterations": 40,
+                        "SolverVelocityIterations": 10
+                    }
+                },
+                "Component_[1845866248095674128]": {
+                    "$type": "EditorColliderComponent",
+                    "Id": 1845866248095674128,
+                    "ColliderConfiguration": {
+                        "MaterialSlots": {
+                            "Slots": [
+                                {
+                                    "Name": "DefaultMaterial"
+                                }
+                            ]
+                        }
+                    },
+                    "ShapeConfiguration": {
+                        "PhysicsAsset": {
+                            "Asset": {
+                                "assetId": {
+                                    "guid": "{CB30723D-12BA-590D-91D8-6A2E13B443BF}",
+                                    "subId": 3519822991
+                                },
+                                "assetHint": "assets/urdf/panda_description/panda_description/meshes/collision/link5.pxmesh"
+                            },
+                            "Configuration": {
+                                "PhysicsAsset": {
+                                    "assetId": {
+                                        "guid": "{CB30723D-12BA-590D-91D8-6A2E13B443BF}",
+                                        "subId": 3519822991
+                                    },
+                                    "loadBehavior": "QueueLoad",
+                                    "assetHint": "assets/urdf/panda_description/panda_description/meshes/collision/link5.pxmesh"
+                                },
+                                "UseMaterialsFromAsset": false
+                            }
+                        }
+                    }
+                },
+                "Component_[2296827166106929870]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 2296827166106929870,
+                    "Child Entity Order": [
+                        "Entity_[1436732985064]",
+                        "Entity_[1389488344808]"
+                    ]
+                },
+                "Component_[2671723692007071615]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 2671723692007071615,
+                    "Parent Entity": "Entity_[1423848083176]",
+                    "Transform Data": {
+                        "Translate": [
+                            -0.08249998837709427,
+                            0.3840000629425049,
+                            1.3732909565078444e-7
+                        ],
+                        "Rotate": [
+                            -89.9999771118164,
+                            0.0,
+                            0.0
+                        ]
+                    }
+                },
+                "Component_[5101381396165317109]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 5101381396165317109
+                },
+                "Component_[5256968178503014931]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 5256968178503014931
+                },
+                "Component_[7004057836086193338]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 7004057836086193338
+                },
+                "Component_[7312070035559241102]": {
+                    "$type": "EditorHingeJointComponent",
+                    "Id": 7312070035559241102,
+                    "Configuration": {
+                        "Local Rotation": [
+                            0.0,
+                            -89.99999237060547,
+                            0.0
+                        ],
+                        "Parent Entity": "Entity_[1423848083176]",
+                        "Child Entity": "Entity_[1453912854248]"
+                    },
+                    "Angular Limit": {
+                        "Positive Limit": 166.0,
+                        "Negative Limit": -166.0
+                    },
+                    "Motor": {
+                        "Use Motor": true
+                    }
+                },
+                "Component_[7957954241301087468]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 7957954241301087468
+                },
+                "Component_[8094060465522202108]": {
+                    "$type": "GenericComponentWrapper",
+                    "Id": 8094060465522202108,
+                    "m_template": {
+                        "$type": "ImGuiJointDemo"
+                    }
+                },
+                "Component_[946063945878607995]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 946063945878607995
+                }
+            }
+        },
+        "Entity_[1458207821544]": {
+            "Id": "Entity_[1458207821544]",
+            "Name": "panda_leftfinger_visual",
+            "Components": {
+                "Component_[13811571509749743189]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 13811571509749743189
+                },
+                "Component_[15201822486803307758]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 15201822486803307758,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{3FD33201-6283-5104-80D7-34AD0DCEF99C}",
+                                    "subId": 279808703
+                                },
+                                "assetHint": "assets/urdf/panda_description/panda_description/meshes/visual/finger.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[17912093847931097253]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 17912093847931097253
+                },
+                "Component_[18137102233943031321]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 18137102233943031321
+                },
+                "Component_[18230585574590685193]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 18230585574590685193
+                },
+                "Component_[4640473479684852658]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 4640473479684852658
+                },
+                "Component_[4641901124960453463]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 4641901124960453463
+                },
+                "Component_[6926860558467937457]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 6926860558467937457
+                },
+                "Component_[8659698482583807911]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 8659698482583807911,
+                    "Parent Entity": "Entity_[1471092723432]"
+                },
+                "Component_[9996370531107794697]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 9996370531107794697
+                }
+            }
+        },
+        "Entity_[1462502788840]": {
+            "Id": "Entity_[1462502788840]",
+            "Name": "panda_link0",
+            "Components": {
+                "Component_[11023397522690486469]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 11023397522690486469
+                },
+                "Component_[11387080232339540049]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 11387080232339540049
+                },
+                "Component_[16949229272838450297]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 16949229272838450297
+                },
+                "Component_[2446713206361739636]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 2446713206361739636
+                },
+                "Component_[2700644164379524124]": {
+                    "$type": "EditorFixedJointComponent",
+                    "Id": 2700644164379524124,
+                    "Configuration": {
+                        "Parent Entity": "Entity_[1475387690728]",
+                        "Child Entity": "Entity_[1462502788840]"
+                    }
+                },
+                "Component_[3321071768378159460]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 3321071768378159460,
+                    "Parent Entity": "Entity_[1475387690728]",
+                    "Transform Data": {
+                        "Translate": [
+                            0.0,
+                            0.0,
+                            0.25709283351898193
+                        ]
+                    }
+                },
+                "Component_[4104582140859943209]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 4104582140859943209
+                },
+                "Component_[437748331174129765]": {
+                    "$type": "EditorRigidBodyComponent",
+                    "Id": 437748331174129765,
+                    "Configuration": {
+                        "entityId": "",
+                        "Compute Mass": false,
+                        "Mass": 2.8142712116241455,
+                        "Compute COM": false,
+                        "Centre of mass offset": [
+                            -0.02556600049138069,
+                            -0.00002878829945984762,
+                            0.05733200162649155
+                        ],
+                        "Compute inertia": false,
+                        "Inertia tensor": [
+                            0.007636265829205513,
+                            0.0,
+                            0.0,
+                            0.0,
+                            0.010508033446967602,
+                            0.0,
+                            0.0,
+                            0.0,
+                            0.009939409792423248
+                        ]
+                    },
+                    "PhysXSpecificConfiguration": {
+                        "SolverPositionIterations": 40,
+                        "SolverVelocityIterations": 10
+                    }
+                },
+                "Component_[4516403928144409270]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 4516403928144409270
+                },
+                "Component_[6652769527061926292]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 6652769527061926292
+                },
+                "Component_[757503998028240491]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 757503998028240491,
+                    "Child Entity Order": [
+                        "Entity_[1449617886952]",
+                        "Entity_[1479682658024]"
+                    ]
+                },
+                "Component_[7816217204977771734]": {
+                    "$type": "EditorColliderComponent",
+                    "Id": 7816217204977771734,
+                    "ColliderConfiguration": {
+                        "MaterialSlots": {
+                            "Slots": [
+                                {
+                                    "Name": "DefaultMaterial"
+                                }
+                            ]
+                        }
+                    },
+                    "ShapeConfiguration": {
+                        "PhysicsAsset": {
+                            "Asset": {
+                                "assetId": {
+                                    "guid": "{A54F8762-5D10-53C8-950B-1AEC2993F0AC}",
+                                    "subId": 1559438218
+                                },
+                                "assetHint": "assets/urdf/panda_description/panda_description/meshes/collision/link0.pxmesh"
+                            },
+                            "Configuration": {
+                                "PhysicsAsset": {
+                                    "assetId": {
+                                        "guid": "{A54F8762-5D10-53C8-950B-1AEC2993F0AC}",
+                                        "subId": 1559438218
+                                    },
+                                    "loadBehavior": "QueueLoad",
+                                    "assetHint": "assets/urdf/panda_description/panda_description/meshes/collision/link0.pxmesh"
+                                },
+                                "UseMaterialsFromAsset": false
+                            }
+                        }
+                    }
+                }
+            }
+        },
+        "Entity_[1466797756136]": {
+            "Id": "Entity_[1466797756136]",
+            "Name": "panda_link6_visual",
+            "Components": {
+                "Component_[10481057607952329087]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 10481057607952329087,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{CE66D5E5-09AC-593D-BDAC-1B5AB8570E7C}",
+                                    "subId": 271848455
+                                },
+                                "assetHint": "assets/urdf/panda_description/panda_description/meshes/visual/link6.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[12389245641422761500]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 12389245641422761500
+                },
+                "Component_[13062250255461171583]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 13062250255461171583
+                },
+                "Component_[13073738493660970633]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 13073738493660970633
+                },
+                "Component_[15992495973345264086]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 15992495973345264086
+                },
+                "Component_[16758064438201464483]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 16758064438201464483
+                },
+                "Component_[4819945248226536697]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 4819945248226536697
+                },
+                "Component_[5775968904229939613]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 5775968904229939613
+                },
+                "Component_[7263909256782742526]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 7263909256782742526
+                },
+                "Component_[7433508156475950836]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 7433508156475950836,
+                    "Parent Entity": "Entity_[1389488344808]"
+                }
+            }
+        },
+        "Entity_[1471092723432]": {
+            "Id": "Entity_[1471092723432]",
+            "Name": "panda_leftfinger",
+            "Components": {
+                "Component_[10623052683589204749]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 10623052683589204749
+                },
+                "Component_[1226223175206848789]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 1226223175206848789
+                },
+                "Component_[12307584536677418783]": {
+                    "$type": "GenericComponentWrapper",
+                    "Id": 12307584536677418783,
+                    "m_template": {
+                        "$type": "ImGuiJointDemo"
+                    }
+                },
+                "Component_[12542366717714580296]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 12542366717714580296
+                },
+                "Component_[1642651622480229913]": {
+                    "$type": "EditorColliderComponent",
+                    "Id": 1642651622480229913,
+                    "ColliderConfiguration": {
+                        "MaterialSlots": {
+                            "Slots": [
+                                {
+                                    "Name": "DefaultMaterial"
+                                }
+                            ]
+                        }
+                    },
+                    "ShapeConfiguration": {
+                        "PhysicsAsset": {
+                            "Asset": {
+                                "assetId": {
+                                    "guid": "{DFAC8757-EC4A-5885-AAB8-F7E86593D73E}",
+                                    "subId": 4167574034
+                                },
+                                "assetHint": "assets/urdf/panda_description/panda_description/meshes/collision/finger.pxmesh"
+                            },
+                            "Configuration": {
+                                "PhysicsAsset": {
+                                    "assetId": {
+                                        "guid": "{DFAC8757-EC4A-5885-AAB8-F7E86593D73E}",
+                                        "subId": 4167574034
+                                    },
+                                    "loadBehavior": "QueueLoad",
+                                    "assetHint": "assets/urdf/panda_description/panda_description/meshes/collision/finger.pxmesh"
+                                },
+                                "UseMaterialsFromAsset": false
+                            }
+                        }
+                    }
+                },
+                "Component_[18095480052002538812]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 18095480052002538812,
+                    "Parent Entity": "Entity_[1445322919656]",
+                    "Transform Data": {
+                        "Translate": [
+                            0.0,
+                            0.0,
+                            0.05840003490447998
+                        ]
+                    }
+                },
+                "Component_[4530903244721043167]": {
+                    "$type": "EditorPrismaticJointComponent",
+                    "Id": 4530903244721043167,
+                    "Configuration": {
+                        "Local Rotation": [
+                            0.0,
+                            0.0,
+                            89.99999237060547
+                        ],
+                        "Parent Entity": "Entity_[1445322919656]",
+                        "Child Entity": "Entity_[1471092723432]"
+                    },
+                    "Linear Limit": {
+                        "Lower Limit": 0.0,
+                        "Upper Limit": 0.03999999910593033
+                    },
+                    "Motor": {
+                        "Use Motor": true
+                    }
+                },
+                "Component_[5011659990375240844]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 5011659990375240844
+                },
+                "Component_[6020773828605036995]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 6020773828605036995
+                },
+                "Component_[7846565595297359090]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 7846565595297359090
+                },
+                "Component_[793825956035625059]": {
+                    "$type": "EditorRigidBodyComponent",
+                    "Id": 793825956035625059,
+                    "Configuration": {
+                        "entityId": "",
+                        "Compute Mass": false,
+                        "Mass": 0.22384534776210785,
+                        "Compute COM": false,
+                        "Centre of mass offset": [
+                            -0.000006256099823076511,
+                            0.0022778098937124014,
+                            -0.027711600065231323
+                        ],
+                        "Compute inertia": false,
+                        "Inertia tensor": [
+                            0.0000674804177833721,
+                            0.0,
+                            0.0,
+                            0.0,
+                            0.00006734378985129297,
+                            0.0,
+                            0.0,
+                            0.0,
+                            0.00001958559369086288
+                        ]
+                    },
+                    "PhysXSpecificConfiguration": {
+                        "SolverPositionIterations": 40,
+                        "SolverVelocityIterations": 10
+                    }
+                },
+                "Component_[8237210125200439601]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 8237210125200439601,
+                    "Child Entity Order": [
+                        "Entity_[1458207821544]"
+                    ]
+                },
+                "Component_[9630688787517995368]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 9630688787517995368
+                }
+            }
+        },
+        "Entity_[1475387690728]": {
+            "Id": "Entity_[1475387690728]",
+            "Name": "world",
+            "Components": {
+                "Component_[11563173854938418344]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 11563173854938418344
+                },
+                "Component_[12850034890750568699]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 12850034890750568699,
+                    "Child Entity Order": [
+                        "Entity_[1462502788840]"
+                    ]
+                },
+                "Component_[14020412843678536872]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 14020412843678536872
+                },
+                "Component_[16661421188458055654]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 16661421188458055654
+                },
+                "Component_[1783959135520523211]": {
+                    "$type": "EditorRigidBodyComponent",
+                    "Id": 1783959135520523211,
+                    "Configuration": {
+                        "entityId": "",
+                        "Compute Mass": false,
+                        "Mass": 100.0,
+                        "Inertia tensor": [
+                            10.416666984558105,
+                            0.0,
+                            0.0,
+                            0.0,
+                            10.416666984558105,
+                            0.0,
+                            0.0,
+                            0.0,
+                            16.666667938232422
+                        ]
+                    },
+                    "PhysXSpecificConfiguration": {
+                        "SolverPositionIterations": 40,
+                        "SolverVelocityIterations": 10
+                    }
+                },
+                "Component_[17924567566051173609]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 17924567566051173609
+                },
+                "Component_[18046433547961932477]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 18046433547961932477
+                },
+                "Component_[3645268370928419279]": {
+                    "$type": "EditorBoxShapeComponent",
+                    "Id": 3645268370928419279,
+                    "GameView": true,
+                    "BoxShape": {
+                        "Configuration": {
+                            "Dimensions": [
+                                1.0,
+                                1.0,
+                                0.5
+                            ]
+                        }
+                    }
+                },
+                "Component_[4967855945839220490]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 4967855945839220490
+                },
+                "Component_[5727156644387859301]": {
+                    "$type": "EditorColliderComponent",
+                    "Id": 5727156644387859301,
+                    "ColliderConfiguration": {
+                        "MaterialSlots": {
+                            "Slots": [
+                                {
+                                    "Name": "Entire object"
+                                }
+                            ]
+                        }
+                    },
+                    "ShapeConfiguration": {
+                        "ShapeType": 1,
+                        "Box": {
+                            "Configuration": [
+                                1.0,
+                                1.0,
+                                0.5
+                            ]
+                        }
+                    }
+                },
+                "Component_[8718775976112602879]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 8718775976112602879
+                },
+                "Component_[9421105513909709650]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 9421105513909709650,
+                    "Parent Entity": "ContainerEntity",
+                    "Transform Data": {
+                        "Translate": [
+                            0.0,
+                            0.0,
+                            0.3937875032424927
+                        ]
+                    }
+                }
+            }
+        },
+        "Entity_[1479682658024]": {
+            "Id": "Entity_[1479682658024]",
+            "Name": "panda_link1",
+            "Components": {
+                "Component_[1026580191358270278]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 1026580191358270278
+                },
+                "Component_[10604888746672015994]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 10604888746672015994
+                },
+                "Component_[11501414974256442375]": {
+                    "$type": "GenericComponentWrapper",
+                    "Id": 11501414974256442375,
+                    "m_template": {
+                        "$type": "ImGuiJointDemo"
+                    }
+                },
+                "Component_[13021556176595338229]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 13021556176595338229
+                },
+                "Component_[14094898748846434315]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 14094898748846434315
+                },
+                "Component_[15902421467411022820]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 15902421467411022820
+                },
+                "Component_[17055220683859828516]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 17055220683859828516,
+                    "Child Entity Order": [
+                        "Entity_[1419553115880]",
+                        "Entity_[1432438017768]"
+                    ]
+                },
+                "Component_[2702080824212756158]": {
+                    "$type": "EditorRigidBodyComponent",
+                    "Id": 2702080824212756158,
+                    "Configuration": {
+                        "entityId": "",
+                        "Compute Mass": false,
+                        "Mass": 2.6433169841766357,
+                        "Compute COM": false,
+                        "Centre of mass offset": [
+                            -3.7221199455927945e-9,
+                            -0.03249580040574074,
+                            -0.06758180260658264
+                        ],
+                        "Compute inertia": false,
+                        "Inertia tensor": [
+                            0.017405077815055847,
+                            0.0,
+                            0.0,
+                            0.0,
+                            0.01600106619298458,
+                            0.0,
+                            0.0,
+                            0.0,
+                            0.007496844045817852
+                        ]
+                    },
+                    "PhysXSpecificConfiguration": {
+                        "SolverPositionIterations": 40,
+                        "SolverVelocityIterations": 10
+                    }
+                },
+                "Component_[5967902799324868464]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 5967902799324868464,
+                    "Parent Entity": "Entity_[1462502788840]",
+                    "Transform Data": {
+                        "Translate": [
+                            0.0,
+                            0.0,
+                            0.3330000042915344
+                        ]
+                    }
+                },
+                "Component_[749807106692815373]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 749807106692815373
+                },
+                "Component_[7528664902228744033]": {
+                    "$type": "EditorHingeJointComponent",
+                    "Id": 7528664902228744033,
+                    "Configuration": {
+                        "Local Rotation": [
+                            0.0,
+                            -89.99999237060547,
+                            0.0
+                        ],
+                        "Parent Entity": "Entity_[1462502788840]",
+                        "Child Entity": "Entity_[1479682658024]"
+                    },
+                    "Angular Limit": {
+                        "Positive Limit": 166.0,
+                        "Negative Limit": -166.0
+                    },
+                    "Motor": {
+                        "Use Motor": true
+                    }
+                },
+                "Component_[7651470095727410225]": {
+                    "$type": "EditorColliderComponent",
+                    "Id": 7651470095727410225,
+                    "ColliderConfiguration": {
+                        "MaterialSlots": {
+                            "Slots": [
+                                {
+                                    "Name": "DefaultMaterial"
+                                }
+                            ]
+                        }
+                    },
+                    "ShapeConfiguration": {
+                        "PhysicsAsset": {
+                            "Asset": {
+                                "assetId": {
+                                    "guid": "{4D8BD2BC-0C41-58CD-B879-B129A8644D36}",
+                                    "subId": 3673033472
+                                },
+                                "assetHint": "assets/urdf/panda_description/panda_description/meshes/collision/link1.pxmesh"
+                            },
+                            "Configuration": {
+                                "PhysicsAsset": {
+                                    "assetId": {
+                                        "guid": "{4D8BD2BC-0C41-58CD-B879-B129A8644D36}",
+                                        "subId": 3673033472
+                                    },
+                                    "loadBehavior": "QueueLoad",
+                                    "assetHint": "assets/urdf/panda_description/panda_description/meshes/collision/link1.pxmesh"
+                                },
+                                "UseMaterialsFromAsset": false
+                            }
+                        }
+                    }
+                },
+                "Component_[7658646984313827532]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 7658646984313827532
+                }
+            }
+        },
+        "Entity_[1483977625320]": {
+            "Id": "Entity_[1483977625320]",
+            "Name": "panda_link3_visual",
+            "Components": {
+                "Component_[10719522543450535245]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 10719522543450535245
+                },
+                "Component_[12679040307807472041]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 12679040307807472041
+                },
+                "Component_[1489495166770715923]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 1489495166770715923
+                },
+                "Component_[1542893064856696086]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 1542893064856696086,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{6A81A808-B5F5-54C1-9B85-B3AB3912AB3A}",
+                                    "subId": 274653320
+                                },
+                                "assetHint": "assets/urdf/panda_description/panda_description/meshes/visual/link3.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[16203591625115569827]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 16203591625115569827
+                },
+                "Component_[1668935785088600792]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 1668935785088600792
+                },
+                "Component_[16808104400905918500]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 16808104400905918500,
+                    "Parent Entity": "Entity_[1402373246696]"
+                },
+                "Component_[2001918989029160751]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 2001918989029160751
+                },
+                "Component_[8560507514947751954]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 8560507514947751954
+                },
+                "Component_[8946061601820481143]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 8946061601820481143
+                }
+            }
+        },
+        "Entity_[1488272592616]": {
+            "Id": "Entity_[1488272592616]",
+            "Name": "panda_rightfinger",
+            "Components": {
+                "Component_[12094943479793120756]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 12094943479793120756
+                },
+                "Component_[1352358979643850014]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 1352358979643850014
+                },
+                "Component_[14554244268325390611]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 14554244268325390611
+                },
+                "Component_[15085426669312785097]": {
+                    "$type": "GenericComponentWrapper",
+                    "Id": 15085426669312785097,
+                    "m_template": {
+                        "$type": "ImGuiJointDemo"
+                    }
+                },
+                "Component_[1543342704919662467]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 1543342704919662467,
+                    "Parent Entity": "Entity_[1445322919656]",
+                    "Transform Data": {
+                        "Translate": [
+                            0.0,
+                            0.0,
+                            0.05840003490447998
+                        ]
+                    }
+                },
+                "Component_[16273116764622982077]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 16273116764622982077
+                },
+                "Component_[1903930015834931168]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 1903930015834931168
+                },
+                "Component_[2188957055815424499]": {
+                    "$type": "EditorColliderComponent",
+                    "Id": 2188957055815424499,
+                    "ColliderConfiguration": {
+                        "Rotation": [
+                            0.0,
+                            0.0,
+                            1.0,
+                            6.123234262925839e-17
+                        ],
+                        "MaterialSlots": {
+                            "Slots": [
+                                {
+                                    "Name": "DefaultMaterial"
+                                }
+                            ]
+                        }
+                    },
+                    "ShapeConfiguration": {
+                        "PhysicsAsset": {
+                            "Asset": {
+                                "assetId": {
+                                    "guid": "{DFAC8757-EC4A-5885-AAB8-F7E86593D73E}",
+                                    "subId": 4167574034
+                                },
+                                "assetHint": "assets/urdf/panda_description/panda_description/meshes/collision/finger.pxmesh"
+                            },
+                            "Configuration": {
+                                "PhysicsAsset": {
+                                    "assetId": {
+                                        "guid": "{DFAC8757-EC4A-5885-AAB8-F7E86593D73E}",
+                                        "subId": 4167574034
+                                    },
+                                    "loadBehavior": "QueueLoad",
+                                    "assetHint": "assets/urdf/panda_description/panda_description/meshes/collision/finger.pxmesh"
+                                },
+                                "UseMaterialsFromAsset": false
+                            }
+                        }
+                    }
+                },
+                "Component_[2310690044688145497]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 2310690044688145497
+                },
+                "Component_[4879485097231618998]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 4879485097231618998,
+                    "Child Entity Order": [
+                        "Entity_[1428143050472]"
+                    ]
+                },
+                "Component_[5165586741528335352]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 5165586741528335352
+                },
+                "Component_[7834469565463677581]": {
+                    "$type": "EditorRigidBodyComponent",
+                    "Id": 7834469565463677581,
+                    "Configuration": {
+                        "entityId": "",
+                        "Compute Mass": false,
+                        "Mass": 0.22384534776210785,
+                        "Compute COM": false,
+                        "Centre of mass offset": [
+                            -0.000006256099823076511,
+                            0.0022778098937124014,
+                            -0.027711600065231323
+                        ],
+                        "Compute inertia": false,
+                        "Inertia tensor": [
+                            0.0000674804177833721,
+                            0.0,
+                            0.0,
+                            0.0,
+                            0.00006734378985129297,
+                            0.0,
+                            0.0,
+                            0.0,
+                            0.00001958559369086288
+                        ]
+                    },
+                    "PhysXSpecificConfiguration": {
+                        "SolverPositionIterations": 40,
+                        "SolverVelocityIterations": 10
+                    }
+                },
+                "Component_[9780676025675487972]": {
+                    "$type": "EditorPrismaticJointComponent",
+                    "Id": 9780676025675487972,
+                    "Configuration": {
+                        "Local Rotation": [
+                            0.0,
+                            0.0,
+                            -89.99999237060547
+                        ],
+                        "Parent Entity": "Entity_[1445322919656]",
+                        "Child Entity": "Entity_[1488272592616]"
+                    },
+                    "Linear Limit": {
+                        "Lower Limit": 0.0,
+                        "Upper Limit": 0.03999999910593033
+                    },
+                    "Motor": {
+                        "Use Motor": true
+                    }
+                }
+            }
+        }
+    }
+}

+ 372 - 0
Assets/URDF/husky/husky.urdf

@@ -0,0 +1,372 @@
+<?xml version="1.0" ?>
+<!-- =================================================================================== -->
+<!-- |    This document was autogenerated by xacro from ../urdf/husky.urdf.xacro       | -->
+<!-- |    EDITING THIS FILE BY HAND IS NOT RECOMMENDED                                 | -->
+<!-- =================================================================================== -->
+<!--
+Software License Agreement (BSD)
+
+\file      husky.urdf.xacro
+\authors   Paul Bovbel <[email protected]>
+\copyright Copyright (c) 2015, Clearpath Robotics, Inc., All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that
+the following conditions are met:
+ * Redistributions of source code must retain the above copyright notice, this list of conditions and the
+   following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the 
+   following disclaimer in the documentation and/or other materials provided with the distribution.
+ * Neither the name of Clearpath Robotics nor the names of its contributors may be used to endorse or promote
+   products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WAR-
+RANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, IN-
+DIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<robot name="husky_robot" xmlns:xacro="http://ros.org/wiki/xacro">
+  <!-- Included URDF/XACRO Files -->
+  <material name="Black">
+    <color rgba="0.1 0.1 0.1 1.0"/>
+  </material>
+  <material name="Blue">
+    <color rgba="0.0 0.0 0.8 1.0"/>
+  </material>
+  <material name="Green">
+    <color rgba="0.0 0.8 0.0 1.0"/>
+  </material>
+  <material name="Grey">
+    <color rgba="0.7 0.7 0.7 1.0"/>
+  </material>
+  <material name="DarkGrey">
+    <color rgba="0.3 0.3 0.3 1.0"/>
+  </material>
+  <material name="Red">
+    <color rgba="0.8 0.0 0.0 1.0"/>
+  </material>
+  <material name="White">
+    <color rgba="1.0 1.0 1.0 1.0"/>
+  </material>
+  <material name="Yellow">
+    <color rgba="0.8 0.8 0.0 1.0"/>
+  </material>
+  <!-- Base Size -->
+  <!-- Wheel Mounting Positions -->
+  <!-- Wheel Properties -->
+  <!-- Base link is on the ground under the robot -->
+  <link name="base_footprint"/>
+  <gazebo reference="base_footprint">
+    <material>Gazebo/DarkGrey</material>
+  </gazebo>
+  <joint name="chassis_joint" type="fixed">
+    <origin rpy="0 0 0" xyz="0 0 0.14493"/>
+    <parent link="base_footprint"/>
+    <child link="base_link"/>
+  </joint>
+  <!-- Chassis link is the center of the robot's bottom plate -->
+  <link name="base_link">
+    <visual>
+      <origin rpy="0 0 0" xyz="0 0 0"/>
+      <geometry>
+        <mesh filename="meshes/base_link.dae"/>
+      </geometry>
+      <material name="Black"/>
+    </visual>
+    <collision>
+      <origin rpy="0 0 0" xyz="0 0 0.12498"/>
+      <geometry>
+        <!-- Make collision box slightly bigger in x and z directions. -->
+        <box size="1.0074 0.5709 0.2675"/>
+      </geometry>
+    </collision>
+    <inertial>
+      <mass value="33.455"/>
+      <origin xyz="-0.08748 -0.00085 0.09947"/>
+      <inertia ixx="0.6022" ixy="-0.02364" ixz="-0.1197" iyy="1.7386" iyz="-0.001544" izz="2.0296"/>
+    </inertial>
+  </link>
+  <gazebo reference="base_link">
+    </gazebo>
+  <!-- IMU Link is the standard mounting position for the UM6 IMU.-->
+  <!-- Can be modified with environment variables in /etc/ros/setup.bash -->
+  <link name="imu_link"/>
+  <joint name="imu_joint" type="fixed">
+    <origin rpy="0 -1.5708 3.1416" xyz="0.19 0 0.149"/>
+    <parent link="base_link"/>
+    <child link="imu_link"/>
+  </joint>
+  <gazebo reference="imu_link">
+    </gazebo>
+  <!-- Husky wheel macros -->
+  <link name="front_left_wheel_link">
+  	<contact>
+      <lateral_friction value="1.0"/>
+      <rolling_friction value="0.0"/>
+      <stiffness value="30000"/>
+      <damping value="1000"/>
+    </contact>
+    
+    <inertial>
+      <mass value="2.637"/>
+      <origin xyz="0 0 0"/>
+      <inertia ixx="0.02467" ixy="0" ixz="0" iyy="0.02467" iyz="0" izz="0.04411"/>
+    </inertial>
+    <visual>
+      <origin rpy="0 0 0" xyz="0 0 0"/>
+      <geometry>
+        <mesh filename="meshes/wheel.dae"/>
+      </geometry>
+      <material name="DarkGrey"/>
+    </visual>
+    <collision>
+      <origin rpy="1.570795 0 0" xyz="0 0 0"/>
+      <geometry>
+        <cylinder length="0.1143" radius="0.17775"/>
+      </geometry>
+    </collision>
+  </link>
+  <gazebo reference="front_left_wheel_link">
+    <mu1 value="1.0"/>
+    <mu2 value="1.0"/>
+    <kp value="10000000.0"/>
+    <kd value="1.0"/>
+    <fdir1 value="1 0 0"/>
+    <material>Gazebo/Grey</material>
+    <turnGravityOff>false</turnGravityOff>
+  </gazebo>
+  <joint name="front_left_wheel" type="continuous">
+    <parent link="base_link"/>
+    <child link="front_left_wheel_link"/>
+    <origin rpy="0 0 0" xyz="0.256 0.2854 0.03282"/>
+    <axis rpy="0 0 0" xyz="0 1 0"/>
+  </joint>
+  <transmission name="front_left_wheel_trans" type="SimpleTransmission">
+    <type>transmission_interface/SimpleTransmission</type>
+    <actuator name="front_left_wheel_motor">
+      <mechanicalReduction>1</mechanicalReduction>
+    </actuator>
+    <joint name="front_left_wheel">
+      <hardwareInterface>VelocityJointInterface</hardwareInterface>
+    </joint>
+  </transmission>
+  <link name="front_right_wheel_link">
+    <contact>
+      <lateral_friction value="1.0"/>
+      <rolling_friction value="0.0"/>
+      <stiffness value="30000"/>
+      <damping value="1000"/>
+    </contact>
+    
+    <inertial>
+      <mass value="2.637"/>
+      <origin xyz="0 0 0"/>
+      <inertia ixx="0.02467" ixy="0" ixz="0" iyy="0.02467" iyz="0" izz="0.04411"/>
+    </inertial>
+    <visual>
+      <origin rpy="0 0 0" xyz="0 0 0"/>
+      <geometry>
+        <mesh filename="meshes/wheel.dae"/>
+      </geometry>
+      <material name="DarkGrey"/>
+    </visual>
+    <collision>
+      <origin rpy="1.570795 0 0" xyz="0 0 0"/>
+      <geometry>
+        <cylinder length="0.1143" radius="0.17775"/>
+      </geometry>
+    </collision>
+  </link>
+  <gazebo reference="front_right_wheel_link">
+    <mu1 value="1.0"/>
+    <mu2 value="1.0"/>
+    <kp value="10000000.0"/>
+    <kd value="1.0"/>
+    <fdir1 value="1 0 0"/>
+    <material>Gazebo/Grey</material>
+    <turnGravityOff>false</turnGravityOff>
+  </gazebo>
+  <joint name="front_right_wheel" type="continuous">
+    <parent link="base_link"/>
+    <child link="front_right_wheel_link"/>
+    <origin rpy="0 0 0" xyz="0.256 -0.2854 0.03282"/>
+    <axis rpy="0 0 0" xyz="0 1 0"/>
+  </joint>
+  <transmission name="front_right_wheel_trans" type="SimpleTransmission">
+    <type>transmission_interface/SimpleTransmission</type>
+    <actuator name="front_right_wheel_motor">
+      <mechanicalReduction>1</mechanicalReduction>
+    </actuator>
+    <joint name="front_right_wheel">
+      <hardwareInterface>VelocityJointInterface</hardwareInterface>
+    </joint>
+  </transmission>
+  <link name="rear_left_wheel_link">
+    <contact>
+      <lateral_friction value="1.0"/>
+      <rolling_friction value="0.0"/>
+      <stiffness value="30000"/>
+      <damping value="1000"/>
+    </contact>
+    
+    <inertial>
+      <mass value="2.637"/>
+      <origin xyz="0 0 0"/>
+      <inertia ixx="0.02467" ixy="0" ixz="0" iyy="0.02467" iyz="0" izz="0.04411"/>
+    </inertial>
+    <visual>
+      <origin rpy="0 0 0" xyz="0 0 0"/>
+      <geometry>
+        <mesh filename="meshes/wheel.dae"/>
+      </geometry>
+      <material name="DarkGrey"/>
+    </visual>
+    <collision>
+      <origin rpy="1.570795 0 0" xyz="0 0 0"/>
+      <geometry>
+        <cylinder length="0.1143" radius="0.17775"/>
+      </geometry>
+    </collision>
+  </link>
+  <gazebo reference="rear_left_wheel_link">
+    <mu1 value="1.0"/>
+    <mu2 value="1.0"/>
+    <kp value="10000000.0"/>
+    <kd value="1.0"/>
+    <fdir1 value="1 0 0"/>
+    <material>Gazebo/Grey</material>
+    <turnGravityOff>false</turnGravityOff>
+  </gazebo>
+  <joint name="rear_left_wheel" type="continuous">
+    <parent link="base_link"/>
+    <child link="rear_left_wheel_link"/>
+    <origin rpy="0 0 0" xyz="-0.256 0.2854 0.03282"/>
+    <axis rpy="0 0 0" xyz="0 1 0"/>
+  </joint>
+  <transmission name="rear_left_wheel_trans" type="SimpleTransmission">
+    <type>transmission_interface/SimpleTransmission</type>
+    <actuator name="rear_left_wheel_motor">
+      <mechanicalReduction>1</mechanicalReduction>
+    </actuator>
+    <joint name="rear_left_wheel">
+      <hardwareInterface>VelocityJointInterface</hardwareInterface>
+    </joint>
+  </transmission>
+  <link name="rear_right_wheel_link">
+    <contact>
+      <lateral_friction value="1.0"/>
+      <rolling_friction value="0.0"/>
+      <stiffness value="30000"/>
+      <damping value="1000"/>
+    </contact>
+    
+    <inertial>
+      <mass value="2.637"/>
+      <origin xyz="0 0 0"/>
+      <inertia ixx="0.02467" ixy="0" ixz="0" iyy="0.02467" iyz="0" izz="0.04411"/>
+    </inertial>
+    <visual>
+      <origin rpy="0 0 0" xyz="0 0 0"/>
+      <geometry>
+        <mesh filename="meshes/wheel.dae"/>
+      </geometry>
+      <material name="DarkGrey"/>
+    </visual>
+    <collision>
+      <origin rpy="1.570795 0 0" xyz="0 0 0"/>
+      <geometry>
+        <cylinder length="0.1143" radius="0.17775"/>
+      </geometry>
+    </collision>
+  </link>
+  <gazebo reference="rear_right_wheel_link">
+    <mu1 value="1.0"/>
+    <mu2 value="1.0"/>
+    <kp value="10000000.0"/>
+    <kd value="1.0"/>
+    <fdir1 value="1 0 0"/>
+    <material>Gazebo/Grey</material>
+    <turnGravityOff>false</turnGravityOff>
+  </gazebo>
+  <joint name="rear_right_wheel" type="continuous">
+    <parent link="base_link"/>
+    <child link="rear_right_wheel_link"/>
+    <origin rpy="0 0 0" xyz="-0.256 -0.2854 0.03282"/>
+    <axis rpy="0 0 0" xyz="0 1 0"/>
+  </joint>
+  <transmission name="rear_right_wheel_trans" type="SimpleTransmission">
+    <type>transmission_interface/SimpleTransmission</type>
+    <actuator name="rear_right_wheel_motor">
+      <mechanicalReduction>1</mechanicalReduction>
+    </actuator>
+    <joint name="rear_right_wheel">
+      <hardwareInterface>VelocityJointInterface</hardwareInterface>
+    </joint>
+  </transmission>
+  <link name="top_plate_link">
+    <visual>
+      <origin rpy="0 0 0" xyz="0 0 0"/>
+      <geometry>
+        <mesh filename="meshes/top_plate.stl"/>
+      </geometry>
+      <material name="Yellow"/>
+    </visual>
+  </link>
+  <joint name="top_plate" type="fixed">
+    <parent link="base_link"/>
+    <child link="top_plate_link"/>
+  </joint>
+  <gazebo reference="top_plate_link">
+    <material>Gazebo/Yellow</material>
+  </gazebo>
+  <link name="user_rail_link">
+    <visual>
+      <geometry>
+        <mesh filename="meshes/user_rail.stl"/>
+      </geometry>
+      <material name="DarkGrey"/>
+    </visual>
+  </link>
+  <joint name="user_rail" type="fixed">
+    <origin rpy="0 0 0" xyz="0.272 0 0.245"/>
+    <parent link="base_link"/>
+    <child link="user_rail_link"/>
+  </joint>
+  <gazebo reference="user_rail_link">
+    <material>Gazebo/DarkGrey</material>
+  </gazebo>
+  <link name="front_bumper_link">
+    <visual>
+      <geometry>
+        <mesh filename="meshes/bumper.stl"/>
+      </geometry>
+      <material name="DarkGrey"/>
+    </visual>
+  </link>
+  <joint name="front_bumper" type="fixed">
+    <origin rpy="0 0 0" xyz="0.48 0 0.091"/>
+    <parent link="base_link"/>
+    <child link="front_bumper_link"/>
+  </joint>
+  <gazebo reference="front_bumper_link">
+    <material>Gazebo/DarkGrey</material>
+  </gazebo>
+  <link name="rear_bumper_link">
+    <visual>
+      <geometry>
+        <mesh filename="meshes/bumper.stl"/>
+      </geometry>
+      <material name="DarkGrey"/>
+    </visual>
+  </link>
+  <joint name="rear_bumper" type="fixed">
+    <origin rpy="0 0 3.14159" xyz="-0.48 0 0.091"/>
+    <parent link="base_link"/>
+    <child link="rear_bumper_link"/>
+  </joint>
+  <gazebo reference="rear_bumper_link">
+    <material>Gazebo/DarkGrey</material>
+  </gazebo>
+</robot>

+ 22 - 0
Assets/URDF/husky/license.txt

@@ -0,0 +1,22 @@
+Software License Agreement (BSD)
+
+\file      husky.urdf.xacro
+\authors   Paul Bovbel <[email protected]>
+\copyright Copyright (c) 2015, Clearpath Robotics, Inc., All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that
+the following conditions are met:
+ * Redistributions of source code must retain the above copyright notice, this list of conditions and the
+   following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the 
+   following disclaimer in the documentation and/or other materials provided with the distribution.
+ * Neither the name of Clearpath Robotics nor the names of its contributors may be used to endorse or promote
+   products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WAR-
+RANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, IN-
+DIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 17 - 0
Assets/URDF/husky/meshes/base_link.dae


BIN
Assets/URDF/husky/meshes/bumper.stl


BIN
Assets/URDF/husky/meshes/top_plate.stl


BIN
Assets/URDF/husky/meshes/user_rail.stl


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 82 - 0
Assets/URDF/husky/meshes/wheel.dae


BIN
Assets/URDF/panda_description.zip


BIN
Assets/URDF/panda_description/panda_description/meshes/collision/finger.stl


+ 85 - 0
Assets/URDF/panda_description/panda_description/meshes/collision/finger.stl.assetinfo

@@ -0,0 +1,85 @@
+{
+    "values": [
+        {
+            "$type": "{5B03C8E6-8CEE-4DA0-A7FA-CD88689DD45B} MeshGroup",
+            "id": "{F946D4CD-EE7F-5596-9D3D-0457DC30229C}",
+            "name": "finger",
+            "NodeSelectionList": {
+                "selectedNodes": [
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed",
+                    "<STL_BINARY>.unnamed.transform",
+                    "<STL_BINARY>.unnamed.DefaultMaterial"
+                ]
+            },
+            "export method": 1,
+            "PhysicsMaterialSlots": {
+                "Slots": [
+                    {
+                        "Name": "DefaultMaterial"
+                    }
+                ]
+            },
+            "export method": "1"
+        },
+        {
+            "$type": "{07B356B7-3635-40B5-878A-FAC4EFD5AD86} MeshGroup",
+            "name": "finger",
+            "nodeSelectionList": {
+                "selectedNodes": [
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed",
+                    "<STL_BINARY>.unnamed.transform",
+                    "<STL_BINARY>.unnamed.DefaultMaterial"
+                ]
+            },
+            "rules": {
+                "rules": [
+                    {
+                        "$type": "MaterialRule"
+                    }
+                ]
+            },
+            "id": "{C886482A-1AC6-5625-9E27-D8E90CC78E2E}"
+        },
+        {
+            "$type": "{07B356B7-3635-40B5-878A-FAC4EFD5AD86} MeshGroup",
+            "name": "default_finger_3A8FBEBF_6090_5E41_B7ED_870372833C84_",
+            "nodeSelectionList": {
+                "selectedNodes": [
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed",
+                    "<STL_BINARY>.unnamed.transform",
+                    "<STL_BINARY>.unnamed.DefaultMaterial"
+                ]
+            },
+            "rules": {
+                "rules": [
+                    {
+                        "$type": "ProceduralMeshGroupRule"
+                    },
+                    {
+                        "$type": "CoordinateSystemRule",
+                        "useAdvancedData": true
+                    },
+                    {
+                        "$type": "{6E796AC8-1484-4909-860A-6D3F22A7346F} LodRule"
+                    }
+                ]
+            },
+            "id": "{3A8FBEBF-6090-5E41-B7ED-870372833C84}"
+        },
+        {
+            "$type": "PrefabGroup",
+            "name": "Assets/URDF/panda_description/panda_description/meshes/collision/finger_stl.procprefab",
+            "nodeSelectionList": {
+                "selectedNodes": [
+                    {},
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed"
+                ]
+            },
+            "id": "{019755D8-1FF2-5590-A35A-68FF928CD4C7}"
+        }
+    ]
+}

BIN
Assets/URDF/panda_description/panda_description/meshes/collision/hand.stl


+ 85 - 0
Assets/URDF/panda_description/panda_description/meshes/collision/hand.stl.assetinfo

@@ -0,0 +1,85 @@
+{
+    "values": [
+        {
+            "$type": "{5B03C8E6-8CEE-4DA0-A7FA-CD88689DD45B} MeshGroup",
+            "id": "{07F3548A-A942-5D32-8CC3-0F1744AE23EF}",
+            "name": "hand",
+            "NodeSelectionList": {
+                "selectedNodes": [
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed",
+                    "<STL_BINARY>.unnamed.transform",
+                    "<STL_BINARY>.unnamed.DefaultMaterial"
+                ]
+            },
+            "export method": 1,
+            "PhysicsMaterialSlots": {
+                "Slots": [
+                    {
+                        "Name": "DefaultMaterial"
+                    }
+                ]
+            },
+            "export method": "1"
+        },
+        {
+            "$type": "{07B356B7-3635-40B5-878A-FAC4EFD5AD86} MeshGroup",
+            "name": "hand",
+            "nodeSelectionList": {
+                "selectedNodes": [
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed",
+                    "<STL_BINARY>.unnamed.transform",
+                    "<STL_BINARY>.unnamed.DefaultMaterial"
+                ]
+            },
+            "rules": {
+                "rules": [
+                    {
+                        "$type": "MaterialRule"
+                    }
+                ]
+            },
+            "id": "{3DB7A573-D668-564C-A249-0E713C889EAE}"
+        },
+        {
+            "$type": "{07B356B7-3635-40B5-878A-FAC4EFD5AD86} MeshGroup",
+            "name": "default_hand_B8E87719_FFC8_580F_9F83_0F38734F2B33_",
+            "nodeSelectionList": {
+                "selectedNodes": [
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed",
+                    "<STL_BINARY>.unnamed.transform",
+                    "<STL_BINARY>.unnamed.DefaultMaterial"
+                ]
+            },
+            "rules": {
+                "rules": [
+                    {
+                        "$type": "ProceduralMeshGroupRule"
+                    },
+                    {
+                        "$type": "CoordinateSystemRule",
+                        "useAdvancedData": true
+                    },
+                    {
+                        "$type": "{6E796AC8-1484-4909-860A-6D3F22A7346F} LodRule"
+                    }
+                ]
+            },
+            "id": "{B8E87719-FFC8-580F-9F83-0F38734F2B33}"
+        },
+        {
+            "$type": "PrefabGroup",
+            "name": "Assets/URDF/panda_description/panda_description/meshes/collision/hand_stl.procprefab",
+            "nodeSelectionList": {
+                "selectedNodes": [
+                    {},
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed"
+                ]
+            },
+            "id": "{5493ECC9-F3AF-5653-A59D-1BC15C06F8E0}"
+        }
+    ]
+}

BIN
Assets/URDF/panda_description/panda_description/meshes/collision/link0.stl


+ 85 - 0
Assets/URDF/panda_description/panda_description/meshes/collision/link0.stl.assetinfo

@@ -0,0 +1,85 @@
+{
+    "values": [
+        {
+            "$type": "{5B03C8E6-8CEE-4DA0-A7FA-CD88689DD45B} MeshGroup",
+            "id": "{294C480B-5F9B-5788-A764-06EC6A90F06B}",
+            "name": "link0",
+            "NodeSelectionList": {
+                "selectedNodes": [
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed",
+                    "<STL_BINARY>.unnamed.transform",
+                    "<STL_BINARY>.unnamed.DefaultMaterial"
+                ]
+            },
+            "export method": 1,
+            "PhysicsMaterialSlots": {
+                "Slots": [
+                    {
+                        "Name": "DefaultMaterial"
+                    }
+                ]
+            },
+            "export method": "1"
+        },
+        {
+            "$type": "{07B356B7-3635-40B5-878A-FAC4EFD5AD86} MeshGroup",
+            "name": "link0",
+            "nodeSelectionList": {
+                "selectedNodes": [
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed",
+                    "<STL_BINARY>.unnamed.transform",
+                    "<STL_BINARY>.unnamed.DefaultMaterial"
+                ]
+            },
+            "rules": {
+                "rules": [
+                    {
+                        "$type": "MaterialRule"
+                    }
+                ]
+            },
+            "id": "{B758925A-6B5B-56FF-951D-4F22D92325C0}"
+        },
+        {
+            "$type": "{07B356B7-3635-40B5-878A-FAC4EFD5AD86} MeshGroup",
+            "name": "default_link0_666BA918_B821_5E23_91AF_DCE78CC73A22_",
+            "nodeSelectionList": {
+                "selectedNodes": [
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed",
+                    "<STL_BINARY>.unnamed.transform",
+                    "<STL_BINARY>.unnamed.DefaultMaterial"
+                ]
+            },
+            "rules": {
+                "rules": [
+                    {
+                        "$type": "ProceduralMeshGroupRule"
+                    },
+                    {
+                        "$type": "CoordinateSystemRule",
+                        "useAdvancedData": true
+                    },
+                    {
+                        "$type": "{6E796AC8-1484-4909-860A-6D3F22A7346F} LodRule"
+                    }
+                ]
+            },
+            "id": "{666BA918-B821-5E23-91AF-DCE78CC73A22}"
+        },
+        {
+            "$type": "PrefabGroup",
+            "name": "Assets/URDF/panda_description/panda_description/meshes/collision/link0_stl.procprefab",
+            "nodeSelectionList": {
+                "selectedNodes": [
+                    {},
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed"
+                ]
+            },
+            "id": "{3CF2E791-1F78-58A8-904C-22E2F19C45D9}"
+        }
+    ]
+}

BIN
Assets/URDF/panda_description/panda_description/meshes/collision/link1.stl


+ 85 - 0
Assets/URDF/panda_description/panda_description/meshes/collision/link1.stl.assetinfo

@@ -0,0 +1,85 @@
+{
+    "values": [
+        {
+            "$type": "{5B03C8E6-8CEE-4DA0-A7FA-CD88689DD45B} MeshGroup",
+            "id": "{3E8DC36F-488D-594F-8822-4C7BAF1C78AC}",
+            "name": "link1",
+            "NodeSelectionList": {
+                "selectedNodes": [
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed",
+                    "<STL_BINARY>.unnamed.transform",
+                    "<STL_BINARY>.unnamed.DefaultMaterial"
+                ]
+            },
+            "export method": 1,
+            "PhysicsMaterialSlots": {
+                "Slots": [
+                    {
+                        "Name": "DefaultMaterial"
+                    }
+                ]
+            },
+            "export method": "1"
+        },
+        {
+            "$type": "{07B356B7-3635-40B5-878A-FAC4EFD5AD86} MeshGroup",
+            "name": "link1",
+            "nodeSelectionList": {
+                "selectedNodes": [
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed",
+                    "<STL_BINARY>.unnamed.transform",
+                    "<STL_BINARY>.unnamed.DefaultMaterial"
+                ]
+            },
+            "rules": {
+                "rules": [
+                    {
+                        "$type": "MaterialRule"
+                    }
+                ]
+            },
+            "id": "{856E40BD-9CA6-598B-921B-22E0DC882BA6}"
+        },
+        {
+            "$type": "{07B356B7-3635-40B5-878A-FAC4EFD5AD86} MeshGroup",
+            "name": "default_link1_5A2D3688_AE31_54DC_A16F_BB6B1AF4AB5E_",
+            "nodeSelectionList": {
+                "selectedNodes": [
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed",
+                    "<STL_BINARY>.unnamed.transform",
+                    "<STL_BINARY>.unnamed.DefaultMaterial"
+                ]
+            },
+            "rules": {
+                "rules": [
+                    {
+                        "$type": "ProceduralMeshGroupRule"
+                    },
+                    {
+                        "$type": "CoordinateSystemRule",
+                        "useAdvancedData": true
+                    },
+                    {
+                        "$type": "{6E796AC8-1484-4909-860A-6D3F22A7346F} LodRule"
+                    }
+                ]
+            },
+            "id": "{5A2D3688-AE31-54DC-A16F-BB6B1AF4AB5E}"
+        },
+        {
+            "$type": "PrefabGroup",
+            "name": "Assets/URDF/panda_description/panda_description/meshes/collision/link1_stl.procprefab",
+            "nodeSelectionList": {
+                "selectedNodes": [
+                    {},
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed"
+                ]
+            },
+            "id": "{A441A992-CB93-57D1-B8A8-A3AADC00383C}"
+        }
+    ]
+}

BIN
Assets/URDF/panda_description/panda_description/meshes/collision/link2.stl


+ 85 - 0
Assets/URDF/panda_description/panda_description/meshes/collision/link2.stl.assetinfo

@@ -0,0 +1,85 @@
+{
+    "values": [
+        {
+            "$type": "{5B03C8E6-8CEE-4DA0-A7FA-CD88689DD45B} MeshGroup",
+            "id": "{072D18ED-2200-5F8A-8AB5-24C9DA4DFDC1}",
+            "name": "link2",
+            "NodeSelectionList": {
+                "selectedNodes": [
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed",
+                    "<STL_BINARY>.unnamed.transform",
+                    "<STL_BINARY>.unnamed.DefaultMaterial"
+                ]
+            },
+            "export method": 1,
+            "PhysicsMaterialSlots": {
+                "Slots": [
+                    {
+                        "Name": "DefaultMaterial"
+                    }
+                ]
+            },
+            "export method": "1"
+        },
+        {
+            "$type": "{07B356B7-3635-40B5-878A-FAC4EFD5AD86} MeshGroup",
+            "name": "link2",
+            "nodeSelectionList": {
+                "selectedNodes": [
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed",
+                    "<STL_BINARY>.unnamed.transform",
+                    "<STL_BINARY>.unnamed.DefaultMaterial"
+                ]
+            },
+            "rules": {
+                "rules": [
+                    {
+                        "$type": "MaterialRule"
+                    }
+                ]
+            },
+            "id": "{E3A49C39-CD0C-52F3-8585-7BEEB9E606F3}"
+        },
+        {
+            "$type": "{07B356B7-3635-40B5-878A-FAC4EFD5AD86} MeshGroup",
+            "name": "default_link2_29E538EA_F365_5FB1_8B1F_26BEEC4B48A4_",
+            "nodeSelectionList": {
+                "selectedNodes": [
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed",
+                    "<STL_BINARY>.unnamed.transform",
+                    "<STL_BINARY>.unnamed.DefaultMaterial"
+                ]
+            },
+            "rules": {
+                "rules": [
+                    {
+                        "$type": "ProceduralMeshGroupRule"
+                    },
+                    {
+                        "$type": "CoordinateSystemRule",
+                        "useAdvancedData": true
+                    },
+                    {
+                        "$type": "{6E796AC8-1484-4909-860A-6D3F22A7346F} LodRule"
+                    }
+                ]
+            },
+            "id": "{29E538EA-F365-5FB1-8B1F-26BEEC4B48A4}"
+        },
+        {
+            "$type": "PrefabGroup",
+            "name": "Assets/URDF/panda_description/panda_description/meshes/collision/link2_stl.procprefab",
+            "nodeSelectionList": {
+                "selectedNodes": [
+                    {},
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed"
+                ]
+            },
+            "id": "{66369FE1-047A-508C-9A70-E44F91423AEC}"
+        }
+    ]
+}

BIN
Assets/URDF/panda_description/panda_description/meshes/collision/link3.stl


+ 85 - 0
Assets/URDF/panda_description/panda_description/meshes/collision/link3.stl.assetinfo

@@ -0,0 +1,85 @@
+{
+    "values": [
+        {
+            "$type": "{5B03C8E6-8CEE-4DA0-A7FA-CD88689DD45B} MeshGroup",
+            "id": "{113B8DBE-2FA3-5DD3-90EB-D5D17C628403}",
+            "name": "link3",
+            "NodeSelectionList": {
+                "selectedNodes": [
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed",
+                    "<STL_BINARY>.unnamed.transform",
+                    "<STL_BINARY>.unnamed.DefaultMaterial"
+                ]
+            },
+            "export method": 1,
+            "PhysicsMaterialSlots": {
+                "Slots": [
+                    {
+                        "Name": "DefaultMaterial"
+                    }
+                ]
+            },
+            "export method": "1"
+        },
+        {
+            "$type": "{07B356B7-3635-40B5-878A-FAC4EFD5AD86} MeshGroup",
+            "name": "link3",
+            "nodeSelectionList": {
+                "selectedNodes": [
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed",
+                    "<STL_BINARY>.unnamed.transform",
+                    "<STL_BINARY>.unnamed.DefaultMaterial"
+                ]
+            },
+            "rules": {
+                "rules": [
+                    {
+                        "$type": "MaterialRule"
+                    }
+                ]
+            },
+            "id": "{C3877323-AB52-5D26-859B-A59B213014C2}"
+        },
+        {
+            "$type": "{07B356B7-3635-40B5-878A-FAC4EFD5AD86} MeshGroup",
+            "name": "default_link3_375B075A_7FB3_53E7_8EFD_641ABCE9631B_",
+            "nodeSelectionList": {
+                "selectedNodes": [
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed",
+                    "<STL_BINARY>.unnamed.transform",
+                    "<STL_BINARY>.unnamed.DefaultMaterial"
+                ]
+            },
+            "rules": {
+                "rules": [
+                    {
+                        "$type": "ProceduralMeshGroupRule"
+                    },
+                    {
+                        "$type": "CoordinateSystemRule",
+                        "useAdvancedData": true
+                    },
+                    {
+                        "$type": "{6E796AC8-1484-4909-860A-6D3F22A7346F} LodRule"
+                    }
+                ]
+            },
+            "id": "{375B075A-7FB3-53E7-8EFD-641ABCE9631B}"
+        },
+        {
+            "$type": "PrefabGroup",
+            "name": "Assets/URDF/panda_description/panda_description/meshes/collision/link3_stl.procprefab",
+            "nodeSelectionList": {
+                "selectedNodes": [
+                    {},
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed"
+                ]
+            },
+            "id": "{6363CD78-7AB1-544B-B1D4-ACCAE4F9FB10}"
+        }
+    ]
+}

BIN
Assets/URDF/panda_description/panda_description/meshes/collision/link4.stl


+ 85 - 0
Assets/URDF/panda_description/panda_description/meshes/collision/link4.stl.assetinfo

@@ -0,0 +1,85 @@
+{
+    "values": [
+        {
+            "$type": "{5B03C8E6-8CEE-4DA0-A7FA-CD88689DD45B} MeshGroup",
+            "id": "{30D606EB-35B4-5941-A984-8A701F190C1A}",
+            "name": "link4",
+            "NodeSelectionList": {
+                "selectedNodes": [
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed",
+                    "<STL_BINARY>.unnamed.transform",
+                    "<STL_BINARY>.unnamed.DefaultMaterial"
+                ]
+            },
+            "export method": 1,
+            "PhysicsMaterialSlots": {
+                "Slots": [
+                    {
+                        "Name": "DefaultMaterial"
+                    }
+                ]
+            },
+            "export method": "1"
+        },
+        {
+            "$type": "{07B356B7-3635-40B5-878A-FAC4EFD5AD86} MeshGroup",
+            "name": "link4",
+            "nodeSelectionList": {
+                "selectedNodes": [
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed",
+                    "<STL_BINARY>.unnamed.transform",
+                    "<STL_BINARY>.unnamed.DefaultMaterial"
+                ]
+            },
+            "rules": {
+                "rules": [
+                    {
+                        "$type": "MaterialRule"
+                    }
+                ]
+            },
+            "id": "{3FF7B9A3-763A-57FC-A59A-9DCC9B39F23C}"
+        },
+        {
+            "$type": "{07B356B7-3635-40B5-878A-FAC4EFD5AD86} MeshGroup",
+            "name": "default_link4_2B65ABB9_A7B1_59CA_9059_1BBFD0989F33_",
+            "nodeSelectionList": {
+                "selectedNodes": [
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed",
+                    "<STL_BINARY>.unnamed.transform",
+                    "<STL_BINARY>.unnamed.DefaultMaterial"
+                ]
+            },
+            "rules": {
+                "rules": [
+                    {
+                        "$type": "ProceduralMeshGroupRule"
+                    },
+                    {
+                        "$type": "CoordinateSystemRule",
+                        "useAdvancedData": true
+                    },
+                    {
+                        "$type": "{6E796AC8-1484-4909-860A-6D3F22A7346F} LodRule"
+                    }
+                ]
+            },
+            "id": "{2B65ABB9-A7B1-59CA-9059-1BBFD0989F33}"
+        },
+        {
+            "$type": "PrefabGroup",
+            "name": "Assets/URDF/panda_description/panda_description/meshes/collision/link4_stl.procprefab",
+            "nodeSelectionList": {
+                "selectedNodes": [
+                    {},
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed"
+                ]
+            },
+            "id": "{0E4612D4-7BFE-533D-9E71-BA3B66A8484C}"
+        }
+    ]
+}

BIN
Assets/URDF/panda_description/panda_description/meshes/collision/link5.stl


+ 85 - 0
Assets/URDF/panda_description/panda_description/meshes/collision/link5.stl.assetinfo

@@ -0,0 +1,85 @@
+{
+    "values": [
+        {
+            "$type": "{5B03C8E6-8CEE-4DA0-A7FA-CD88689DD45B} MeshGroup",
+            "id": "{10F0E702-113C-5BD2-93A5-03E1C576C0C9}",
+            "name": "link5",
+            "NodeSelectionList": {
+                "selectedNodes": [
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed",
+                    "<STL_BINARY>.unnamed.transform",
+                    "<STL_BINARY>.unnamed.DefaultMaterial"
+                ]
+            },
+            "export method": 1,
+            "PhysicsMaterialSlots": {
+                "Slots": [
+                    {
+                        "Name": "DefaultMaterial"
+                    }
+                ]
+            },
+            "export method": "1"
+        },
+        {
+            "$type": "{07B356B7-3635-40B5-878A-FAC4EFD5AD86} MeshGroup",
+            "name": "link5",
+            "nodeSelectionList": {
+                "selectedNodes": [
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed",
+                    "<STL_BINARY>.unnamed.transform",
+                    "<STL_BINARY>.unnamed.DefaultMaterial"
+                ]
+            },
+            "rules": {
+                "rules": [
+                    {
+                        "$type": "MaterialRule"
+                    }
+                ]
+            },
+            "id": "{A0AF8E74-1E25-5DCB-AD3F-2B21E4ADA57F}"
+        },
+        {
+            "$type": "{07B356B7-3635-40B5-878A-FAC4EFD5AD86} MeshGroup",
+            "name": "default_link5_D3C46A68_4BDF_5E10_B852_6C5BDFCDCC3C_",
+            "nodeSelectionList": {
+                "selectedNodes": [
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed",
+                    "<STL_BINARY>.unnamed.transform",
+                    "<STL_BINARY>.unnamed.DefaultMaterial"
+                ]
+            },
+            "rules": {
+                "rules": [
+                    {
+                        "$type": "ProceduralMeshGroupRule"
+                    },
+                    {
+                        "$type": "CoordinateSystemRule",
+                        "useAdvancedData": true
+                    },
+                    {
+                        "$type": "{6E796AC8-1484-4909-860A-6D3F22A7346F} LodRule"
+                    }
+                ]
+            },
+            "id": "{D3C46A68-4BDF-5E10-B852-6C5BDFCDCC3C}"
+        },
+        {
+            "$type": "PrefabGroup",
+            "name": "Assets/URDF/panda_description/panda_description/meshes/collision/link5_stl.procprefab",
+            "nodeSelectionList": {
+                "selectedNodes": [
+                    {},
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed"
+                ]
+            },
+            "id": "{C2AE9620-C301-59BB-8ECD-2DA25564870F}"
+        }
+    ]
+}

BIN
Assets/URDF/panda_description/panda_description/meshes/collision/link6.stl


+ 85 - 0
Assets/URDF/panda_description/panda_description/meshes/collision/link6.stl.assetinfo

@@ -0,0 +1,85 @@
+{
+    "values": [
+        {
+            "$type": "{5B03C8E6-8CEE-4DA0-A7FA-CD88689DD45B} MeshGroup",
+            "id": "{C8D64A0B-338C-57F7-838D-43060CE1C5DD}",
+            "name": "link6",
+            "NodeSelectionList": {
+                "selectedNodes": [
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed",
+                    "<STL_BINARY>.unnamed.transform",
+                    "<STL_BINARY>.unnamed.DefaultMaterial"
+                ]
+            },
+            "export method": 1,
+            "PhysicsMaterialSlots": {
+                "Slots": [
+                    {
+                        "Name": "DefaultMaterial"
+                    }
+                ]
+            },
+            "export method": "1"
+        },
+        {
+            "$type": "{07B356B7-3635-40B5-878A-FAC4EFD5AD86} MeshGroup",
+            "name": "link6",
+            "nodeSelectionList": {
+                "selectedNodes": [
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed",
+                    "<STL_BINARY>.unnamed.transform",
+                    "<STL_BINARY>.unnamed.DefaultMaterial"
+                ]
+            },
+            "rules": {
+                "rules": [
+                    {
+                        "$type": "MaterialRule"
+                    }
+                ]
+            },
+            "id": "{24D1A19F-3AEB-53F2-A355-EB0104C0E15F}"
+        },
+        {
+            "$type": "{07B356B7-3635-40B5-878A-FAC4EFD5AD86} MeshGroup",
+            "name": "default_link6_903636B5_D4F7_5711_AE22_A57F630CC495_",
+            "nodeSelectionList": {
+                "selectedNodes": [
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed",
+                    "<STL_BINARY>.unnamed.transform",
+                    "<STL_BINARY>.unnamed.DefaultMaterial"
+                ]
+            },
+            "rules": {
+                "rules": [
+                    {
+                        "$type": "ProceduralMeshGroupRule"
+                    },
+                    {
+                        "$type": "CoordinateSystemRule",
+                        "useAdvancedData": true
+                    },
+                    {
+                        "$type": "{6E796AC8-1484-4909-860A-6D3F22A7346F} LodRule"
+                    }
+                ]
+            },
+            "id": "{903636B5-D4F7-5711-AE22-A57F630CC495}"
+        },
+        {
+            "$type": "PrefabGroup",
+            "name": "Assets/URDF/panda_description/panda_description/meshes/collision/link6_stl.procprefab",
+            "nodeSelectionList": {
+                "selectedNodes": [
+                    {},
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed"
+                ]
+            },
+            "id": "{9AC13C47-D6F9-5962-8C49-DF7E09B82332}"
+        }
+    ]
+}

BIN
Assets/URDF/panda_description/panda_description/meshes/collision/link7.stl


+ 85 - 0
Assets/URDF/panda_description/panda_description/meshes/collision/link7.stl.assetinfo

@@ -0,0 +1,85 @@
+{
+    "values": [
+        {
+            "$type": "{5B03C8E6-8CEE-4DA0-A7FA-CD88689DD45B} MeshGroup",
+            "id": "{73B445A1-F2CB-5E80-B075-4D5E606D2749}",
+            "name": "link7",
+            "NodeSelectionList": {
+                "selectedNodes": [
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed",
+                    "<STL_BINARY>.unnamed.transform",
+                    "<STL_BINARY>.unnamed.DefaultMaterial"
+                ]
+            },
+            "export method": 1,
+            "PhysicsMaterialSlots": {
+                "Slots": [
+                    {
+                        "Name": "DefaultMaterial"
+                    }
+                ]
+            },
+            "export method": "1"
+        },
+        {
+            "$type": "{07B356B7-3635-40B5-878A-FAC4EFD5AD86} MeshGroup",
+            "name": "link7",
+            "nodeSelectionList": {
+                "selectedNodes": [
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed",
+                    "<STL_BINARY>.unnamed.transform",
+                    "<STL_BINARY>.unnamed.DefaultMaterial"
+                ]
+            },
+            "rules": {
+                "rules": [
+                    {
+                        "$type": "MaterialRule"
+                    }
+                ]
+            },
+            "id": "{1D637271-CDCB-5674-97CB-598C5721A420}"
+        },
+        {
+            "$type": "{07B356B7-3635-40B5-878A-FAC4EFD5AD86} MeshGroup",
+            "name": "default_link7_E3C6C544_51C2_53F3_993E_954D19F1CC73_",
+            "nodeSelectionList": {
+                "selectedNodes": [
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed",
+                    "<STL_BINARY>.unnamed.transform",
+                    "<STL_BINARY>.unnamed.DefaultMaterial"
+                ]
+            },
+            "rules": {
+                "rules": [
+                    {
+                        "$type": "ProceduralMeshGroupRule"
+                    },
+                    {
+                        "$type": "CoordinateSystemRule",
+                        "useAdvancedData": true
+                    },
+                    {
+                        "$type": "{6E796AC8-1484-4909-860A-6D3F22A7346F} LodRule"
+                    }
+                ]
+            },
+            "id": "{E3C6C544-51C2-53F3-993E-954D19F1CC73}"
+        },
+        {
+            "$type": "PrefabGroup",
+            "name": "Assets/URDF/panda_description/panda_description/meshes/collision/link7_stl.procprefab",
+            "nodeSelectionList": {
+                "selectedNodes": [
+                    {},
+                    "<STL_BINARY>",
+                    "<STL_BINARY>.unnamed"
+                ]
+            },
+            "id": "{8E64601A-F58E-52EA-A9D6-6CCBA40C8BCB}"
+        }
+    ]
+}

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 61 - 0
Assets/URDF/panda_description/panda_description/meshes/visual/finger.dae


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 163 - 0
Assets/URDF/panda_description/panda_description/meshes/visual/hand.dae


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 336 - 0
Assets/URDF/panda_description/panda_description/meshes/visual/link0.dae


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 41 - 0
Assets/URDF/panda_description/panda_description/meshes/visual/link1.dae


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 41 - 0
Assets/URDF/panda_description/panda_description/meshes/visual/link2.dae


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 101 - 0
Assets/URDF/panda_description/panda_description/meshes/visual/link3.dae


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 101 - 0
Assets/URDF/panda_description/panda_description/meshes/visual/link4.dae


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 81 - 0
Assets/URDF/panda_description/panda_description/meshes/visual/link5.dae


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 361 - 0
Assets/URDF/panda_description/panda_description/meshes/visual/link6.dae


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 181 - 0
Assets/URDF/panda_description/panda_description/meshes/visual/link7.dae


+ 554 - 0
Assets/URDF/panda_description/panda_description/panda.urdf

@@ -0,0 +1,554 @@
+<?xml version="1.0" ?>
+<!-- =================================================================================== -->
+<!-- |    This document was autogenerated by xacro from /home/andrej/ws/code/repos/panda_ign_moveit2/panda_description/urdf/panda.urdf.xacro | -->
+<!-- |    EDITING THIS FILE BY HAND IS NOT RECOMMENDED                                 | -->
+<!-- =================================================================================== -->
+<!-- URDF for Franka Emika Panda -->
+<robot name="panda">
+  <link name="world">
+  </link>
+  <joint name="panda_joint_base" type="fixed">
+    <parent link="world"/>
+    <child link="panda_link0"/>
+    <origin rpy="0 0 0" xyz="0 0 0"/>
+  </joint>
+  <link name="panda_link0">
+    <visual>
+      <origin rpy="0 0 0" xyz="0 0 0"/>
+      <geometry>
+        <mesh filename="meshes/visual/link0.dae"/>
+      </geometry>
+    </visual>
+    <collision>
+      <origin rpy="0 0 0" xyz="0 0 0"/>
+      <geometry>
+        <mesh filename="meshes/collision/link0.stl"/>
+      </geometry>
+    </collision>
+    <inertial>
+      <origin rpy="0 0 0" xyz="-0.025566 -2.87883e-05 0.057332"/>
+      <mass value="2.814271300104062"/>
+      <inertia ixx="0.0075390636364814695" ixy="-1.5053124574783335e-05" ixz="-0.0012144328835738973" iyy="0.010508017427382959" iyz="1.0434803501032979e-05" izz="0.009864933638708275"/>
+    </inertial>
+  </link>
+  <gazebo reference="panda_link0">
+    <mu1 value="0.85"/>
+    <mu2 value="0.85"/>
+  </gazebo>
+  <joint name="panda_joint1" type="revolute">
+    <parent link="panda_link0"/>
+    <child link="panda_link1"/>
+    <origin rpy="0 0 0" xyz="0 0 0.333"/>
+    <axis xyz="0 0 1"/>
+    <limit effort="87" lower="-2.897246558310587" upper="2.897246558310587" velocity="2.6179938779914944"/>
+    <dynamics damping="21.75" friction="3.48"/>
+  </joint>
+  <transmission name="panda_joint1_transmission">
+    <type>transmission_interface/SimpleTransmission</type>
+    <joint name="panda_joint1">
+      <hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
+    </joint>
+    <actuator name="panda_joint1_actuator">
+      <mechanicalReduction>1</mechanicalReduction>
+    </actuator>
+  </transmission>
+  <gazebo reference="panda_joint1">
+    <springStiffness value="0.0"/>
+    <springReference value="0.0"/>
+  </gazebo>
+  <link name="panda_link1">
+    <visual>
+      <origin rpy="0 0 0" xyz="0 0 0"/>
+      <geometry>
+        <mesh filename="meshes/visual/link1.dae"/>
+      </geometry>
+    </visual>
+    <collision>
+      <origin rpy="0 0 0" xyz="0 0 0"/>
+      <geometry>
+        <mesh filename="meshes/collision/link1.stl"/>
+      </geometry>
+    </collision>
+    <inertial>
+      <origin rpy="0 0 0" xyz="-3.72212e-09 -0.0324958 -0.0675818"/>
+      <mass value="2.6433170427227215"/>
+      <inertia ixx="0.017405076982879724" ixy="-8.687986369621078e-09" ixz="-1.6277819062920423e-08" iyy="0.015352077935781732" iyz="0.004510855959102245" izz="0.005987891663073857"/>
+    </inertial>
+  </link>
+  <gazebo reference="panda_link1">
+    <mu1 value="0.85"/>
+    <mu2 value="0.85"/>
+  </gazebo>
+  <joint name="panda_joint2" type="revolute">
+    <parent link="panda_link1"/>
+    <child link="panda_link2"/>
+    <origin rpy="-1.5707963267948966 0 0" xyz="0 0 0"/>
+    <axis xyz="0 0 1"/>
+    <limit effort="87" lower="-1.7627825445142729" upper="1.7627825445142729" velocity="2.6179938779914944"/>
+    <dynamics damping="21.75" friction="3.48"/>
+  </joint>
+  <transmission name="panda_joint2_transmission">
+    <type>transmission_interface/SimpleTransmission</type>
+    <joint name="panda_joint2">
+      <hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
+    </joint>
+    <actuator name="panda_joint2_actuator">
+      <mechanicalReduction>1</mechanicalReduction>
+    </actuator>
+  </transmission>
+  <gazebo reference="panda_joint2">
+    <springStiffness value="0.0"/>
+    <springReference value="0.0"/>
+  </gazebo>
+  <link name="panda_link2">
+    <visual>
+      <origin rpy="0 0 0" xyz="0 0 0"/>
+      <geometry>
+        <mesh filename="meshes/visual/link2.dae"/>
+      </geometry>
+    </visual>
+    <collision>
+      <origin rpy="0 0 0" xyz="0 0 0"/>
+      <geometry>
+        <mesh filename="meshes/collision/link2.stl"/>
+      </geometry>
+    </collision>
+    <inertial>
+      <origin rpy="0 0 0" xyz="3.17833e-07 -0.06861 0.0322285"/>
+      <mass value="2.6652755331661186"/>
+      <inertia ixx="0.01778694005635383" ixy="8.70635625879119e-08" ixz="3.752072058394008e-08" iyy="0.006044133867952844" iyz="-0.004599490295490376" izz="0.01571095500455695"/>
+    </inertial>
+  </link>
+  <gazebo reference="panda_link2">
+    <mu1 value="0.85"/>
+    <mu2 value="0.85"/>
+  </gazebo>
+  <joint name="panda_joint3" type="revolute">
+    <parent link="panda_link2"/>
+    <child link="panda_link3"/>
+    <origin rpy="1.5707963267948966 0 0" xyz="0 -0.316 0"/>
+    <axis xyz="0 0 1"/>
+    <limit effort="87" lower="-2.897246558310587" upper="2.897246558310587" velocity="2.6179938779914944"/>
+    <dynamics damping="21.75" friction="3.48"/>
+  </joint>
+  <transmission name="panda_joint3_transmission">
+    <type>transmission_interface/SimpleTransmission</type>
+    <joint name="panda_joint3">
+      <hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
+    </joint>
+    <actuator name="panda_joint3_actuator">
+      <mechanicalReduction>1</mechanicalReduction>
+    </actuator>
+  </transmission>
+  <gazebo reference="panda_joint3">
+    <springStiffness value="0.0"/>
+    <springReference value="0.0"/>
+  </gazebo>
+  <link name="panda_link3">
+    <visual>
+      <origin rpy="0 0 0" xyz="0 0 0"/>
+      <geometry>
+        <mesh filename="meshes/visual/link3.dae"/>
+      </geometry>
+    </visual>
+    <collision>
+      <origin rpy="0 0 0" xyz="0 0 0"/>
+      <geometry>
+        <mesh filename="meshes/collision/link3.stl"/>
+      </geometry>
+    </collision>
+    <inertial>
+      <origin rpy="0 0 0" xyz="0.0469893 0.0316374 -0.031704"/>
+      <mass value="2.3293714829045733"/>
+      <inertia ixx="0.0075496764161139766" ixy="-0.0024320464513492225" ixz="-0.003250815048103007" iyy="0.009680676080191398" iyz="-0.0021316282421730694" izz="0.007944557422008086"/>
+    </inertial>
+  </link>
+  <gazebo reference="panda_link3">
+    <mu1 value="0.85"/>
+    <mu2 value="0.85"/>
+  </gazebo>
+  <joint name="panda_joint4" type="revolute">
+    <parent link="panda_link3"/>
+    <child link="panda_link4"/>
+    <origin rpy="1.5707963267948966 0 0" xyz="0.0825 0 0"/>
+    <axis xyz="0 0 1"/>
+    <limit effort="87" lower="-3.07177948351002" upper="-0.06981317007977318" velocity="2.6179938779914944"/>
+    <dynamics damping="21.75" friction="3.48"/>
+  </joint>
+  <transmission name="panda_joint4_transmission">
+    <type>transmission_interface/SimpleTransmission</type>
+    <joint name="panda_joint4">
+      <hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
+    </joint>
+    <actuator name="panda_joint4_actuator">
+      <mechanicalReduction>1</mechanicalReduction>
+    </actuator>
+  </transmission>
+  <gazebo reference="panda_joint4">
+    <springStiffness value="0.0"/>
+    <springReference value="0.0"/>
+  </gazebo>
+  <link name="panda_link4">
+    <visual>
+      <origin rpy="0 0 0" xyz="0 0 0"/>
+      <geometry>
+        <mesh filename="meshes/visual/link4.dae"/>
+      </geometry>
+    </visual>
+    <collision>
+      <origin rpy="0 0 0" xyz="0 0 0"/>
+      <geometry>
+        <mesh filename="meshes/collision/link4.stl"/>
+      </geometry>
+    </collision>
+    <inertial>
+      <origin rpy="0 0 0" xyz="-0.0360505 0.0337069 0.0319019"/>
+      <mass value="2.3104763646281508"/>
+      <inertia ixx="0.007764568814864828" ixy="0.003371475204045935" ixz="-0.002343621113168248" iyy="0.008015776929980149" iyz="0.0022917526161470624" izz="0.009955882308071066"/>
+    </inertial>
+  </link>
+  <gazebo reference="panda_link4">
+    <mu1 value="0.85"/>
+    <mu2 value="0.85"/>
+  </gazebo>
+  <joint name="panda_joint5" type="revolute">
+    <parent link="panda_link4"/>
+    <child link="panda_link5"/>
+    <origin rpy="-1.5707963267948966 0 0" xyz="-0.0825 0.384 0"/>
+    <axis xyz="0 0 1"/>
+    <limit effort="12" lower="-2.897246558310587" upper="2.897246558310587" velocity="3.141592653589793"/>
+    <dynamics damping="3.0" friction="0.48"/>
+  </joint>
+  <transmission name="panda_joint5_transmission">
+    <type>transmission_interface/SimpleTransmission</type>
+    <joint name="panda_joint5">
+      <hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
+    </joint>
+    <actuator name="panda_joint5_actuator">
+      <mechanicalReduction>1</mechanicalReduction>
+    </actuator>
+  </transmission>
+  <gazebo reference="panda_joint5">
+    <springStiffness value="0.0"/>
+    <springReference value="0.0"/>
+  </gazebo>
+  <link name="panda_link5">
+    <visual>
+      <origin rpy="0 0 0" xyz="0 0 0"/>
+      <geometry>
+        <mesh filename="meshes/visual/link5.dae"/>
+      </geometry>
+    </visual>
+    <collision>
+      <origin rpy="0 0 0" xyz="0 0 0"/>
+      <geometry>
+        <mesh filename="meshes/collision/link5.stl"/>
+      </geometry>
+    </collision>
+    <inertial>
+      <origin rpy="0 0 0" xyz="-6.12525e-06 0.0610427 -0.104176"/>
+      <mass value="2.6226426154892004"/>
+      <inertia ixx="0.029070538014399377" ixy="6.208738268725568e-07" ixz="-1.0059151925023392e-05" iyy="0.027638529986528795" iyz="-0.007424306477850814" izz="0.004251111234400737"/>
+    </inertial>
+  </link>
+  <gazebo reference="panda_link5">
+    <mu1 value="0.85"/>
+    <mu2 value="0.85"/>
+  </gazebo>
+  <joint name="panda_joint6" type="revolute">
+    <parent link="panda_link5"/>
+    <child link="panda_link6"/>
+    <origin rpy="1.5707963267948966 0 0" xyz="0 0 0"/>
+    <axis xyz="0 0 1"/>
+    <limit effort="12" lower="-0.017453292519943295" upper="3.752457891787808" velocity="3.141592653589793"/>
+    <dynamics damping="3.0" friction="0.48"/>
+  </joint>
+  <transmission name="panda_joint6_transmission">
+    <type>transmission_interface/SimpleTransmission</type>
+    <joint name="panda_joint6">
+      <hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
+    </joint>
+    <actuator name="panda_joint6_actuator">
+      <mechanicalReduction>1</mechanicalReduction>
+    </actuator>
+  </transmission>
+  <gazebo reference="panda_joint6">
+    <springStiffness value="0.0"/>
+    <springReference value="0.0"/>
+  </gazebo>
+  <link name="panda_link6">
+    <visual>
+      <origin rpy="0 0 0" xyz="0 0 0"/>
+      <geometry>
+        <mesh filename="meshes/visual/link6.dae"/>
+      </geometry>
+    </visual>
+    <collision>
+      <origin rpy="0 0 0" xyz="0 0 0"/>
+      <geometry>
+        <mesh filename="meshes/collision/link6.stl"/>
+      </geometry>
+    </collision>
+    <inertial>
+      <origin rpy="0 0 0" xyz="0.051051 0.00910797 0.0106343"/>
+      <mass value="1.5025804886626795"/>
+      <inertia ixx="0.002940555801469018" ixy="-0.00042391108351381507" ixz="0.000610007735338717" iyy="0.00392105201248677" iyz="0.00012647545430836214" izz="0.0054115603870960195"/>
+    </inertial>
+  </link>
+  <gazebo reference="panda_link6">
+    <mu1 value="0.85"/>
+    <mu2 value="0.85"/>
+  </gazebo>
+  <joint name="panda_joint7" type="revolute">
+    <parent link="panda_link6"/>
+    <child link="panda_link7"/>
+    <origin rpy="1.5707963267948966 0 0" xyz="0.088 0 0"/>
+    <axis xyz="0 0 1"/>
+    <limit effort="12" lower="-2.897246558310587" upper="2.897246558310587" velocity="3.141592653589793"/>
+    <dynamics damping="3.0" friction="0.48"/>
+  </joint>
+  <transmission name="panda_joint7_transmission">
+    <type>transmission_interface/SimpleTransmission</type>
+    <joint name="panda_joint7">
+      <hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
+    </joint>
+    <actuator name="panda_joint7_actuator">
+      <mechanicalReduction>1</mechanicalReduction>
+    </actuator>
+  </transmission>
+  <gazebo reference="panda_joint7">
+    <springStiffness value="0.0"/>
+    <springReference value="0.0"/>
+  </gazebo>
+  <link name="panda_link7">
+    <visual>
+      <origin rpy="0 0 0" xyz="0 0 0"/>
+      <geometry>
+        <mesh filename="meshes/visual/link7.dae"/>
+      </geometry>
+    </visual>
+    <collision>
+      <origin rpy="0 0 0" xyz="0 0 0"/>
+      <geometry>
+        <mesh filename="meshes/collision/link7.stl"/>
+      </geometry>
+    </collision>
+    <inertial>
+      <origin rpy="0 0 0" xyz="0.0109695 0.0107965 0.0650412"/>
+      <mass value="0.5237668134788256"/>
+      <inertia ixx="0.0008621467959726535" ixy="-0.00011871071570425467" ixz="3.866602604509339e-05" iyy="0.0008613100184801048" iyz="-9.057841649422724e-05" izz="0.0006961139396618219"/>
+    </inertial>
+  </link>
+  <gazebo reference="panda_link7">
+    <mu1 value="0.85"/>
+    <mu2 value="0.85"/>
+  </gazebo>
+  <link name="panda_link8">
+  </link>
+  <joint name="panda_link8_virtual_joint" type="fixed">
+    <parent link="panda_link7"/>
+    <child link="panda_link8"/>
+    <origin rpy="0 0 -0.7853981633974483" xyz="0 0 0.107"/>
+  </joint>
+  <ros2_control name="panda_arm_system" type="system">
+    <hardware>
+      <plugin>ign_ros2_control/IgnitionSystem</plugin>
+    </hardware>
+    <joint name="panda_joint1">
+      <param name="initial_position">0.0</param>
+      <command_interface name="effort"/>
+      <state_interface name="position"/>
+      <state_interface name="velocity"/>
+      <state_interface name="effort"/>
+    </joint>
+    <joint name="panda_joint2">
+      <param name="initial_position">-0.7853981633974483</param>
+      <command_interface name="effort"/>
+      <state_interface name="position"/>
+      <state_interface name="velocity"/>
+      <state_interface name="effort"/>
+    </joint>
+    <joint name="panda_joint3">
+      <param name="initial_position">0.0</param>
+      <command_interface name="effort"/>
+      <state_interface name="position"/>
+      <state_interface name="velocity"/>
+      <state_interface name="effort"/>
+    </joint>
+    <joint name="panda_joint4">
+      <param name="initial_position">-2.356194490192345</param>
+      <command_interface name="effort"/>
+      <state_interface name="position"/>
+      <state_interface name="velocity"/>
+      <state_interface name="effort"/>
+    </joint>
+    <joint name="panda_joint5">
+      <param name="initial_position">0.0</param>
+      <command_interface name="effort"/>
+      <state_interface name="position"/>
+      <state_interface name="velocity"/>
+      <state_interface name="effort"/>
+    </joint>
+    <joint name="panda_joint6">
+      <param name="initial_position">1.5707963267948966</param>
+      <command_interface name="effort"/>
+      <state_interface name="position"/>
+      <state_interface name="velocity"/>
+      <state_interface name="effort"/>
+    </joint>
+    <joint name="panda_joint7">
+      <param name="initial_position">0.7853981633974483</param>
+      <command_interface name="effort"/>
+      <state_interface name="position"/>
+      <state_interface name="velocity"/>
+      <state_interface name="effort"/>
+    </joint>
+  </ros2_control>
+  <joint name="panda_joint_wrist" type="fixed">
+    <parent link="panda_link8"/>
+    <child link="panda_hand"/>
+    <origin rpy="0 0 0" xyz="0 0 0"/>
+  </joint>
+  <link name="panda_hand">
+    <visual>
+      <origin rpy="0 0 0" xyz="0 0 0"/>
+      <geometry>
+        <mesh filename="meshes/visual/hand.dae"/>
+      </geometry>
+    </visual>
+    <collision>
+      <origin rpy="0 0 0" xyz="0 0 0"/>
+      <geometry>
+        <mesh filename="meshes/collision/hand.stl"/>
+      </geometry>
+    </collision>
+    <inertial>
+      <origin rpy="0 0 0" xyz="-6.7624e-06 0.00152435 0.0275912"/>
+      <mass value="0.14060765127978503"/>
+      <inertia ixx="0.0005365450414352072" ixy="1.7911952957732454e-08" ixz="-2.320071910601251e-08" iyy="7.70511954783727e-05" iyz="4.681149945315967e-08" izz="0.0004938176882694914"/>
+    </inertial>
+  </link>
+  <gazebo reference="panda_hand">
+    <mu1 value="0.85"/>
+    <mu2 value="0.85"/>
+  </gazebo>
+  <joint name="panda_finger_joint1" type="prismatic">
+    <parent link="panda_hand"/>
+    <child link="panda_leftfinger"/>
+    <origin rpy="0 0 0" xyz="0 0 0.0584"/>
+    <axis xyz="0 1 0"/>
+    <limit effort="20" lower="0" upper="0.04" velocity="0.2"/>
+    <dynamics damping="3.0" friction="0.4"/>
+  </joint>
+  <transmission name="panda_finger_joint1_transmission">
+    <type>transmission_interface/SimpleTransmission</type>
+    <joint name="panda_finger_joint1">
+      <hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
+    </joint>
+    <actuator name="panda_finger_joint1_actuator">
+      <mechanicalReduction>1</mechanicalReduction>
+    </actuator>
+  </transmission>
+  <gazebo reference="panda_finger_joint1">
+    <springStiffness value="0.0"/>
+    <springReference value="0.0"/>
+  </gazebo>
+  <link name="panda_leftfinger">
+    <visual>
+      <origin rpy="0 0 0" xyz="0 0 0"/>
+      <geometry>
+        <mesh filename="meshes/visual/finger.dae"/>
+      </geometry>
+    </visual>
+    <collision>
+      <origin rpy="0 0 0" xyz="0 0 0"/>
+      <geometry>
+        <mesh filename="meshes/collision/finger.stl"/>
+      </geometry>
+    </collision>
+    <inertial>
+      <origin rpy="0 0 0" xyz="-6.2561e-06 0.00227781 -0.0277116"/>
+      <mass value="0.2238453537819424"/>
+      <inertia ixx="6.74804167363695e-05" ixy="-4.1027443646025676e-09" ixz="1.8693673970152995e-08" iyy="6.627189221641395e-05" iyz="1.1967548474390802e-05" izz="1.550396267804825e-05"/>
+    </inertial>
+  </link>
+  <gazebo reference="panda_leftfinger">
+    <mu1 value="1.13"/>
+    <mu2 value="1.13"/>
+  </gazebo>
+  <joint name="panda_finger_joint2" type="prismatic">
+    <parent link="panda_hand"/>
+    <child link="panda_rightfinger"/>
+    <origin rpy="0 0 0" xyz="0 0 0.0584"/>
+    <axis xyz="0 -1 0"/>
+    <limit effort="20" lower="0" upper="0.04" velocity="0.2"/>
+    <dynamics damping="3.0" friction="0.4"/>
+  </joint>
+  <transmission name="panda_finger_joint2_transmission">
+    <type>transmission_interface/SimpleTransmission</type>
+    <joint name="panda_finger_joint2">
+      <hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
+    </joint>
+    <actuator name="panda_finger_joint2_actuator">
+      <mechanicalReduction>1</mechanicalReduction>
+    </actuator>
+  </transmission>
+  <gazebo reference="panda_finger_joint2">
+    <springStiffness value="0.0"/>
+    <springReference value="0.0"/>
+  </gazebo>
+  <link name="panda_rightfinger">
+    <visual>
+      <origin rpy="0 0 3.141592653589793" xyz="0 0 0"/>
+      <geometry>
+        <mesh filename="meshes/visual/finger.dae"/>
+      </geometry>
+    </visual>
+    <collision>
+      <origin rpy="0 0 3.141592653589793" xyz="0 0 0"/>
+      <geometry>
+        <mesh filename="meshes/collision/finger.stl"/>
+      </geometry>
+    </collision>
+    <inertial>
+      <origin rpy="0 0 3.141592653589793" xyz="-6.2561e-06 0.00227781 -0.0277116"/>
+      <mass value="0.2238453537819424"/>
+      <inertia ixx="6.74804167363695e-05" ixy="-4.1027443646025676e-09" ixz="1.8693673970152995e-08" iyy="6.627189221641395e-05" iyz="1.1967548474390802e-05" izz="1.550396267804825e-05"/>
+    </inertial>
+  </link>
+  <gazebo reference="panda_rightfinger">
+    <mu1 value="1.13"/>
+    <mu2 value="1.13"/>
+  </gazebo>
+  <link name="panda_hand_tcp">
+  </link>
+  <joint name="panda_hand_tcp_virtual_joint" type="fixed">
+    <parent link="panda_hand"/>
+    <child link="panda_hand_tcp"/>
+    <origin rpy="0 0 0" xyz="0 0 0.1034"/>
+  </joint>
+  <ros2_control name="panda_gripper_system" type="system">
+    <hardware>
+      <plugin>ign_ros2_control/IgnitionSystem</plugin>
+    </hardware>
+    <joint name="panda_finger_joint1">
+      <param name="initial_position">0.0</param>
+      <command_interface name="effort"/>
+      <state_interface name="position"/>
+      <state_interface name="velocity"/>
+      <state_interface name="effort"/>
+    </joint>
+    <joint name="panda_finger_joint2">
+      <param name="initial_position">0.0</param>
+      <command_interface name="effort"/>
+      <state_interface name="position"/>
+      <state_interface name="velocity"/>
+      <state_interface name="effort"/>
+    </joint>
+  </ros2_control>
+  <gazebo>
+    <plugin filename="ign_ros2_control-system" name="ign_ros2_control::IgnitionROS2ControlPlugin">
+      <parameters>/home/andrej/ws/code/repos/panda_ign_moveit2/install/share/panda_moveit_config/config/controllers_effort.yaml</parameters>
+    </plugin>
+  </gazebo>
+</robot>

BIN
Doc/robotic_arm.gif


+ 3 - 0
Gem/CMakeLists.txt

@@ -36,6 +36,8 @@ ly_add_target(
             Include
             Include
     BUILD_DEPENDENCIES
     BUILD_DEPENDENCIES
         PRIVATE
         PRIVATE
+            Gem::PhysX.Static
+            Gem::ImGui.Static
             AZ::AzGameFramework
             AZ::AzGameFramework
             Gem::Atom_AtomBridge.Static
             Gem::Atom_AtomBridge.Static
 )
 )
@@ -51,6 +53,7 @@ ly_add_target(
             Include
             Include
     BUILD_DEPENDENCIES
     BUILD_DEPENDENCIES
         PRIVATE
         PRIVATE
+            Gem::ImGui.Static
             Gem::Physics_Test.Static
             Gem::Physics_Test.Static
             AZ::AzCore
             AZ::AzCore
 )
 )

+ 85 - 0
Gem/Source/PhysXJointTestComponent.cpp

@@ -0,0 +1,85 @@
+/*
+* Copyright (c) Contributors to the Open 3D Engine Project.
+* For complete copyright and license terms please see the LICENSE at the root of this distribution.
+*
+* SPDX-License-Identifier: Apache-2.0 OR MIT
+*
+*/
+
+#include "PhysXJointTestComponent.h"
+
+
+#include <AzCore/Serialization/EditContext.h>
+#include <AzCore/Serialization/SerializeContext.h>
+#include <AzFramework/Components/TransformComponent.h>
+
+#include <imgui/imgui.h>
+#include <PhysX/Joint/PhysXJointBus.h>
+
+namespace TestScene
+{
+  void ImGuiJointDemo::Activate()
+  {
+    ImGui::ImGuiUpdateListenerBus::Handler::BusConnect();
+  }
+
+  void ImGuiJointDemo::Deactivate()
+  {
+    ImGui::ImGuiUpdateListenerBus::Handler::BusDisconnect();
+  }
+
+
+  void ImGuiJointDemo::Reflect(AZ::ReflectContext* context)
+  {
+    if (AZ::SerializeContext* serialize = azrtti_cast<AZ::SerializeContext*>(context))
+    {
+      serialize->Class<ImGuiJointDemo, AZ::Component>()
+          ->Version(3);
+
+      if (AZ::EditContext* ec = serialize->GetEditContext())
+      {
+        ec->Class<ImGuiJointDemo>("ImGuiJointDemo", "ImGuiJointDemo")
+            ->ClassElement(AZ::Edit::ClassElements::EditorData, "ImGuiJointDemo")
+            ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game"))
+            ->Attribute(AZ::Edit::Attributes::Category, "TestScene");
+      }
+    }
+  }
+
+  void ImGuiJointDemo::OnImGuiUpdate()
+  {
+    float velocity{0};
+    float position{0};
+    AZStd::pair<float, float> limits{0,0};
+    PhysX::JointInterfaceRequestBus::EventResult(velocity,GetEntityId(), &PhysX::JointInterface::GetVelocity);
+    PhysX::JointInterfaceRequestBus::EventResult(position,GetEntityId(), &PhysX::JointInterface::GetPosition);
+    PhysX::JointInterfaceRequestBus::EventResult(limits,GetEntityId(), &PhysX::JointInterface::GetLimits);
+
+    ImGui::Begin("SimplePhysXJointDemo");
+
+    AZStd::string group_name = "Joint " +GetEntity()->GetName();
+
+    ImGui::Text("%s", GetEntity()->GetName().c_str());
+
+
+    ImGui::SliderFloat(AZStd::string("Position"+GetEntity()->GetName()).c_str()
+                           , &position, limits.first,limits.second);
+    ImGui::SliderFloat(AZStd::string("Velocity"+GetEntity()->GetName()).c_str()
+                           , &velocity, -5.f , 5.f);
+
+    ImGui::InputFloat(AZStd::string("Force"+GetEntity()->GetName()).c_str(), &m_forceSet);
+    ImGui::SliderFloat(AZStd::string("Command"+GetEntity()->GetName()).c_str(), &m_velocitySet, -5.f , 5.f);
+    ImGui::SameLine();
+    if (ImGui::Button(AZStd::string("Zero"+GetEntity()->GetName()).c_str())){
+      m_velocitySet = 0;
+    }
+
+    PhysX::JointInterfaceRequestBus::Event(GetEntityId(), &PhysX::JointInterface::SetVelocity, m_velocitySet);
+    PhysX::JointInterfaceRequestBus::Event(GetEntityId(), &PhysX::JointInterface::SetMaximumForce, m_forceSet);
+
+    ImGui::End();
+
+  }
+
+
+}

+ 36 - 0
Gem/Source/PhysXJointTestComponent.h

@@ -0,0 +1,36 @@
+/*
+* Copyright (c) Contributors to the Open 3D Engine Project.
+* For complete copyright and license terms please see the LICENSE at the root of this distribution.
+*
+* SPDX-License-Identifier: Apache-2.0 OR MIT
+*
+*/
+#pragma once
+
+#include <AzCore/Component/Component.h>
+
+#include <ImGuiBus.h>
+namespace TestScene
+{
+//! Component responsible for storing counters of apples gathered by Kraken.
+class ImGuiJointDemo
+   : public AZ::Component
+    , public ImGui::ImGuiUpdateListenerBus::Handler
+{
+public:
+   AZ_COMPONENT(ImGuiJointDemo, "{12640e16-461e-450d-a1fa-88b6435fb8ab}", AZ::Component);
+   ImGuiJointDemo() = default;
+   ~ImGuiJointDemo() = default;
+   void Activate() override;
+   void Deactivate() override;
+   static void Reflect(AZ::ReflectContext* context);
+
+private:
+  void OnImGuiUpdate() override;
+
+  float m_velocitySet {0};
+  float m_forceSet {5000};
+
+
+};
+} // namespace AppleKraken

+ 2 - 0
Gem/Source/Physics_TestModule.cpp

@@ -3,6 +3,7 @@
 #include <AzCore/Module/Module.h>
 #include <AzCore/Module/Module.h>
 
 
 #include "Physics_TestSystemComponent.h"
 #include "Physics_TestSystemComponent.h"
+#include "PhysXJointTestComponent.h"
 
 
 namespace Physics_Test
 namespace Physics_Test
 {
 {
@@ -19,6 +20,7 @@ namespace Physics_Test
             // Push results of [MyComponent]::CreateDescriptor() into m_descriptors here.
             // Push results of [MyComponent]::CreateDescriptor() into m_descriptors here.
             m_descriptors.insert(m_descriptors.end(), {
             m_descriptors.insert(m_descriptors.end(), {
                 Physics_TestSystemComponent::CreateDescriptor(),
                 Physics_TestSystemComponent::CreateDescriptor(),
+                TestScene::ImGuiJointDemo::CreateDescriptor()
             });
             });
         }
         }
 
 

+ 1 - 0
Gem/enabled_gems.cmake

@@ -23,4 +23,5 @@ set(ENABLED_GEMS
     TextureAtlas
     TextureAtlas
     WhiteBox
     WhiteBox
     PhysXDebug
     PhysXDebug
+    ImGui
 )
 )

+ 2 - 0
Gem/physics_test_files.cmake

@@ -3,5 +3,7 @@ set(FILES
     Include/Physics_Test/Physics_TestBus.h
     Include/Physics_Test/Physics_TestBus.h
     Source/Physics_TestSystemComponent.cpp
     Source/Physics_TestSystemComponent.cpp
     Source/Physics_TestSystemComponent.h
     Source/Physics_TestSystemComponent.h
+    Source/PhysXJointTestComponent.cpp
+    Source/PhysXJointTestComponent.h
     enabled_gems.cmake
     enabled_gems.cmake
 )
 )

+ 549 - 0
Levels/Robot/Robot.prefab

@@ -0,0 +1,549 @@
+{
+    "ContainerEntity": {
+        "Id": "Entity_[1146574390643]",
+        "Name": "Level",
+        "Components": {
+            "Component_[10641544592923449938]": {
+                "$type": "EditorInspectorComponent",
+                "Id": 10641544592923449938
+            },
+            "Component_[12039882709170782873]": {
+                "$type": "EditorOnlyEntityComponent",
+                "Id": 12039882709170782873
+            },
+            "Component_[12265484671603697631]": {
+                "$type": "EditorPendingCompositionComponent",
+                "Id": 12265484671603697631
+            },
+            "Component_[14126657869720434043]": {
+                "$type": "EditorEntitySortComponent",
+                "Id": 14126657869720434043,
+                "Child Entity Order": [
+                    "Entity_[1176639161715]"
+                ]
+            },
+            "Component_[15230859088967841193]": {
+                "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                "Id": 15230859088967841193,
+                "Parent Entity": ""
+            },
+            "Component_[16239496886950819870]": {
+                "$type": "EditorDisabledCompositionComponent",
+                "Id": 16239496886950819870
+            },
+            "Component_[5688118765544765547]": {
+                "$type": "EditorEntityIconComponent",
+                "Id": 5688118765544765547
+            },
+            "Component_[7247035804068349658]": {
+                "$type": "EditorPrefabComponent",
+                "Id": 7247035804068349658
+            },
+            "Component_[9307224322037797205]": {
+                "$type": "EditorLockComponent",
+                "Id": 9307224322037797205
+            },
+            "Component_[9562516168917670048]": {
+                "$type": "EditorVisibilityComponent",
+                "Id": 9562516168917670048
+            }
+        }
+    },
+    "Entities": {
+        "Entity_[1155164325235]": {
+            "Id": "Entity_[1155164325235]",
+            "Name": "Sun",
+            "Components": {
+                "Component_[13620450453324765907]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 13620450453324765907
+                },
+                "Component_[2134313378593666258]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 2134313378593666258
+                },
+                "Component_[234010807770404186]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 234010807770404186
+                },
+                "Component_[2970359110423865725]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 2970359110423865725
+                },
+                "Component_[3722854130373041803]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 3722854130373041803
+                },
+                "Component_[5992533738676323195]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 5992533738676323195
+                },
+                "Component_[7378860763541895402]": {
+                    "$type": "AZ::Render::EditorDirectionalLightComponent",
+                    "Id": 7378860763541895402,
+                    "Controller": {
+                        "Configuration": {
+                            "Intensity": 1.0,
+                            "CameraEntityId": "",
+                            "ShadowFilterMethod": 1
+                        }
+                    }
+                },
+                "Component_[7892834440890947578]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 7892834440890947578,
+                    "Parent Entity": "Entity_[1176639161715]",
+                    "Transform Data": {
+                        "Translate": [
+                            0.0,
+                            0.0,
+                            13.487043380737305
+                        ],
+                        "Rotate": [
+                            -76.13099670410156,
+                            -0.847000002861023,
+                            -15.8100004196167
+                        ]
+                    }
+                },
+                "Component_[8599729549570828259]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 8599729549570828259
+                },
+                "Component_[952797371922080273]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 952797371922080273
+                }
+            }
+        },
+        "Entity_[1159459292531]": {
+            "Id": "Entity_[1159459292531]",
+            "Name": "Ground",
+            "Components": {
+                "Component_[12260880513256986252]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 12260880513256986252
+                },
+                "Component_[13711420870643673468]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 13711420870643673468
+                },
+                "Component_[138002849734991713]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 138002849734991713
+                },
+                "Component_[16578565737331764849]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 16578565737331764849,
+                    "Parent Entity": "Entity_[1176639161715]"
+                },
+                "Component_[16919232076966545697]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 16919232076966545697
+                },
+                "Component_[5182430712893438093]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 5182430712893438093
+                },
+                "Component_[5245524694917323904]": {
+                    "$type": "EditorColliderComponent",
+                    "Id": 5245524694917323904,
+                    "ColliderConfiguration": {
+                        "Position": [
+                            0.0,
+                            0.0,
+                            -0.5
+                        ],
+                        "MaterialSlots": {
+                            "Slots": [
+                                {
+                                    "Name": "Entire object"
+                                }
+                            ]
+                        }
+                    },
+                    "ShapeConfiguration": {
+                        "ShapeType": 1,
+                        "Box": {
+                            "Configuration": [
+                                512.0,
+                                512.0,
+                                1.0
+                            ]
+                        }
+                    },
+                    "DebugDrawSettings": {
+                        "LocallyEnabled": false
+                    }
+                },
+                "Component_[5675108321710651991]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 5675108321710651991,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{0CD745C0-6AA8-569A-A68A-73A3270986C4}",
+                                    "subId": 277889906
+                                },
+                                "assetHint": "objects/groudplane/groundplane_512x512m.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[5681893399601237518]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 5681893399601237518
+                },
+                "Component_[592692962543397545]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 592692962543397545
+                },
+                "Component_[7090012899106946164]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 7090012899106946164
+                },
+                "Component_[9410832619875640998]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 9410832619875640998
+                }
+            }
+        },
+        "Entity_[1163754259827]": {
+            "Id": "Entity_[1163754259827]",
+            "Name": "Camera",
+            "Components": {
+                "Component_[11895140916889160460]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 11895140916889160460
+                },
+                "Component_[16880285896855930892]": {
+                    "$type": "{CA11DA46-29FF-4083-B5F6-E02C3A8C3A3D} EditorCameraComponent",
+                    "Id": 16880285896855930892,
+                    "Controller": {
+                        "Configuration": {
+                            "Field of View": 55.0,
+                            "EditorEntityId": 8929576024571800510
+                        }
+                    }
+                },
+                "Component_[17187464423780271193]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 17187464423780271193
+                },
+                "Component_[17495696818315413311]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 17495696818315413311
+                },
+                "Component_[18086214374043522055]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 18086214374043522055,
+                    "Parent Entity": "Entity_[1176639161715]",
+                    "Transform Data": {
+                        "Translate": [
+                            -2.3000001907348633,
+                            -3.9368600845336914,
+                            1.0
+                        ],
+                        "Rotate": [
+                            -2.050307512283325,
+                            1.9552897214889526,
+                            -43.623355865478516
+                        ]
+                    }
+                },
+                "Component_[2654521436129313160]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 2654521436129313160
+                },
+                "Component_[5265045084611556958]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 5265045084611556958
+                },
+                "Component_[7169798125182238623]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 7169798125182238623
+                },
+                "Component_[7255796294953281766]": {
+                    "$type": "GenericComponentWrapper",
+                    "Id": 7255796294953281766,
+                    "m_template": {
+                        "$type": "FlyCameraInputComponent"
+                    }
+                },
+                "Component_[8866210352157164042]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 8866210352157164042
+                },
+                "Component_[9129253381063760879]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 9129253381063760879
+                }
+            }
+        },
+        "Entity_[1168049227123]": {
+            "Id": "Entity_[1168049227123]",
+            "Name": "Grid",
+            "Components": {
+                "Component_[11443347433215807130]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 11443347433215807130
+                },
+                "Component_[14249419413039427459]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 14249419413039427459
+                },
+                "Component_[15448581635946161318]": {
+                    "$type": "AZ::Render::EditorGridComponent",
+                    "Id": 15448581635946161318,
+                    "Controller": {
+                        "Configuration": {
+                            "primarySpacing": 4.0,
+                            "primaryColor": [
+                                0.501960813999176,
+                                0.501960813999176,
+                                0.501960813999176
+                            ],
+                            "secondarySpacing": 0.5,
+                            "secondaryColor": [
+                                0.250980406999588,
+                                0.250980406999588,
+                                0.250980406999588
+                            ]
+                        }
+                    }
+                },
+                "Component_[1843303322527297409]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 1843303322527297409
+                },
+                "Component_[380249072065273654]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 380249072065273654,
+                    "Parent Entity": "Entity_[1176639161715]"
+                },
+                "Component_[7476660583684339787]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 7476660583684339787
+                },
+                "Component_[7557626501215118375]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 7557626501215118375
+                },
+                "Component_[7984048488947365511]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 7984048488947365511
+                },
+                "Component_[8118181039276487398]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 8118181039276487398
+                },
+                "Component_[9189909764215270515]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 9189909764215270515
+                }
+            }
+        },
+        "Entity_[1172344194419]": {
+            "Id": "Entity_[1172344194419]",
+            "Name": "Shader Ball",
+            "Components": {
+                "Component_[10789351944715265527]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 10789351944715265527
+                },
+                "Component_[12037033284781049225]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 12037033284781049225
+                },
+                "Component_[13759153306105970079]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 13759153306105970079
+                },
+                "Component_[14135560884830586279]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 14135560884830586279
+                },
+                "Component_[16247165675903986673]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 16247165675903986673
+                },
+                "Component_[18082433625958885247]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 18082433625958885247
+                },
+                "Component_[6472623349872972660]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 6472623349872972660,
+                    "Parent Entity": "Entity_[1176639161715]",
+                    "Transform Data": {
+                        "Rotate": [
+                            0.0,
+                            0.10000000149011612,
+                            180.0
+                        ]
+                    }
+                },
+                "Component_[6495255223970673916]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 6495255223970673916,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{FD340C30-755C-5911-92A3-19A3F7A77931}",
+                                    "subId": 281415304
+                                },
+                                "assetHint": "objects/shaderball/shaderball_default_1m.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[8550141614185782969]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 8550141614185782969
+                },
+                "Component_[9439770997198325425]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 9439770997198325425
+                }
+            }
+        },
+        "Entity_[1176639161715]": {
+            "Id": "Entity_[1176639161715]",
+            "Name": "Atom Default Environment",
+            "Components": {
+                "Component_[10757302973393310045]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 10757302973393310045,
+                    "Parent Entity": "Entity_[1146574390643]"
+                },
+                "Component_[14505817420424255464]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 14505817420424255464,
+                    "ComponentOrderEntryArray": [
+                        {
+                            "ComponentId": 10757302973393310045
+                        }
+                    ]
+                },
+                "Component_[14988041764659020032]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 14988041764659020032
+                },
+                "Component_[15900837685796817138]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 15900837685796817138
+                },
+                "Component_[3298767348226484884]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 3298767348226484884
+                },
+                "Component_[4076975109609220594]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 4076975109609220594
+                },
+                "Component_[5679760548946028854]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 5679760548946028854
+                },
+                "Component_[5855590796136709437]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 5855590796136709437,
+                    "Child Entity Order": [
+                        "Entity_[1155164325235]",
+                        "Entity_[1180934129011]",
+                        "Entity_[1172344194419]",
+                        "Entity_[1168049227123]",
+                        "Entity_[1163754259827]",
+                        "Entity_[1159459292531]"
+                    ]
+                },
+                "Component_[9277695270015777859]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 9277695270015777859
+                }
+            }
+        },
+        "Entity_[1180934129011]": {
+            "Id": "Entity_[1180934129011]",
+            "Name": "Global Sky",
+            "Components": {
+                "Component_[11231930600558681245]": {
+                    "$type": "AZ::Render::EditorHDRiSkyboxComponent",
+                    "Id": 11231930600558681245,
+                    "Controller": {
+                        "Configuration": {
+                            "CubemapAsset": {
+                                "assetId": {
+                                    "guid": "{215E47FD-D181-5832-B1AB-91673ABF6399}",
+                                    "subId": 1000
+                                },
+                                "assetHint": "lightingpresets/highcontrast/goegap_4k_skyboxcm.exr.streamingimage"
+                            }
+                        }
+                    }
+                },
+                "Component_[1428633914413949476]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 1428633914413949476
+                },
+                "Component_[14936200426671614999]": {
+                    "$type": "AZ::Render::EditorImageBasedLightComponent",
+                    "Id": 14936200426671614999,
+                    "Controller": {
+                        "Configuration": {
+                            "diffuseImageAsset": {
+                                "assetId": {
+                                    "guid": "{3FD09945-D0F2-55C8-B9AF-B2FD421FE3BE}",
+                                    "subId": 3000
+                                },
+                                "assetHint": "lightingpresets/highcontrast/goegap_4k_iblglobalcm_ibldiffuse.exr.streamingimage"
+                            },
+                            "specularImageAsset": {
+                                "assetId": {
+                                    "guid": "{3FD09945-D0F2-55C8-B9AF-B2FD421FE3BE}",
+                                    "subId": 2000
+                                },
+                                "assetHint": "lightingpresets/highcontrast/goegap_4k_iblglobalcm_iblspecular.exr.streamingimage"
+                            }
+                        }
+                    }
+                },
+                "Component_[14994774102579326069]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 14994774102579326069
+                },
+                "Component_[15417479889044493340]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 15417479889044493340
+                },
+                "Component_[15826613364991382688]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 15826613364991382688
+                },
+                "Component_[1665003113283562343]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 1665003113283562343
+                },
+                "Component_[3704934735944502280]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 3704934735944502280
+                },
+                "Component_[5698542331457326479]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 5698542331457326479
+                },
+                "Component_[6644513399057217122]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 6644513399057217122,
+                    "Parent Entity": "Entity_[1176639161715]"
+                },
+                "Component_[931091830724002070]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 931091830724002070
+                }
+            }
+        }
+    }
+}

+ 503 - 0
Levels/robotic-arm/robotic-arm.prefab

@@ -0,0 +1,503 @@
+{
+    "ContainerEntity": {
+        "Id": "Entity_[1146574390643]",
+        "Name": "Level",
+        "Components": {
+            "Component_[10641544592923449938]": {
+                "$type": "EditorInspectorComponent",
+                "Id": 10641544592923449938
+            },
+            "Component_[12039882709170782873]": {
+                "$type": "EditorOnlyEntityComponent",
+                "Id": 12039882709170782873
+            },
+            "Component_[12265484671603697631]": {
+                "$type": "EditorPendingCompositionComponent",
+                "Id": 12265484671603697631
+            },
+            "Component_[14126657869720434043]": {
+                "$type": "EditorEntitySortComponent",
+                "Id": 14126657869720434043,
+                "Child Entity Order": [
+                    "Entity_[1176639161715]",
+                    "Instance_[1376603442920]/ContainerEntity"
+                ]
+            },
+            "Component_[15230859088967841193]": {
+                "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                "Id": 15230859088967841193,
+                "Parent Entity": ""
+            },
+            "Component_[16239496886950819870]": {
+                "$type": "EditorDisabledCompositionComponent",
+                "Id": 16239496886950819870
+            },
+            "Component_[16843824328835980604]": {
+                "$type": "LocalViewBookmarkComponent",
+                "Id": 16843824328835980604,
+                "LocalBookmarkFileName": "robotic-arm_1671539006337141059.setreg"
+            },
+            "Component_[5688118765544765547]": {
+                "$type": "EditorEntityIconComponent",
+                "Id": 5688118765544765547
+            },
+            "Component_[7247035804068349658]": {
+                "$type": "EditorPrefabComponent",
+                "Id": 7247035804068349658
+            },
+            "Component_[9307224322037797205]": {
+                "$type": "EditorLockComponent",
+                "Id": 9307224322037797205
+            },
+            "Component_[9562516168917670048]": {
+                "$type": "EditorVisibilityComponent",
+                "Id": 9562516168917670048
+            }
+        }
+    },
+    "Entities": {
+        "Entity_[1155164325235]": {
+            "Id": "Entity_[1155164325235]",
+            "Name": "Sun",
+            "Components": {
+                "Component_[13620450453324765907]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 13620450453324765907
+                },
+                "Component_[2134313378593666258]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 2134313378593666258
+                },
+                "Component_[234010807770404186]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 234010807770404186
+                },
+                "Component_[2970359110423865725]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 2970359110423865725
+                },
+                "Component_[3722854130373041803]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 3722854130373041803
+                },
+                "Component_[5992533738676323195]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 5992533738676323195
+                },
+                "Component_[7378860763541895402]": {
+                    "$type": "AZ::Render::EditorDirectionalLightComponent",
+                    "Id": 7378860763541895402,
+                    "Controller": {
+                        "Configuration": {
+                            "Intensity": 1.0,
+                            "CameraEntityId": "",
+                            "ShadowFilterMethod": 1
+                        }
+                    }
+                },
+                "Component_[7892834440890947578]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 7892834440890947578,
+                    "Parent Entity": "Entity_[1176639161715]",
+                    "Transform Data": {
+                        "Translate": [
+                            0.0,
+                            0.0,
+                            13.487043380737305
+                        ],
+                        "Rotate": [
+                            -76.13099670410156,
+                            -0.847000002861023,
+                            -15.8100004196167
+                        ]
+                    }
+                },
+                "Component_[8599729549570828259]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 8599729549570828259
+                },
+                "Component_[952797371922080273]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 952797371922080273
+                }
+            }
+        },
+        "Entity_[1159459292531]": {
+            "Id": "Entity_[1159459292531]",
+            "Name": "Ground",
+            "Components": {
+                "Component_[12260880513256986252]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 12260880513256986252
+                },
+                "Component_[13711420870643673468]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 13711420870643673468
+                },
+                "Component_[138002849734991713]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 138002849734991713
+                },
+                "Component_[16578565737331764849]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 16578565737331764849,
+                    "Parent Entity": "Entity_[1176639161715]"
+                },
+                "Component_[16919232076966545697]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 16919232076966545697
+                },
+                "Component_[5182430712893438093]": {
+                    "$type": "EditorMaterialComponent",
+                    "Id": 5182430712893438093
+                },
+                "Component_[5245524694917323904]": {
+                    "$type": "EditorColliderComponent",
+                    "Id": 5245524694917323904,
+                    "ColliderConfiguration": {
+                        "Position": [
+                            0.0,
+                            0.0,
+                            -0.5
+                        ],
+                        "MaterialSlots": {
+                            "Slots": [
+                                {
+                                    "Name": "Entire object"
+                                }
+                            ]
+                        }
+                    },
+                    "ShapeConfiguration": {
+                        "ShapeType": 1,
+                        "Box": {
+                            "Configuration": [
+                                512.0,
+                                512.0,
+                                1.0
+                            ]
+                        }
+                    },
+                    "DebugDrawSettings": {
+                        "LocallyEnabled": false
+                    }
+                },
+                "Component_[5675108321710651991]": {
+                    "$type": "AZ::Render::EditorMeshComponent",
+                    "Id": 5675108321710651991,
+                    "Controller": {
+                        "Configuration": {
+                            "ModelAsset": {
+                                "assetId": {
+                                    "guid": "{0CD745C0-6AA8-569A-A68A-73A3270986C4}",
+                                    "subId": 277889906
+                                },
+                                "assetHint": "objects/groudplane/groundplane_512x512m.azmodel"
+                            }
+                        }
+                    }
+                },
+                "Component_[5681893399601237518]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 5681893399601237518
+                },
+                "Component_[592692962543397545]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 592692962543397545
+                },
+                "Component_[7090012899106946164]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 7090012899106946164
+                },
+                "Component_[9410832619875640998]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 9410832619875640998
+                }
+            }
+        },
+        "Entity_[1168049227123]": {
+            "Id": "Entity_[1168049227123]",
+            "Name": "Grid",
+            "Components": {
+                "Component_[11443347433215807130]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 11443347433215807130
+                },
+                "Component_[14249419413039427459]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 14249419413039427459
+                },
+                "Component_[15448581635946161318]": {
+                    "$type": "AZ::Render::EditorGridComponent",
+                    "Id": 15448581635946161318,
+                    "Controller": {
+                        "Configuration": {
+                            "primarySpacing": 4.0,
+                            "primaryColor": [
+                                0.501960813999176,
+                                0.501960813999176,
+                                0.501960813999176
+                            ],
+                            "secondarySpacing": 0.5,
+                            "secondaryColor": [
+                                0.250980406999588,
+                                0.250980406999588,
+                                0.250980406999588
+                            ]
+                        }
+                    }
+                },
+                "Component_[1843303322527297409]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 1843303322527297409
+                },
+                "Component_[380249072065273654]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 380249072065273654,
+                    "Parent Entity": "Entity_[1176639161715]"
+                },
+                "Component_[7476660583684339787]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 7476660583684339787
+                },
+                "Component_[7557626501215118375]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 7557626501215118375
+                },
+                "Component_[7984048488947365511]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 7984048488947365511
+                },
+                "Component_[8118181039276487398]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 8118181039276487398
+                },
+                "Component_[9189909764215270515]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 9189909764215270515
+                }
+            }
+        },
+        "Entity_[1176639161715]": {
+            "Id": "Entity_[1176639161715]",
+            "Name": "Atom Default Environment",
+            "Components": {
+                "Component_[10757302973393310045]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 10757302973393310045,
+                    "Parent Entity": "Entity_[1146574390643]"
+                },
+                "Component_[14505817420424255464]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 14505817420424255464,
+                    "ComponentOrderEntryArray": [
+                        {
+                            "ComponentId": 10757302973393310045
+                        }
+                    ]
+                },
+                "Component_[14988041764659020032]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 14988041764659020032
+                },
+                "Component_[15900837685796817138]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 15900837685796817138
+                },
+                "Component_[3298767348226484884]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 3298767348226484884
+                },
+                "Component_[4076975109609220594]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 4076975109609220594
+                },
+                "Component_[5679760548946028854]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 5679760548946028854
+                },
+                "Component_[5855590796136709437]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 5855590796136709437,
+                    "Child Entity Order": [
+                        "Entity_[5253935932561]",
+                        "Entity_[1155164325235]",
+                        "Entity_[1180934129011]",
+                        "Entity_[1168049227123]",
+                        "Entity_[1159459292531]"
+                    ]
+                },
+                "Component_[9277695270015777859]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 9277695270015777859
+                }
+            }
+        },
+        "Entity_[1180934129011]": {
+            "Id": "Entity_[1180934129011]",
+            "Name": "Global Sky",
+            "Components": {
+                "Component_[11231930600558681245]": {
+                    "$type": "AZ::Render::EditorHDRiSkyboxComponent",
+                    "Id": 11231930600558681245,
+                    "Controller": {
+                        "Configuration": {
+                            "CubemapAsset": {
+                                "assetId": {
+                                    "guid": "{215E47FD-D181-5832-B1AB-91673ABF6399}",
+                                    "subId": 1000
+                                },
+                                "assetHint": "lightingpresets/highcontrast/goegap_4k_skyboxcm.exr.streamingimage"
+                            }
+                        }
+                    }
+                },
+                "Component_[1428633914413949476]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 1428633914413949476
+                },
+                "Component_[14936200426671614999]": {
+                    "$type": "AZ::Render::EditorImageBasedLightComponent",
+                    "Id": 14936200426671614999,
+                    "Controller": {
+                        "Configuration": {
+                            "diffuseImageAsset": {
+                                "assetId": {
+                                    "guid": "{3FD09945-D0F2-55C8-B9AF-B2FD421FE3BE}",
+                                    "subId": 3000
+                                },
+                                "assetHint": "lightingpresets/highcontrast/goegap_4k_iblglobalcm_ibldiffuse.exr.streamingimage"
+                            },
+                            "specularImageAsset": {
+                                "assetId": {
+                                    "guid": "{3FD09945-D0F2-55C8-B9AF-B2FD421FE3BE}",
+                                    "subId": 2000
+                                },
+                                "assetHint": "lightingpresets/highcontrast/goegap_4k_iblglobalcm_iblspecular.exr.streamingimage"
+                            }
+                        }
+                    }
+                },
+                "Component_[14994774102579326069]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 14994774102579326069
+                },
+                "Component_[15417479889044493340]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 15417479889044493340
+                },
+                "Component_[15826613364991382688]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 15826613364991382688
+                },
+                "Component_[1665003113283562343]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 1665003113283562343
+                },
+                "Component_[3704934735944502280]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 3704934735944502280
+                },
+                "Component_[5698542331457326479]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 5698542331457326479
+                },
+                "Component_[6644513399057217122]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 6644513399057217122,
+                    "Parent Entity": "Entity_[1176639161715]"
+                },
+                "Component_[931091830724002070]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 931091830724002070
+                }
+            }
+        },
+        "Entity_[5253935932561]": {
+            "Id": "Entity_[5253935932561]",
+            "Name": "Entity1",
+            "Components": {
+                "Component_[11887229845449081651]": {
+                    "$type": "{CA11DA46-29FF-4083-B5F6-E02C3A8C3A3D} EditorCameraComponent",
+                    "Id": 11887229845449081651,
+                    "Controller": {
+                        "Configuration": {
+                            "Field of View": 60.0,
+                            "EditorEntityId": 8169843862907824176
+                        }
+                    }
+                },
+                "Component_[14572704560921163535]": {
+                    "$type": "EditorVisibilityComponent",
+                    "Id": 14572704560921163535
+                },
+                "Component_[15172814678937472544]": {
+                    "$type": "EditorInspectorComponent",
+                    "Id": 15172814678937472544
+                },
+                "Component_[16986981767876562426]": {
+                    "$type": "EditorEntityIconComponent",
+                    "Id": 16986981767876562426
+                },
+                "Component_[17423322489630331151]": {
+                    "$type": "EditorPendingCompositionComponent",
+                    "Id": 17423322489630331151
+                },
+                "Component_[18046559409255846800]": {
+                    "$type": "GenericComponentWrapper",
+                    "Id": 18046559409255846800,
+                    "m_template": {
+                        "$type": "FlyCameraInputComponent",
+                        "Move Speed": 1.0,
+                        "Rotation Speed": 1.0
+                    }
+                },
+                "Component_[2418186248743500285]": {
+                    "$type": "EditorDisabledCompositionComponent",
+                    "Id": 2418186248743500285
+                },
+                "Component_[3088626712260312241]": {
+                    "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+                    "Id": 3088626712260312241,
+                    "Parent Entity": "Entity_[1176639161715]",
+                    "Transform Data": {
+                        "Translate": [
+                            1.0379832983016968,
+                            -2.6616461277008057,
+                            1.7440247535705566
+                        ],
+                        "Rotate": [
+                            -16.02065658569336,
+                            -3.202078342437744,
+                            11.008499145507813
+                        ]
+                    }
+                },
+                "Component_[6423979776420328213]": {
+                    "$type": "EditorEntitySortComponent",
+                    "Id": 6423979776420328213
+                },
+                "Component_[7934962855244834403]": {
+                    "$type": "EditorLockComponent",
+                    "Id": 7934962855244834403
+                },
+                "Component_[9003720906380897961]": {
+                    "$type": "EditorOnlyEntityComponent",
+                    "Id": 9003720906380897961
+                }
+            }
+        }
+    },
+    "Instances": {
+        "Instance_[1376603442920]": {
+            "Source": "Assets/Importer/panda.prefab",
+            "Patches": [
+                {
+                    "op": "replace",
+                    "path": "/ContainerEntity/Components/Component_[465294739564050186]/Parent Entity",
+                    "value": "../Entity_[1146574390643]"
+                }
+            ]
+        }
+    }
+}

+ 8 - 0
README.md

@@ -28,6 +28,7 @@ To build the project using the CLI interface on Windows or Linux follow [these i
 The project consists of the following levels:
 The project consists of the following levels:
 - [mobile_robot_physics](#mobile_robot_physics) - Mobile Robot Physics PoC
 - [mobile_robot_physics](#mobile_robot_physics) - Mobile Robot Physics PoC
 - [manipulator_physics](#manipulator_physics) - Manipulator Physics PoC (`description on the way`)
 - [manipulator_physics](#manipulator_physics) - Manipulator Physics PoC (`description on the way`)
+- [robotic_arm_physics] (#robotic_arm) - 
 
 
 In addition, the project includes 3 initial feasibility tests:
 In addition, the project includes 3 initial feasibility tests:
 - [robot_arm_test1](Doc/Initial_Feasibility_tests.md#robot_arm_test1)
 - [robot_arm_test1](Doc/Initial_Feasibility_tests.md#robot_arm_test1)
@@ -85,3 +86,10 @@ The goal of this level is to test how a manipulator can be created using physics
 ## Initial feasibility tests
 ## Initial feasibility tests
 
 
 [See here](Doc/Initial_Feasibility_tests.md)
 [See here](Doc/Initial_Feasibility_tests.md)
+
+
+# Robotic Arm
+Test level with improted robot using URDF importer. The scene is used to test developed API to PhysX joints.
+It is using this experimental branch from O3DE: https://github.com/michalpelka/o3de/tree/add_physx_joint_control
+
+![Robotic arm simulation](Doc/robotic_arm.gif)

+ 40 - 0
Registry/sceneassetimporter.setreg

@@ -0,0 +1,40 @@
+{
+	"O3DE":
+	{
+		"SceneAPI":
+		{
+			"AssetImporter":
+			{
+				"SupportedFileTypeExtensions":
+				[
+					".dae",
+					".fbx",
+					".stl",
+					".gltf",
+					".glb"
+				]
+			},
+			"MaterialConverter": 
+			{
+				"Enable": true,
+				"DefaultMaterial": "Materials/Presets/PBR/default_grid.material"
+			},
+			"TangentGenerateComponent":
+			{
+				"DefaultGenerationMethod": "FromSourceScene",
+				"DebugBitangentFlip": false
+			},
+			"SkinRule":
+			{
+				"DefaultMaxSkinInfluencesPerVertex": 8,
+				"DefaultWeightThreshold": 0.001
+			},
+			"ModelBuilder": 
+			{
+				// When false, scenes with multiple meshes assigned to the same material but with different vertex layouts will successfully process
+				// When true, stricter error checking will cause the asset to fail to process with an error message indicating why
+				"MismatchedVertexLayoutsAreErrors": false 
+			}
+		}
+	}
+}

+ 2 - 2
project.json

@@ -12,10 +12,10 @@
         "Physics_Test"
         "Physics_Test"
     ],
     ],
     "icon_path": "preview.png",
     "icon_path": "preview.png",
-    "engine": "o3de_dev",
+    "engine": "o3de",
     "external_subdirectories": [
     "external_subdirectories": [
         "Gem"
         "Gem"
     ],
     ],
     "restricted": "o3de-physics-test-scene",
     "restricted": "o3de-physics-test-scene",
-    "gem_names": []
+    "gem_names": ["ROS2"]
 }
 }

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä