What is the order and the + direction of an imported urdf robot

I imported a robot arm from urdf.
I used the robot.set_joint_velocities function to control its motion, use the robot.get_joint_efforts function to read the torque. Am I right?
if yes, what is the order of the joint? In urdf file, the joint1-6 are defined in order. But in isaac sim, the order become 3,2,1,4,5,6 when I use robot.set_joint_velocities. Meanwhile, the rotation direction of joint1-3 are opposite with the defined axis, but the joint4-6 are not. It makes me confused.

1 Like

I would like to add something since I also face the similiar issues. Not only the joint are not sorted correctly, but also the links. I think from the developer perspective, it’s not important how the order is because it doesn’t change anything. However which link is the root can be really important.

A lot of this reordering is done internally by PhysX for performance reasons.
Would a utility function to provide a reordering be useful? We can look into adding something so you can remap from 3,2,1,4,5,6 to the original order.

A few other questions:

  • Did you use merge fixed joints when importing the URDF?
  • Can you share a link to the URDF?

I have got this issue. Because I made the baselink of the 6-dof arm free (not fixed), so the arm’s third link was treated as baselink by the urdf importer. and thus the 1-3 joints becomes opposite. thanks for your reply.