I don't understand how to apply gravity to objects in replicator yaml language

I’m new to the code and not familiar with it. Did I add gravity Settings correctly in the yaml file or did I miss some steps? The data set object generated after I added it with reference to some materials is still floating.The reference function path is D:\Omniverse\library\isaac_sim-2023.1.1\extscache\ omni.replicater.core-1.10.20 +105.1.wx64.r.cp310\omni\replicato r\core\scripts\physics.py
Do you have relevant case reference?
In addition,I ran the script headlessly. The yaml file I wrote is as follows:
stage_unit_setting:
settings.set_stage_meters_per_unit:
meters_per_unit: 1

IsaacSim default is “Z”", Code is “Y”

stage_up_axis_setting:
settings.set_stage_up_axis:
up_axis: “Z”

_setup_physics_scene:
physics._setup_physics_scene:
gravity_magnitude: 9.807
timesteps_per_second: 240

gravity_obj:
physics.collider:
input_prims: shapes

set v,a
obj_v_and_a:
physics.rigid_body:
velocity: [1, 1, 1]
angular_velocity: [1, 1, 1]
input_prims: shapes

time:
modify.timeline:
value: 3
modify_type: “time”

This YAML script example demonstrates:

Moving a group of objects to varied positions using a distribution

Create the camera and render product

camera:
create.camera:
position: [5, -1, 4]
rotation: [0, -30, -27]

render_product:
create.render_product:
camera: camera
resolution: [1024, 1024]

Create the objects in the scene

light:
create.light:
light_type: “distant”

torus:
create.torus:
semantics: [[“class”, “torus”]]
position: [1, 0, -2]

sphere:
create.sphere:
semantics: [[“class”, “sphere”]]
position: [1, 0, 1]

cube:
create.cube:
semantics: [[“class”, “cube”]]
position: [1, 1, -2]

plane:
create.plane:
semantics: [[“class”, “plane”]]
visible: true
scale: 10

group:
create.group:
items: [torus, sphere, cube]

Create a group of objects with these semantic labels

shapes:
get.prims:
semantics: [[‘class’, ‘cube’], [‘class’, ‘sphere’], [‘class’, ‘tours’]]

Create the writer and initialize

writer:
writers.get:
name: “BasicWriter”
init_params:
output_dir: “D:/Omniverse/datatry/_output_yaml/TutorialBasicFunctionality/”
rgb: True
normals: True
distance_to_camera: True
instance_segmentation: False
bounding_box_2d_tight: True

writer_attach:
writer.attach:
render_products: render_product

Set the trigger as on_frame

trigger:
trigger.on_frame:
max_execs: 7
rt_subframes: 30

When the trigger executes, modify the poses of the group

with_trigger:
with.trigger:
with.group:
modify.pose:
position:
distribution.uniform:
lower: [-1, -1, -1]
upper: [2, 2, 2]
scale:
distribution.uniform:
lower: 0.1
upper: 2

Thank you very much!

Hi @1208054946 , all the prims needs to be a physics object. You can do something like this:

with.torus:
    physics.collider: null
    physics.rigid_body: null
1 Like

Hello, I have modified the yaml file according to your suggestion but still failed. My purpose is to let the objects in the scene fall to the ground by gravity after randomizing the size, quantity and material. Finally, I use the camera to capture the picture of the fallen scene. Could you please give me a yaml code demonstration? Thank you very much.