Canonical USD example for MuJoCo Physics. This contains three items:

floor - a static floor centered at origin of sides 100m x 100m

two_cubes - a standard example where 2 cubes have a hinge joint between them.

two_cubes_scene - a scene made up of the floor at (0, 0, 0) and two_cubes at (0, 0, 30).

PiperOrigin-RevId: 607809323
Change-Id: I9931d89441653ce7aaf5145ee42c71c0c8f9ffcb
This commit is contained in:
Matthew Bennice
2024-02-16 14:55:27 -08:00
committed by Copybara-Service
parent 1b93226fb0
commit dbf7afaeaa
12 changed files with 288 additions and 0 deletions
+34
View File
@@ -0,0 +1,34 @@
#usda 1.0
(
defaultPrim = "root"
upAxis = "Z"
metersPerUnit = 1.0
)
over "root" {
def Scope "Joints"
{
def PhysicsJoint "two_cubes_joint" (
prepend apiSchemas = ["PhysicsLimitAPI", "PhysicsLimitAPI:transY", "PhysicsLimitAPI:transZ", "PhysicsLimitAPI:rotX", "PhysicsLimitAPI:rotY", "PhysicsDriveAPI:rotZ"]
)
{
rel physics:body0 = </root/first_cube>
rel physics:body1 = </root/second_cube>
float limit:rotX:physics:high = 0
float limit:rotX:physics:low = 0
float limit:rotY:physics:high = 0
float limit:rotY:physics:low = -2
float limit:rotZ:physics:high = 0
float limit:rotZ:physics:low = 0
float limit:transX:physics:high = 0
float limit:transX:physics:low = 0
float limit:transY:physics:high = 0
float limit:transY:physics:low = 0
float limit:transZ:physics:high = 0
float limit:transZ:physics:low = 0
point3f physics:localPos0 = (0, 1.0, 0)
point3f physics:localPos1 = (-0.5, 0, 0.5)
quatf physics:localRot0 = (1, 0, 0, 0)
quatf physics:localRot1 = (1, 0, 0, 0)
}
}
}