Remove the particle composite (replaced by replicate).
PiperOrigin-RevId: 730089997 Change-Id: If8d18fb56ae01241e76f84dbf7951e034026d829
This commit is contained in:
committed by
Copybara-Service
parent
0fcd20f0da
commit
c52d1b3941
@@ -80,7 +80,7 @@ BENCHMARK(BM_StepFlagPlugin);
|
||||
|
||||
void ABSL_ATTRIBUTE_NO_TAIL_CALL BM_StepParticle(benchmark::State& state) {
|
||||
MujocoErrorTestGuard guard;
|
||||
static mjModel* model = LoadModelFromPath("composite/particle.xml");
|
||||
static mjModel* model = LoadModelFromPath("replicate/particle.xml");
|
||||
run_step_benchmark(model, state);
|
||||
}
|
||||
BENCHMARK(BM_StepParticle);
|
||||
|
||||
+40
-16
@@ -39,25 +39,49 @@
|
||||
<geom name="+y" class="wall" zaxis="0 1 0" pos="0 -.5 -.25"/>
|
||||
<geom name="-y" class="wall" zaxis="0 -1 0" pos="0 .5 -.25"/>
|
||||
|
||||
<composite type="particle" count="3 3 2" spacing="0.2" offset="0 0 1">
|
||||
<geom type="sphere" size=".09" rgba=".8 .2 .1 1" condim="3"/>
|
||||
<joint kind="particle" type="free"/>
|
||||
</composite>
|
||||
<replicate count="3" offset=".2 0 0">
|
||||
<replicate count="3" offset="0 .2 0">
|
||||
<replicate count="2" offset="0 0 .2">
|
||||
<body pos="-.2 -.2 1">
|
||||
<freejoint/>
|
||||
<geom type="sphere" size=".09" rgba=".8 .2 .1 1" condim="3"/>
|
||||
</body>
|
||||
</replicate>
|
||||
</replicate>
|
||||
</replicate>
|
||||
|
||||
<composite type="particle" count="3 3 2" spacing="0.2" offset="0 0 1.6" prefix="A">
|
||||
<geom type="cylinder" size=".09 .02" rgba=".8 .2 .1 1" condim="3"/>
|
||||
<joint kind="particle" type="free"/>
|
||||
</composite>
|
||||
<replicate count="3" offset=".2 0 0" prefix="A">
|
||||
<replicate count="3" offset="0 .2 0">
|
||||
<replicate count="2" offset="0 0 .2">
|
||||
<body pos="-.2 -.2 1.6">
|
||||
<freejoint/>
|
||||
<geom type="cylinder" size=".09 .02" rgba=".8 .2 .1 1" condim="3"/>
|
||||
</body>
|
||||
</replicate>
|
||||
</replicate>
|
||||
</replicate>
|
||||
|
||||
<composite type="particle" count="3 3 2" spacing="0.2" offset="0 0 2.2" prefix="B">
|
||||
<geom type="cylinder" size=".02 .09" rgba=".8 .2 .1 1" condim="3"/>
|
||||
<joint kind="particle" type="free"/>
|
||||
</composite>
|
||||
<replicate count="3" offset=".2 0 0" prefix="B">
|
||||
<replicate count="3" offset="0 .2 0">
|
||||
<replicate count="2" offset="0 0 .2">
|
||||
<body pos="-.2 -.2 2.2">
|
||||
<freejoint/>
|
||||
<geom type="cylinder" size=".02 .09" rgba=".8 .2 .1 1" condim="3"/>
|
||||
</body>
|
||||
</replicate>
|
||||
</replicate>
|
||||
</replicate>
|
||||
|
||||
<composite type="particle" count="3 3 2" spacing="0.2" offset="0 0 2.8" prefix="C">
|
||||
<geom type="sphere" size=".06" rgba=".8 .2 .1 1" condim="3"/>
|
||||
<joint kind="particle" type="free"/>
|
||||
</composite>
|
||||
<replicate count="3" offset=".2 0 0" prefix="C">
|
||||
<replicate count="3" offset="0 .2 0">
|
||||
<replicate count="2" offset="0 0 .2">
|
||||
<body pos="-.2 -.2 2.8">
|
||||
<freejoint/>
|
||||
<geom type="sphere" size=".06" rgba=".8 .2 .1 1" condim="3"/>
|
||||
</body>
|
||||
</replicate>
|
||||
</replicate>
|
||||
</replicate>
|
||||
|
||||
</worldbody>
|
||||
</mujoco>
|
||||
|
||||
@@ -35,14 +35,30 @@ using ::testing::NotNull;
|
||||
using ::testing::HasSubstr;
|
||||
using UserCompositeTest = MujocoTest;
|
||||
|
||||
// ------------- test automatic inference of nuser_xxx -------------------------
|
||||
// ------------------------ cable tests ---------------------------------------
|
||||
|
||||
TEST_F(UserCompositeTest, SpacingGreaterThanGeometry) {
|
||||
TEST_F(UserCompositeTest, ShapeCanBeOmitted) {
|
||||
static constexpr char xml[] = R"(
|
||||
<mujoco>
|
||||
<worldbody>
|
||||
<composite type="particle" count="282 2">
|
||||
<geom size="8"/>
|
||||
<composite type="cable" count="100 1 1" curve="s">
|
||||
<geom type="box" size="1 1 1"/>
|
||||
</composite>
|
||||
</worldbody>
|
||||
</mujoco>
|
||||
)";
|
||||
std::array<char, 1024> error;
|
||||
mjModel* m = LoadModelFromString(xml, error.data(), error.size());
|
||||
EXPECT_THAT(m, NotNull()) << error.data();
|
||||
mj_deleteModel(m);
|
||||
}
|
||||
|
||||
TEST_F(UserCompositeTest, InvalidShape) {
|
||||
static constexpr char xml[] = R"(
|
||||
<mujoco>
|
||||
<worldbody>
|
||||
<composite type="cable" count="100 1 1" curve="s s exp">
|
||||
<geom type="box" size="1 1 1"/>
|
||||
</composite>
|
||||
</worldbody>
|
||||
</mujoco>
|
||||
@@ -51,26 +67,7 @@ TEST_F(UserCompositeTest, SpacingGreaterThanGeometry) {
|
||||
mjModel* m = LoadModelFromString(xml, error.data(), error.size());
|
||||
EXPECT_THAT(m, IsNull()) << error.data();
|
||||
EXPECT_THAT(error.data(),
|
||||
HasSubstr("Spacing must be larger than geometry size"));
|
||||
}
|
||||
|
||||
TEST_F(UserCompositeTest, SpacingEqualToGeometry) {
|
||||
static constexpr char xml[] = R"(
|
||||
<mujoco>
|
||||
<worldbody>
|
||||
<composite type="particle" count="282 2" spacing="8">
|
||||
<geom size="8"/>
|
||||
</composite>
|
||||
</worldbody>
|
||||
</mujoco>
|
||||
)";
|
||||
std::array<char, 1024> error;
|
||||
mjModel* m = LoadModelFromString(xml, error.data(), error.size());
|
||||
EXPECT_THAT(m, NotNull()) << error.data();
|
||||
mjData* d = mj_makeData(m);
|
||||
mj_step(m, d);
|
||||
mj_deleteData(d);
|
||||
mj_deleteModel(m);
|
||||
HasSubstr("The curve array contains an invalid shape"));
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
@@ -1897,7 +1897,7 @@ TEST_F(XMLReaderTest, InvalidSkinGroup) {
|
||||
<mujoco>
|
||||
<worldbody>
|
||||
<body>
|
||||
<composite prefix="B0" type="grid" count="6 6 1" spacing=".2">
|
||||
<composite prefix="B0" type="grid" count="6 6 1">
|
||||
<geom size=".1"/>
|
||||
<skin group="6"/>
|
||||
</composite>
|
||||
|
||||
Reference in New Issue
Block a user