Hi, I’m trying to use a model of the PR2 robot in isaac sim. This robot has continuous joints in it’s arm. At the moment, these get converted from the urdf to the following joint:
def PhysicsRevoluteJoint "l_forearm_roll_joint" (
prepend apiSchemas = ["PhysxJointAPI", "PhysicsDriveAPI:angular", "PhysicsJointStateAPI:angular"]
)
{
float drive:angular:physics:damping = 1000
float drive:angular:physics:maxForce = 1800
float drive:angular:physics:stiffness = 0
float drive:angular:physics:targetVelocity = 0
uniform token drive:angular:physics:type = "force"
uniform token physics:axis = "X"
rel physics:body0 = </pr2/l_elbow_flex_link>
rel physics:body1 = </pr2/l_forearm_roll_link>
float physics:breakForce = 3.4028235e38
float physics:breakTorque = 3.4028235e38
point3f physics:localPos0 = (0, 0, 0)
point3f physics:localPos1 = (0, 0, 0)
quatf physics:localRot0 = (1, 0, 0, 0)
quatf physics:localRot1 = (1, 0, 0, 0)
float physxJoint:jointFriction = 0
float physxJoint:maxJointVelocity = 206.2648
}
In Isaaac sim, the joint shows a joint limit of 3.4028235e+38 (as returned by self.get_dof_limits()
). But it’s not actually possible to move it beyond a limit of -2pi/2pi, with the simulator throwing an error message of only supports target angle in range [-2Pi, 2Pi]
and the joint not moving any further.
Is there a way to implement a continuous joint in Isaac? This is quite important to model our real world robots. I’m using isaac 2023.1.0.
Other threads unfortunately did not answer this question and were locked:
Your help is much appreciated!