ManuETR / thesis

0 stars 0 forks source link

Import for SDF files in UE5 #2

Open ManuETR opened 1 month ago

ManuETR commented 1 month ago

The appraoch is to use the already existing URoboSim Plugin which enables imports of SDF files within UE4 and migrate it to UE5

ManuETR commented 1 month ago

Currently i receive following error:

[2024.05.07-08.14.21:660][253]LogFactory: FactoryCreateFile: SDFDataAsset with SDFDataAssetFactory (0 0 ../../../../../../Users/Manuel/Documents/cogimon-gazebo-models-master/universal-robot-ur5/model.sdf)
[2024.05.07-08.14.21:660][253]LogTemp: InName model, InParentName /Game/model
[2024.05.07-08.14.21:660][253]LogTemp: Error: ROS_PACKAGE_PATH is empty or not set
[2024.05.07-08.14.21:661][253]LogTemp: Warning: [ISDFParserInterface::ParseLinkInertial][283] <inertial> child <inertia> not supported, ignored..
[2024.05.07-08.14.21:661][253]LogTemp: Warning: [FSDFParser::ParseGeometryMesh][427] <geometry> <mesh> child <scale> not supported, ignored..
[2024.05.07-08.14.21:661][253]LogTemp: Error: [FSDFParser::GetROSPackagePath] ROSPackage universal-robot-ur5 not found
[2024.05.07-08.14.21:661][253]LogTemp: Error: [FSDFParser::ImportMesh] Could not find ../../../../../../Users/Manuel/Documents/cogimon-gazebo-models-master/universal-robot-ur5/../universal-robot-ur5/meshes/ur5/collision/Base.fbx
[2024.05.07-08.14.21:661][253]LogTemp: Warning: [FSDFParser::ParseGeometryMesh][427] <geometry> <mesh> child <scale> not supported, ignored..
[2024.05.07-08.14.21:661][253]LogTemp: Error: [FSDFParser::GetROSPackagePath] ROSPackage universal-robot-ur5 not found
[2024.05.07-08.14.21:661][253]LogTemp: Error: [FSDFParser::ImportMesh] Could not find ../../../../../../Users/Manuel/Documents/cogimon-gazebo-models-master/universal-robot-ur5/../universal-robot-ur5/meshes/ur5/visual/Base.fbx
[2024.05.07-08.14.21:661][253]LogTemp: Warning: [FSDFParser::ParseLink][287] <link> child <velocity_decay> not supported, ignored..
[2024.05.07-08.14.21:661][253]LogTemp: Warning: [ISDFParserInterface::ParseJointAxis][509] <joint> <axis> child <dynamics> not supported, ignored..
[2024.05.07-08.14.21:661][253]LogTemp: Warning: [ISDFParserInterface::ParseLinkInertial][283] <inertial> child <inertia> not supported, ignored..
[2024.05.07-08.14.21:661][253]LogTemp: Warning: [FSDFParser::ParseGeometryMesh][427] <geometry> <mesh> child <scale> not supported, ignored..
[2024.05.07-08.14.21:661][253]LogTemp: Error: [FSDFParser::GetROSPackagePath] ROSPackage universal-robot-ur5 not found
[2024.05.07-08.14.21:661][253]LogTemp: Error: [FSDFParser::ImportMesh] Could not find ../../../../../../Users/Manuel/Documents/cogimon-gazebo-models-master/universal-robot-ur5/../universal-robot-ur5/meshes/ur5/collision/Shoulder.fbx
[2024.05.07-08.14.21:661][253]LogTemp: Warning: [FSDFParser::ParseGeometryMesh][427] <geometry> <mesh> child <scale> not supported, ignored..
[2024.05.07-08.14.21:661][253]LogTemp: Error: [FSDFParser::GetROSPackagePath] ROSPackage universal-robot-ur5 not found
[2024.05.07-08.14.21:661][253]LogTemp: Error: [FSDFParser::ImportMesh] Could not find ../../../../../../Users/Manuel/Documents/cogimon-gazebo-models-master/universal-robot-ur5/../universal-robot-ur5/meshes/ur5/visual/Shoulder.fbx
[2024.05.07-08.14.21:661][253]LogTemp: Warning: [FSDFParser::ParseLink][287] <link> child <velocity_decay> not supported, ignored..
[2024.05.07-08.14.21:661][253]LogTemp: Warning: [ISDFParserInterface::ParseJointAxis][509] <joint> <axis> child <dynamics> not supported, ignored..
[2024.05.07-08.14.21:661][253]LogTemp: Warning: [ISDFParserInterface::ParseLinkInertial][283] <inertial> child <inertia> not supported, ignored..
[2024.05.07-08.14.21:661][253]LogTemp: Warning: [FSDFParser::ParseGeometryMesh][427] <geometry> <mesh> child <scale> not supported, ignored..
[2024.05.07-08.14.21:661][253]LogTemp: Error: [FSDFParser::GetROSPackagePath] ROSPackage universal-robot-ur5 not found
[2024.05.07-08.14.21:661][253]LogTemp: Error: [FSDFParser::ImportMesh] Could not find ../../../../../../Users/Manuel/Documents/cogimon-gazebo-models-master/universal-robot-ur5/../universal-robot-ur5/meshes/ur5/collision/UpperArm.fbx
[2024.05.07-08.14.21:661][253]LogTemp: Warning: [FSDFParser::ParseGeometryMesh][427] <geometry> <mesh> child <scale> not supported, ignored..
[2024.05.07-08.14.21:661][253]LogTemp: Error: [FSDFParser::GetROSPackagePath] ROSPackage universal-robot-ur5 not found
[2024.05.07-08.14.21:661][253]LogTemp: Error: [FSDFParser::ImportMesh] Could not find ../../../../../../Users/Manuel/Documents/cogimon-gazebo-models-master/universal-robot-ur5/../universal-robot-ur5/meshes/ur5/visual/UpperArm.fbx
[2024.05.07-08.14.21:661][253]LogTemp: Warning: [FSDFParser::ParseLink][287] <link> child <velocity_decay> not supported, ignored..
[2024.05.07-08.14.21:661][253]LogTemp: Warning: [ISDFParserInterface::ParseJointAxis][509] <joint> <axis> child <dynamics> not supported, ignored..
[2024.05.07-08.14.21:661][253]LogTemp: Warning: [ISDFParserInterface::ParseLinkInertial][283] <inertial> child <inertia> not supported, ignored..
[2024.05.07-08.14.21:661][253]LogTemp: Warning: [FSDFParser::ParseGeometryMesh][427] <geometry> <mesh> child <scale> not supported, ignored..
[2024.05.07-08.14.21:661][253]LogTemp: Error: [FSDFParser::GetROSPackagePath] ROSPackage universal-robot-ur5 not found
[2024.05.07-08.14.21:661][253]LogTemp: Error: [FSDFParser::ImportMesh] Could not find ../../../../../../Users/Manuel/Documents/cogimon-gazebo-models-master/universal-robot-ur5/../universal-robot-ur5/meshes/ur5/collision/Forearm.fbx
[2024.05.07-08.14.21:661][253]LogTemp: Warning: [FSDFParser::ParseGeometryMesh][427] <geometry> <mesh> child <scale> not supported, ignored..
[2024.05.07-08.14.21:661][253]LogTemp: Error: [FSDFParser::GetROSPackagePath] ROSPackage universal-robot-ur5 not found
[2024.05.07-08.14.21:661][253]LogTemp: Error: [FSDFParser::ImportMesh] Could not find ../../../../../../Users/Manuel/Documents/cogimon-gazebo-models-master/universal-robot-ur5/../universal-robot-ur5/meshes/ur5/visual/Forearm.fbx
[2024.05.07-08.14.21:661][253]LogTemp: Warning: [FSDFParser::ParseLink][287] <link> child <velocity_decay> not supported, ignored..
[2024.05.07-08.14.21:662][253]LogTemp: Warning: [ISDFParserInterface::ParseJointAxis][509] <joint> <axis> child <dynamics> not supported, ignored..
[2024.05.07-08.14.21:662][253]LogTemp: Warning: [ISDFParserInterface::ParseLinkInertial][283] <inertial> child <inertia> not supported, ignored..
[2024.05.07-08.14.21:662][253]LogTemp: Warning: [FSDFParser::ParseGeometryMesh][427] <geometry> <mesh> child <scale> not supported, ignored..
[2024.05.07-08.14.21:662][253]LogTemp: Error: [FSDFParser::GetROSPackagePath] ROSPackage universal-robot-ur5 not found
[2024.05.07-08.14.21:662][253]LogTemp: Error: [FSDFParser::ImportMesh] Could not find ../../../../../../Users/Manuel/Documents/cogimon-gazebo-models-master/universal-robot-ur5/../universal-robot-ur5/meshes/ur5/collision/Wrist1.fbx
[2024.05.07-08.14.21:662][253]LogTemp: Warning: [FSDFParser::ParseGeometryMesh][427] <geometry> <mesh> child <scale> not supported, ignored..
[2024.05.07-08.14.21:662][253]LogTemp: Error: [FSDFParser::GetROSPackagePath] ROSPackage universal-robot-ur5 not found
[2024.05.07-08.14.21:662][253]LogTemp: Error: [FSDFParser::ImportMesh] Could not find ../../../../../../Users/Manuel/Documents/cogimon-gazebo-models-master/universal-robot-ur5/../universal-robot-ur5/meshes/ur5/visual/Wrist1.fbx
[2024.05.07-08.14.21:662][253]LogTemp: Warning: [FSDFParser::ParseLink][287] <link> child <velocity_decay> not supported, ignored..
[2024.05.07-08.14.21:662][253]LogTemp: Warning: [ISDFParserInterface::ParseJointAxis][509] <joint> <axis> child <dynamics> not supported, ignored..
[2024.05.07-08.14.21:662][253]LogTemp: Warning: [ISDFParserInterface::ParseLinkInertial][283] <inertial> child <inertia> not supported, ignored..
[2024.05.07-08.14.21:662][253]LogTemp: Warning: [FSDFParser::ParseGeometryMesh][427] <geometry> <mesh> child <scale> not supported, ignored..
[2024.05.07-08.14.21:662][253]LogTemp: Error: [FSDFParser::GetROSPackagePath] ROSPackage universal-robot-ur5 not found
[2024.05.07-08.14.21:662][253]LogTemp: Error: [FSDFParser::ImportMesh] Could not find ../../../../../../Users/Manuel/Documents/cogimon-gazebo-models-master/universal-robot-ur5/../universal-robot-ur5/meshes/ur5/collision/Wrist2.fbx
[2024.05.07-08.14.21:662][253]LogTemp: Warning: [FSDFParser::ParseGeometryMesh][427] <geometry> <mesh> child <scale> not supported, ignored..
[2024.05.07-08.14.21:662][253]LogTemp: Error: [FSDFParser::GetROSPackagePath] ROSPackage universal-robot-ur5 not found
[2024.05.07-08.14.21:662][253]LogTemp: Error: [FSDFParser::ImportMesh] Could not find ../../../../../../Users/Manuel/Documents/cogimon-gazebo-models-master/universal-robot-ur5/../universal-robot-ur5/meshes/ur5/visual/Wrist2.fbx
[2024.05.07-08.14.21:662][253]LogTemp: Warning: [FSDFParser::ParseLink][287] <link> child <velocity_decay> not supported, ignored..
[2024.05.07-08.14.21:662][253]LogTemp: Warning: [ISDFParserInterface::ParseJointAxis][509] <joint> <axis> child <dynamics> not supported, ignored..
[2024.05.07-08.14.21:662][253]LogTemp: Warning: [ISDFParserInterface::ParseLinkInertial][283] <inertial> child <inertia> not supported, ignored..
[2024.05.07-08.14.21:662][253]LogTemp: Warning: [FSDFParser::ParseGeometryMesh][427] <geometry> <mesh> child <scale> not supported, ignored..
[2024.05.07-08.14.21:662][253]LogTemp: Error: [FSDFParser::GetROSPackagePath] ROSPackage universal-robot-ur5 not found
[2024.05.07-08.14.21:662][253]LogTemp: Error: [FSDFParser::ImportMesh] Could not find ../../../../../../Users/Manuel/Documents/cogimon-gazebo-models-master/universal-robot-ur5/../universal-robot-ur5/meshes/ur5/collision/Wrist3.fbx
[2024.05.07-08.14.21:662][253]LogTemp: Warning: [FSDFParser::ParseGeometryMesh][427] <geometry> <mesh> child <scale> not supported, ignored..
[2024.05.07-08.14.21:662][253]LogTemp: Error: [FSDFParser::GetROSPackagePath] ROSPackage universal-robot-ur5 not found
[2024.05.07-08.14.21:662][253]LogTemp: Error: [FSDFParser::ImportMesh] Could not find ../../../../../../Users/Manuel/Documents/cogimon-gazebo-models-master/universal-robot-ur5/../universal-robot-ur5/meshes/ur5/visual/Wrist3.fbx
[2024.05.07-08.14.21:662][253]LogTemp: Warning: [FSDFParser::ParseLink][287] <link> child <velocity_decay> not supported, ignored..
[2024.05.07-08.14.21:662][253]LogTemp: Warning: [ISDFParserInterface::ParseJointAxis][509] <joint> <axis> child <dynamics> not supported, ignored..
[2024.05.07-08.14.21:662][253]LogTemp: Warning: [ISDFParserInterface::ParseLinkInertial][283] <inertial> child <inertia> not supported, ignored..
[2024.05.07-08.14.21:663][253]LogStaticMesh: Display: Building static mesh SM_ee_link_collision_C...
[2024.05.07-08.14.21:665][253]LogStaticMesh: Built static mesh [0.00s] /Game/model/ee_link/SM_ee_link_collision_C.SM_ee_link_collision_C
[2024.05.07-08.14.21:680][253]LogStaticMesh: Display: Building static mesh SM_ee_link_visual_V...
[2024.05.07-08.14.21:682][253]LogStaticMesh: Built static mesh [0.00s] /Game/model/ee_link/SM_ee_link_visual_V.SM_ee_link_visual_V
[2024.05.07-08.14.21:693][253]LogTemp: Warning: [FSDFParser::ParseLink][287] <link> child <velocity_decay> not supported, ignored..
[2024.05.07-08.14.25:440][667]LogActorFactory: Loading ActorFactory Class AActor
[2024.05.07-08.14.25:440][667]LogActorFactory: Warning: ActorFactory Class LOAD FAILED - falling back to Actor
[2024.05.07-08.14.25:440][667]LogActorFactory: Loading ActorFactory Class ARModel
[2024.05.07-08.14.25:440][667]LogActorFactory: Warning: ActorFactory Class LOAD FAILED - falling back to RModel
[2024.05.07-08.14.25:465][667]LogActorFactory: Actor Factory attempting to spawn SDFDataAsset /Game/model.model
[2024.05.07-08.14.25:465][667]LogActorFactory: Actor Factory attempting to spawn SDFDataAsset /Game/model.model
[2024.05.07-08.14.25:465][667]LogTemp: Error: Collision Mesh not valid
[2024.05.07-08.14.25:465][667]LogOutputDevice: Warning: 

