How to change step_size?

Hello,

I want to change step_size, but I don’t know how to change that.
Please tell me how to change step_size.

from omni.isaac.examples.base_sample import BaseSample
import numpy as np
from omni.isaac.core.objects import DynamicCuboid

class HelloWorld(BaseSample):
def init(self) → None:
super().init()
return

def setup_scene(self):
    world = self.get_world()
    world.scene.add_default_ground_plane()
    fancy_cube = world.scene.add(
        DynamicCuboid(
            prim_path="/World/random_cube",
            name="fancy_cube",
            position=np.array([0, 0, 1.0]),
            scale=np.array([0.5015, 0.5015, 0.5015]),
            color=np.array([0, 0, 1.0]),
        ))
    return

async def setup_post_load(self):
    self._world = self.get_world()
    self._cube = self._world.scene.get_object("fancy_cube")
    self._world.add_physics_callback("sim_step", callback_fn=self.print_cube_info) #callback names have to be unique
    return

# here we define the physics callback to be called before each physics step, all physics callbacks must take
# step_size as an argument
def print_cube_info(self, step_size):
    position, orientation = self._cube.get_world_pose()
    linear_velocity = self._cube.get_linear_velocity()
    # will be shown on terminal
    print("Cube position is : " + str(position))
    print("Cube's orientation is : " + str(orientation))
    print("Cube's linear velocity is : " + str(linear_velocity))

Hi @Yuya_t - To change the step_size in your script, you need to change the physics settings of the simulation. Here’s the modified scripts:

from omni.isaac.examples.base_sample import BaseSample
import numpy as np
from omni.isaac.core.objects import DynamicCuboid
import omni.physx as physx

class HelloWorld(BaseSample):
    def init(self) -> None:
        super().init()
        
        # Set the desired step_size (e.g., 0.01 seconds)
        step_size = 0.01
        physx.set_time_step(step_size)
        
        return

    def setup_scene(self):
        world = self.get_world()
        world.scene.add_default_ground_plane()
        fancy_cube = world.scene.add(
            DynamicCuboid(
                prim_path="/World/random_cube",
                name="fancy_cube",
                position=np.array([0, 0, 1.0]),
                scale=np.array([0.5015, 0.5015, 0.5015]),
                color=np.array([0, 0, 1.0]),
            ))
        return

    async def setup_post_load(self):
        self._world = self.get_world()
        self._cube = self._world.scene.get_object("fancy_cube")
        self._world.add_physics_callback("sim_step", callback_fn=self.print_cube_info)  # callback names have to be unique
        return

    # here we define the physics callback to be called before each physics step, all physics callbacks must take
    # step_size as an argument
    def print_cube_info(self, step_size):
        position, orientation = self._cube.get_world_pose()
        linear_velocity = self._cube.get_linear_velocity()
        # will be shown on terminal
        print("Cube position is : " + str(position))
        print("Cube's orientation is : " + str(orientation))
        print("Cube's linear velocity is : " + str(linear_velocity))

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.