I have a question regarding the joint control. I am currently controlling the joints via ros2 using a Joint State Subscriber. If I move the joint so that it deviates from its starting position and then stop and start the simulation again, it snaps back to the end position of the previous simulation run. I can reset the position by setting the position to 0 under “Joint State” in the joint’s settings. Is there a setting somewhere that this works automatically so that I don’t have to do it after each simulation run?
You need to set both the joint value and the joint target to zero, otherwise when simulation starts it will drive the joint back to the target pose.
If you are changing the targets directly in USD there is no automatic way to return them back to zero. You can either use Dynamic control to set the dof targets (so it is a not persistent change), or create an extension to watch for the simulation stop event to reset the USD value for you.