Script Stack (0 frames) :

[2024.05.07-08.14.25:473][667]LogWindows: Error: appError called: Assertion failed: (Index >= 0) & (Index < ArrayNum) [File:C:\Program Files\Epic Games\UE_5.3\Engine\Source\Runtime\Core\Public\Containers\Array.h] [Line: 771] 
Array index out of bounds: 0 from an array of size 0
ManuETR commented 1 month ago

I could fix upper problem by opening up the project within Linux. There the correct path for importing is used.

But when trying to add the imported asset into the scene i receive following error:

Error: model frame not used
Error: model frame not used
Error: model frame not used
Error: Usage of JointFrame for axis not implemented
Error: model frame not used
Error: Usage of JointFrame for axis not implemented
Error: model frame not used
Error: Usage of JointFrame for axis not implemented
Error: model frame not used
Error: Usage of JointFrame for axis not implemented
Error: model frame not used
Error: Usage of JointFrame for axis not implemented
=== Critical error: ===
Unhandled Exception: SIGSEGV: invalid attempt to read memory at address 0x0000071977978708

Fatal error!

0x00007ff2123dfa63 libUnrealEditor-URoboSim.so!URModelBuilder::BuildKinematicTree() [/home/manuel/Documents/bachelor-thesis/ROSSimulation/Plugins/URoboSim/Source/URoboSim/Private/Factory/RModelBuilder.cpp:74]
0x00007ff2123df24f libUnrealEditor-URoboSim.so!URModelBuilder::Load(USDFModel*, ARModel*, UE::Math::TVector<double>) [/home/manuel/Documents/bachelor-thesis/ROSSimulation/Plugins/URoboSim/Source/URoboSim/Private/Factory/RModelBuilder.cpp:27]
0x00007ff212134023 libUnrealEditor-URoboSimEditor.so!URModelFactory::SpawnActor(UObject*, ULevel*, UE::Math::TTransform<double> const&, FActorSpawnParameters const&) [/home/manuel/Documents/bachelor-thesis/ROSSimulation/Plugins/URoboSim/Source/URoboSimEditor/Private/Factory/RModelFactory.cpp:94]
0x00007ff38ea00f6c libUnrealEditor-UnrealEd.so!UActorFactory::CreateActor(UObject*, ULevel*, UE::Math::TTransform<double> const&, FActorSpawnParameters const&) [/mnt/horde/++UE5/Sync/Engine/Source/./Editor/UnrealEd/Private/Factories/ActorFactory.cpp:428]
0x00007ff38ea00dcc libUnrealEditor-UnrealEd.so!UActorFactory::PlaceAsset(FAssetPlacementInfo const&, FPlacementOptions const&) [/mnt/horde/++UE5/Sync/Engine/Source/./Editor/UnrealEd/Private/Factories/ActorFactory.cpp:325]
0x00007ff38ea0101d libUnrealEditor-UnrealEd.so!non-virtual thunk to UActorFactory::PlaceAsset(FAssetPlacementInfo const&, FPlacementOptions const&) [/mnt/horde/++UE5/Sync/Engine/Source/./Editor/UnrealEd/Private/Factories/ActorFactory.cpp:0]
0x00007ff383ef2cd6 libUnrealEditor-EditorFramework.so!UPlacementSubsystem::PlaceAssets(TArrayView<FAssetPlacementInfo const, int>, FPlacementOptions const&) [/mnt/horde/++UE5/Sync/Engine/Source/./Editor/EditorFramework/Private/Subsystems/PlacementSubsystem.cpp:65]
0x00007ff383ef2a4c libUnrealEditor-EditorFramework.so!UPlacementSubsystem::PlaceAsset(FAssetPlacementInfo const&, FPlacementOptions const&) [/mnt/horde/++UE5/Sync/Engine/Source/./Editor/EditorFramework/Private/Subsystems/PlacementSubsystem.cpp:31]
0x00007ff38e1aeea1 libUnrealEditor-UnrealEd.so!PrivateAddActor(UObject*, UActorFactory*, bool, EObjectFlags, FName) [/mnt/horde/++UE5/Sync/Engine/Source/./Editor/UnrealEd/Private/AssetSelection.cpp:615]
0x00007ff38e1ada93 libUnrealEditor-UnrealEd.so!FActorFactoryAssetProxy::AddActorForAsset(UObject*, bool, EObjectFlags, UActorFactory*, FName) [/mnt/horde/++UE5/Sync/Engine/Source/./Editor/UnrealEd/Private/AssetSelection.cpp:849]
0x00007ff38ef32566 libUnrealEditor-UnrealEd.so!FLevelEditorViewportClient::TryPlacingActorFromObject(ULevel*, UObject*, bool, EObjectFlags, UActorFactory*, FName, FViewportCursorLocation const*) [/mnt/horde/++UE5/Sync/Engine/Source/./Editor/UnrealEd/Private/LevelEditorViewport.cpp:300]
0x00007ff38ef3694d libUnrealEditor-UnrealEd.so!FLevelEditorViewportClient::DropObjectsOnActor(FViewportCursorLocation&, TArray<UObject*, TSizedDefaultAllocator<32> > const&, AActor*, int, EObjectFlags, TArray<AActor*, TSizedDefaultAllocator<32> >&, bool, bool, UActorFactory*) [/mnt/horde/++UE5/Sync/Engine/Source/./Editor/UnrealEd/Private/LevelEditorViewport.cpp:1139]
0x00007ff38ef39837 libUnrealEditor-UnrealEd.so!FLevelEditorViewportClient::DropObjectsAtCoordinates(int, int, TArray<UObject*, TSizedDefaultAllocator<32> > const&, TArray<AActor*, TSizedDefaultAllocator<32> >&, bool, bool, bool, UActorFactory*) [/mnt/horde/++UE5/Sync/Engine/Source/./Editor/UnrealEd/Private/LevelEditorViewport.cpp:1584]
0x00007ff382a2095c libUnrealEditor-LevelEditor.so!SLevelViewport::HandlePlaceDraggedObjects(FGeometry const&, FDragDropEvent const&, bool) [/mnt/horde/++UE5/Sync/Engine/Source/./Editor/LevelEditor/Private/SLevelViewport.cpp:979]
0x00007ff382a1eb93 libUnrealEditor-LevelEditor.so!SLevelViewport::OnDragEnter(FGeometry const&, FDragDropEvent const&) [/mnt/horde/++UE5/Sync/Engine/Source/./Editor/LevelEditor/Private/SLevelViewport.cpp:688]
0x00007ff390cbd36b libUnrealEditor-Slate.so!FSlateApplication::RoutePointerMoveEvent(FWidgetPath const&, FPointerEvent const&, bool) [/mnt/horde/++UE5/Sync/Engine/Source/./Runtime/Slate/Private/Framework/Application/SlateApplication.cpp:5533]
0x00007ff390c81553 libUnrealEditor-Slate.so!FSlateApplication::ProcessMouseMoveEvent(FPointerEvent const&, bool) [/mnt/horde/++UE5/Sync/Engine/Source/./Runtime/Slate/Private/Framework/Application/SlateApplication.cpp:6029]
0x00007ff390cc361c libUnrealEditor-Slate.so!FSlateApplication::OnMouseMove() [/mnt/horde/++UE5/Sync/Engine/Source/./Runtime/Slate/Private/Framework/Application/SlateApplication.cpp:5951]
0x00007ff39130e8b3 libUnrealEditor-ApplicationCore.so!FLinuxApplication::ProcessDeferredMessage(SDL_Event) [/mnt/horde/++UE5/Sync/Engine/Source/./Runtime/ApplicationCore/Private/Linux/LinuxApplication.cpp:381]
0x00007ff39130d27f libUnrealEditor-ApplicationCore.so!FLinuxPlatformApplicationMisc::PumpMessages(bool) [/mnt/horde/++UE5/Sync/Engine/Source/./Runtime/ApplicationCore/Private/Linux/LinuxPlatformApplicationMisc.cpp:442]
0x0000000000241a77 UnrealEditor!FEngineLoop::Tick() [/mnt/horde/++UE5/Sync/Engine/Source/./Runtime/Launch/Private/LaunchEngineLoop.cpp:5743]
0x000000000024ecfa UnrealEditor!GuardedMain(char16_t const*) [/mnt/horde/++UE5/Sync/Engine/Source/./Runtime/Launch/Private/Launch.cpp:190]
0x00007ff3997f6b32 libUnrealEditor-UnixCommonStartup.so!CommonUnixMain(int, char**, int (*)(char16_t const*), void (*)()) [/mnt/horde/++UE5/Sync/Engine/Source/./Runtime/Unix/UnixCommonStartup/Private/UnixCommonStartup.cpp:269]
0x00007ff38cc29d90 libc.so.6!UnknownFunction(0x29d8f)
0x00007ff38cc29e40 libc.so.6!__libc_start_main(+0x7f)
0x0000000000238509 UnrealEditor!_start()
ManuETR commented 1 month ago

