ArticulatedRoot PhysicsJoint moves RevoluteJoint parts into wrong place

Hello,

I’m having issue on connecting movable parts of robot through Revolute Joints with Articulation API, when i connect them and ArticulatedRoot links everything it moves part from one place of model to another.

I have read https://docs.omniverse.nvidia.com/app_create/prod_extensions/ext_rigid-body-dynamics.html#articulations and https://docs.omniverse.nvidia.com/app_create/prod_extensions/ext_rigid-body-dynamics.html#joints, but according to what is described there ArticulatedJoints are more accurate in terms of positioning and elements connection, but in the end it looks so: image Selection_124
All top part are treated as one body ( chassis_link in carter ) , so place where wheels basically sit are part of it.

Hi asakhon-AITHEON,

Sorry for my late reply, do you still have this problem?

Kindly,
Liila

Hi @ltorabi , Yes, this issue still persists.
I tried workaround with creating XForm inside prim with X 0 Y 0 Z 0 and then putting dependent objects there, it behaves much better. But it seems like because all XForm ( that i used to wrap wheels ) points to the same location - it’s unable to determine wheel base - it says it’s 0, so this workaround doesn’t look applicable.
Also i observed that joint connects to right place if i don’t pick any revolute joint in the tree, i also able to pick it when scene is started without consequences, but if i pick joint ( not performing any actions ) and then press play it leads to result above. ( I made a lot of different usd for same robot model trying to make it work with different approaches, but yet no success)

Hi @asakhon-AITHEON could you share the USD model? And are you using Isaac sim 2020.2?

@Hammad_M, Yes, i’m using isaac-sim-headless 2020.2.28133
Looks like this issue appears after scaling top usd.
Robot.usd.txt (625.4 KB) Robot_scaled.usd.txt (625.4 KB)
*Remove .txt extension from files
Provided original one and scaled, in scaled You will be able to see issue described in original post by picking joint ( joint place will be shown away from original one ) and then pressing the play button, no changes will be shown till joint pick( Also it won’t be changed if Your scene was started ). If You’ll press play button once scene loaded it won’t show this issue.

yezhik.tar.gz (1.8 MB)
folder that usd refers to in data/Assets/. after unpacking

Sorry for the late reply @asakhon-AITHEON

It looks like the joints in in Robot.usd are not at the correct origin point and clicking on the joint causes the transform to reset back to the current position.
For the small wheels this is easy to fix


changing it to origin so that its centered on the wheel

For the wheels I would recommend creating separate collision geometry as spheres or setting the collision mesh approximation to spheres so that the wheels are smooth.

The robot with my changes is below:

Robot.usd (669.3 KB)

Does this help with some of the issues you were seeing?