Added touch grid sensor plugin.
PiperOrigin-RevId: 527512624 Change-Id: I0f316eb6eb2c52472abbec484e5538b66ba2e82e
This commit is contained in:
committed by
Copybara-Service
parent
139328f86e
commit
b397b3123e
@@ -0,0 +1,21 @@
|
||||
# Copyright 2022 DeepMind Technologies Limited
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
mujoco_test(
|
||||
sensor_test
|
||||
PROPERTIES
|
||||
ENVIRONMENT
|
||||
"MUJOCO_PLUGIN_DIR=$<TARGET_FILE_DIR:sensor>"
|
||||
)
|
||||
target_link_libraries(sensor_test fixture gmock)
|
||||
@@ -0,0 +1,45 @@
|
||||
// Copyright 2023 DeepMind Technologies Limited
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
// Tests for sensor plugins.
|
||||
|
||||
#include <string>
|
||||
#include <gmock/gmock.h>
|
||||
#include <gtest/gtest.h>
|
||||
#include <mujoco/mjmodel.h>
|
||||
#include <mujoco/mujoco.h>
|
||||
#include "test/fixture.h"
|
||||
|
||||
namespace mujoco {
|
||||
namespace {
|
||||
|
||||
using SensorPluginTest = MujocoTest;
|
||||
|
||||
static const char* const kTOuchGridPath =
|
||||
"plugin/sensor/testdata/touch_grid_test.xml";
|
||||
|
||||
TEST_F(SensorPluginTest, ValidAttributes) {
|
||||
const std::string xml_path = GetTestDataFilePath(kTOuchGridPath);
|
||||
char error[1024] = {0};
|
||||
mjModel* model = mj_loadXML(xml_path.c_str(), nullptr, error, sizeof(error));
|
||||
ASSERT_THAT(model, testing::NotNull()) << error;
|
||||
int nchannel = 3;
|
||||
int size_x = 6;
|
||||
int size_y = 2;
|
||||
EXPECT_THAT(model->sensor_dim[0], nchannel * size_x * size_y);
|
||||
mj_deleteModel(model);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
} // namespace mujoco
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
<mujoco model="touchtest">
|
||||
<extension>
|
||||
<plugin plugin="mujoco.sensor.touch_grid"/>
|
||||
</extension>
|
||||
|
||||
<asset>
|
||||
<texture name="grid" type="2d" builtin="checker" rgb1=".1 .2 .3" rgb2=".2 .3 .4" width="300" height="300" mark="edge" markrgb=".2 .3 .4"/>
|
||||
<material name="grid" texture="grid" texrepeat="3 1" texuniform="true"/>
|
||||
</asset>
|
||||
|
||||
<visual>
|
||||
<headlight ambient=".7 .7 .7" diffuse=".2 .2 .2" specular="0.1 0.1 0.1"/>
|
||||
<map znear="0.01"/>
|
||||
</visual>
|
||||
|
||||
<default>
|
||||
<geom friction="0.4"/>
|
||||
</default>
|
||||
|
||||
<statistic center="0 0 1" extent="1" meansize=".1"/>
|
||||
|
||||
<option gravity="0 0 -10"/>
|
||||
|
||||
<worldbody>
|
||||
<body name="dummy2">
|
||||
<geom name="floor" pos="0 0 0" type="plane" size="1 1 .01" material="grid"/>
|
||||
</body>
|
||||
|
||||
<body name="dummy1">
|
||||
<site name="touch" pos="0 0 10" group="3"/>
|
||||
</body>
|
||||
|
||||
<body name="box" pos="0 0 .1">
|
||||
<freejoint/>
|
||||
<geom type="box" size=".1 .1 .1" mass="0.1"/>
|
||||
</body>
|
||||
|
||||
<light pos="0 0 5"/>
|
||||
|
||||
</worldbody>
|
||||
|
||||
<sensor>
|
||||
<plugin name="touch" plugin="mujoco.sensor.touch_grid" objtype="site" objname="touch">
|
||||
<config key="size_x" value="6"/>
|
||||
<config key="size_y" value="2"/>
|
||||
<config key="fov_x" value="5.71"/>
|
||||
<config key="fov_y" value="5.71"/>
|
||||
<config key="gamma" value="0"/>
|
||||
<config key="nchannel" value="3"/>
|
||||
</plugin>
|
||||
</sensor>
|
||||
</mujoco>
|
||||
Reference in New Issue
Block a user