The Problem is that the SDF file base joint had its parent set to world but this link does not exist. Although it seems that the code would catch this problem somehow this triggers an error -> i need to take a look into it later on. For now removing this joint produced a valid import (although the poses are still incorrecct) grafik

ManuETR commented 1 month ago

http://sdformat.org/tutorials?tut=pose_frame_semantics&ver=1.5

ManuETR commented 1 month ago

The Problem is that the SDF file base joint had its parent set to world but this link does not exist. Although it seems that the code would catch this problem somehow this triggers an error -> i need to take a look into it later on. For now removing this joint produced a valid import (although the poses are still incorrecct) grafik

The real problem was not the SDF file but how the DAE meshes had there <up_axis> tag set. It is currently set to Y_UP but it should be Z_UP to work correctly with Unreal (and gazebo).

grafik

ManuETR commented 2 weeks ago

I tried to convert the URDF file of the rrbot to SDF yesterday and stumbled upon following problems:

A possible solution for this might be to write a URDFParser which fills the paresd data into an SDFDataAsset. This way i don't have to change to much as i can still use the SDFDataAssetFactory and ModelBuilder.

ManuETR commented 1 week ago

I now added the coded needed to work with the "relative_to" attribute. But I have a bug, that on simulation the joint axis are completly wrong. r6bot: with SDF v1.7

grafik