test_load_mesh
1 Basic Functionality
Import obj model files as rigid bodies
Effect: Import obj model files and duplicate 100 rigid bodies, while simulating the free fall of rigid bodies
2 Implementation Process
2.1 Initialize the Environment
import random
import os
from pyrfuniverse.envs.base_env import RFUniverseBaseEnv
env = RFUniverseBaseEnv()
env.step()
env.step()
allows the environment to run for a time $\delta t$, where $\delta t$ represents the concept of a “time slice”.
2.2 Load the Rigid Body and Set Actions
mesh = env.LoadMesh(id=639787, path=os.path.abspath('../Mesh/002_master_chef_can/google_16k/textured.obj'))
mesh.SetTransform(position=[0, 1, 0], rotation=[random.random() * 360, random.random() * 360, random.random() * 360])
id=639787
: Each object in the scene needs a unique idLoadMesh
loads the rigid body corresponding to the.obj
fileSetTransform
sets actions, in this test file, it is the free fall from position $[0,1,0]$
2.3 Repeat the Simulation of Rigid Body Falling
for i in range(100):
env.step(20)
new_mesh = mesh.Copy(new_id=mesh.id + i + 1)
new_mesh.SetTransform(position=[0, 1, 0], rotation=[random.random() * 360, random.random() * 360, random.random() * 360])
while 1:
env.step()
Wait for 20 time slices
env.step(20)
to complete the motion of the object and stabilize itDuplicate the rigid body and repeat the action