How to get an actor to work in real time during a test?


I want to run the robot in real time when the GPU and CPU have enough processing power during the test. I don’t know if the speed of the actor being tested is the one I set. What are the specifications for this?

I didn’t get your question, could you explain more?

I wanted to ask if the actor works in real time on the screen when in test mode. For example, suppose I have a robot that should move at 10km/h on the screen. In that case, I don’t want to move the robot at 1000km/h on the screen.
I want the robot to move exactly at 10km/h. In fact, IsaacGym may have achieved accurate movement behavior, but I can’t confirm.

I’m not sure if I got your question but if you want to measure the speed of the robot and check it with the target you can easily use the root state values:
first define the actor root state[which I believe it’s already somewhere in your code, otherwise how it’s working!]
actor_root_state = self.gym.acquire_actor_root_state_tensor(self.sim)
then in each step refresh it and acquire the speed:
self.base_quat[:] = self.root_states[:, 3:7]
self.base_lin_vel[:] = quat_rotate_inverse(self.base_quat, self.root_states[:, 7:10])
self.base_lin_vel is the speed relative the world coordinate.
The function quat_rotate_inverse is located at

But regarding what you see on the screen it depends on the dt value and number of substeps(decimation), smaller the dt longer it takes to perform the simulation and slower the motion on the screen.

There is a command that will slow down your simulation to match real time, which seems to be what you are asking. If you don’t have enough processing to move at real time it won’t speed it up, I don’t believe.

# Wait for dt to elapse in real time.
# This synchronizes the physics simulation with the rendering rate.
1 Like