Add files using upload-large-folder tool
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- environment/setup_same_hardware.sh +26 -17
- external/rlbench/.github/workflows/task_tests.yml +52 -0
- external/rlbench/.github/workflows/unit_tests.yml +52 -0
- external/rlbench/examples/custom_action_mode.py +61 -0
- external/rlbench/examples/few_shot_rl.py +56 -0
- external/rlbench/examples/imitation_learning.py +51 -0
- external/rlbench/examples/multi_task_rl.py +55 -0
- external/rlbench/examples/rearrangement_challenge.py +67 -0
- external/rlbench/examples/rlbench_gym.py +16 -0
- external/rlbench/examples/single_task_rl.py +45 -0
- external/rlbench/examples/single_task_rl_domain_randomization.py +56 -0
- external/rlbench/examples/single_task_rl_with_demos.py +57 -0
- external/rlbench/examples/swap_arm.py +50 -0
- external/rlbench/rlbench/action_modes/__init__.py +0 -0
- external/rlbench/rlbench/action_modes/action_mode.py +164 -0
- external/rlbench/rlbench/action_modes/arm_action_modes.py +540 -0
- external/rlbench/rlbench/action_modes/gripper_action_modes.py +355 -0
- external/rlbench/rlbench/assets/procedural_objects/000/000.jpg +0 -0
- external/rlbench/rlbench/assets/procedural_objects/000/000.mtl +12 -0
- external/rlbench/rlbench/assets/procedural_objects/000/000.obj +0 -0
- external/rlbench/rlbench/assets/procedural_objects/000/000.png +0 -0
- external/rlbench/rlbench/assets/procedural_objects/000/000.urdf +32 -0
- external/rlbench/rlbench/assets/procedural_objects/000/000_BKUP.obj +0 -0
- external/rlbench/rlbench/assets/procedural_objects/000/000_coll.mtl +10 -0
- external/rlbench/rlbench/assets/procedural_objects/000/000_coll.obj +612 -0
- external/rlbench/rlbench/assets/procedural_objects/000/test.py +91 -0
- external/rlbench/rlbench/assets/procedural_objects/001/001.mtl +12 -0
- external/rlbench/rlbench/assets/procedural_objects/001/001.obj +527 -0
- external/rlbench/rlbench/assets/procedural_objects/001/001.png +0 -0
- external/rlbench/rlbench/assets/procedural_objects/001/001.urdf +32 -0
- external/rlbench/rlbench/assets/procedural_objects/001/001_coll.mtl +10 -0
- external/rlbench/rlbench/assets/procedural_objects/001/001_coll.obj +591 -0
- external/rlbench/rlbench/assets/procedural_objects/002/002.mtl +12 -0
- external/rlbench/rlbench/assets/procedural_objects/002/002.obj +201 -0
- external/rlbench/rlbench/assets/procedural_objects/002/002.png +0 -0
- external/rlbench/rlbench/assets/procedural_objects/002/002.urdf +32 -0
- external/rlbench/rlbench/assets/procedural_objects/002/002_coll.mtl +10 -0
- external/rlbench/rlbench/assets/procedural_objects/002/002_coll.obj +546 -0
- external/rlbench/rlbench/assets/procedural_objects/003/003.mtl +12 -0
- external/rlbench/rlbench/assets/procedural_objects/003/003.obj +328 -0
- external/rlbench/rlbench/assets/procedural_objects/003/003.png +0 -0
- external/rlbench/rlbench/assets/procedural_objects/003/003.urdf +32 -0
- external/rlbench/rlbench/assets/procedural_objects/003/003_coll.mtl +10 -0
- external/rlbench/rlbench/assets/procedural_objects/003/003_coll.obj +405 -0
- external/rlbench/rlbench/assets/procedural_objects/004/004.mtl +12 -0
- external/rlbench/rlbench/assets/procedural_objects/004/004.obj +0 -0
- external/rlbench/rlbench/assets/procedural_objects/004/004.png +0 -0
- external/rlbench/rlbench/assets/procedural_objects/004/004.urdf +32 -0
- external/rlbench/rlbench/assets/procedural_objects/004/004_coll.mtl +10 -0
- external/rlbench/rlbench/assets/procedural_objects/004/004_coll.obj +900 -0
environment/setup_same_hardware.sh
CHANGED
|
@@ -5,6 +5,8 @@ ROOT="${1:-/workspace}"
|
|
| 5 |
MINIFORGE_DIR="${ROOT}/miniforge3"
|
| 6 |
ENV_PREFIX="${MINIFORGE_DIR}/envs/rlbench"
|
| 7 |
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
|
|
|
| 8 |
|
| 9 |
echo "[1/6] optional system packages"
|
| 10 |
echo "Install these on Ubuntu 22.04 if they are missing:"
|
|
@@ -28,25 +30,32 @@ else
|
|
| 28 |
fi
|
| 29 |
conda activate "${ENV_PREFIX}"
|
| 30 |
|
| 31 |
-
echo "[4/6]
|
| 32 |
mkdir -p "${ROOT}"
|
| 33 |
-
if [[
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
if [[ ! -d "${ROOT}/
|
| 40 |
-
|
| 41 |
-
fi
|
| 42 |
-
if [[ ! -d "${ROOT}/
|
| 43 |
-
|
| 44 |
-
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 45 |
|
| 46 |
-
git -C "${ROOT}/rlbench" checkout 8af748c51287989294e00c9c670e3330a0e35ed5
|
| 47 |
-
git -C "${ROOT}/pyrep" checkout b8bd1d7a3182adcd570d001649c0849047ebf197
|
| 48 |
-
git -C "${ROOT}/peract_bimanual" checkout bb0232a6ba3fe116566e9568f0c7af980ed6703d
|
| 49 |
-
git -C "${ROOT}/yarr" checkout 6822ff78602c77878b27d4cfe759ce029c67bffb
|
|
|
|
| 50 |
|
| 51 |
echo "[5/6] install editable repos used by the rlbench env"
|
| 52 |
python -m pip install -e "${ROOT}/pyrep"
|
|
|
|
| 5 |
MINIFORGE_DIR="${ROOT}/miniforge3"
|
| 6 |
ENV_PREFIX="${MINIFORGE_DIR}/envs/rlbench"
|
| 7 |
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
| 8 |
+
REPO_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)"
|
| 9 |
+
EXTERNAL_ROOT="${REPO_ROOT}/external"
|
| 10 |
|
| 11 |
echo "[1/6] optional system packages"
|
| 12 |
echo "Install these on Ubuntu 22.04 if they are missing:"
|
|
|
|
| 30 |
fi
|
| 31 |
conda activate "${ENV_PREFIX}"
|
| 32 |
|
| 33 |
+
echo "[4/6] install benchmark source trees"
|
| 34 |
mkdir -p "${ROOT}"
|
| 35 |
+
if [[ -d "${EXTERNAL_ROOT}/rlbench" ]]; then
|
| 36 |
+
rsync -a "${EXTERNAL_ROOT}/rlbench/" "${ROOT}/rlbench/"
|
| 37 |
+
rsync -a "${EXTERNAL_ROOT}/pyrep/" "${ROOT}/pyrep/"
|
| 38 |
+
rsync -a "${EXTERNAL_ROOT}/peract_bimanual/" "${ROOT}/peract_bimanual/"
|
| 39 |
+
rsync -a "${EXTERNAL_ROOT}/yarr/" "${ROOT}/yarr/"
|
| 40 |
+
else
|
| 41 |
+
if [[ ! -d "${ROOT}/rlbench/.git" ]]; then
|
| 42 |
+
git clone https://github.com/markusgrotz/RLBench.git "${ROOT}/rlbench"
|
| 43 |
+
fi
|
| 44 |
+
if [[ ! -d "${ROOT}/pyrep/.git" ]]; then
|
| 45 |
+
git clone https://github.com/markusgrotz/PyRep.git "${ROOT}/pyrep"
|
| 46 |
+
fi
|
| 47 |
+
if [[ ! -d "${ROOT}/peract_bimanual/.git" ]]; then
|
| 48 |
+
git clone https://github.com/markusgrotz/peract_bimanual.git "${ROOT}/peract_bimanual"
|
| 49 |
+
fi
|
| 50 |
+
if [[ ! -d "${ROOT}/yarr/.git" ]]; then
|
| 51 |
+
git clone https://github.com/markusgrotz/YARR.git "${ROOT}/yarr"
|
| 52 |
+
fi
|
| 53 |
|
| 54 |
+
git -C "${ROOT}/rlbench" checkout 8af748c51287989294e00c9c670e3330a0e35ed5
|
| 55 |
+
git -C "${ROOT}/pyrep" checkout b8bd1d7a3182adcd570d001649c0849047ebf197
|
| 56 |
+
git -C "${ROOT}/peract_bimanual" checkout bb0232a6ba3fe116566e9568f0c7af980ed6703d
|
| 57 |
+
git -C "${ROOT}/yarr" checkout 6822ff78602c77878b27d4cfe759ce029c67bffb
|
| 58 |
+
fi
|
| 59 |
|
| 60 |
echo "[5/6] install editable repos used by the rlbench env"
|
| 61 |
python -m pip install -e "${ROOT}/pyrep"
|
external/rlbench/.github/workflows/task_tests.yml
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
name: Task Tests
|
| 2 |
+
|
| 3 |
+
# Controls when the action will run.
|
| 4 |
+
# Run this workflow every time a new commit pushed to your repository
|
| 5 |
+
on:
|
| 6 |
+
# Triggers the workflow on push or pull request events.
|
| 7 |
+
push:
|
| 8 |
+
pull_request:
|
| 9 |
+
|
| 10 |
+
# Allows you to run this workflow manually from the Actions tab
|
| 11 |
+
workflow_dispatch:
|
| 12 |
+
|
| 13 |
+
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
| 14 |
+
jobs:
|
| 15 |
+
# This workflow contains a single job called "build"
|
| 16 |
+
build:
|
| 17 |
+
# The type of runner that the job will run on
|
| 18 |
+
runs-on: ubuntu-20.04
|
| 19 |
+
env:
|
| 20 |
+
DISPLAY: :0
|
| 21 |
+
|
| 22 |
+
# Steps represent a sequence of tasks that will be executed as part of the job
|
| 23 |
+
steps:
|
| 24 |
+
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
| 25 |
+
- uses: actions/checkout@v2
|
| 26 |
+
|
| 27 |
+
- name: Test
|
| 28 |
+
run: |
|
| 29 |
+
sudo apt-get update -qq
|
| 30 |
+
sudo apt-get install -y xvfb qtbase5-dev qtdeclarative5-dev libqt5webkit5-dev libsqlite3-dev qt5-default qttools5-dev-tools
|
| 31 |
+
# start xvfb in the background
|
| 32 |
+
sudo /usr/bin/Xvfb $DISPLAY -screen 0 1280x1024x24 &
|
| 33 |
+
cur=`pwd`
|
| 34 |
+
wget http://www.coppeliarobotics.com/files/CoppeliaSim_Edu_V4_1_0_Ubuntu20_04.tar.xz
|
| 35 |
+
tar -xf CoppeliaSim_Edu_V4_1_0_Ubuntu20_04.tar.xz
|
| 36 |
+
export COPPELIASIM_ROOT="$cur/CoppeliaSim_Edu_V4_1_0_Ubuntu20_04"
|
| 37 |
+
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$COPPELIASIM_ROOT:$COPPELIASIM_ROOT/platforms
|
| 38 |
+
export QT_QPA_PLATFORM_PLUGIN_PATH=$COPPELIASIM_ROOT
|
| 39 |
+
|
| 40 |
+
# Install PyRep
|
| 41 |
+
git clone https://github.com/markusgrotz/PyRep.git
|
| 42 |
+
cd PyRep
|
| 43 |
+
pip3 install -r requirements.txt
|
| 44 |
+
pip3 install setuptools
|
| 45 |
+
pip3 install .
|
| 46 |
+
|
| 47 |
+
# Gym needed for some of unit tests
|
| 48 |
+
pip3 install gym
|
| 49 |
+
|
| 50 |
+
cd ../
|
| 51 |
+
pip3 install -r requirements.txt
|
| 52 |
+
python3 -m unittest discover tests/demos
|
external/rlbench/.github/workflows/unit_tests.yml
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
name: Unit Tests
|
| 2 |
+
|
| 3 |
+
# Controls when the action will run.
|
| 4 |
+
# Run this workflow every time a new commit pushed to your repository
|
| 5 |
+
on:
|
| 6 |
+
# Triggers the workflow on push or pull request events.
|
| 7 |
+
push:
|
| 8 |
+
pull_request:
|
| 9 |
+
|
| 10 |
+
# Allows you to run this workflow manually from the Actions tab
|
| 11 |
+
workflow_dispatch:
|
| 12 |
+
|
| 13 |
+
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
| 14 |
+
jobs:
|
| 15 |
+
# This workflow contains a single job called "build"
|
| 16 |
+
build:
|
| 17 |
+
# The type of runner that the job will run on
|
| 18 |
+
runs-on: ubuntu-20.04
|
| 19 |
+
env:
|
| 20 |
+
DISPLAY: :0
|
| 21 |
+
|
| 22 |
+
# Steps represent a sequence of tasks that will be executed as part of the job
|
| 23 |
+
steps:
|
| 24 |
+
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
| 25 |
+
- uses: actions/checkout@v2
|
| 26 |
+
|
| 27 |
+
- name: Test
|
| 28 |
+
run: |
|
| 29 |
+
sudo apt-get update -qq
|
| 30 |
+
sudo apt-get install -y xvfb qtbase5-dev qtdeclarative5-dev libqt5webkit5-dev libsqlite3-dev qt5-default qttools5-dev-tools
|
| 31 |
+
# start xvfb in the background
|
| 32 |
+
sudo /usr/bin/Xvfb $DISPLAY -screen 0 1280x1024x24 &
|
| 33 |
+
cur=`pwd`
|
| 34 |
+
wget http://www.coppeliarobotics.com/files/CoppeliaSim_Edu_V4_1_0_Ubuntu20_04.tar.xz
|
| 35 |
+
tar -xf CoppeliaSim_Edu_V4_1_0_Ubuntu20_04.tar.xz
|
| 36 |
+
export COPPELIASIM_ROOT="$cur/CoppeliaSim_Edu_V4_1_0_Ubuntu20_04"
|
| 37 |
+
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$COPPELIASIM_ROOT:$COPPELIASIM_ROOT/platforms
|
| 38 |
+
export QT_QPA_PLATFORM_PLUGIN_PATH=$COPPELIASIM_ROOT
|
| 39 |
+
|
| 40 |
+
# Install PyRep
|
| 41 |
+
git clone https://github.com/markusgrotz/PyRep.git
|
| 42 |
+
cd PyRep
|
| 43 |
+
pip3 install -r requirements.txt
|
| 44 |
+
pip3 install setuptools
|
| 45 |
+
pip3 install .
|
| 46 |
+
|
| 47 |
+
# Gym needed for some of unit tests
|
| 48 |
+
pip3 install gym
|
| 49 |
+
|
| 50 |
+
cd ../
|
| 51 |
+
pip3 install -r requirements.txt
|
| 52 |
+
python3 -m unittest discover tests/unit
|
external/rlbench/examples/custom_action_mode.py
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import numpy as np
|
| 2 |
+
|
| 3 |
+
from rlbench.action_modes.action_mode import MoveArmThenGripper
|
| 4 |
+
from rlbench.action_modes.arm_action_modes import JointVelocity
|
| 5 |
+
from rlbench.action_modes.gripper_action_modes import Discrete
|
| 6 |
+
from rlbench.backend.scene import Scene
|
| 7 |
+
from rlbench.environment import Environment
|
| 8 |
+
from rlbench.observation_config import ObservationConfig
|
| 9 |
+
from rlbench.tasks import ReachTarget
|
| 10 |
+
|
| 11 |
+
|
| 12 |
+
class CustomAbsoluteJointVelocity(JointVelocity):
|
| 13 |
+
|
| 14 |
+
def action(self, scene: Scene, action: np.ndarray):
|
| 15 |
+
if np.random.random() > 0.5:
|
| 16 |
+
# Example of custom behaviour.
|
| 17 |
+
# Here we randomly ignore 50% of actions
|
| 18 |
+
print('Skip action!')
|
| 19 |
+
return
|
| 20 |
+
super(CustomAbsoluteJointVelocity, self).action(scene, action)
|
| 21 |
+
|
| 22 |
+
|
| 23 |
+
class Agent(object):
|
| 24 |
+
|
| 25 |
+
def __init__(self, action_shape):
|
| 26 |
+
self.action_shape = action_shape
|
| 27 |
+
|
| 28 |
+
def act(self, obs):
|
| 29 |
+
arm = np.random.normal(0.0, 0.1, size=(self.action_shape[0] - 1,))
|
| 30 |
+
gripper = [1.0] # Always open
|
| 31 |
+
return np.concatenate([arm, gripper], axis=-1)
|
| 32 |
+
|
| 33 |
+
|
| 34 |
+
action_mode = MoveArmThenGripper(
|
| 35 |
+
arm_action_mode=CustomAbsoluteJointVelocity(),
|
| 36 |
+
gripper_action_mode=Discrete())
|
| 37 |
+
|
| 38 |
+
env = Environment(
|
| 39 |
+
action_mode,
|
| 40 |
+
obs_config=ObservationConfig(),
|
| 41 |
+
headless=False)
|
| 42 |
+
env.launch()
|
| 43 |
+
|
| 44 |
+
task = env.get_task(ReachTarget)
|
| 45 |
+
|
| 46 |
+
agent = Agent(env.action_shape)
|
| 47 |
+
|
| 48 |
+
training_steps = 120
|
| 49 |
+
episode_length = 40
|
| 50 |
+
obs = None
|
| 51 |
+
for i in range(training_steps):
|
| 52 |
+
if i % episode_length == 0:
|
| 53 |
+
print('Reset Episode')
|
| 54 |
+
descriptions, obs = task.reset()
|
| 55 |
+
print(descriptions)
|
| 56 |
+
action = agent.act(obs)
|
| 57 |
+
print(action)
|
| 58 |
+
obs, reward, terminate = task.step(action)
|
| 59 |
+
|
| 60 |
+
print('Done')
|
| 61 |
+
env.shutdown()
|
external/rlbench/examples/few_shot_rl.py
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import numpy as np
|
| 2 |
+
|
| 3 |
+
from rlbench.action_modes.action_mode import MoveArmThenGripper
|
| 4 |
+
from rlbench.action_modes.arm_action_modes import JointVelocity
|
| 5 |
+
from rlbench.action_modes.gripper_action_modes import Discrete
|
| 6 |
+
from rlbench.environment import Environment
|
| 7 |
+
from rlbench.observation_config import ObservationConfig
|
| 8 |
+
from rlbench.tasks import FS10_V1
|
| 9 |
+
|
| 10 |
+
|
| 11 |
+
class Agent(object):
|
| 12 |
+
|
| 13 |
+
def __init__(self, action_shape):
|
| 14 |
+
self.action_shape = action_shape
|
| 15 |
+
|
| 16 |
+
def act(self, obs):
|
| 17 |
+
arm = np.random.normal(0.0, 0.1, size=(self.action_shape[0] - 1,))
|
| 18 |
+
gripper = [1.0] # Always open
|
| 19 |
+
return np.concatenate([arm, gripper], axis=-1)
|
| 20 |
+
|
| 21 |
+
|
| 22 |
+
obs_config = ObservationConfig()
|
| 23 |
+
obs_config.set_all(True)
|
| 24 |
+
|
| 25 |
+
env = Environment(
|
| 26 |
+
action_mode=MoveArmThenGripper(
|
| 27 |
+
arm_action_mode=JointVelocity(), gripper_action_mode=Discrete()),
|
| 28 |
+
obs_config=ObservationConfig(),
|
| 29 |
+
headless=False)
|
| 30 |
+
env.launch()
|
| 31 |
+
|
| 32 |
+
agent = Agent(env.action_shape)
|
| 33 |
+
|
| 34 |
+
train_tasks = FS10_V1['train']
|
| 35 |
+
test_tasks = FS10_V1['test']
|
| 36 |
+
|
| 37 |
+
training_cycles_per_task = 3
|
| 38 |
+
training_steps_per_task = 80
|
| 39 |
+
episode_length = 40
|
| 40 |
+
|
| 41 |
+
for _ in range(training_cycles_per_task):
|
| 42 |
+
|
| 43 |
+
task_to_train = np.random.choice(train_tasks, 1)[0]
|
| 44 |
+
task = env.get_task(task_to_train)
|
| 45 |
+
task.sample_variation() # random variation
|
| 46 |
+
|
| 47 |
+
for i in range(training_steps_per_task):
|
| 48 |
+
if i % episode_length == 0:
|
| 49 |
+
print('Reset Episode')
|
| 50 |
+
descriptions, obs = task.reset()
|
| 51 |
+
print(descriptions)
|
| 52 |
+
action = agent.act(obs)
|
| 53 |
+
obs, reward, terminate = task.step(action)
|
| 54 |
+
|
| 55 |
+
print('Done')
|
| 56 |
+
env.shutdown()
|
external/rlbench/examples/imitation_learning.py
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import numpy as np
|
| 2 |
+
|
| 3 |
+
from rlbench.action_modes.action_mode import MoveArmThenGripper
|
| 4 |
+
from rlbench.action_modes.arm_action_modes import JointVelocity
|
| 5 |
+
from rlbench.action_modes.gripper_action_modes import Discrete
|
| 6 |
+
from rlbench.environment import Environment
|
| 7 |
+
from rlbench.observation_config import ObservationConfig
|
| 8 |
+
from rlbench.tasks import ReachTarget
|
| 9 |
+
|
| 10 |
+
|
| 11 |
+
class ImitationLearning(object):
|
| 12 |
+
|
| 13 |
+
def predict_action(self, batch):
|
| 14 |
+
return np.random.uniform(size=(len(batch), 7))
|
| 15 |
+
|
| 16 |
+
def behaviour_cloning_loss(self, ground_truth_actions, predicted_actions):
|
| 17 |
+
return 1
|
| 18 |
+
|
| 19 |
+
|
| 20 |
+
# To use 'saved' demos, set the path below, and set live_demos=False
|
| 21 |
+
live_demos = True
|
| 22 |
+
DATASET = '' if live_demos else 'PATH/TO/YOUR/DATASET'
|
| 23 |
+
|
| 24 |
+
obs_config = ObservationConfig()
|
| 25 |
+
obs_config.set_all(True)
|
| 26 |
+
|
| 27 |
+
env = Environment(
|
| 28 |
+
action_mode=MoveArmThenGripper(
|
| 29 |
+
arm_action_mode=JointVelocity(), gripper_action_mode=Discrete()),
|
| 30 |
+
obs_config=ObservationConfig(),
|
| 31 |
+
headless=False)
|
| 32 |
+
env.launch()
|
| 33 |
+
|
| 34 |
+
task = env.get_task(ReachTarget)
|
| 35 |
+
|
| 36 |
+
il = ImitationLearning()
|
| 37 |
+
|
| 38 |
+
demos = task.get_demos(2, live_demos=live_demos) # -> List[List[Observation]]
|
| 39 |
+
demos = np.array(demos).flatten()
|
| 40 |
+
|
| 41 |
+
# An example of using the demos to 'train' using behaviour cloning loss.
|
| 42 |
+
for i in range(100):
|
| 43 |
+
print("'training' iteration %d" % i)
|
| 44 |
+
batch = np.random.choice(demos, replace=False)
|
| 45 |
+
batch_images = [obs.left_shoulder_rgb for obs in batch]
|
| 46 |
+
predicted_actions = il.predict_action(batch_images)
|
| 47 |
+
ground_truth_actions = [obs.joint_velocities for obs in batch]
|
| 48 |
+
loss = il.behaviour_cloning_loss(ground_truth_actions, predicted_actions)
|
| 49 |
+
|
| 50 |
+
print('Done')
|
| 51 |
+
env.shutdown()
|
external/rlbench/examples/multi_task_rl.py
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import numpy as np
|
| 2 |
+
|
| 3 |
+
from rlbench.action_modes.action_mode import MoveArmThenGripper
|
| 4 |
+
from rlbench.action_modes.arm_action_modes import JointVelocity
|
| 5 |
+
from rlbench.action_modes.gripper_action_modes import Discrete
|
| 6 |
+
from rlbench.environment import Environment
|
| 7 |
+
from rlbench.observation_config import ObservationConfig
|
| 8 |
+
from rlbench.tasks import MT30_V1
|
| 9 |
+
|
| 10 |
+
|
| 11 |
+
class Agent(object):
|
| 12 |
+
|
| 13 |
+
def __init__(self, action_shape):
|
| 14 |
+
self.action_shape = action_shape
|
| 15 |
+
|
| 16 |
+
def act(self, obs):
|
| 17 |
+
arm = np.random.normal(0.0, 0.1, size=(self.action_shape[0] - 1,))
|
| 18 |
+
gripper = [1.0] # Always open
|
| 19 |
+
return np.concatenate([arm, gripper], axis=-1)
|
| 20 |
+
|
| 21 |
+
|
| 22 |
+
obs_config = ObservationConfig()
|
| 23 |
+
obs_config.set_all(True)
|
| 24 |
+
|
| 25 |
+
env = Environment(
|
| 26 |
+
action_mode=MoveArmThenGripper(
|
| 27 |
+
arm_action_mode=JointVelocity(), gripper_action_mode=Discrete()),
|
| 28 |
+
obs_config=ObservationConfig(),
|
| 29 |
+
headless=False)
|
| 30 |
+
env.launch()
|
| 31 |
+
|
| 32 |
+
agent = Agent(env.action_shape)
|
| 33 |
+
|
| 34 |
+
train_tasks = MT30_V1['train']
|
| 35 |
+
|
| 36 |
+
training_cycles_per_task = 3
|
| 37 |
+
training_steps_per_task = 80
|
| 38 |
+
episode_length = 40
|
| 39 |
+
|
| 40 |
+
for _ in range(training_cycles_per_task):
|
| 41 |
+
|
| 42 |
+
task_to_train = np.random.choice(train_tasks, 1)[0]
|
| 43 |
+
task = env.get_task(task_to_train)
|
| 44 |
+
task.sample_variation() # random variation
|
| 45 |
+
|
| 46 |
+
for i in range(training_steps_per_task):
|
| 47 |
+
if i % episode_length == 0:
|
| 48 |
+
print('Reset Episode')
|
| 49 |
+
descriptions, obs = task.reset()
|
| 50 |
+
print(descriptions)
|
| 51 |
+
action = agent.act(obs)
|
| 52 |
+
obs, reward, terminate = task.step(action)
|
| 53 |
+
|
| 54 |
+
print('Done')
|
| 55 |
+
env.shutdown()
|
external/rlbench/examples/rearrangement_challenge.py
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
This is a simple starting point for the rearrangement challenge mentioned
|
| 3 |
+
in .....
|
| 4 |
+
|
| 5 |
+
"""
|
| 6 |
+
import numpy as np
|
| 7 |
+
|
| 8 |
+
from rlbench.action_modes.action_mode import MoveArmThenGripper
|
| 9 |
+
from rlbench.action_modes.arm_action_modes import JointVelocity
|
| 10 |
+
from rlbench.action_modes.gripper_action_modes import Discrete
|
| 11 |
+
from rlbench.environment import Environment
|
| 12 |
+
from rlbench.observation_config import ObservationConfig
|
| 13 |
+
from rlbench.tasks import PutAllGroceriesInCupboard
|
| 14 |
+
|
| 15 |
+
|
| 16 |
+
class Agent(object):
|
| 17 |
+
"""A simple random-action agent. """
|
| 18 |
+
|
| 19 |
+
def __init__(self, action_shape):
|
| 20 |
+
self.action_shape = action_shape
|
| 21 |
+
|
| 22 |
+
def act(self, obs):
|
| 23 |
+
arm = np.random.normal(0.0, 0.1, size=(self.action_shape[0] - 1,))
|
| 24 |
+
gripper = [1.0] # Always open
|
| 25 |
+
return np.concatenate([arm, gripper], axis=-1)
|
| 26 |
+
|
| 27 |
+
|
| 28 |
+
# Define the observations that we want to get at each timestep.
|
| 29 |
+
obs_config = ObservationConfig()
|
| 30 |
+
obs_config.set_all(True)
|
| 31 |
+
|
| 32 |
+
# Define the action mode of the arm. There are many to choose from.
|
| 33 |
+
action_mode = MoveArmThenGripper(
|
| 34 |
+
arm_action_mode=JointVelocity(), gripper_action_mode=Discrete())
|
| 35 |
+
|
| 36 |
+
# Create and launch the RLBench environment.
|
| 37 |
+
env = Environment(
|
| 38 |
+
action_mode, obs_config=obs_config, headless=False)
|
| 39 |
+
env.launch()
|
| 40 |
+
|
| 41 |
+
# Get the task that we want to interface with. There are >100 tasks to choose!
|
| 42 |
+
# For the rearrangement challenge, we want 'PutAllGroceriesInCupboard'.
|
| 43 |
+
task = env.get_task(PutAllGroceriesInCupboard)
|
| 44 |
+
|
| 45 |
+
# Uncomment line below to get 'live' demonstrations of this task!
|
| 46 |
+
# demos = task.get_demos(1)
|
| 47 |
+
|
| 48 |
+
# Create our simple agent
|
| 49 |
+
agent = Agent(env.action_shape)
|
| 50 |
+
|
| 51 |
+
training_steps = 120
|
| 52 |
+
episode_length = 40
|
| 53 |
+
for i in range(training_steps):
|
| 54 |
+
if i % episode_length == 0:
|
| 55 |
+
print('Reset Episode')
|
| 56 |
+
# When we reset the task, we get given a list of strings that describe
|
| 57 |
+
# the task and an initial observation
|
| 58 |
+
descriptions, obs = task.reset()
|
| 59 |
+
print(descriptions)
|
| 60 |
+
# Using the current observation, use an agent to decide on the next action
|
| 61 |
+
action = agent.act(obs)
|
| 62 |
+
print(action)
|
| 63 |
+
# Step the task and obtain a new observation, reward and a terminate flag.
|
| 64 |
+
obs, reward, terminate = task.step(action)
|
| 65 |
+
|
| 66 |
+
print('Done')
|
| 67 |
+
env.shutdown()
|
external/rlbench/examples/rlbench_gym.py
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import gym
|
| 2 |
+
import rlbench.gym
|
| 3 |
+
|
| 4 |
+
env = gym.make('reach_target-state-v0', render_mode='human')
|
| 5 |
+
|
| 6 |
+
training_steps = 120
|
| 7 |
+
episode_length = 40
|
| 8 |
+
for i in range(training_steps):
|
| 9 |
+
if i % episode_length == 0:
|
| 10 |
+
print('Reset Episode')
|
| 11 |
+
obs = env.reset()
|
| 12 |
+
obs, reward, terminate, _ = env.step(env.action_space.sample())
|
| 13 |
+
env.render() # Note: rendering increases step time.
|
| 14 |
+
|
| 15 |
+
print('Done')
|
| 16 |
+
env.close()
|
external/rlbench/examples/single_task_rl.py
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import numpy as np
|
| 2 |
+
from rlbench.action_modes.action_mode import MoveArmThenGripper
|
| 3 |
+
from rlbench.action_modes.arm_action_modes import JointVelocity
|
| 4 |
+
from rlbench.action_modes.gripper_action_modes import Discrete
|
| 5 |
+
from rlbench.environment import Environment
|
| 6 |
+
from rlbench.observation_config import ObservationConfig
|
| 7 |
+
from rlbench.tasks import ReachTarget
|
| 8 |
+
|
| 9 |
+
|
| 10 |
+
class Agent(object):
|
| 11 |
+
|
| 12 |
+
def __init__(self, action_shape):
|
| 13 |
+
self.action_shape = action_shape
|
| 14 |
+
|
| 15 |
+
def act(self, obs):
|
| 16 |
+
arm = np.random.normal(0.0, 0.1, size=(self.action_shape[0] - 1,))
|
| 17 |
+
gripper = [1.0] # Always open
|
| 18 |
+
return np.concatenate([arm, gripper], axis=-1)
|
| 19 |
+
|
| 20 |
+
|
| 21 |
+
env = Environment(
|
| 22 |
+
action_mode=MoveArmThenGripper(
|
| 23 |
+
arm_action_mode=JointVelocity(), gripper_action_mode=Discrete()),
|
| 24 |
+
obs_config=ObservationConfig(),
|
| 25 |
+
headless=False)
|
| 26 |
+
env.launch()
|
| 27 |
+
|
| 28 |
+
task = env.get_task(ReachTarget)
|
| 29 |
+
|
| 30 |
+
agent = Agent(env.action_shape)
|
| 31 |
+
|
| 32 |
+
training_steps = 120
|
| 33 |
+
episode_length = 40
|
| 34 |
+
obs = None
|
| 35 |
+
for i in range(training_steps):
|
| 36 |
+
if i % episode_length == 0:
|
| 37 |
+
print('Reset Episode')
|
| 38 |
+
descriptions, obs = task.reset()
|
| 39 |
+
print(descriptions)
|
| 40 |
+
action = agent.act(obs)
|
| 41 |
+
print(action)
|
| 42 |
+
obs, reward, terminate = task.step(action)
|
| 43 |
+
|
| 44 |
+
print('Done')
|
| 45 |
+
env.shutdown()
|
external/rlbench/examples/single_task_rl_domain_randomization.py
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import numpy as np
|
| 2 |
+
|
| 3 |
+
from rlbench import Environment
|
| 4 |
+
from rlbench import ObservationConfig
|
| 5 |
+
from rlbench import RandomizeEvery
|
| 6 |
+
from rlbench import VisualRandomizationConfig
|
| 7 |
+
from rlbench.action_modes.action_mode import MoveArmThenGripper
|
| 8 |
+
from rlbench.action_modes.arm_action_modes import JointVelocity
|
| 9 |
+
from rlbench.action_modes.gripper_action_modes import Discrete
|
| 10 |
+
from rlbench.tasks import ReachTarget
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
class Agent(object):
|
| 14 |
+
|
| 15 |
+
def __init__(self, action_shape):
|
| 16 |
+
self.action_shape = action_shape
|
| 17 |
+
|
| 18 |
+
def act(self, obs):
|
| 19 |
+
arm = np.random.normal(0.0, 0.1, size=(self.action_shape[0] - 1,))
|
| 20 |
+
gripper = [1.0] # Always open
|
| 21 |
+
return np.concatenate([arm, gripper], axis=-1)
|
| 22 |
+
|
| 23 |
+
|
| 24 |
+
obs_config = ObservationConfig()
|
| 25 |
+
obs_config.set_all(True)
|
| 26 |
+
|
| 27 |
+
# We will borrow some from the tests dir
|
| 28 |
+
rand_config = VisualRandomizationConfig(
|
| 29 |
+
image_directory='../tests/unit/assets/textures')
|
| 30 |
+
|
| 31 |
+
action_mode = MoveArmThenGripper(
|
| 32 |
+
arm_action_mode=JointVelocity(), gripper_action_mode=Discrete())
|
| 33 |
+
env = Environment(
|
| 34 |
+
action_mode, obs_config=obs_config, headless=False,
|
| 35 |
+
randomize_every=RandomizeEvery.EPISODE, frequency=1,
|
| 36 |
+
visual_randomization_config=rand_config
|
| 37 |
+
)
|
| 38 |
+
env.launch()
|
| 39 |
+
|
| 40 |
+
task = env.get_task(ReachTarget)
|
| 41 |
+
|
| 42 |
+
agent = Agent(env.action_shape)
|
| 43 |
+
|
| 44 |
+
training_steps = 120
|
| 45 |
+
episode_length = 20
|
| 46 |
+
obs = None
|
| 47 |
+
for i in range(training_steps):
|
| 48 |
+
if i % episode_length == 0:
|
| 49 |
+
print('Reset Episode')
|
| 50 |
+
descriptions, obs = task.reset()
|
| 51 |
+
print(descriptions)
|
| 52 |
+
action = agent.act(obs)
|
| 53 |
+
obs, reward, terminate = task.step(action)
|
| 54 |
+
|
| 55 |
+
print('Done')
|
| 56 |
+
env.shutdown()
|
external/rlbench/examples/single_task_rl_with_demos.py
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import numpy as np
|
| 2 |
+
|
| 3 |
+
from rlbench.action_modes.action_mode import MoveArmThenGripper
|
| 4 |
+
from rlbench.action_modes.arm_action_modes import JointVelocity
|
| 5 |
+
from rlbench.action_modes.gripper_action_modes import Discrete
|
| 6 |
+
from rlbench.environment import Environment
|
| 7 |
+
from rlbench.observation_config import ObservationConfig
|
| 8 |
+
from rlbench.tasks import ReachTarget
|
| 9 |
+
|
| 10 |
+
|
| 11 |
+
class Agent(object):
|
| 12 |
+
|
| 13 |
+
def __init__(self, action_shape):
|
| 14 |
+
self.action_shape = action_shape
|
| 15 |
+
|
| 16 |
+
def ingest(self, demos):
|
| 17 |
+
pass
|
| 18 |
+
|
| 19 |
+
def act(self, obs):
|
| 20 |
+
arm = np.random.normal(0.0, 0.1, size=(self.action_shape[0] - 1,))
|
| 21 |
+
gripper = [1.0] # Always open
|
| 22 |
+
return np.concatenate([arm, gripper], axis=-1)
|
| 23 |
+
|
| 24 |
+
|
| 25 |
+
# To use 'saved' demos, set the path below, and set live_demos=False
|
| 26 |
+
live_demos = True
|
| 27 |
+
DATASET = '' if live_demos else 'PATH/TO/YOUR/DATASET'
|
| 28 |
+
|
| 29 |
+
obs_config = ObservationConfig()
|
| 30 |
+
obs_config.set_all(True)
|
| 31 |
+
|
| 32 |
+
action_mode = MoveArmThenGripper(
|
| 33 |
+
arm_action_mode=JointVelocity(), gripper_action_mode=Discrete())
|
| 34 |
+
env = Environment(
|
| 35 |
+
action_mode, DATASET, obs_config, False)
|
| 36 |
+
env.launch()
|
| 37 |
+
|
| 38 |
+
task = env.get_task(ReachTarget)
|
| 39 |
+
demos = task.get_demos(2, live_demos=live_demos)
|
| 40 |
+
|
| 41 |
+
agent = Agent(env.action_shape)
|
| 42 |
+
agent.ingest(demos)
|
| 43 |
+
|
| 44 |
+
training_steps = 120
|
| 45 |
+
episode_length = 40
|
| 46 |
+
obs = None
|
| 47 |
+
for i in range(training_steps):
|
| 48 |
+
if i % episode_length == 0:
|
| 49 |
+
print('Reset Episode')
|
| 50 |
+
descriptions, obs = task.reset()
|
| 51 |
+
print(descriptions)
|
| 52 |
+
action = agent.act(obs)
|
| 53 |
+
print(action)
|
| 54 |
+
obs, reward, terminate = task.step(action)
|
| 55 |
+
|
| 56 |
+
print('Done')
|
| 57 |
+
env.shutdown()
|
external/rlbench/examples/swap_arm.py
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import numpy as np
|
| 2 |
+
|
| 3 |
+
from rlbench.action_modes.action_mode import MoveArmThenGripper
|
| 4 |
+
from rlbench.action_modes.arm_action_modes import JointVelocity
|
| 5 |
+
from rlbench.action_modes.gripper_action_modes import Discrete
|
| 6 |
+
from rlbench.environment import Environment
|
| 7 |
+
from rlbench.observation_config import ObservationConfig
|
| 8 |
+
from rlbench.tasks import ReachTarget
|
| 9 |
+
|
| 10 |
+
|
| 11 |
+
class Agent(object):
|
| 12 |
+
|
| 13 |
+
def __init__(self, action_shape):
|
| 14 |
+
self.action_shape = action_shape
|
| 15 |
+
|
| 16 |
+
def act(self, obs):
|
| 17 |
+
arm = np.random.normal(0.0, 0.1, size=(self.action_shape[0] - 1,))
|
| 18 |
+
gripper = [1.0] # Always open
|
| 19 |
+
return np.concatenate([arm, gripper], axis=-1)
|
| 20 |
+
|
| 21 |
+
|
| 22 |
+
obs_config = ObservationConfig()
|
| 23 |
+
obs_config.set_all(True)
|
| 24 |
+
obs_config.gripper_touch_forces = False
|
| 25 |
+
|
| 26 |
+
action_mode = MoveArmThenGripper(
|
| 27 |
+
arm_action_mode=JointVelocity(), gripper_action_mode=Discrete())
|
| 28 |
+
env = Environment(
|
| 29 |
+
action_mode, obs_config=obs_config, headless=False,
|
| 30 |
+
robot_setup='sawyer')
|
| 31 |
+
env.launch()
|
| 32 |
+
|
| 33 |
+
task = env.get_task(ReachTarget)
|
| 34 |
+
|
| 35 |
+
agent = Agent(env.action_shape) # 6DoF + 1 for gripper
|
| 36 |
+
|
| 37 |
+
training_steps = 120
|
| 38 |
+
episode_length = 40
|
| 39 |
+
obs = None
|
| 40 |
+
for i in range(training_steps):
|
| 41 |
+
if i % episode_length == 0:
|
| 42 |
+
print('Reset Episode')
|
| 43 |
+
descriptions, obs = task.reset()
|
| 44 |
+
print(descriptions)
|
| 45 |
+
action = agent.act(obs)
|
| 46 |
+
print(action)
|
| 47 |
+
obs, reward, terminate = task.step(action)
|
| 48 |
+
|
| 49 |
+
print('Done')
|
| 50 |
+
env.shutdown()
|
external/rlbench/rlbench/action_modes/__init__.py
ADDED
|
File without changes
|
external/rlbench/rlbench/action_modes/action_mode.py
ADDED
|
@@ -0,0 +1,164 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from abc import abstractmethod
|
| 2 |
+
|
| 3 |
+
import numpy as np
|
| 4 |
+
|
| 5 |
+
from rlbench.action_modes.arm_action_modes import ArmActionMode
|
| 6 |
+
from rlbench.action_modes.arm_action_modes import BimanualJointPosition, JointPosition
|
| 7 |
+
from rlbench.action_modes.gripper_action_modes import GripperActionMode
|
| 8 |
+
from rlbench.action_modes.gripper_action_modes import BimanualGripperJointPosition, GripperJointPosition
|
| 9 |
+
from rlbench.action_modes.gripper_action_modes import BimanualDiscrete
|
| 10 |
+
from rlbench.backend.scene import Scene
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
class ActionMode(object):
|
| 14 |
+
|
| 15 |
+
def __init__(self,
|
| 16 |
+
arm_action_mode: 'ArmActionMode',
|
| 17 |
+
gripper_action_mode: 'GripperActionMode'):
|
| 18 |
+
self.arm_action_mode = arm_action_mode
|
| 19 |
+
self.gripper_action_mode = gripper_action_mode
|
| 20 |
+
|
| 21 |
+
@abstractmethod
|
| 22 |
+
def action(self, scene: Scene, action: np.ndarray):
|
| 23 |
+
pass
|
| 24 |
+
|
| 25 |
+
@abstractmethod
|
| 26 |
+
def action_shape(self, scene: Scene):
|
| 27 |
+
pass
|
| 28 |
+
|
| 29 |
+
def action_bounds(self):
|
| 30 |
+
"""Returns the min and max of the action mode."""
|
| 31 |
+
raise NotImplementedError('You must define your own action bounds.')
|
| 32 |
+
|
| 33 |
+
|
| 34 |
+
|
| 35 |
+
|
| 36 |
+
class MoveArmThenGripper(ActionMode):
|
| 37 |
+
"""A customizable action mode.
|
| 38 |
+
|
| 39 |
+
The arm action is first applied, followed by the gripper action.
|
| 40 |
+
"""
|
| 41 |
+
|
| 42 |
+
def action(self, scene: Scene, action: np.ndarray):
|
| 43 |
+
arm_act_size = np.prod(self.arm_action_mode.action_shape(scene))
|
| 44 |
+
arm_action = np.array(action[:arm_act_size])
|
| 45 |
+
ee_action = np.array(action[arm_act_size:arm_act_size+1])
|
| 46 |
+
ignore_collisions = bool(action[arm_act_size+1:arm_act_size+2])
|
| 47 |
+
self.arm_action_mode.action(scene, arm_action, ignore_collisions)
|
| 48 |
+
self.gripper_action_mode.action(scene, ee_action)
|
| 49 |
+
|
| 50 |
+
def action_shape(self, scene: Scene):
|
| 51 |
+
return np.prod(self.arm_action_mode.action_shape(scene)) + np.prod(
|
| 52 |
+
self.gripper_action_mode.action_shape(scene))
|
| 53 |
+
|
| 54 |
+
|
| 55 |
+
|
| 56 |
+
class BimanualMoveArmThenGripper(MoveArmThenGripper):
|
| 57 |
+
"""The arm action is first applied, followed by the gripper action. """
|
| 58 |
+
|
| 59 |
+
def action(self, scene: Scene, action: np.ndarray):
|
| 60 |
+
|
| 61 |
+
assert(len(action) == 18)
|
| 62 |
+
|
| 63 |
+
arm_action_size = np.prod(self.arm_action_mode.unimanual_action_shape(scene))
|
| 64 |
+
ee_action_size = np.prod(self.gripper_action_mode.unimanual_action_shape(scene))
|
| 65 |
+
ignore_collisions_size = 1
|
| 66 |
+
|
| 67 |
+
action_size = arm_action_size + ee_action_size + ignore_collisions_size
|
| 68 |
+
|
| 69 |
+
assert(action_size == 9)
|
| 70 |
+
|
| 71 |
+
right_action = action[:action_size]
|
| 72 |
+
left_action = action[action_size:]
|
| 73 |
+
|
| 74 |
+
right_arm_action = np.array(right_action[:arm_action_size])
|
| 75 |
+
left_arm_action = np.array(left_action[:arm_action_size])
|
| 76 |
+
|
| 77 |
+
arm_action = np.concatenate([right_arm_action, left_arm_action], axis=0)
|
| 78 |
+
|
| 79 |
+
right_ee_action = np.array(right_action[arm_action_size:arm_action_size+ee_action_size])
|
| 80 |
+
left_ee_action = np.array(left_action[arm_action_size:arm_action_size+ee_action_size])
|
| 81 |
+
ee_action = np.concatenate([right_ee_action, left_ee_action], axis=0)
|
| 82 |
+
|
| 83 |
+
right_ignore_collisions = bool(right_action[arm_action_size+ee_action_size:arm_action_size+ee_action_size+1])
|
| 84 |
+
left_ignore_collisions = bool(left_action[arm_action_size+ee_action_size:arm_action_size+ee_action_size+1])
|
| 85 |
+
ignore_collisions = [right_ignore_collisions, left_ignore_collisions]
|
| 86 |
+
|
| 87 |
+
self.arm_action_mode.action(scene, arm_action, ignore_collisions)
|
| 88 |
+
self.gripper_action_mode.action(scene, ee_action)
|
| 89 |
+
|
| 90 |
+
|
| 91 |
+
def action_shape(self, scene: Scene):
|
| 92 |
+
return np.prod(self.arm_action_mode.action_shape(scene)) + np.prod(
|
| 93 |
+
self.gripper_action_mode.action_shape(scene)) + 2
|
| 94 |
+
|
| 95 |
+
|
| 96 |
+
# RLBench is highly customizable, in both observations and action modes.
|
| 97 |
+
# This can be a little daunting, so below we have defined some
|
| 98 |
+
# common action modes for you to choose from.
|
| 99 |
+
|
| 100 |
+
class JointPositionActionMode(ActionMode):
|
| 101 |
+
"""A pre-set, delta joint position action mode or arm and abs for gripper.
|
| 102 |
+
|
| 103 |
+
Both the arm and gripper action are applied at the same time.
|
| 104 |
+
"""
|
| 105 |
+
|
| 106 |
+
def __init__(self):
|
| 107 |
+
super(JointPositionActionMode, self).__init__(
|
| 108 |
+
JointPosition(False), GripperJointPosition(True))
|
| 109 |
+
|
| 110 |
+
def action(self, scene: Scene, action: np.ndarray):
|
| 111 |
+
arm_act_size = np.prod(self.arm_action_mode.action_shape(scene))
|
| 112 |
+
arm_action = np.array(action[:arm_act_size])
|
| 113 |
+
ee_action = np.array(action[arm_act_size:])
|
| 114 |
+
self.arm_action_mode.action_pre_step(scene, arm_action)
|
| 115 |
+
self.gripper_action_mode.action_pre_step(scene, ee_action)
|
| 116 |
+
scene.step()
|
| 117 |
+
self.arm_action_mode.action_post_step(scene, arm_action)
|
| 118 |
+
self.gripper_action_mode.action_post_step(scene, ee_action)
|
| 119 |
+
|
| 120 |
+
def action_shape(self, scene: Scene):
|
| 121 |
+
return np.prod(self.arm_action_mode.action_shape(scene)) + np.prod(
|
| 122 |
+
self.gripper_action_mode.action_shape(scene))
|
| 123 |
+
|
| 124 |
+
def action_bounds(self):
|
| 125 |
+
"""Returns the min and max of the action mode."""
|
| 126 |
+
return np.array(7 * [-0.1] + [0.0]), np.array(7 * [0.1] + [0.04])
|
| 127 |
+
|
| 128 |
+
|
| 129 |
+
|
| 130 |
+
class BimanualJointPositionActionMode(ActionMode):
|
| 131 |
+
|
| 132 |
+
def __init__(self, arm_action_mode=None, gripper_action_mode=None):
|
| 133 |
+
arm_action_mode = arm_action_mode or BimanualJointPosition()
|
| 134 |
+
gripper_action_mode = gripper_action_mode or BimanualDiscrete()
|
| 135 |
+
|
| 136 |
+
super(BimanualJointPositionActionMode, self).__init__(arm_action_mode, gripper_action_mode)
|
| 137 |
+
|
| 138 |
+
def action(self, scene: Scene, action: np.ndarray):
|
| 139 |
+
|
| 140 |
+
assert(action.shape == (16,))
|
| 141 |
+
|
| 142 |
+
|
| 143 |
+
arm_act_size = np.prod(self.arm_action_mode.action_shape(scene))
|
| 144 |
+
assert(arm_act_size == 14)
|
| 145 |
+
|
| 146 |
+
arm_action = np.concatenate([action[0:7], action[8:15]], axis=0 )
|
| 147 |
+
ee_action = np.array([action[7], action[15]])
|
| 148 |
+
|
| 149 |
+
|
| 150 |
+
self.arm_action_mode.action_pre_step(scene, arm_action)
|
| 151 |
+
self.gripper_action_mode.action_pre_step(scene, ee_action)
|
| 152 |
+
|
| 153 |
+
self.arm_action_mode.action_step(scene)
|
| 154 |
+
|
| 155 |
+
self.arm_action_mode.action_post_step(scene, arm_action)
|
| 156 |
+
self.gripper_action_mode.action_post_step(scene, ee_action)
|
| 157 |
+
|
| 158 |
+
def action_shape(self, scene: Scene):
|
| 159 |
+
return np.prod(self.arm_action_mode.action_shape(scene)) + np.prod(
|
| 160 |
+
self.gripper_action_mode.action_shape(scene))
|
| 161 |
+
|
| 162 |
+
def action_bounds(self):
|
| 163 |
+
"""Returns the min and max of the action mode."""
|
| 164 |
+
raise Exception("Not implemented yet.")
|
external/rlbench/rlbench/action_modes/arm_action_modes.py
ADDED
|
@@ -0,0 +1,540 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from abc import abstractmethod
|
| 2 |
+
|
| 3 |
+
import numpy as np
|
| 4 |
+
from pyquaternion import Quaternion
|
| 5 |
+
|
| 6 |
+
from pyrep.const import ConfigurationPathAlgorithms as Algos
|
| 7 |
+
from pyrep.const import ConfigurationPathAlgorithms as ObjectType
|
| 8 |
+
from pyrep.errors import ConfigurationPathError, IKError
|
| 9 |
+
from pyrep.const import ObjectType
|
| 10 |
+
from pyrep.objects.dummy import Dummy
|
| 11 |
+
from pyrep.objects.object import Object
|
| 12 |
+
from pyrep.objects.shape import Shape
|
| 13 |
+
from pyrep.robots.arms.arm import Arm
|
| 14 |
+
from pyrep.robots.end_effectors.gripper import Gripper
|
| 15 |
+
|
| 16 |
+
from rlbench.backend.exceptions import InvalidActionError
|
| 17 |
+
from rlbench.backend.robot import Robot
|
| 18 |
+
from rlbench.backend.robot import UnimanualRobot
|
| 19 |
+
from rlbench.backend.robot import BimanualRobot
|
| 20 |
+
from rlbench.backend.scene import Scene
|
| 21 |
+
from rlbench.const import SUPPORTED_ROBOTS
|
| 22 |
+
|
| 23 |
+
import logging
|
| 24 |
+
|
| 25 |
+
from abc import ABC
|
| 26 |
+
|
| 27 |
+
|
| 28 |
+
|
| 29 |
+
def assert_action_shape(action: np.ndarray, expected_shape: tuple):
|
| 30 |
+
if np.shape(action) != expected_shape:
|
| 31 |
+
raise InvalidActionError(
|
| 32 |
+
'Expected the action shape to be: %s, but was shape: %s' % (
|
| 33 |
+
str(expected_shape), str(np.shape(action))))
|
| 34 |
+
|
| 35 |
+
|
| 36 |
+
def assert_unit_quaternion(quat):
|
| 37 |
+
if not np.isclose(np.linalg.norm(quat), 1.0):
|
| 38 |
+
raise InvalidActionError('Action contained non unit quaternion!')
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
def calculate_delta_pose(robot: Robot, action: np.ndarray):
|
| 42 |
+
a_x, a_y, a_z, a_qx, a_qy, a_qz, a_qw = action
|
| 43 |
+
x, y, z, qx, qy, qz, qw = robot.arm.get_tip().get_pose()
|
| 44 |
+
new_rot = Quaternion(
|
| 45 |
+
a_qw, a_qx, a_qy, a_qz) * Quaternion(qw, qx, qy, qz)
|
| 46 |
+
qw, qx, qy, qz = list(new_rot)
|
| 47 |
+
pose = [a_x + x, a_y + y, a_z + z] + [qx, qy, qz, qw]
|
| 48 |
+
return pose
|
| 49 |
+
|
| 50 |
+
|
| 51 |
+
class ArmActionMode(ABC):
|
| 52 |
+
|
| 53 |
+
_callable_each_step = None
|
| 54 |
+
|
| 55 |
+
def action(self, scene: Scene, action: np.ndarray):
|
| 56 |
+
self.action_pre_step(scene, action)
|
| 57 |
+
self.action_step(scene)
|
| 58 |
+
self.action_post_step(scene, action)
|
| 59 |
+
|
| 60 |
+
def action_step(self, scene: Scene):
|
| 61 |
+
scene.step()
|
| 62 |
+
if self._callable_each_step is not None:
|
| 63 |
+
self._callable_each_step(scene.get_observation())
|
| 64 |
+
|
| 65 |
+
def action_pre_step(self, scene: Scene, action: np.ndarray):
|
| 66 |
+
pass
|
| 67 |
+
|
| 68 |
+
def action_post_step(self, scene: Scene, action: np.ndarray):
|
| 69 |
+
pass
|
| 70 |
+
|
| 71 |
+
@abstractmethod
|
| 72 |
+
def action_shape(self, scene: Scene):
|
| 73 |
+
pass
|
| 74 |
+
|
| 75 |
+
def set_control_mode(self, robot: Robot):
|
| 76 |
+
if isinstance(robot, UnimanualRobot):
|
| 77 |
+
robot.arm.set_control_loop_enabled(True)
|
| 78 |
+
elif isinstance(robot, BimanualRobot):
|
| 79 |
+
logging.info("Setting control mode for both robots")
|
| 80 |
+
robot.right_arm.set_control_loop_enabled(True)
|
| 81 |
+
robot.left_arm.set_control_loop_enabled(True)
|
| 82 |
+
|
| 83 |
+
def record_end(self, scene, steps=60, step_scene=True):
|
| 84 |
+
if self._callable_each_step is not None:
|
| 85 |
+
for _ in range(steps):
|
| 86 |
+
if step_scene:
|
| 87 |
+
scene.step()
|
| 88 |
+
self._callable_each_step(scene.get_observation())
|
| 89 |
+
|
| 90 |
+
def set_callable_each_step(self, callable_each_step):
|
| 91 |
+
self._callable_each_step = callable_each_step
|
| 92 |
+
|
| 93 |
+
class JointVelocity(ArmActionMode):
|
| 94 |
+
"""Control the joint velocities of the arm.
|
| 95 |
+
|
| 96 |
+
Similar to the action space in many continious control OpenAI Gym envs.
|
| 97 |
+
"""
|
| 98 |
+
|
| 99 |
+
def action_pre_step(self, scene: Scene, action: np.ndarray):
|
| 100 |
+
assert_action_shape(action, self.action_shape(scene))
|
| 101 |
+
scene.robot.arm.set_joint_target_velocities(action)
|
| 102 |
+
|
| 103 |
+
def action_post_step(self, scene: Scene, action: np.ndarray):
|
| 104 |
+
scene.robot.arm.set_joint_target_velocities(np.zeros_like(action))
|
| 105 |
+
|
| 106 |
+
def action_shape(self, scene: Scene) -> tuple:
|
| 107 |
+
return SUPPORTED_ROBOTS[scene.robot_setup][2],
|
| 108 |
+
|
| 109 |
+
def set_control_mode(self, robot: Robot):
|
| 110 |
+
robot.arm.set_control_loop_enabled(False)
|
| 111 |
+
robot.arm.set_motor_locked_at_zero_velocity(True)
|
| 112 |
+
|
| 113 |
+
|
| 114 |
+
class BimanualJointVelocity(ArmActionMode):
|
| 115 |
+
|
| 116 |
+
def action_pre_step(self, scene: Scene, action: np.ndarray):
|
| 117 |
+
assert_action_shape(action, self.action_shape(scene))
|
| 118 |
+
right_action = action[:7]
|
| 119 |
+
left_action = action[7:]
|
| 120 |
+
scene.robot.right_arm.set_joint_target_velocities(right_action)
|
| 121 |
+
scene.robot.left_arm.set_joint_target_velocities(left_action)
|
| 122 |
+
|
| 123 |
+
def action_post_step(self, scene: Scene, action: np.ndarray):
|
| 124 |
+
scene.robot.arm.set_joint_target_velocities(np.zeros_like(action))
|
| 125 |
+
right_action = action[:7]
|
| 126 |
+
left_action = action[7:]
|
| 127 |
+
scene.robot.right_arm.set_joint_target_velocities(np.zeros_like(right_action))
|
| 128 |
+
scene.robot.left_arm.set_joint_target_velocities(np.zeros_like(left_action))
|
| 129 |
+
|
| 130 |
+
def action_shape(self, scene: Scene) -> tuple:
|
| 131 |
+
return SUPPORTED_ROBOTS[scene.robot_setup][2],
|
| 132 |
+
|
| 133 |
+
def set_control_mode(self, robot: Robot):
|
| 134 |
+
robot.right_arm.set_control_loop_enabled(False)
|
| 135 |
+
robot.right_arm.set_motor_locked_at_zero_velocity(True)
|
| 136 |
+
robot.left_arm.set_control_loop_enabled(False)
|
| 137 |
+
robot.left_arm.set_motor_locked_at_zero_velocity(True)
|
| 138 |
+
|
| 139 |
+
|
| 140 |
+
class BimanualJointPosition(ArmActionMode):
|
| 141 |
+
|
| 142 |
+
def __init__(self, absolute_mode: bool = True):
|
| 143 |
+
self._absolute_mode = absolute_mode
|
| 144 |
+
|
| 145 |
+
def action_pre_step(self, scene: Scene, action: np.ndarray):
|
| 146 |
+
assert_action_shape(action, self.action_shape(scene))
|
| 147 |
+
|
| 148 |
+
right_action = action[:7]
|
| 149 |
+
left_action = action[7:]
|
| 150 |
+
|
| 151 |
+
if not self._absolute_mode:
|
| 152 |
+
right_action = np.array(scene.robot.right_arm.get_joint_positions()) + right_action
|
| 153 |
+
left_action = np.array(scene.robot.left_arm.get_joint_positions()) + left_action
|
| 154 |
+
|
| 155 |
+
scene.robot.right_arm.set_joint_target_positions(right_action)
|
| 156 |
+
scene.robot.left_arm.set_joint_target_positions(left_action)
|
| 157 |
+
|
| 158 |
+
def action_post_step(self, scene: Scene, action: np.ndarray):
|
| 159 |
+
scene.robot.right_arm.set_joint_target_positions(
|
| 160 |
+
scene.robot.right_arm.get_joint_positions())
|
| 161 |
+
scene.robot.left_arm.set_joint_target_positions(
|
| 162 |
+
scene.robot.left_arm.get_joint_positions())
|
| 163 |
+
|
| 164 |
+
def action_shape(self, scene: Scene) -> tuple:
|
| 165 |
+
return (14, )
|
| 166 |
+
#return SUPPORTED_ROBOTS[scene.robot_setup][2],
|
| 167 |
+
|
| 168 |
+
def unimanual_action_shape(self, scene: Scene) -> tuple:
|
| 169 |
+
return (7, )
|
| 170 |
+
|
| 171 |
+
|
| 172 |
+
|
| 173 |
+
class JointPosition(ArmActionMode):
|
| 174 |
+
"""Control the target joint positions (absolute or delta) of the arm.
|
| 175 |
+
|
| 176 |
+
The action mode opoerates in absolute mode or delta mode, where delta
|
| 177 |
+
mode takes the current joint positions and adds the new joint positions
|
| 178 |
+
to get a set of target joint positions. The robot uses a simple control
|
| 179 |
+
loop to execute until the desired poses have been reached.
|
| 180 |
+
It os the users responsibility to ensure that the action lies within
|
| 181 |
+
a usuable range.
|
| 182 |
+
"""
|
| 183 |
+
|
| 184 |
+
def __init__(self, absolute_mode: bool = True):
|
| 185 |
+
"""
|
| 186 |
+
Args:
|
| 187 |
+
absolute_mode: If we should opperate in 'absolute', or 'delta' mode.
|
| 188 |
+
"""
|
| 189 |
+
self._absolute_mode = absolute_mode
|
| 190 |
+
|
| 191 |
+
|
| 192 |
+
def action_pre_step(self, scene: Scene, action: np.ndarray):
|
| 193 |
+
assert_action_shape(action, self.action_shape(scene))
|
| 194 |
+
if not self._absolute_mode :
|
| 195 |
+
action = np.array(scene.robot.arm.get_joint_positions()) + action
|
| 196 |
+
scene.robot.arm.set_joint_target_positions(action)
|
| 197 |
+
|
| 198 |
+
def action_post_step(self, scene: Scene, action: np.ndarray):
|
| 199 |
+
scene.robot.arm.set_joint_target_positions(
|
| 200 |
+
scene.robot.arm.get_joint_positions())
|
| 201 |
+
|
| 202 |
+
def action_shape(self, scene: Scene) -> tuple:
|
| 203 |
+
return SUPPORTED_ROBOTS[scene.robot_setup][2],
|
| 204 |
+
|
| 205 |
+
|
| 206 |
+
|
| 207 |
+
class JointTorque(ArmActionMode):
|
| 208 |
+
"""Control the joint torques of the arm.
|
| 209 |
+
"""
|
| 210 |
+
|
| 211 |
+
TORQUE_MAX_VEL = 9999
|
| 212 |
+
|
| 213 |
+
def _torque_action(self, robot, action):
|
| 214 |
+
tml = JointTorque.TORQUE_MAX_VEL
|
| 215 |
+
robot.arm.set_joint_target_velocities(
|
| 216 |
+
[(tml if t < 0 else -tml) for t in action])
|
| 217 |
+
robot.arm.set_joint_forces(np.abs(action))
|
| 218 |
+
|
| 219 |
+
def action_pre_step(self, scene: Scene, action: np.ndarray):
|
| 220 |
+
assert_action_shape(action, self.action_shape(scene))
|
| 221 |
+
self._torque_action(scene.robot, action)
|
| 222 |
+
|
| 223 |
+
def action_post_step(self, scene: Scene, action: np.ndarray):
|
| 224 |
+
self._torque_action(scene.robot, scene.robot.arm.get_joint_forces())
|
| 225 |
+
scene.robot.arm.set_joint_target_velocities(np.zeros_like(action))
|
| 226 |
+
|
| 227 |
+
def action_shape(self, scene: Scene) -> tuple:
|
| 228 |
+
return SUPPORTED_ROBOTS[scene.robot_setup][2],
|
| 229 |
+
|
| 230 |
+
|
| 231 |
+
class EndEffectorPoseViaPlanning(ArmActionMode):
|
| 232 |
+
"""High-level action where target pose is given and reached via planning.
|
| 233 |
+
|
| 234 |
+
Given a target pose, a linear path is first planned (via IK). If that fails,
|
| 235 |
+
sample-based planning will be used. The decision to apply collision
|
| 236 |
+
checking is a crucial trade off! With collision checking enabled, you
|
| 237 |
+
are guaranteed collision free paths, but this may not be applicable for task
|
| 238 |
+
that do require some collision. E.g. using this mode on pushing object will
|
| 239 |
+
mean that the generated path will actively avoid not pushing the object.
|
| 240 |
+
|
| 241 |
+
Note that path planning can be slow, often taking a few seconds in the worst
|
| 242 |
+
case.
|
| 243 |
+
|
| 244 |
+
This was the action mode used in:
|
| 245 |
+
James, Stephen, and Andrew J. Davison. "Q-attention: Enabling Efficient
|
| 246 |
+
Learning for Vision-based Robotic Manipulation."
|
| 247 |
+
arXiv preprint arXiv:2105.14829 (2021).
|
| 248 |
+
"""
|
| 249 |
+
|
| 250 |
+
def __init__(self,
|
| 251 |
+
absolute_mode: bool = True,
|
| 252 |
+
frame: str = 'world',
|
| 253 |
+
collision_checking: bool = False):
|
| 254 |
+
"""
|
| 255 |
+
If collision check is enbled, and an object is grasped, then we
|
| 256 |
+
|
| 257 |
+
Args:
|
| 258 |
+
absolute_mode: If we should opperate in 'absolute', or 'delta' mode.
|
| 259 |
+
frame: Either 'world' or 'end effector'.
|
| 260 |
+
collision_checking: IF collision checking is enabled.
|
| 261 |
+
"""
|
| 262 |
+
self._absolute_mode = absolute_mode
|
| 263 |
+
self._frame = frame
|
| 264 |
+
self._collision_checking = collision_checking
|
| 265 |
+
self._callable_each_step = None
|
| 266 |
+
self._robot_shapes = None
|
| 267 |
+
|
| 268 |
+
if frame not in ['world', 'end effector']:
|
| 269 |
+
raise ValueError("Expected frame to one of: 'world, 'end effector'")
|
| 270 |
+
|
| 271 |
+
def _quick_boundary_check(self, scene: Scene, action: np.ndarray):
|
| 272 |
+
pos_to_check = action[:3]
|
| 273 |
+
relative_to = None if self._frame == 'world' else scene.robot.arm.get_tip()
|
| 274 |
+
if relative_to is not None:
|
| 275 |
+
scene.target_workspace_check.set_position(pos_to_check, relative_to)
|
| 276 |
+
pos_to_check = scene.target_workspace_check.get_position()
|
| 277 |
+
if not scene.check_target_in_workspace(pos_to_check):
|
| 278 |
+
raise InvalidActionError('A path could not be found because the '
|
| 279 |
+
'target is outside of workspace.')
|
| 280 |
+
|
| 281 |
+
def _pose_in_end_effector_frame(self, robot: Robot, action: np.ndarray):
|
| 282 |
+
a_x, a_y, a_z, a_qx, a_qy, a_qz, a_qw = action
|
| 283 |
+
x, y, z, qx, qy, qz, qw = robot.arm.get_tip().get_pose()
|
| 284 |
+
new_rot = Quaternion(
|
| 285 |
+
a_qw, a_qx, a_qy, a_qz) * Quaternion(qw, qx, qy, qz)
|
| 286 |
+
qw, qx, qy, qz = list(new_rot)
|
| 287 |
+
pose = [a_x + x, a_y + y, a_z + z] + [qx, qy, qz, qw]
|
| 288 |
+
return pose
|
| 289 |
+
|
| 290 |
+
def set_callable_each_step(self, callable_each_step):
|
| 291 |
+
self._callable_each_step = callable_each_step
|
| 292 |
+
|
| 293 |
+
|
| 294 |
+
def action(self, scene: Scene, action: np.ndarray, ignore_collisions: bool = True):
|
| 295 |
+
assert_action_shape(action, (7,))
|
| 296 |
+
assert_unit_quaternion(action[3:])
|
| 297 |
+
path = self.get_path(scene, action, ignore_collisions, scene.robot.arm, scene.robot.gripper)
|
| 298 |
+
done = False
|
| 299 |
+
while not done:
|
| 300 |
+
done = path.step()
|
| 301 |
+
scene.step()
|
| 302 |
+
if self._callable_each_step is not None:
|
| 303 |
+
self._callable_each_step(scene.get_observation())
|
| 304 |
+
success, terminate = scene.task.success()
|
| 305 |
+
# If the task succeeds while traversing path, then break early
|
| 306 |
+
if success:
|
| 307 |
+
break
|
| 308 |
+
|
| 309 |
+
def get_path(self, scene: Scene, action: np.ndarray, ignore_collisions: bool, arm: Arm, gripper: Gripper):
|
| 310 |
+
if not self._absolute_mode and self._frame != 'end effector':
|
| 311 |
+
action = calculate_delta_pose(scene.robot, action)
|
| 312 |
+
relative_to = None if self._frame == 'world' else arm.get_tip()
|
| 313 |
+
self._quick_boundary_check(scene, action)
|
| 314 |
+
|
| 315 |
+
colliding_shapes = []
|
| 316 |
+
if not ignore_collisions:
|
| 317 |
+
if self._robot_shapes is None:
|
| 318 |
+
self._robot_shapes = arm.get_objects_in_tree(
|
| 319 |
+
object_type=ObjectType.SHAPE)
|
| 320 |
+
# First check if we are colliding with anything
|
| 321 |
+
colliding = arm.check_arm_collision()
|
| 322 |
+
if colliding:
|
| 323 |
+
# Disable collisions with the objects that we are colliding with
|
| 324 |
+
grasped_objects = gripper.get_grasped_objects()
|
| 325 |
+
colliding_shapes = [
|
| 326 |
+
s for s in scene.pyrep.get_objects_in_tree(
|
| 327 |
+
object_type = ObjectType.SHAPE) if (
|
| 328 |
+
s.is_collidable() and
|
| 329 |
+
s not in self._robot_shapes and
|
| 330 |
+
s not in grasped_objects and
|
| 331 |
+
arm.check_arm_collision(
|
| 332 |
+
s))]
|
| 333 |
+
[s.set_collidable(False) for s in colliding_shapes]
|
| 334 |
+
|
| 335 |
+
try:
|
| 336 |
+
# try once with collision checking (if ignore_collisions is true)
|
| 337 |
+
try:
|
| 338 |
+
path = arm.get_path(
|
| 339 |
+
action[:3],
|
| 340 |
+
quaternion=action[3:],
|
| 341 |
+
ignore_collisions=ignore_collisions,
|
| 342 |
+
relative_to=relative_to,
|
| 343 |
+
trials=200, #..TODO was 100
|
| 344 |
+
max_configs=10,
|
| 345 |
+
max_time_ms=20, #..TODO was 10
|
| 346 |
+
trials_per_goal=10, #..TODO was 5
|
| 347 |
+
algorithm=Algos.RRTConnect
|
| 348 |
+
)
|
| 349 |
+
return path
|
| 350 |
+
except ConfigurationPathError as e:
|
| 351 |
+
if ignore_collisions:
|
| 352 |
+
raise InvalidActionError(
|
| 353 |
+
'A path could not be found. Most likely due to the target '
|
| 354 |
+
'being inaccessible or a collison was detected.') from e
|
| 355 |
+
else:
|
| 356 |
+
# try once more with collision checking disabled
|
| 357 |
+
path = arm.get_path(
|
| 358 |
+
action[:3],
|
| 359 |
+
quaternion=action[3:],
|
| 360 |
+
ignore_collisions=True,
|
| 361 |
+
relative_to=relative_to,
|
| 362 |
+
trials=100,
|
| 363 |
+
max_configs=10,
|
| 364 |
+
max_time_ms=10,
|
| 365 |
+
trials_per_goal=5,
|
| 366 |
+
algorithm=Algos.RRTConnect
|
| 367 |
+
)
|
| 368 |
+
except ConfigurationPathError as e:
|
| 369 |
+
raise InvalidActionError(
|
| 370 |
+
'A path could not be found. Most likely due to the target '
|
| 371 |
+
'being inaccessible or a collison was detected.') from e
|
| 372 |
+
|
| 373 |
+
|
| 374 |
+
def action_shape(self, scene: Scene) -> tuple:
|
| 375 |
+
return 7,
|
| 376 |
+
|
| 377 |
+
|
| 378 |
+
|
| 379 |
+
class UnimanualEndEffectorPoseViaPlanning(EndEffectorPoseViaPlanning):
|
| 380 |
+
|
| 381 |
+
def __init__(self,
|
| 382 |
+
absolute_mode: bool = True,
|
| 383 |
+
frame: str = 'world',
|
| 384 |
+
collision_checking: bool = False,
|
| 385 |
+
robot_name: str = ''):
|
| 386 |
+
super().__init__(absolute_mode, frame, collision_checking)
|
| 387 |
+
self.robot_name = robot_name
|
| 388 |
+
|
| 389 |
+
def action(self, scene: Scene, action: np.ndarray, ignore_collisions: bool = True):
|
| 390 |
+
assert_action_shape(action, (7,))
|
| 391 |
+
assert_unit_quaternion(action[3:])
|
| 392 |
+
if self.robot_name == 'right':
|
| 393 |
+
path = self.get_path(scene, action, ignore_collisions, scene.robot.right_arm, scene.robot.right_gripper)
|
| 394 |
+
elif self.robot_name == 'left':
|
| 395 |
+
path = self.get_path(scene, action, ignore_collisions, scene.robot.left_arm, scene.robot.left_gripper)
|
| 396 |
+
else:
|
| 397 |
+
logging.error('Invalid robot name')
|
| 398 |
+
|
| 399 |
+
if not path:
|
| 400 |
+
logging.warning('No path found')
|
| 401 |
+
return
|
| 402 |
+
done = False
|
| 403 |
+
while not done:
|
| 404 |
+
done = path.step()
|
| 405 |
+
scene.step()
|
| 406 |
+
if self._callable_each_step is not None:
|
| 407 |
+
# Record observations
|
| 408 |
+
self._callable_each_step(scene.get_observation())
|
| 409 |
+
success, terminate = scene.task.success()
|
| 410 |
+
# If the task succeeds while traversing path, then break early
|
| 411 |
+
if success and self._callable_each_step is None:
|
| 412 |
+
break
|
| 413 |
+
|
| 414 |
+
class BimanualEndEffectorPoseViaPlanning(EndEffectorPoseViaPlanning):
|
| 415 |
+
|
| 416 |
+
|
| 417 |
+
def action(self, scene: Scene, action: np.ndarray, ignore_collisions):
|
| 418 |
+
|
| 419 |
+
assert_action_shape(action, self.action_shape(scene))
|
| 420 |
+
|
| 421 |
+
right_action = action[:7]
|
| 422 |
+
left_action = action[7:]
|
| 423 |
+
|
| 424 |
+
right_ignore_collision = ignore_collisions[0]
|
| 425 |
+
left_ignore_collison = ignore_collisions[1]
|
| 426 |
+
|
| 427 |
+
assert_unit_quaternion(right_action[3:])
|
| 428 |
+
assert_unit_quaternion(left_action[3:])
|
| 429 |
+
|
| 430 |
+
right_done = True
|
| 431 |
+
left_done = True
|
| 432 |
+
try:
|
| 433 |
+
right_path = self.get_path(scene, right_action, right_ignore_collision, scene.robot.right_arm, scene.robot.right_gripper)
|
| 434 |
+
if right_path:
|
| 435 |
+
right_done = False
|
| 436 |
+
else:
|
| 437 |
+
logging.warning("right path is none")
|
| 438 |
+
except (ConfigurationPathError, InvalidActionError):
|
| 439 |
+
pass
|
| 440 |
+
|
| 441 |
+
try:
|
| 442 |
+
left_path = self.get_path(scene, left_action, left_ignore_collison, scene.robot.left_arm, scene.robot.left_gripper)
|
| 443 |
+
if left_path:
|
| 444 |
+
left_done = False
|
| 445 |
+
else:
|
| 446 |
+
logging.warning("left path is none")
|
| 447 |
+
except (ConfigurationPathError, InvalidActionError):
|
| 448 |
+
pass
|
| 449 |
+
|
| 450 |
+
|
| 451 |
+
done = False
|
| 452 |
+
|
| 453 |
+
while not done:
|
| 454 |
+
if not right_done and right_path:
|
| 455 |
+
right_done = right_path.step()
|
| 456 |
+
if not left_done and left_path:
|
| 457 |
+
left_done = left_path.step()
|
| 458 |
+
|
| 459 |
+
done = right_done and left_done
|
| 460 |
+
scene.step()
|
| 461 |
+
if self._callable_each_step is not None:
|
| 462 |
+
self._callable_each_step(scene.get_observation())
|
| 463 |
+
|
| 464 |
+
success, terminate = scene.task.success()
|
| 465 |
+
# If the task succeeds while traversing path, then break early
|
| 466 |
+
if success:
|
| 467 |
+
break
|
| 468 |
+
|
| 469 |
+
def action_shape(self, scene: Scene) -> tuple:
|
| 470 |
+
return 14,
|
| 471 |
+
|
| 472 |
+
def unimanual_action_shape(self, scene: Scene) -> tuple:
|
| 473 |
+
return 7,
|
| 474 |
+
|
| 475 |
+
|
| 476 |
+
class EndEffectorPoseViaIK(ArmActionMode):
|
| 477 |
+
"""High-level action where target pose is given and reached via IK.
|
| 478 |
+
|
| 479 |
+
Given a target pose, IK via inverse Jacobian is performed. This requires
|
| 480 |
+
the target pose to be close to the current pose, otherwise the action
|
| 481 |
+
will fail. It is up to the user to constrain the action to
|
| 482 |
+
meaningful values.
|
| 483 |
+
|
| 484 |
+
The decision to apply collision checking is a crucial trade off!
|
| 485 |
+
With collision checking enabled, you are guaranteed collision free paths,
|
| 486 |
+
but this may not be applicable for task that do require some collision.
|
| 487 |
+
E.g. using this mode on pushing object will mean that the generated
|
| 488 |
+
path will actively avoid not pushing the object.
|
| 489 |
+
"""
|
| 490 |
+
|
| 491 |
+
def __init__(self,
|
| 492 |
+
absolute_mode: bool = True,
|
| 493 |
+
frame: str = 'world',
|
| 494 |
+
collision_checking: bool = False):
|
| 495 |
+
"""
|
| 496 |
+
Args:
|
| 497 |
+
absolute_mode: If we should opperate in 'absolute', or 'delta' mode.
|
| 498 |
+
frame: Either 'world' or 'end effector'.
|
| 499 |
+
collision_checking: IF collision checking is enabled.
|
| 500 |
+
"""
|
| 501 |
+
self._absolute_mode = absolute_mode
|
| 502 |
+
self._frame = frame
|
| 503 |
+
self._collision_checking = collision_checking
|
| 504 |
+
if frame not in ['world', 'end effector']:
|
| 505 |
+
raise ValueError(
|
| 506 |
+
"Expected frame to one of: 'world, 'end effector'")
|
| 507 |
+
|
| 508 |
+
def action(self, scene: Scene, action: np.ndarray):
|
| 509 |
+
assert_action_shape(action, (7,))
|
| 510 |
+
assert_unit_quaternion(action[3:])
|
| 511 |
+
if not self._absolute_mode and self._frame != 'end effector':
|
| 512 |
+
action = calculate_delta_pose(scene.robot, action)
|
| 513 |
+
relative_to = None if self._frame == 'world' else scene.robot.arm.get_tip()
|
| 514 |
+
|
| 515 |
+
try:
|
| 516 |
+
joint_positions = scene.robot.arm.solve_ik_via_jacobian(
|
| 517 |
+
action[:3], quaternion=action[3:], relative_to=relative_to)
|
| 518 |
+
scene.robot.arm.set_joint_target_positions(joint_positions)
|
| 519 |
+
except IKError as e:
|
| 520 |
+
raise InvalidActionError(
|
| 521 |
+
'Could not perform IK via Jacobian; most likely due to current '
|
| 522 |
+
'end-effector pose being too far from the given target pose. '
|
| 523 |
+
'Try limiting/bounding your action space.') from e
|
| 524 |
+
done = False
|
| 525 |
+
prev_values = None
|
| 526 |
+
# Move until reached target joint positions or until we stop moving
|
| 527 |
+
# (e.g. when we collide wth something)
|
| 528 |
+
while not done:
|
| 529 |
+
scene.step()
|
| 530 |
+
cur_positions = scene.robot.arm.get_joint_positions()
|
| 531 |
+
reached = np.allclose(cur_positions, joint_positions, atol=0.01)
|
| 532 |
+
not_moving = False
|
| 533 |
+
if prev_values is not None:
|
| 534 |
+
not_moving = np.allclose(
|
| 535 |
+
cur_positions, prev_values, atol=0.001)
|
| 536 |
+
prev_values = cur_positions
|
| 537 |
+
done = reached or not_moving
|
| 538 |
+
|
| 539 |
+
def action_shape(self, scene: Scene) -> tuple:
|
| 540 |
+
return 7,
|
external/rlbench/rlbench/action_modes/gripper_action_modes.py
ADDED
|
@@ -0,0 +1,355 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from abc import abstractmethod
|
| 2 |
+
|
| 3 |
+
import numpy as np
|
| 4 |
+
|
| 5 |
+
from rlbench.backend.exceptions import InvalidActionError
|
| 6 |
+
from rlbench.backend.scene import Scene
|
| 7 |
+
|
| 8 |
+
import logging
|
| 9 |
+
from abc import ABC
|
| 10 |
+
|
| 11 |
+
|
| 12 |
+
def assert_action_shape(action: np.ndarray, expected_shape: tuple):
|
| 13 |
+
if np.shape(action) != expected_shape:
|
| 14 |
+
raise InvalidActionError(
|
| 15 |
+
'Expected the action shape to be: %s, but was shape: %s' % (
|
| 16 |
+
str(expected_shape), str(np.shape(action))))
|
| 17 |
+
|
| 18 |
+
|
| 19 |
+
class GripperActionMode(ABC):
|
| 20 |
+
|
| 21 |
+
def action(self, scene: Scene, action: np.ndarray):
|
| 22 |
+
self.action_pre_step(scene, action)
|
| 23 |
+
self.action_step(scene)
|
| 24 |
+
self.action_post_step(scene, action)
|
| 25 |
+
|
| 26 |
+
def action_step(self, scene: Scene):
|
| 27 |
+
scene.step()
|
| 28 |
+
|
| 29 |
+
def action_pre_step(self, scene: Scene, action: np.ndarray):
|
| 30 |
+
pass
|
| 31 |
+
|
| 32 |
+
def action_post_step(self, scene: Scene, action: np.ndarray):
|
| 33 |
+
pass
|
| 34 |
+
|
| 35 |
+
@abstractmethod
|
| 36 |
+
def action_shape(self, scene: Scene):
|
| 37 |
+
pass
|
| 38 |
+
|
| 39 |
+
@abstractmethod
|
| 40 |
+
def action_bounds(self):
|
| 41 |
+
pass
|
| 42 |
+
|
| 43 |
+
|
| 44 |
+
class Discrete(GripperActionMode):
|
| 45 |
+
"""Control if the gripper is open or closed in a discrete manner.
|
| 46 |
+
|
| 47 |
+
Action values > 0.5 will be discretised to 1 (open), and values < 0.5
|
| 48 |
+
will be discretised to 0 (closed).
|
| 49 |
+
"""
|
| 50 |
+
|
| 51 |
+
def __init__(self, attach_grasped_objects: bool = True,
|
| 52 |
+
detach_before_open: bool = True):
|
| 53 |
+
self._attach_grasped_objects = attach_grasped_objects
|
| 54 |
+
self._detach_before_open = detach_before_open
|
| 55 |
+
|
| 56 |
+
def _actuate(self, scene, action):
|
| 57 |
+
done = False
|
| 58 |
+
while not done:
|
| 59 |
+
done = scene.robot.gripper.actuate(action, velocity=0.2)
|
| 60 |
+
scene.pyrep.step()
|
| 61 |
+
scene.task.step()
|
| 62 |
+
|
| 63 |
+
def action(self, scene: Scene, action: np.ndarray):
|
| 64 |
+
assert_action_shape(action, self.action_shape(scene.robot))
|
| 65 |
+
if 0.0 > action[0] > 1.0:
|
| 66 |
+
raise InvalidActionError(
|
| 67 |
+
'Gripper action expected to be within 0 and 1.')
|
| 68 |
+
open_condition = all(
|
| 69 |
+
x > 0.9 for x in scene.robot.gripper.get_open_amount())
|
| 70 |
+
current_ee = 1.0 if open_condition else 0.0
|
| 71 |
+
action = float(action[0] > 0.5)
|
| 72 |
+
|
| 73 |
+
if current_ee != action:
|
| 74 |
+
done = False
|
| 75 |
+
if not self._detach_before_open:
|
| 76 |
+
self._actuate(scene, action)
|
| 77 |
+
if action == 0.0 and self._attach_grasped_objects:
|
| 78 |
+
# If gripper close action, the check for grasp.
|
| 79 |
+
for g_obj in scene.task.get_graspable_objects():
|
| 80 |
+
scene.robot.gripper.grasp(g_obj)
|
| 81 |
+
else:
|
| 82 |
+
# If gripper open action, the check for un-grasp.
|
| 83 |
+
scene.robot.gripper.release()
|
| 84 |
+
if self._detach_before_open:
|
| 85 |
+
self._actuate(scene, action)
|
| 86 |
+
if action == 1.0:
|
| 87 |
+
# Step a few more times to allow objects to drop
|
| 88 |
+
for _ in range(10):
|
| 89 |
+
scene.pyrep.step()
|
| 90 |
+
scene.task.step()
|
| 91 |
+
|
| 92 |
+
def action_shape(self, scene: Scene) -> tuple:
|
| 93 |
+
return 1,
|
| 94 |
+
|
| 95 |
+
def action_bounds(self):
|
| 96 |
+
"""Get the action bounds.
|
| 97 |
+
|
| 98 |
+
Returns: Returns the min and max of the action.
|
| 99 |
+
"""
|
| 100 |
+
return np.array([0]), np.array([1])
|
| 101 |
+
|
| 102 |
+
|
| 103 |
+
|
| 104 |
+
class GripperJointPosition(GripperActionMode):
|
| 105 |
+
"""Control the target joint positions absolute or delta) of the gripper.
|
| 106 |
+
|
| 107 |
+
The action mode opoerates in absolute mode or delta mode, where delta
|
| 108 |
+
mode takes the current joint positions and adds the new joint positions
|
| 109 |
+
to get a set of target joint positions. The robot uses a simple control
|
| 110 |
+
loop to execute until the desired poses have been reached.
|
| 111 |
+
It os the users responsibility to ensure that the action lies within
|
| 112 |
+
a usuable range.
|
| 113 |
+
|
| 114 |
+
Control if the gripper is open or closed in a discrete manner.
|
| 115 |
+
|
| 116 |
+
Action values > 0.5 will be discretised to 1 (open), and values < 0.5
|
| 117 |
+
will be discretised to 0 (closed).
|
| 118 |
+
"""
|
| 119 |
+
|
| 120 |
+
def __init__(self, attach_grasped_objects: bool = True,
|
| 121 |
+
detach_before_open: bool = True,
|
| 122 |
+
absolute_mode: bool = True):
|
| 123 |
+
self._attach_grasped_objects = attach_grasped_objects
|
| 124 |
+
self._detach_before_open = detach_before_open
|
| 125 |
+
self._absolute_mode = absolute_mode
|
| 126 |
+
self._control_mode_set = False
|
| 127 |
+
|
| 128 |
+
def action_pre_step(self, scene: Scene, action: np.ndarray):
|
| 129 |
+
if not self._control_mode_set:
|
| 130 |
+
scene.robot.gripper.set_control_loop_enabled(True)
|
| 131 |
+
self._control_mode_set = True
|
| 132 |
+
assert_action_shape(action, self.action_shape(scene.robot))
|
| 133 |
+
action = action.repeat(2) # use same action for both joints
|
| 134 |
+
a = action if self._absolute_mode else np.array(
|
| 135 |
+
scene.robot.gripper.get_joint_positions())
|
| 136 |
+
scene.robot.gripper.set_joint_target_positions(a)
|
| 137 |
+
|
| 138 |
+
def action_post_step(self, scene: Scene, action: np.ndarray):
|
| 139 |
+
scene.robot.gripper.set_joint_target_positions(
|
| 140 |
+
scene.robot.gripper.get_joint_positions())
|
| 141 |
+
|
| 142 |
+
def action_shape(self, scene: Scene) -> tuple:
|
| 143 |
+
return 1,
|
| 144 |
+
|
| 145 |
+
def action_bounds(self):
|
| 146 |
+
"""Get the action bounds.
|
| 147 |
+
|
| 148 |
+
Returns: Returns the min and max of the action.
|
| 149 |
+
"""
|
| 150 |
+
return np.array([0]), np.array([0.04])
|
| 151 |
+
|
| 152 |
+
|
| 153 |
+
class BimanualGripperJointPosition(GripperJointPosition):
|
| 154 |
+
|
| 155 |
+
def action_pre_step(self, scene: Scene, action: np.ndarray):
|
| 156 |
+
|
| 157 |
+
if not self._control_mode_set:
|
| 158 |
+
scene.robot.right_gripper.set_control_loop_enabled(True)
|
| 159 |
+
scene.robot.left_gripper.set_control_loop_enabled(True)
|
| 160 |
+
self._control_mode_set = True
|
| 161 |
+
|
| 162 |
+
assert_action_shape(action, self.action_shape(scene.robot))
|
| 163 |
+
|
| 164 |
+
right_action = action[:1].repeat(2)
|
| 165 |
+
left_action = action[1:].repeat(2)
|
| 166 |
+
|
| 167 |
+
if not self._absolute_mode:
|
| 168 |
+
right_action = right_action + np.array(scene.robot.gripper.get_joint_positions())
|
| 169 |
+
left_action = left_action + np.array(scene.robot.gripper.get_joint_positions())
|
| 170 |
+
|
| 171 |
+
scene.robot.right_gripper.set_joint_target_positions(right_action)
|
| 172 |
+
scene.robot.left_gripper.set_joint_target_positions(left_action)
|
| 173 |
+
|
| 174 |
+
def action_post_step(self, scene: Scene, action: np.ndarray):
|
| 175 |
+
scene.robot.right_gripper.set_joint_target_positions(
|
| 176 |
+
scene.robot.right_gripper.get_joint_positions())
|
| 177 |
+
|
| 178 |
+
scene.robot.left_gripper.set_joint_target_positions(
|
| 179 |
+
scene.robot.left_gripper.get_joint_positions())
|
| 180 |
+
|
| 181 |
+
def action_shape(self, scene: Scene) -> tuple:
|
| 182 |
+
return 2,
|
| 183 |
+
|
| 184 |
+
|
| 185 |
+
|
| 186 |
+
class UnimanualDiscrete(GripperActionMode):
|
| 187 |
+
"""Control if the gripper is open or closed in a discrete manner.
|
| 188 |
+
|
| 189 |
+
Action values > 0.5 will be discretised to 1 (open), and values < 0.5
|
| 190 |
+
will be discretised to 0 (closed).
|
| 191 |
+
"""
|
| 192 |
+
|
| 193 |
+
def __init__(self, attach_grasped_objects: bool = True,
|
| 194 |
+
detach_before_open: bool = True,
|
| 195 |
+
robot_name: str = 'left'):
|
| 196 |
+
self._attach_grasped_objects = attach_grasped_objects
|
| 197 |
+
self._detach_before_open = detach_before_open
|
| 198 |
+
self.robot_name = robot_name
|
| 199 |
+
|
| 200 |
+
|
| 201 |
+
def _actuate(self, scene, action):
|
| 202 |
+
done = False
|
| 203 |
+
while not done:
|
| 204 |
+
if self.robot_name == 'right':
|
| 205 |
+
done = scene.robot.right_gripper.actuate(action, velocity=0.2)
|
| 206 |
+
elif self.robot_name == 'left':
|
| 207 |
+
done = scene.robot.left_gripper.actuate(action, velocity=0.2)
|
| 208 |
+
else:
|
| 209 |
+
done = scene.robot.gripper.actuate(action, velocity=0.2)
|
| 210 |
+
|
| 211 |
+
scene.pyrep.step()
|
| 212 |
+
scene.task.step()
|
| 213 |
+
|
| 214 |
+
def action(self, scene: Scene, action: np.ndarray):
|
| 215 |
+
assert_action_shape(action, self.action_shape(scene.robot))
|
| 216 |
+
if 0.0 > action[0] > 1.0:
|
| 217 |
+
raise InvalidActionError(
|
| 218 |
+
'Gripper action expected to be within 0 and 1.')
|
| 219 |
+
if self.robot_name == 'right':
|
| 220 |
+
open_condition = all(x > 0.9 for x in scene.robot.right_gripper.get_open_amount())
|
| 221 |
+
else:
|
| 222 |
+
open_condition = all(x > 0.9 for x in scene.robot.left_gripper.get_open_amount())
|
| 223 |
+
current_ee = 1.0 if open_condition else 0.0
|
| 224 |
+
action = float(action[0] > 0.5)
|
| 225 |
+
|
| 226 |
+
if current_ee != action:
|
| 227 |
+
done = False
|
| 228 |
+
if not self._detach_before_open:
|
| 229 |
+
self._actuate(scene, action)
|
| 230 |
+
if action == 0.0 and self._attach_grasped_objects:
|
| 231 |
+
# If gripper close action, the check for grasp.
|
| 232 |
+
for g_obj in scene.task.get_graspable_objects():
|
| 233 |
+
if self.robot_name == 'right':
|
| 234 |
+
scene.robot.right_gripper.grasp(g_obj)
|
| 235 |
+
else:
|
| 236 |
+
scene.robot.left_gripper.grasp(g_obj)
|
| 237 |
+
else:
|
| 238 |
+
# If gripper open action, the check for un-grasp.
|
| 239 |
+
if self.robot_name == 'right':
|
| 240 |
+
scene.robot.right_gripper.release()
|
| 241 |
+
else:
|
| 242 |
+
scene.robot.left_gripper.release()
|
| 243 |
+
if self._detach_before_open:
|
| 244 |
+
self._actuate(scene, action)
|
| 245 |
+
if action == 1.0:
|
| 246 |
+
# Step a few more times to allow objects to drop
|
| 247 |
+
for _ in range(10):
|
| 248 |
+
scene.pyrep.step()
|
| 249 |
+
scene.task.step()
|
| 250 |
+
|
| 251 |
+
|
| 252 |
+
def action_shape(self, scene: Scene) -> tuple:
|
| 253 |
+
return 1,
|
| 254 |
+
|
| 255 |
+
def action_bounds(self):
|
| 256 |
+
"""Get the action bounds.
|
| 257 |
+
|
| 258 |
+
Returns: Returns the min and max of the action.
|
| 259 |
+
"""
|
| 260 |
+
return np.array([0]), np.array([0.04])
|
| 261 |
+
|
| 262 |
+
|
| 263 |
+
|
| 264 |
+
class BimanualDiscrete(Discrete):
|
| 265 |
+
|
| 266 |
+
def _actuate(self, scene, action):
|
| 267 |
+
|
| 268 |
+
right_action = action[0]
|
| 269 |
+
left_action = action[1]
|
| 270 |
+
done = False
|
| 271 |
+
right_done = False
|
| 272 |
+
left_done = False
|
| 273 |
+
|
| 274 |
+
while not done:
|
| 275 |
+
if not right_done:
|
| 276 |
+
right_done = scene.robot.right_gripper.actuate(right_action, velocity=0.2)
|
| 277 |
+
if not left_done:
|
| 278 |
+
left_done = scene.robot.left_gripper.actuate(left_action, velocity=0.2)
|
| 279 |
+
done = right_done and left_done
|
| 280 |
+
scene.pyrep.step()
|
| 281 |
+
scene.task.step()
|
| 282 |
+
|
| 283 |
+
def action(self, scene: Scene, action: np.ndarray):
|
| 284 |
+
assert_action_shape(action, self.action_shape(scene.robot))
|
| 285 |
+
if 0.0 > action[0] > 1.0:
|
| 286 |
+
raise InvalidActionError(
|
| 287 |
+
'Gripper action expected to be within 0 and 1.')
|
| 288 |
+
|
| 289 |
+
if 0.0 > action[1] > 1.0:
|
| 290 |
+
raise InvalidActionError(
|
| 291 |
+
'Gripper action expected to be within 0 and 1.')
|
| 292 |
+
|
| 293 |
+
right_open_condition = all(
|
| 294 |
+
x > 0.9 for x in scene.robot.right_gripper.get_open_amount())
|
| 295 |
+
|
| 296 |
+
left_open_condition = all(
|
| 297 |
+
x > 0.9 for x in scene.robot.left_gripper.get_open_amount())
|
| 298 |
+
|
| 299 |
+
right_current_ee = 1.0 if right_open_condition else 0.0
|
| 300 |
+
left_current_ee = 1.0 if left_open_condition else 0.0
|
| 301 |
+
|
| 302 |
+
right_action = float(action[0] > 0.5)
|
| 303 |
+
left_action = float(action[1] > 0.5)
|
| 304 |
+
|
| 305 |
+
if right_current_ee != right_action or left_current_ee != left_action:
|
| 306 |
+
if not self._detach_before_open:
|
| 307 |
+
self._actuate(scene, action)
|
| 308 |
+
|
| 309 |
+
|
| 310 |
+
if right_current_ee != right_action:
|
| 311 |
+
if right_action == 0.0 and self._attach_grasped_objects:
|
| 312 |
+
# If gripper close action, the check for grasp.
|
| 313 |
+
left_grasped_objects = scene.robot.left_gripper.get_grasped_objects()
|
| 314 |
+
for g_obj in scene.task.get_graspable_objects():
|
| 315 |
+
if g_obj in left_grasped_objects:
|
| 316 |
+
logging.warning("Object with name %s is already grasped by left robot", g_obj.get_name())
|
| 317 |
+
else:
|
| 318 |
+
scene.robot.right_gripper.grasp(g_obj)
|
| 319 |
+
else:
|
| 320 |
+
# If gripper open action, the check for un-grasp.
|
| 321 |
+
scene.robot.right_gripper.release()
|
| 322 |
+
if left_current_ee != left_action:
|
| 323 |
+
if left_action == 0.0 and self._attach_grasped_objects:
|
| 324 |
+
right_grasped_objects = scene.robot.right_gripper.get_grasped_objects()
|
| 325 |
+
# If gripper close action, the check for grasp.
|
| 326 |
+
for g_obj in scene.task.get_graspable_objects():
|
| 327 |
+
if g_obj in right_grasped_objects:
|
| 328 |
+
logging.warning("Object with name %s is already grasped by right robot", g_obj.get_name())
|
| 329 |
+
else:
|
| 330 |
+
scene.robot.left_gripper.grasp(g_obj)
|
| 331 |
+
else:
|
| 332 |
+
# If gripper open action, the check for un-grasp.
|
| 333 |
+
scene.robot.left_gripper.release()
|
| 334 |
+
|
| 335 |
+
if right_current_ee != right_action or left_current_ee != left_action:
|
| 336 |
+
if self._detach_before_open:
|
| 337 |
+
self._actuate(scene, action)
|
| 338 |
+
if right_action == 1.0 or left_action == 1.0:
|
| 339 |
+
# Step a few more times to allow objects to drop
|
| 340 |
+
for _ in range(10):
|
| 341 |
+
scene.pyrep.step()
|
| 342 |
+
scene.task.step()
|
| 343 |
+
|
| 344 |
+
def action_shape(self, scene: Scene) -> tuple:
|
| 345 |
+
return 2,
|
| 346 |
+
|
| 347 |
+
def unimanual_action_shape(self, scene: Scene) -> tuple:
|
| 348 |
+
return 1,
|
| 349 |
+
|
| 350 |
+
def action_bounds(self):
|
| 351 |
+
"""Get the action bounds.
|
| 352 |
+
|
| 353 |
+
Returns: Returns the min and max of the action.
|
| 354 |
+
"""
|
| 355 |
+
return np.array([0]), np.array([0.04])
|
external/rlbench/rlbench/assets/procedural_objects/000/000.jpg
ADDED
|
external/rlbench/rlbench/assets/procedural_objects/000/000.mtl
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Blender MTL File: 'None'
|
| 2 |
+
# Material Count: 1
|
| 3 |
+
|
| 4 |
+
newmtl 000_mtl
|
| 5 |
+
Ns 96.078431
|
| 6 |
+
Ka 0.000000 0.000000 0.000000
|
| 7 |
+
Kd 0.300113 0.644390 0.268083
|
| 8 |
+
Ks 0.500000 0.500000 0.500000
|
| 9 |
+
Ni 1.000000
|
| 10 |
+
d 1.000000
|
| 11 |
+
illum 2
|
| 12 |
+
map_Kd 000.png
|
external/rlbench/rlbench/assets/procedural_objects/000/000.obj
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
external/rlbench/rlbench/assets/procedural_objects/000/000.png
ADDED
|
external/rlbench/rlbench/assets/procedural_objects/000/000.urdf
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
<robot name="blob000">
|
| 3 |
+
<link name="random_obj_000">
|
| 4 |
+
<contact>
|
| 5 |
+
<lateral_friction value="1.0"/>
|
| 6 |
+
<rolling_friction value="0.0"/>
|
| 7 |
+
<inertia_scaling value="3.0"/>
|
| 8 |
+
<contact_cfm value="0.0"/>
|
| 9 |
+
<contact_erp value="1.0"/>
|
| 10 |
+
</contact>
|
| 11 |
+
<inertial>
|
| 12 |
+
<origin rpy="0 0 0" xyz="0 0 0"/>
|
| 13 |
+
<mass value="0.0914"/>
|
| 14 |
+
<inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="0"/>
|
| 15 |
+
</inertial>
|
| 16 |
+
<visual>
|
| 17 |
+
<origin rpy="0 0 0" xyz="0 0 0"/>
|
| 18 |
+
<geometry>
|
| 19 |
+
<mesh filename="000.obj" scale="0.0076 0.0076 0.0076"/>
|
| 20 |
+
</geometry>
|
| 21 |
+
<material name="blockmat">
|
| 22 |
+
<color rgba="0.54 0.51 1.00 1"/>
|
| 23 |
+
</material>
|
| 24 |
+
</visual>
|
| 25 |
+
<collision>
|
| 26 |
+
<origin rpy="0 0 0" xyz="0 0 0"/>
|
| 27 |
+
<geometry>
|
| 28 |
+
<mesh filename="000_coll.obj" scale="0.0076 0.0076 0.0076"/>
|
| 29 |
+
</geometry>
|
| 30 |
+
</collision>
|
| 31 |
+
</link>
|
| 32 |
+
</robot>
|
external/rlbench/rlbench/assets/procedural_objects/000/000_BKUP.obj
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
external/rlbench/rlbench/assets/procedural_objects/000/000_coll.mtl
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Blender MTL File: 'None'
|
| 2 |
+
# Material Count: 1
|
| 3 |
+
|
| 4 |
+
newmtl None
|
| 5 |
+
Ns 0
|
| 6 |
+
Ka 0.000000 0.000000 0.000000
|
| 7 |
+
Kd 0.8 0.8 0.8
|
| 8 |
+
Ks 0.8 0.8 0.8
|
| 9 |
+
d 1
|
| 10 |
+
illum 2
|
external/rlbench/rlbench/assets/procedural_objects/000/000_coll.obj
ADDED
|
@@ -0,0 +1,612 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
o convex_0
|
| 2 |
+
v 1.838294 -1.840837 -1.255292
|
| 3 |
+
v -0.026924 -1.393016 -1.255292
|
| 4 |
+
v -0.026924 -1.393016 -1.217907
|
| 5 |
+
v 0.196603 0.062330 -1.255292
|
| 6 |
+
v 1.801152 -2.773957 -2.822649
|
| 7 |
+
v 1.577172 -2.325860 -1.217907
|
| 8 |
+
v 1.726643 -2.213696 -2.785264
|
| 9 |
+
v 1.577172 -1.132320 -1.217907
|
| 10 |
+
v 2.286481 -2.661794 -2.300040
|
| 11 |
+
v 0.905685 -2.139013 -1.292677
|
| 12 |
+
v 1.427928 -2.288379 -2.673265
|
| 13 |
+
v 0.122094 0.062330 -1.255292
|
| 14 |
+
v 2.249113 -2.773957 -2.225426
|
| 15 |
+
v 0.122094 0.062330 -1.217907
|
| 16 |
+
v 1.614540 -1.429941 -1.703288
|
| 17 |
+
v 2.062500 -2.736477 -2.785106
|
| 18 |
+
v 1.838294 -1.691193 -1.217907
|
| 19 |
+
v 1.763785 -2.736199 -2.598651
|
| 20 |
+
v 1.689049 -2.325860 -1.255292
|
| 21 |
+
v 1.726643 -2.102088 -2.635879
|
| 22 |
+
v 0.271338 -1.653990 -1.217907
|
| 23 |
+
v 1.763785 -1.429941 -1.330063
|
| 24 |
+
v 1.390560 -2.363340 -2.635879
|
| 25 |
+
v 2.286481 -2.736477 -2.225426
|
| 26 |
+
v 0.681931 -1.952722 -1.852358
|
| 27 |
+
v 1.651908 -2.251177 -2.785264
|
| 28 |
+
v 1.539805 -1.094839 -1.255292
|
| 29 |
+
v 1.913256 -2.363062 -2.673265
|
| 30 |
+
v 0.047585 -1.393016 -1.330063
|
| 31 |
+
v 0.868543 -2.102088 -1.217907
|
| 32 |
+
v 1.577172 -2.624314 -2.524037
|
| 33 |
+
v 1.241315 -2.064886 -2.486495
|
| 34 |
+
v 2.286481 -2.773957 -2.412038
|
| 35 |
+
v 2.137010 -2.736477 -2.150655
|
| 36 |
+
f 18 13 34
|
| 37 |
+
f 3 6 8
|
| 38 |
+
f 2 3 12
|
| 39 |
+
f 4 7 12
|
| 40 |
+
f 3 8 14
|
| 41 |
+
f 8 4 14
|
| 42 |
+
f 12 3 14
|
| 43 |
+
f 4 12 14
|
| 44 |
+
f 5 7 16
|
| 45 |
+
f 8 6 17
|
| 46 |
+
f 5 13 18
|
| 47 |
+
f 6 13 19
|
| 48 |
+
f 1 17 19
|
| 49 |
+
f 17 6 19
|
| 50 |
+
f 7 4 20
|
| 51 |
+
f 4 15 20
|
| 52 |
+
f 3 2 21
|
| 53 |
+
f 6 3 21
|
| 54 |
+
f 9 15 22
|
| 55 |
+
f 8 17 22
|
| 56 |
+
f 17 9 22
|
| 57 |
+
f 11 5 23
|
| 58 |
+
f 17 1 24
|
| 59 |
+
f 9 17 24
|
| 60 |
+
f 1 19 24
|
| 61 |
+
f 19 13 24
|
| 62 |
+
f 21 2 25
|
| 63 |
+
f 2 23 25
|
| 64 |
+
f 23 5 25
|
| 65 |
+
f 7 5 26
|
| 66 |
+
f 5 11 26
|
| 67 |
+
f 12 7 26
|
| 68 |
+
f 11 12 26
|
| 69 |
+
f 4 8 27
|
| 70 |
+
f 15 4 27
|
| 71 |
+
f 8 22 27
|
| 72 |
+
f 22 15 27
|
| 73 |
+
f 15 9 28
|
| 74 |
+
f 16 7 28
|
| 75 |
+
f 9 16 28
|
| 76 |
+
f 7 20 28
|
| 77 |
+
f 20 15 28
|
| 78 |
+
f 2 12 29
|
| 79 |
+
f 23 2 29
|
| 80 |
+
f 11 23 29
|
| 81 |
+
f 10 6 30
|
| 82 |
+
f 6 21 30
|
| 83 |
+
f 21 10 30
|
| 84 |
+
f 5 18 31
|
| 85 |
+
f 18 10 31
|
| 86 |
+
f 10 21 31
|
| 87 |
+
f 25 5 31
|
| 88 |
+
f 21 25 31
|
| 89 |
+
f 12 11 32
|
| 90 |
+
f 11 29 32
|
| 91 |
+
f 29 12 32
|
| 92 |
+
f 13 5 33
|
| 93 |
+
f 5 16 33
|
| 94 |
+
f 16 9 33
|
| 95 |
+
f 9 24 33
|
| 96 |
+
f 24 13 33
|
| 97 |
+
f 6 10 34
|
| 98 |
+
f 13 6 34
|
| 99 |
+
f 10 18 34
|
| 100 |
+
o convex_1
|
| 101 |
+
v 2.360855 1.889726 0.274745
|
| 102 |
+
v -2.565029 -2.025984 -0.434093
|
| 103 |
+
v -2.527453 -2.249799 -0.471442
|
| 104 |
+
v 0.196229 -4.787779 0.424140
|
| 105 |
+
v -1.855673 3.793211 0.498706
|
| 106 |
+
v 1.502723 0.024248 -0.732752
|
| 107 |
+
v -2.341102 4.539614 -0.546008
|
| 108 |
+
v 1.726649 -4.079383 -0.471311
|
| 109 |
+
v 1.241221 4.950294 -0.098086
|
| 110 |
+
v -2.490386 -1.279581 0.424009
|
| 111 |
+
v 1.763717 -3.630697 0.498706
|
| 112 |
+
v -1.967890 -4.340148 -0.508791
|
| 113 |
+
v 1.278796 2.748036 0.536055
|
| 114 |
+
v -1.706388 -3.071158 0.536055
|
| 115 |
+
v -1.669321 -1.803224 -0.732621
|
| 116 |
+
v 1.875934 3.009858 -0.508791
|
| 117 |
+
v 2.622357 -0.049653 -0.172915
|
| 118 |
+
v -0.922898 5.062201 0.312094
|
| 119 |
+
v -0.251117 -5.498286 0.050915
|
| 120 |
+
v -1.296109 1.031416 0.610753
|
| 121 |
+
v 1.390505 -2.511621 -0.732621
|
| 122 |
+
v -2.079600 -3.518789 0.424009
|
| 123 |
+
v -0.362827 1.777819 -0.732752
|
| 124 |
+
v 2.398430 -2.138947 0.349443
|
| 125 |
+
v -0.064258 5.248010 -0.322178
|
| 126 |
+
v 0.793367 -1.653310 0.610753
|
| 127 |
+
v 2.398430 -0.795000 -0.508791
|
| 128 |
+
v 1.652007 3.980076 0.349311
|
| 129 |
+
v 1.166578 -4.974644 0.274745
|
| 130 |
+
v -2.378169 2.412314 0.424009
|
| 131 |
+
v 0.644082 -4.862736 -0.434093
|
| 132 |
+
v -2.565029 2.971852 -0.508659
|
| 133 |
+
v 2.136928 3.382531 -0.247481
|
| 134 |
+
v 2.173995 0.099205 0.498706
|
| 135 |
+
v -2.042532 -0.122499 -0.732752
|
| 136 |
+
v -1.407819 -4.563964 0.386660
|
| 137 |
+
v 1.204153 4.315799 -0.433962
|
| 138 |
+
v 0.159161 4.427706 0.461357
|
| 139 |
+
v 0.420155 5.287072 0.162830
|
| 140 |
+
v 2.099861 -3.220017 -0.471311
|
| 141 |
+
v 2.025218 -3.780610 0.274745
|
| 142 |
+
v -0.997540 2.188498 0.610753
|
| 143 |
+
v -1.296109 -5.012650 -0.396876
|
| 144 |
+
v -2.154242 1.740868 0.536055
|
| 145 |
+
v 1.091936 -5.087606 -0.135434
|
| 146 |
+
v 2.248638 2.039640 -0.471311
|
| 147 |
+
v -2.154242 -4.153284 -0.508791
|
| 148 |
+
v 0.681657 1.181330 0.610753
|
| 149 |
+
v -1.109250 -0.944914 0.610753
|
| 150 |
+
v -2.117175 -1.280637 0.536055
|
| 151 |
+
v 1.987644 -0.869957 0.536055
|
| 152 |
+
v -2.341102 4.539614 -0.471442
|
| 153 |
+
v -2.378169 -3.034208 -0.546008
|
| 154 |
+
v 1.763717 3.308630 -0.508791
|
| 155 |
+
v 1.726649 3.308630 0.424009
|
| 156 |
+
v -2.565029 2.113541 -0.284830
|
| 157 |
+
v 0.159161 -2.437719 -0.732752
|
| 158 |
+
v -0.138900 -5.498286 -0.023782
|
| 159 |
+
v -0.288185 5.248010 -0.322178
|
| 160 |
+
v 2.398430 1.740868 0.274745
|
| 161 |
+
v 1.614432 -3.780610 0.498706
|
| 162 |
+
v -2.154242 4.539614 -0.546008
|
| 163 |
+
v -2.378169 -3.183066 -0.471442
|
| 164 |
+
v -1.743963 3.942069 0.498706
|
| 165 |
+
f 52 86 98
|
| 166 |
+
f 55 40 61
|
| 167 |
+
f 38 53 63
|
| 168 |
+
f 55 42 65
|
| 169 |
+
f 46 55 65
|
| 170 |
+
f 37 36 66
|
| 171 |
+
f 62 35 67
|
| 172 |
+
f 43 62 67
|
| 173 |
+
f 57 40 69
|
| 174 |
+
f 41 57 69
|
| 175 |
+
f 66 41 69
|
| 176 |
+
f 38 48 70
|
| 177 |
+
f 53 38 70
|
| 178 |
+
f 48 56 70
|
| 179 |
+
f 59 43 71
|
| 180 |
+
f 43 67 71
|
| 181 |
+
f 72 62 73
|
| 182 |
+
f 43 59 73
|
| 183 |
+
f 62 43 73
|
| 184 |
+
f 52 72 73
|
| 185 |
+
f 42 55 74
|
| 186 |
+
f 51 58 74
|
| 187 |
+
f 61 51 74
|
| 188 |
+
f 55 61 74
|
| 189 |
+
f 58 45 75
|
| 190 |
+
f 45 63 75
|
| 191 |
+
f 42 74 75
|
| 192 |
+
f 74 58 75
|
| 193 |
+
f 54 60 76
|
| 194 |
+
f 47 72 76
|
| 195 |
+
f 46 65 77
|
| 196 |
+
f 53 70 77
|
| 197 |
+
f 39 64 78
|
| 198 |
+
f 64 44 78
|
| 199 |
+
f 76 39 78
|
| 200 |
+
f 54 76 78
|
| 201 |
+
f 65 42 79
|
| 202 |
+
f 75 63 79
|
| 203 |
+
f 42 75 79
|
| 204 |
+
f 40 50 80
|
| 205 |
+
f 61 40 80
|
| 206 |
+
f 51 61 80
|
| 207 |
+
f 50 67 80
|
| 208 |
+
f 67 51 80
|
| 209 |
+
f 49 46 81
|
| 210 |
+
f 70 56 81
|
| 211 |
+
f 46 77 81
|
| 212 |
+
f 77 70 81
|
| 213 |
+
f 47 76 82
|
| 214 |
+
f 76 60 82
|
| 215 |
+
f 48 60 83
|
| 216 |
+
f 60 54 83
|
| 217 |
+
f 44 56 84
|
| 218 |
+
f 56 48 84
|
| 219 |
+
f 78 44 84
|
| 220 |
+
f 54 78 84
|
| 221 |
+
f 48 83 84
|
| 222 |
+
f 83 54 84
|
| 223 |
+
f 45 58 85
|
| 224 |
+
f 60 45 85
|
| 225 |
+
f 58 68 85
|
| 226 |
+
f 68 47 85
|
| 227 |
+
f 82 60 85
|
| 228 |
+
f 47 82 85
|
| 229 |
+
f 52 41 86
|
| 230 |
+
f 64 39 86
|
| 231 |
+
f 41 66 86
|
| 232 |
+
f 66 64 86
|
| 233 |
+
f 37 66 87
|
| 234 |
+
f 69 49 87
|
| 235 |
+
f 66 69 87
|
| 236 |
+
f 49 81 87
|
| 237 |
+
f 50 40 88
|
| 238 |
+
f 40 57 88
|
| 239 |
+
f 67 50 88
|
| 240 |
+
f 71 67 88
|
| 241 |
+
f 35 62 89
|
| 242 |
+
f 47 68 89
|
| 243 |
+
f 72 47 89
|
| 244 |
+
f 62 72 89
|
| 245 |
+
f 36 44 90
|
| 246 |
+
f 44 64 90
|
| 247 |
+
f 66 36 90
|
| 248 |
+
f 64 66 90
|
| 249 |
+
f 46 49 91
|
| 250 |
+
f 55 46 91
|
| 251 |
+
f 40 55 91
|
| 252 |
+
f 49 69 91
|
| 253 |
+
f 69 40 91
|
| 254 |
+
f 63 53 92
|
| 255 |
+
f 77 65 92
|
| 256 |
+
f 53 77 92
|
| 257 |
+
f 79 63 92
|
| 258 |
+
f 65 79 92
|
| 259 |
+
f 41 52 93
|
| 260 |
+
f 59 41 93
|
| 261 |
+
f 73 59 93
|
| 262 |
+
f 52 73 93
|
| 263 |
+
f 58 51 94
|
| 264 |
+
f 67 35 94
|
| 265 |
+
f 51 67 94
|
| 266 |
+
f 68 58 94
|
| 267 |
+
f 35 89 94
|
| 268 |
+
f 89 68 94
|
| 269 |
+
f 48 38 95
|
| 270 |
+
f 45 60 95
|
| 271 |
+
f 60 48 95
|
| 272 |
+
f 38 63 95
|
| 273 |
+
f 63 45 95
|
| 274 |
+
f 57 41 96
|
| 275 |
+
f 41 59 96
|
| 276 |
+
f 59 71 96
|
| 277 |
+
f 88 57 96
|
| 278 |
+
f 71 88 96
|
| 279 |
+
f 36 37 97
|
| 280 |
+
f 44 36 97
|
| 281 |
+
f 56 44 97
|
| 282 |
+
f 81 56 97
|
| 283 |
+
f 37 87 97
|
| 284 |
+
f 87 81 97
|
| 285 |
+
f 72 52 98
|
| 286 |
+
f 39 76 98
|
| 287 |
+
f 76 72 98
|
| 288 |
+
f 86 39 98
|
| 289 |
+
o convex_2
|
| 290 |
+
v 0.457704 -0.832967 0.685392
|
| 291 |
+
v -1.184240 0.733886 0.610760
|
| 292 |
+
v -1.184240 0.733886 0.648076
|
| 293 |
+
v 0.532402 0.696632 0.610760
|
| 294 |
+
v 0.569575 -1.243581 0.610760
|
| 295 |
+
v -0.661708 1.442804 0.685392
|
| 296 |
+
v -0.997496 -0.646424 0.648076
|
| 297 |
+
v 0.457704 0.621850 0.685392
|
| 298 |
+
v -0.885625 -0.385373 0.685392
|
| 299 |
+
v -0.736405 1.554840 0.610760
|
| 300 |
+
v -0.997496 -0.646424 0.610760
|
| 301 |
+
v 0.607100 -1.243581 0.648076
|
| 302 |
+
v -1.109543 0.920429 0.685392
|
| 303 |
+
v 0.532402 0.696632 0.648076
|
| 304 |
+
f 106 110 112
|
| 305 |
+
f 100 102 103
|
| 306 |
+
f 101 100 105
|
| 307 |
+
f 104 99 106
|
| 308 |
+
f 99 104 107
|
| 309 |
+
f 102 100 108
|
| 310 |
+
f 100 103 109
|
| 311 |
+
f 105 100 109
|
| 312 |
+
f 103 105 109
|
| 313 |
+
f 103 102 110
|
| 314 |
+
f 105 103 110
|
| 315 |
+
f 106 99 110
|
| 316 |
+
f 99 107 110
|
| 317 |
+
f 107 105 110
|
| 318 |
+
f 100 101 111
|
| 319 |
+
f 101 105 111
|
| 320 |
+
f 107 104 111
|
| 321 |
+
f 105 107 111
|
| 322 |
+
f 108 100 111
|
| 323 |
+
f 104 108 111
|
| 324 |
+
f 104 106 112
|
| 325 |
+
f 102 108 112
|
| 326 |
+
f 108 104 112
|
| 327 |
+
f 110 102 112
|
| 328 |
+
o convex_3
|
| 329 |
+
v 0.308426 0.622095 0.797413
|
| 330 |
+
v -1.072282 0.696617 0.685392
|
| 331 |
+
v -1.072282 0.696617 0.722759
|
| 332 |
+
v 0.196496 -0.460144 0.722759
|
| 333 |
+
v -0.437673 0.361179 1.095867
|
| 334 |
+
v -0.512342 1.331196 0.685392
|
| 335 |
+
v -0.773608 -0.086831 0.685392
|
| 336 |
+
v 0.420502 0.622095 0.685392
|
| 337 |
+
v -0.027363 0.659444 0.983886
|
| 338 |
+
v -0.661679 1.181801 0.797413
|
| 339 |
+
v 0.308426 -0.422795 0.685392
|
| 340 |
+
v -0.475081 0.509873 1.095867
|
| 341 |
+
v 0.308426 -0.422795 0.722759
|
| 342 |
+
v -0.773608 -0.086831 0.722759
|
| 343 |
+
v -1.072282 0.883361 0.722759
|
| 344 |
+
v -0.512342 1.331196 0.722759
|
| 345 |
+
v -1.034874 0.472524 0.722759
|
| 346 |
+
v -0.363005 0.398528 1.095867
|
| 347 |
+
v -0.699086 1.331196 0.685392
|
| 348 |
+
v -0.064770 0.771315 0.946600
|
| 349 |
+
v -0.549603 0.435526 1.058540
|
| 350 |
+
v 0.420502 0.622095 0.722759
|
| 351 |
+
v 0.047306 0.509873 0.946600
|
| 352 |
+
f 130 125 135
|
| 353 |
+
f 114 118 119
|
| 354 |
+
f 119 118 120
|
| 355 |
+
f 116 119 123
|
| 356 |
+
f 119 120 123
|
| 357 |
+
f 117 116 125
|
| 358 |
+
f 116 123 125
|
| 359 |
+
f 123 120 125
|
| 360 |
+
f 116 117 126
|
| 361 |
+
f 119 116 126
|
| 362 |
+
f 114 115 127
|
| 363 |
+
f 124 122 127
|
| 364 |
+
f 120 118 128
|
| 365 |
+
f 122 124 128
|
| 366 |
+
f 115 114 129
|
| 367 |
+
f 114 119 129
|
| 368 |
+
f 119 126 129
|
| 369 |
+
f 124 117 130
|
| 370 |
+
f 121 124 130
|
| 371 |
+
f 117 125 130
|
| 372 |
+
f 118 114 131
|
| 373 |
+
f 114 127 131
|
| 374 |
+
f 127 122 131
|
| 375 |
+
f 128 118 131
|
| 376 |
+
f 122 128 131
|
| 377 |
+
f 121 113 132
|
| 378 |
+
f 124 121 132
|
| 379 |
+
f 128 124 132
|
| 380 |
+
f 117 124 133
|
| 381 |
+
f 126 117 133
|
| 382 |
+
f 127 115 133
|
| 383 |
+
f 124 127 133
|
| 384 |
+
f 115 129 133
|
| 385 |
+
f 129 126 133
|
| 386 |
+
f 113 125 134
|
| 387 |
+
f 125 120 134
|
| 388 |
+
f 120 128 134
|
| 389 |
+
f 132 113 134
|
| 390 |
+
f 128 132 134
|
| 391 |
+
f 113 121 135
|
| 392 |
+
f 125 113 135
|
| 393 |
+
f 121 130 135
|
| 394 |
+
o convex_4
|
| 395 |
+
v -1.072406 -0.833526 -0.993945
|
| 396 |
+
v -1.669395 -1.728823 -0.770079
|
| 397 |
+
v -1.669395 -1.728823 -0.732752
|
| 398 |
+
v -1.520007 -0.609608 -0.732752
|
| 399 |
+
v -1.631948 -1.206597 -1.143253
|
| 400 |
+
v -1.258920 -1.840968 -0.732752
|
| 401 |
+
v -0.848525 -0.684247 -0.732752
|
| 402 |
+
v -1.408067 -1.579545 -1.180532
|
| 403 |
+
v -1.184346 -0.609608 -0.993945
|
| 404 |
+
v -1.258920 -1.243731 -1.217907
|
| 405 |
+
v -0.848525 -0.908165 -0.770079
|
| 406 |
+
v -1.445353 -0.572226 -0.919434
|
| 407 |
+
v -1.557294 -1.728823 -0.993945
|
| 408 |
+
v -0.885812 -0.572226 -0.770079
|
| 409 |
+
v -1.333413 -1.132082 -1.217907
|
| 410 |
+
v -1.594661 -0.908165 -0.732752
|
| 411 |
+
v -1.258920 -1.803462 -0.807406
|
| 412 |
+
v -1.557294 -1.840968 -0.770079
|
| 413 |
+
f 148 141 153
|
| 414 |
+
f 137 138 140
|
| 415 |
+
f 139 138 141
|
| 416 |
+
f 139 141 142
|
| 417 |
+
f 144 136 145
|
| 418 |
+
f 142 141 146
|
| 419 |
+
f 145 136 146
|
| 420 |
+
f 140 139 147
|
| 421 |
+
f 137 140 148
|
| 422 |
+
f 140 143 148
|
| 423 |
+
f 139 142 149
|
| 424 |
+
f 136 144 149
|
| 425 |
+
f 146 136 149
|
| 426 |
+
f 142 146 149
|
| 427 |
+
f 147 139 149
|
| 428 |
+
f 144 147 149
|
| 429 |
+
f 143 140 150
|
| 430 |
+
f 145 143 150
|
| 431 |
+
f 144 145 150
|
| 432 |
+
f 140 147 150
|
| 433 |
+
f 147 144 150
|
| 434 |
+
f 138 139 151
|
| 435 |
+
f 139 140 151
|
| 436 |
+
f 140 138 151
|
| 437 |
+
f 143 145 152
|
| 438 |
+
f 146 141 152
|
| 439 |
+
f 145 146 152
|
| 440 |
+
f 141 148 152
|
| 441 |
+
f 148 143 152
|
| 442 |
+
f 138 137 153
|
| 443 |
+
f 141 138 153
|
| 444 |
+
f 137 148 153
|
| 445 |
+
o convex_5
|
| 446 |
+
v -2.005165 -0.534732 -0.770079
|
| 447 |
+
v -1.035075 -0.086948 -0.732752
|
| 448 |
+
v -0.997789 -0.161642 -0.732752
|
| 449 |
+
v -1.147041 -0.534732 -0.956670
|
| 450 |
+
v -0.923003 -0.572055 -0.732752
|
| 451 |
+
v -1.893199 -0.310935 -0.919343
|
| 452 |
+
v -2.005165 -0.161642 -0.732752
|
| 453 |
+
v -1.035075 -0.086948 -0.770079
|
| 454 |
+
v -2.005165 -0.534732 -0.732752
|
| 455 |
+
v -1.184328 -0.572055 -0.956670
|
| 456 |
+
v -1.669267 -0.086948 -0.770079
|
| 457 |
+
f 155 161 164
|
| 458 |
+
f 156 155 158
|
| 459 |
+
f 158 155 160
|
| 460 |
+
f 159 154 160
|
| 461 |
+
f 155 156 161
|
| 462 |
+
f 158 157 161
|
| 463 |
+
f 156 158 161
|
| 464 |
+
f 157 159 161
|
| 465 |
+
f 160 154 162
|
| 466 |
+
f 158 160 162
|
| 467 |
+
f 157 158 163
|
| 468 |
+
f 154 159 163
|
| 469 |
+
f 159 157 163
|
| 470 |
+
f 162 154 163
|
| 471 |
+
f 158 162 163
|
| 472 |
+
f 160 155 164
|
| 473 |
+
f 159 160 164
|
| 474 |
+
f 161 159 164
|
| 475 |
+
o convex_6
|
| 476 |
+
v 1.763890 -1.504990 -1.105901
|
| 477 |
+
v -0.475168 -1.654191 -0.956695
|
| 478 |
+
v -0.475168 -1.654191 -0.919379
|
| 479 |
+
v -0.213559 0.659444 -0.956695
|
| 480 |
+
v 0.085042 0.136805 -1.217877
|
| 481 |
+
v 0.905525 -2.102085 -1.217877
|
| 482 |
+
v 1.465289 -2.176830 -0.919379
|
| 483 |
+
v 1.539939 -0.945123 -0.919379
|
| 484 |
+
v 1.614589 -1.169070 -1.217877
|
| 485 |
+
v -0.064259 -1.355788 -1.217877
|
| 486 |
+
v 1.652026 -2.251286 -1.217877
|
| 487 |
+
v -0.138909 0.659444 -0.919379
|
| 488 |
+
v 0.532720 -2.102085 -0.919379
|
| 489 |
+
v 1.689239 -1.504990 -0.919379
|
| 490 |
+
v 0.122255 0.211550 -1.180562
|
| 491 |
+
v 1.502726 -2.288803 -1.217877
|
| 492 |
+
v 1.801326 -1.765876 -1.217877
|
| 493 |
+
v -0.138909 0.659444 -0.956695
|
| 494 |
+
v 1.465289 -0.870378 -0.994040
|
| 495 |
+
v 1.614589 -2.288803 -1.143246
|
| 496 |
+
v 1.428075 -0.982062 -1.217877
|
| 497 |
+
v 1.315989 -2.213769 -0.919379
|
| 498 |
+
v 0.607370 -1.915078 -1.217877
|
| 499 |
+
v -0.101918 0.435497 -1.068614
|
| 500 |
+
v 0.532720 -2.102085 -0.956695
|
| 501 |
+
f 180 177 189
|
| 502 |
+
f 166 167 168
|
| 503 |
+
f 167 171 172
|
| 504 |
+
f 170 169 173
|
| 505 |
+
f 172 165 173
|
| 506 |
+
f 166 169 174
|
| 507 |
+
f 169 170 174
|
| 508 |
+
f 170 173 175
|
| 509 |
+
f 168 167 176
|
| 510 |
+
f 167 172 176
|
| 511 |
+
f 167 166 177
|
| 512 |
+
f 171 167 177
|
| 513 |
+
f 165 172 178
|
| 514 |
+
f 172 171 178
|
| 515 |
+
f 170 175 180
|
| 516 |
+
f 173 165 181
|
| 517 |
+
f 175 173 181
|
| 518 |
+
f 165 178 181
|
| 519 |
+
f 168 176 182
|
| 520 |
+
f 179 168 182
|
| 521 |
+
f 172 173 183
|
| 522 |
+
f 176 172 183
|
| 523 |
+
f 182 176 183
|
| 524 |
+
f 178 171 184
|
| 525 |
+
f 180 175 184
|
| 526 |
+
f 175 181 184
|
| 527 |
+
f 181 178 184
|
| 528 |
+
f 173 169 185
|
| 529 |
+
f 169 179 185
|
| 530 |
+
f 179 182 185
|
| 531 |
+
f 183 173 185
|
| 532 |
+
f 182 183 185
|
| 533 |
+
f 171 177 186
|
| 534 |
+
f 177 180 186
|
| 535 |
+
f 184 171 186
|
| 536 |
+
f 180 184 186
|
| 537 |
+
f 170 166 187
|
| 538 |
+
f 166 174 187
|
| 539 |
+
f 174 170 187
|
| 540 |
+
f 166 168 188
|
| 541 |
+
f 169 166 188
|
| 542 |
+
f 168 179 188
|
| 543 |
+
f 179 169 188
|
| 544 |
+
f 166 170 189
|
| 545 |
+
f 177 166 189
|
| 546 |
+
f 170 180 189
|
| 547 |
+
o convex_7
|
| 548 |
+
v 1.427970 -0.795728 -0.919350
|
| 549 |
+
v -0.811045 -1.952489 -0.770101
|
| 550 |
+
v -0.811045 -1.952489 -0.732770
|
| 551 |
+
v -0.437549 1.479919 -0.770101
|
| 552 |
+
v 1.614473 -1.280605 -0.732770
|
| 553 |
+
v -0.549647 -1.728790 -0.919350
|
| 554 |
+
v 1.427970 -2.325714 -0.882001
|
| 555 |
+
v -0.325696 0.808035 -0.919350
|
| 556 |
+
v 1.204019 0.136546 -0.732770
|
| 557 |
+
v 1.390767 -2.512721 -0.732770
|
| 558 |
+
v -0.661744 1.330787 -0.732770
|
| 559 |
+
v 1.689367 -1.430131 -0.919350
|
| 560 |
+
v 1.502620 -0.161719 -0.770101
|
| 561 |
+
v 0.532168 -2.176581 -0.919350
|
| 562 |
+
v 0.159407 -2.363194 -0.770101
|
| 563 |
+
v -0.288249 1.517794 -0.770101
|
| 564 |
+
v -0.661744 1.330787 -0.770101
|
| 565 |
+
v -0.213844 0.845516 -0.919350
|
| 566 |
+
v -0.288249 1.517794 -0.732770
|
| 567 |
+
v 1.427970 -2.251148 -0.919350
|
| 568 |
+
v 1.278669 -2.512721 -0.770101
|
| 569 |
+
v 0.159407 -2.363194 -0.732770
|
| 570 |
+
v 1.502620 -0.161719 -0.732770
|
| 571 |
+
f 201 202 212
|
| 572 |
+
f 190 195 197
|
| 573 |
+
f 192 194 198
|
| 574 |
+
f 194 192 199
|
| 575 |
+
f 191 192 200
|
| 576 |
+
f 192 198 200
|
| 577 |
+
f 195 190 201
|
| 578 |
+
f 194 199 201
|
| 579 |
+
f 199 196 201
|
| 580 |
+
f 201 190 202
|
| 581 |
+
f 195 201 203
|
| 582 |
+
f 192 191 204
|
| 583 |
+
f 191 195 204
|
| 584 |
+
f 195 203 204
|
| 585 |
+
f 198 202 205
|
| 586 |
+
f 195 191 206
|
| 587 |
+
f 193 197 206
|
| 588 |
+
f 197 195 206
|
| 589 |
+
f 191 200 206
|
| 590 |
+
f 200 193 206
|
| 591 |
+
f 197 193 207
|
| 592 |
+
f 190 197 207
|
| 593 |
+
f 202 190 207
|
| 594 |
+
f 193 205 207
|
| 595 |
+
f 205 202 207
|
| 596 |
+
f 193 200 208
|
| 597 |
+
f 200 198 208
|
| 598 |
+
f 205 193 208
|
| 599 |
+
f 198 205 208
|
| 600 |
+
f 201 196 209
|
| 601 |
+
f 196 203 209
|
| 602 |
+
f 203 201 209
|
| 603 |
+
f 196 199 210
|
| 604 |
+
f 203 196 210
|
| 605 |
+
f 204 203 210
|
| 606 |
+
f 204 210 211
|
| 607 |
+
f 199 192 211
|
| 608 |
+
f 192 204 211
|
| 609 |
+
f 210 199 211
|
| 610 |
+
f 198 194 212
|
| 611 |
+
f 194 201 212
|
| 612 |
+
f 202 198 212
|
external/rlbench/rlbench/assets/procedural_objects/000/test.py
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/usr/bin/env python
|
| 2 |
+
|
| 3 |
+
import sys
|
| 4 |
+
import os
|
| 5 |
+
import subprocess
|
| 6 |
+
|
| 7 |
+
# Script taken from doing the needed operation
|
| 8 |
+
# (Filters > Remeshing, Simplification and Reconstruction >
|
| 9 |
+
# Quadric Edge Collapse Decimation, with parameters:
|
| 10 |
+
# 0.9 percentage reduction (10%), 0.3 Quality threshold (70%)
|
| 11 |
+
# Target number of faces is ignored with those parameters
|
| 12 |
+
# conserving face normals, planar simplification and
|
| 13 |
+
# post-simplimfication cleaning)
|
| 14 |
+
# And going to Filter > Show current filter script
|
| 15 |
+
filter_script_mlx = """<!DOCTYPE FilterScript>
|
| 16 |
+
<FilterScript>
|
| 17 |
+
<filter name="Quadric Edge Collapse Decimation">
|
| 18 |
+
<Param type="RichInt" value="64" name="TargetFaceNum"/>
|
| 19 |
+
<Param type="RichFloat" value="0.0" name="TargetPerc"/>
|
| 20 |
+
<Param type="RichFloat" value="0.3" name="QualityThr"/>
|
| 21 |
+
<Param type="RichBool" value="false" name="PreserveBoundary"/>
|
| 22 |
+
<Param type="RichFloat" value="1" name="BoundaryWeight"/>
|
| 23 |
+
<Param type="RichBool" value="true" name="PreserveNormal"/>
|
| 24 |
+
<Param type="RichBool" value="false" name="PreserveTopology"/>
|
| 25 |
+
<Param type="RichBool" value="false" name="OptimalPlacement"/>
|
| 26 |
+
<Param type="RichBool" value="true" name="PlanarQuadric"/>
|
| 27 |
+
<Param type="RichBool" value="false" name="QualityWeight"/>
|
| 28 |
+
<Param type="RichBool" value="true" name="AutoClean"/>
|
| 29 |
+
<Param type="RichBool" value="false" name="Selected"/>
|
| 30 |
+
</filter>
|
| 31 |
+
</FilterScript>
|
| 32 |
+
|
| 33 |
+
"""
|
| 34 |
+
|
| 35 |
+
|
| 36 |
+
|
| 37 |
+
def create_tmp_filter_file(filename='filter_file_tmp.mlx'):
|
| 38 |
+
with open('/tmp/' + filename, 'w') as f:
|
| 39 |
+
f.write(filter_script_mlx)
|
| 40 |
+
return '/tmp/' + filename
|
| 41 |
+
|
| 42 |
+
|
| 43 |
+
def reduce_faces(in_file, out_file,
|
| 44 |
+
filter_script_path=create_tmp_filter_file()):
|
| 45 |
+
# Add input mesh
|
| 46 |
+
command = "meshlabserver -i " + in_file
|
| 47 |
+
# Add the filter script
|
| 48 |
+
command += " -s " + filter_script_path
|
| 49 |
+
# Add the output filename and output flags
|
| 50 |
+
command += " -o " + out_file + " -om vn fn"
|
| 51 |
+
# Execute command
|
| 52 |
+
print ("Going to execute: " + command)
|
| 53 |
+
output = subprocess.check_output(command, shell=True)
|
| 54 |
+
last_line = output.splitlines()[-1]
|
| 55 |
+
print ("Done:")
|
| 56 |
+
print (in_file + " > " + out_file + ": " + last_line)
|
| 57 |
+
|
| 58 |
+
|
| 59 |
+
if __name__ == '__main__':
|
| 60 |
+
if len(sys.argv) < 3:
|
| 61 |
+
print ("Usage:")
|
| 62 |
+
print (sys.argv[0] + " /path/to/input_mesh num_iterations")
|
| 63 |
+
print ("For example, reduce 10 times:")
|
| 64 |
+
print (sys.argv[0] + " /home/myuser/mymesh.dae 10")
|
| 65 |
+
exit(0)
|
| 66 |
+
|
| 67 |
+
in_mesh = sys.argv[1]
|
| 68 |
+
filename = in_mesh.split('/')[-1]
|
| 69 |
+
num_iterations = int(sys.argv[2])
|
| 70 |
+
|
| 71 |
+
folder_name = filename.replace('.', '_')
|
| 72 |
+
tmp_folder_name = '/tmp/' + folder_name + '_meshes/'
|
| 73 |
+
|
| 74 |
+
print ("Input mesh: " + in_mesh + " (filename: " + filename + ")")
|
| 75 |
+
print ("Num iterations: " + str(num_iterations))
|
| 76 |
+
print ("Output folder: " + tmp_folder_name)
|
| 77 |
+
try:
|
| 78 |
+
os.mkdir(tmp_folder_name)
|
| 79 |
+
except OSError as e:
|
| 80 |
+
print >> sys.stderr, "Exception creating folder for meshes: " + str(e)
|
| 81 |
+
exit(0)
|
| 82 |
+
for it in range(0, num_iterations):
|
| 83 |
+
if it == 0:
|
| 84 |
+
out_mesh = tmp_folder_name + folder_name + "_it" + str(it) + ".obj"
|
| 85 |
+
reduce_faces(in_mesh, out_mesh)
|
| 86 |
+
else:
|
| 87 |
+
out_mesh = tmp_folder_name + folder_name + "_it" + str(it) + ".obj"
|
| 88 |
+
reduce_faces(last_out_mesh, out_mesh)
|
| 89 |
+
last_out_mesh = out_mesh
|
| 90 |
+
|
| 91 |
+
print ("Done reducing, find the files at: " + tmp_folder_name)
|
external/rlbench/rlbench/assets/procedural_objects/001/001.mtl
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Blender MTL File: 'None'
|
| 2 |
+
# Material Count: 1
|
| 3 |
+
|
| 4 |
+
newmtl 001_mtl
|
| 5 |
+
Ns 96.078431
|
| 6 |
+
Ka 0.000000 0.000000 0.000000
|
| 7 |
+
Kd 0.575108 0.577684 0.119316
|
| 8 |
+
Ks 0.500000 0.500000 0.500000
|
| 9 |
+
Ni 1.000000
|
| 10 |
+
d 1.000000
|
| 11 |
+
illum 2
|
| 12 |
+
map_Kd 001.png
|
external/rlbench/rlbench/assets/procedural_objects/001/001.obj
ADDED
|
@@ -0,0 +1,527 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Blender v2.69 (sub 0) OBJ File: ''
|
| 2 |
+
# www.blender.org
|
| 3 |
+
mtllib 001.mtl
|
| 4 |
+
o 001_Cube.017
|
| 5 |
+
v -0.828813 0.484638 0.056215
|
| 6 |
+
v -0.860224 5.907092 0.572731
|
| 7 |
+
v -0.827642 0.359975 -0.039965
|
| 8 |
+
v -1.193388 0.358921 -0.342297
|
| 9 |
+
v -0.819609 0.219728 -0.082243
|
| 10 |
+
v -0.843937 0.626271 0.118786
|
| 11 |
+
v -0.807566 5.998513 -0.580538
|
| 12 |
+
v -1.136643 0.754140 -0.021758
|
| 13 |
+
v -0.823427 0.207180 -0.158539
|
| 14 |
+
v -0.826212 0.532455 0.247347
|
| 15 |
+
v -0.831373 0.514453 0.153837
|
| 16 |
+
v 0.838419 5.945722 0.598979
|
| 17 |
+
v -1.229472 0.611609 0.069728
|
| 18 |
+
v -0.817270 -4.537877 -0.565447
|
| 19 |
+
v -0.823156 0.084721 -0.074453
|
| 20 |
+
v -1.270055 0.257794 -0.239060
|
| 21 |
+
v -0.809669 -3.491416 0.569248
|
| 22 |
+
v -0.233287 0.540319 0.568062
|
| 23 |
+
v -0.461456 0.574500 0.568334
|
| 24 |
+
v 0.847035 5.868567 -0.600445
|
| 25 |
+
v 0.215846 -2.060792 -0.581084
|
| 26 |
+
v -0.828076 0.129908 -0.060508
|
| 27 |
+
v -0.822320 0.009696 -0.028306
|
| 28 |
+
v -0.832269 0.393635 0.165131
|
| 29 |
+
v -0.735204 0.186657 0.559879
|
| 30 |
+
v -0.171159 0.540208 0.579767
|
| 31 |
+
v -0.230804 0.148516 0.578597
|
| 32 |
+
v -0.148895 0.126255 0.570808
|
| 33 |
+
v -0.212286 0.586473 0.569196
|
| 34 |
+
v -0.498708 0.530208 0.575062
|
| 35 |
+
v 0.826181 -1.732646 0.578926
|
| 36 |
+
v 0.826706 -1.956408 0.174021
|
| 37 |
+
v 0.318923 -2.148103 -0.588994
|
| 38 |
+
v 1.171008 -7.716013 -9.122692
|
| 39 |
+
v -0.823741 -4.371838 -0.415459
|
| 40 |
+
v -0.836898 0.192309 0.022512
|
| 41 |
+
v -0.650449 0.291217 0.560481
|
| 42 |
+
v -0.578326 0.347284 0.570792
|
| 43 |
+
v -0.552358 0.579618 0.571893
|
| 44 |
+
v -0.703737 -0.410704 0.569887
|
| 45 |
+
v -0.624237 0.092980 0.564885
|
| 46 |
+
v -0.570274 -0.516855 0.575534
|
| 47 |
+
v -0.101095 0.128515 0.573049
|
| 48 |
+
v -0.107107 0.176202 0.572869
|
| 49 |
+
v -0.241429 0.089198 0.573370
|
| 50 |
+
v -0.131892 -0.136829 0.578976
|
| 51 |
+
v -0.108527 0.116044 0.574660
|
| 52 |
+
v 0.832679 -2.414327 -0.588054
|
| 53 |
+
v 0.075888 -1.290558 0.572293
|
| 54 |
+
v 0.276721 -1.392033 0.577275
|
| 55 |
+
v 0.666068 -2.287162 -0.592488
|
| 56 |
+
v 3.181626 -8.110374 -7.971702
|
| 57 |
+
v -2.540180 -4.949597 3.442383
|
| 58 |
+
v -1.044488 0.372662 0.953665
|
| 59 |
+
v -0.618815 0.329104 0.724979
|
| 60 |
+
v -0.872777 0.479831 1.067995
|
| 61 |
+
v -0.597471 0.376498 0.717010
|
| 62 |
+
v -0.251536 -2.171966 0.577213
|
| 63 |
+
v -0.387827 -0.450691 0.567003
|
| 64 |
+
v -0.455309 -0.487168 0.573349
|
| 65 |
+
v -0.842998 -0.063249 1.165817
|
| 66 |
+
v -0.773555 -0.015153 1.044849
|
| 67 |
+
v -0.637113 0.145892 0.609624
|
| 68 |
+
v 0.014013 0.026835 0.654179
|
| 69 |
+
v 0.052727 0.122435 0.584198
|
| 70 |
+
v -0.271048 -0.034009 0.670657
|
| 71 |
+
v 0.001803 -0.056289 0.573601
|
| 72 |
+
v 0.082987 0.215949 0.581561
|
| 73 |
+
v 0.003389 -0.739072 1.368672
|
| 74 |
+
v 2.053827 -1.307593 2.246425
|
| 75 |
+
v 0.618196 -12.187872 -6.142352
|
| 76 |
+
v -1.413839 -11.320259 -6.605758
|
| 77 |
+
v -0.685739 0.076355 1.278410
|
| 78 |
+
v -0.594671 0.404887 0.750736
|
| 79 |
+
v -0.362903 -0.402585 0.566713
|
| 80 |
+
v -0.792503 -0.054657 1.113703
|
| 81 |
+
v -0.809401 -0.019615 1.178259
|
| 82 |
+
v -0.821093 -0.037569 1.169557
|
| 83 |
+
v -0.819977 -0.060455 1.169406
|
| 84 |
+
v -0.325746 -0.101599 0.814254
|
| 85 |
+
v 0.044369 0.052870 0.573110
|
| 86 |
+
v -0.267026 -0.198885 0.567227
|
| 87 |
+
v -0.262183 -0.166714 0.567863
|
| 88 |
+
v -0.694979 -5.126642 4.485027
|
| 89 |
+
v -0.586985 0.246262 0.874205
|
| 90 |
+
v -0.576550 0.186767 1.006775
|
| 91 |
+
v -0.558974 0.017671 1.120057
|
| 92 |
+
v -0.587513 0.368323 0.818976
|
| 93 |
+
v -0.311188 -0.395532 0.573350
|
| 94 |
+
v -0.807734 -0.161863 1.108328
|
| 95 |
+
v -0.701793 -0.024333 1.157896
|
| 96 |
+
v -0.589044 -0.057168 1.130360
|
| 97 |
+
v -0.304988 -0.019631 0.714839
|
| 98 |
+
v 0.817366 -5.876375 0.227345
|
| 99 |
+
v 0.647132 -5.868006 0.561252
|
| 100 |
+
v 0.813537 -5.561297 0.567186
|
| 101 |
+
v 0.798778 -5.531754 0.543195
|
| 102 |
+
v 0.803801 -5.881689 0.566387
|
| 103 |
+
v -0.841911 -0.761166 0.901082
|
| 104 |
+
v -0.489708 -0.807841 1.004002
|
| 105 |
+
v -0.903919 -0.276779 1.393133
|
| 106 |
+
v -0.554075 -0.422608 1.493504
|
| 107 |
+
vt 0.903302 0.233067
|
| 108 |
+
vt 0.832252 0.163477
|
| 109 |
+
vt 0.916353 0.234495
|
| 110 |
+
vt 0.907913 0.236799
|
| 111 |
+
vt 0.914850 0.239085
|
| 112 |
+
vt 0.968133 0.295357
|
| 113 |
+
vt 0.834628 0.285917
|
| 114 |
+
vt 0.919180 0.237449
|
| 115 |
+
vt 0.988486 0.297218
|
| 116 |
+
vt 0.877413 0.232838
|
| 117 |
+
vt 0.894780 0.231339
|
| 118 |
+
vt 0.890073 0.232877
|
| 119 |
+
vt 0.888566 0.234473
|
| 120 |
+
vt 0.932447 0.236246
|
| 121 |
+
vt 0.922117 0.236242
|
| 122 |
+
vt 0.988486 0.159968
|
| 123 |
+
vt 0.921084 0.238013
|
| 124 |
+
vt 0.955595 0.434483
|
| 125 |
+
vt 0.955595 0.519771
|
| 126 |
+
vt 0.954686 0.518019
|
| 127 |
+
vt 0.832887 0.325957
|
| 128 |
+
vt 0.848590 0.327515
|
| 129 |
+
vt 0.881323 0.329102
|
| 130 |
+
vt 0.832252 0.433869
|
| 131 |
+
vt 0.891060 0.330160
|
| 132 |
+
vt 0.988224 0.434483
|
| 133 |
+
vt 0.988224 0.297218
|
| 134 |
+
vt 0.944075 0.907783
|
| 135 |
+
vt 0.948634 0.904640
|
| 136 |
+
vt 0.948634 0.950574
|
| 137 |
+
vt 0.944471 0.904545
|
| 138 |
+
vt 0.994714 0.702431
|
| 139 |
+
vt 0.891408 0.598888
|
| 140 |
+
vt 0.994714 0.594545
|
| 141 |
+
vt 0.832252 0.700882
|
| 142 |
+
vt 0.836525 0.600937
|
| 143 |
+
vt 0.858509 0.928676
|
| 144 |
+
vt 0.854691 0.914417
|
| 145 |
+
vt 0.858509 0.912499
|
| 146 |
+
vt 0.860667 0.506599
|
| 147 |
+
vt 0.859284 0.487680
|
| 148 |
+
vt 0.854691 0.435912
|
| 149 |
+
vt 0.954686 0.434483
|
| 150 |
+
vt 0.849275 0.537495
|
| 151 |
+
vt 0.878175 0.509518
|
| 152 |
+
vt 0.876764 0.513535
|
| 153 |
+
vt 0.879039 0.523927
|
| 154 |
+
vt 0.875748 0.526143
|
| 155 |
+
vt 0.880280 0.505881
|
| 156 |
+
vt 0.879201 0.523224
|
| 157 |
+
vt 0.879069 0.508739
|
| 158 |
+
vt 0.874988 0.538869
|
| 159 |
+
vt 0.872434 0.543045
|
| 160 |
+
vt 0.875406 0.538412
|
| 161 |
+
vt 0.872363 0.547912
|
| 162 |
+
vt 0.879187 0.527727
|
| 163 |
+
vt 0.879824 0.523789
|
| 164 |
+
vt 0.884607 0.535662
|
| 165 |
+
vt 0.885201 0.533682
|
| 166 |
+
vt 0.884578 0.529819
|
| 167 |
+
vt 0.879493 0.535454
|
| 168 |
+
vt 0.878728 0.536452
|
| 169 |
+
vt 0.922934 0.924594
|
| 170 |
+
vt 0.921898 0.916866
|
| 171 |
+
vt 0.922934 0.915853
|
| 172 |
+
vt 0.871743 0.550263
|
| 173 |
+
vt 0.954686 0.594545
|
| 174 |
+
vt 0.885116 0.557164
|
| 175 |
+
vt 0.885206 0.565735
|
| 176 |
+
vt 0.884544 0.560684
|
| 177 |
+
vt 0.880149 0.582970
|
| 178 |
+
vt 0.881487 0.574979
|
| 179 |
+
vt 0.882188 0.568190
|
| 180 |
+
vt 0.832252 0.590139
|
| 181 |
+
vt 0.872350 0.580037
|
| 182 |
+
vt 0.870925 0.567469
|
| 183 |
+
vt 0.878893 0.572521
|
| 184 |
+
vt 0.871281 0.556631
|
| 185 |
+
vt 0.551601 0.586327
|
| 186 |
+
vt 0.549181 0.540453
|
| 187 |
+
vt 0.563949 0.539967
|
| 188 |
+
vt 0.994697 0.159968
|
| 189 |
+
vt 0.832252 0.157212
|
| 190 |
+
vt 0.838412 0.001437
|
| 191 |
+
vt 0.994697 0.000000
|
| 192 |
+
vt 0.832252 1.493154
|
| 193 |
+
vt 0.636004 1.446036
|
| 194 |
+
vt 0.647630 0.000000
|
| 195 |
+
vt 0.832252 0.126860
|
| 196 |
+
vt 0.285798 1.323707
|
| 197 |
+
vt 0.297339 1.190827
|
| 198 |
+
vt 0.416197 1.724645
|
| 199 |
+
vt 0.234048 1.320618
|
| 200 |
+
vt 0.994697 0.019724
|
| 201 |
+
vt 1.000000 0.000000
|
| 202 |
+
vt 1.000000 0.565224
|
| 203 |
+
vt 0.202915 0.000000
|
| 204 |
+
vt 0.416197 0.359214
|
| 205 |
+
vt 0.298270 1.170520
|
| 206 |
+
vt 0.202304 1.425610
|
| 207 |
+
vt 0.203853 1.317515
|
| 208 |
+
vt 0.202830 1.160702
|
| 209 |
+
vt 0.133116 1.312723
|
| 210 |
+
vt 0.184893 1.316666
|
| 211 |
+
vt 0.000000 1.528603
|
| 212 |
+
vt 0.001474 0.140193
|
| 213 |
+
vt 0.144816 1.155086
|
| 214 |
+
vt 0.160572 1.155751
|
| 215 |
+
vt 0.955828 0.592805
|
| 216 |
+
vt 0.955595 0.489406
|
| 217 |
+
vt 0.955828 0.434483
|
| 218 |
+
vt 0.193193 1.158852
|
| 219 |
+
vt 0.417663 1.711459
|
| 220 |
+
vt 0.416197 0.322120
|
| 221 |
+
vt 0.548442 0.540355
|
| 222 |
+
vt 0.550105 0.543477
|
| 223 |
+
vt 0.619113 1.851661
|
| 224 |
+
vt 0.231578 1.851469
|
| 225 |
+
vt 0.915881 0.848973
|
| 226 |
+
vt 0.917790 0.831502
|
| 227 |
+
vt 0.917790 0.915478
|
| 228 |
+
vt 0.917013 0.909334
|
| 229 |
+
vt 0.918423 0.892743
|
| 230 |
+
vt 0.933727 0.833869
|
| 231 |
+
vt 0.944075 0.831951
|
| 232 |
+
vt 0.944075 0.915853
|
| 233 |
+
vt 0.885619 0.831256
|
| 234 |
+
vt 0.877477 0.829809
|
| 235 |
+
vt 0.885619 0.829132
|
| 236 |
+
vt 0.848655 0.920809
|
| 237 |
+
vt 0.850462 0.912499
|
| 238 |
+
vt 0.850462 0.930120
|
| 239 |
+
vt 0.955248 0.719688
|
| 240 |
+
vt 0.955248 0.772238
|
| 241 |
+
vt 0.953900 0.770504
|
| 242 |
+
vt 0.965495 0.884244
|
| 243 |
+
vt 0.959289 0.904545
|
| 244 |
+
vt 0.952642 0.902684
|
| 245 |
+
vt 0.965495 0.831951
|
| 246 |
+
vt 0.944075 0.838317
|
| 247 |
+
vt 0.945565 0.899120
|
| 248 |
+
vt 0.844108 0.802281
|
| 249 |
+
vt 0.832252 0.749416
|
| 250 |
+
vt 0.845607 0.797959
|
| 251 |
+
vt 0.851000 0.782107
|
| 252 |
+
vt 0.848824 0.789265
|
| 253 |
+
vt 0.899261 0.931252
|
| 254 |
+
vt 0.904500 0.948571
|
| 255 |
+
vt 0.895066 0.944038
|
| 256 |
+
vt 0.857258 0.726940
|
| 257 |
+
vt 0.862844 0.750859
|
| 258 |
+
vt 0.856930 0.765126
|
| 259 |
+
vt 0.904500 0.911835
|
| 260 |
+
vt 0.854691 0.912499
|
| 261 |
+
vt 0.854691 0.936427
|
| 262 |
+
vt 0.852630 0.914931
|
| 263 |
+
vt 0.915881 0.911835
|
| 264 |
+
vt 0.915881 0.948565
|
| 265 |
+
vt 0.910842 0.935948
|
| 266 |
+
vt 0.904500 0.916613
|
| 267 |
+
vt 0.919816 0.916197
|
| 268 |
+
vt 0.921898 0.915853
|
| 269 |
+
vt 0.921898 0.924353
|
| 270 |
+
vt 0.873940 0.918847
|
| 271 |
+
vt 0.890361 0.911835
|
| 272 |
+
vt 0.889969 0.922329
|
| 273 |
+
vt 0.890361 0.933592
|
| 274 |
+
vt 0.845448 0.948708
|
| 275 |
+
vt 0.843986 0.914171
|
| 276 |
+
vt 0.845341 0.912552
|
| 277 |
+
vt 0.845448 0.912499
|
| 278 |
+
vt 0.951231 0.734351
|
| 279 |
+
vt 0.953900 0.716623
|
| 280 |
+
vt 0.953900 0.772238
|
| 281 |
+
vt 0.950609 0.735869
|
| 282 |
+
vt 0.955091 0.831951
|
| 283 |
+
vt 0.950609 0.798327
|
| 284 |
+
vt 0.955091 0.776336
|
| 285 |
+
vt 0.915836 0.868191
|
| 286 |
+
vt 0.873940 0.845375
|
| 287 |
+
vt 0.881273 0.831502
|
| 288 |
+
vt 0.915880 0.856820
|
| 289 |
+
vt 0.915322 0.870080
|
| 290 |
+
vt 0.915880 0.874431
|
| 291 |
+
vt 0.872912 0.870397
|
| 292 |
+
vt 0.873940 0.876092
|
| 293 |
+
vt 0.839889 0.912499
|
| 294 |
+
vt 0.872289 0.857384
|
| 295 |
+
vt 0.843531 0.868933
|
| 296 |
+
vt 0.870499 0.848965
|
| 297 |
+
vt 0.873940 0.886432
|
| 298 |
+
vt 0.832252 0.915090
|
| 299 |
+
vt 0.842053 0.912499
|
| 300 |
+
vt 0.842053 0.927065
|
| 301 |
+
vt 0.894388 0.912332
|
| 302 |
+
vt 0.895066 0.911835
|
| 303 |
+
vt 0.895066 0.927816
|
| 304 |
+
vt 0.918033 0.915478
|
| 305 |
+
vt 0.918033 0.927408
|
| 306 |
+
vt 0.915881 0.925470
|
| 307 |
+
vt 0.852630 0.912499
|
| 308 |
+
vt 0.852630 0.931284
|
| 309 |
+
vt 0.850462 0.915601
|
| 310 |
+
vt 0.871624 0.831502
|
| 311 |
+
vt 0.871580 0.844177
|
| 312 |
+
vt 0.834451 0.856843
|
| 313 |
+
vt 0.873940 0.912499
|
| 314 |
+
vt 0.873940 0.931588
|
| 315 |
+
vt 0.872111 0.928209
|
| 316 |
+
vt 0.865777 0.919847
|
| 317 |
+
vt 0.877030 0.887296
|
| 318 |
+
vt 0.914391 0.900672
|
| 319 |
+
vt 0.914740 0.911835
|
| 320 |
+
vt 0.914315 0.881322
|
| 321 |
+
vt 0.865777 0.924499
|
| 322 |
+
vt 0.858509 0.916294
|
| 323 |
+
vt 0.861721 0.913899
|
| 324 |
+
vt 0.865777 0.912499
|
| 325 |
+
vt 0.832252 0.898768
|
| 326 |
+
vt 0.894113 0.911835
|
| 327 |
+
vt 0.894113 0.933734
|
| 328 |
+
vt 0.890361 0.932732
|
| 329 |
+
vt 0.950738 0.904545
|
| 330 |
+
vt 0.950738 0.944202
|
| 331 |
+
vt 0.948634 0.943875
|
| 332 |
+
vt 0.843986 0.951229
|
| 333 |
+
vt 0.842053 0.920745
|
| 334 |
+
vt 0.843986 0.912499
|
| 335 |
+
vt 0.918090 0.910719
|
| 336 |
+
vt 0.917790 0.880223
|
| 337 |
+
vt 0.918090 0.880214
|
| 338 |
+
vt 0.917790 0.840974
|
| 339 |
+
vt 0.918406 0.831502
|
| 340 |
+
vt 0.918406 0.880214
|
| 341 |
+
vt 0.950609 0.825798
|
| 342 |
+
vt 0.935932 0.782728
|
| 343 |
+
vt 0.948025 0.716623
|
| 344 |
+
vt 0.950609 0.765423
|
| 345 |
+
vt 0.940242 0.829464
|
| 346 |
+
vt 0.949877 0.831951
|
| 347 |
+
vt 0.850757 0.825142
|
| 348 |
+
vt 0.871416 0.831111
|
| 349 |
+
vt 0.847660 0.823305
|
| 350 |
+
vt 0.842499 0.800696
|
| 351 |
+
vt 0.873335 0.831502
|
| 352 |
+
vt 0.842660 0.822317
|
| 353 |
+
vt 0.877477 0.702431
|
| 354 |
+
vt 0.860547 0.748748
|
| 355 |
+
vt 0.851354 0.742228
|
| 356 |
+
vt 0.877477 0.831201
|
| 357 |
+
vt 0.842373 0.736781
|
| 358 |
+
vt 0.841985 0.706388
|
| 359 |
+
vt 0.846762 0.943945
|
| 360 |
+
vt 0.845448 0.913352
|
| 361 |
+
vt 0.846762 0.912499
|
| 362 |
+
vt 0.847858 0.944655
|
| 363 |
+
vt 0.846762 0.925172
|
| 364 |
+
vt 0.847858 0.912499
|
| 365 |
+
vt 0.928589 0.704335
|
| 366 |
+
vt 0.935932 0.702431
|
| 367 |
+
vt 0.935932 0.831951
|
| 368 |
+
vt 0.928833 0.737638
|
| 369 |
+
vt 0.918900 0.767390
|
| 370 |
+
vt 0.927225 0.724137
|
| 371 |
+
vt 0.922825 0.704238
|
| 372 |
+
vt 0.923444 0.704153
|
| 373 |
+
vt 0.918423 0.706446
|
| 374 |
+
vt 0.919815 0.915853
|
| 375 |
+
vt 0.919815 0.929378
|
| 376 |
+
vt 0.918423 0.928996
|
| 377 |
+
vt 0.912637 0.762731
|
| 378 |
+
vt 0.905125 0.704858
|
| 379 |
+
vt 0.911200 0.702879
|
| 380 |
+
vt 0.913475 0.702431
|
| 381 |
+
vt 0.918423 0.702441
|
| 382 |
+
vt 0.877477 0.754995
|
| 383 |
+
vt 0.881990 0.708623
|
| 384 |
+
vt 0.894547 0.707088
|
| 385 |
+
vt 0.918423 0.829132
|
| 386 |
+
vt 0.883489 0.821722
|
| 387 |
+
usemtl 001_mtl
|
| 388 |
+
s off
|
| 389 |
+
f 1/1 2/2 3/3
|
| 390 |
+
f 36/4 23/5 35/6 17/7
|
| 391 |
+
f 22/8 14/9 35/6 23/5
|
| 392 |
+
f 10/10 2/2 6/11 11/12
|
| 393 |
+
f 24/13 36/4 17/7 10/10
|
| 394 |
+
f 2/2 1/1 6/11
|
| 395 |
+
f 10/10 17/7 2/2
|
| 396 |
+
f 9/14 5/15 3/3 7/16
|
| 397 |
+
f 14/9 15/17 9/14
|
| 398 |
+
f 14/18 22/19 15/20
|
| 399 |
+
f 7/16 14/9 9/14
|
| 400 |
+
f 3/3 2/2 7/16
|
| 401 |
+
f 48/21 51/22 33/23 20/24
|
| 402 |
+
f 33/23 21/25 7/26 20/24
|
| 403 |
+
f 21/25 14/27 7/26
|
| 404 |
+
f 97/28 98/29 94/30
|
| 405 |
+
f 96/31 98/29 97/28
|
| 406 |
+
f 20/32 32/33 48/34
|
| 407 |
+
f 20/32 12/35 31/36 32/33
|
| 408 |
+
f 95/37 98/38 96/39
|
| 409 |
+
f 49/40 50/41 31/42 12/43
|
| 410 |
+
f 58/44 49/40 81/45 67/46
|
| 411 |
+
f 67/46 47/47 46/48 58/44
|
| 412 |
+
f 12/43 68/49 49/40
|
| 413 |
+
f 12/43 43/50 65/51 68/49
|
| 414 |
+
f 68/49 81/45 49/40
|
| 415 |
+
f 58/44 46/48 82/52 89/53
|
| 416 |
+
f 82/52 46/48 83/54
|
| 417 |
+
f 89/53 75/55 58/44
|
| 418 |
+
f 28/56 44/57 43/50 12/43
|
| 419 |
+
f 18/58 29/59 26/60 12/43
|
| 420 |
+
f 26/60 27/61 28/56 12/43
|
| 421 |
+
f 45/62 46/48 47/47 28/56
|
| 422 |
+
f 28/63 27/64 45/65
|
| 423 |
+
f 59/66 58/44 75/55
|
| 424 |
+
f 18/58 12/43 2/67 19/68
|
| 425 |
+
f 39/69 30/70 2/67
|
| 426 |
+
f 25/71 37/72 39/69 2/67
|
| 427 |
+
f 37/72 38/73 39/69
|
| 428 |
+
f 17/74 40/75 25/71
|
| 429 |
+
f 17/74 42/76 40/75
|
| 430 |
+
f 40/75 41/77 25/71
|
| 431 |
+
f 2/67 17/74 25/71
|
| 432 |
+
f 19/68 2/67 30/70
|
| 433 |
+
f 58/44 60/78 42/76 17/74
|
| 434 |
+
f 58/44 59/66 60/78
|
| 435 |
+
f 94/79 98/80 95/81
|
| 436 |
+
f 12/82 20/83 7/84 2/85
|
| 437 |
+
f 72/86 71/87 84/88 53/89
|
| 438 |
+
f 17/90 35/91 53/92
|
| 439 |
+
f 58/93 17/90 53/92
|
| 440 |
+
f 35/94 14/95 53/96
|
| 441 |
+
f 34/97 72/98 53/92 14/99
|
| 442 |
+
f 69/100 49/101 58/93 53/92
|
| 443 |
+
f 14/99 21/102 34/97
|
| 444 |
+
f 69/100 31/103 50/104 49/101
|
| 445 |
+
f 31/103 70/105 52/106 48/107
|
| 446 |
+
f 52/106 51/108 48/107
|
| 447 |
+
f 31/103 69/100 70/105
|
| 448 |
+
f 48/109 32/110 31/111
|
| 449 |
+
f 52/106 34/97 21/102 33/112
|
| 450 |
+
f 33/112 51/108 52/106
|
| 451 |
+
f 71/87 52/113 70/114 94/79
|
| 452 |
+
f 94/79 70/114 96/115 97/116
|
| 453 |
+
f 84/88 95/81 96/115 70/114
|
| 454 |
+
f 94/79 95/81 71/87
|
| 455 |
+
f 84/88 71/87 95/81
|
| 456 |
+
f 71/87 72/86 34/117 52/113
|
| 457 |
+
f 70/105 69/100 53/92 84/118
|
| 458 |
+
f 62/119 61/120 41/121 63/122
|
| 459 |
+
f 54/123 25/124 41/125 61/126
|
| 460 |
+
f 90/127 61/128 76/129
|
| 461 |
+
f 76/130 61/131 62/132
|
| 462 |
+
f 56/133 57/134 55/135
|
| 463 |
+
f 55/136 38/137 37/138 56/139
|
| 464 |
+
f 37/138 54/140 56/139
|
| 465 |
+
f 25/141 54/140 37/138
|
| 466 |
+
f 57/142 56/143 74/144
|
| 467 |
+
f 56/143 85/145 88/146 74/144
|
| 468 |
+
f 66/147 46/148 45/149
|
| 469 |
+
f 73/150 87/151 86/152 85/145
|
| 470 |
+
f 85/145 56/143 73/150
|
| 471 |
+
f 80/153 46/148 66/147
|
| 472 |
+
f 87/154 73/155 92/156
|
| 473 |
+
f 46/157 80/158 93/159 83/160
|
| 474 |
+
f 78/161 61/162 90/163
|
| 475 |
+
f 73/164 77/165 91/166 92/167
|
| 476 |
+
f 54/168 61/169 78/170 79/171
|
| 477 |
+
f 77/172 73/173 54/174 79/175
|
| 478 |
+
f 73/176 56/177 54/178
|
| 479 |
+
f 15/179 16/180 4/181 9/182
|
| 480 |
+
f 16/180 15/179 22/183
|
| 481 |
+
f 22/183 23/184 16/180
|
| 482 |
+
f 3/185 5/186 4/187
|
| 483 |
+
f 4/187 1/188 3/185
|
| 484 |
+
f 1/188 4/187 8/189 6/190
|
| 485 |
+
f 9/191 4/187 5/186
|
| 486 |
+
f 64/192 65/193 43/194
|
| 487 |
+
f 43/195 44/196 64/197
|
| 488 |
+
f 64/198 68/199 65/200
|
| 489 |
+
f 28/201 64/202 44/203
|
| 490 |
+
f 8/189 10/204 11/205 6/190
|
| 491 |
+
f 8/189 13/206 10/204
|
| 492 |
+
f 64/207 28/208 47/209
|
| 493 |
+
f 47/209 67/210 64/207
|
| 494 |
+
f 13/211 16/180 24/212 10/213
|
| 495 |
+
f 23/184 36/214 16/180
|
| 496 |
+
f 16/180 36/214 24/212
|
| 497 |
+
f 64/215 67/216 81/217
|
| 498 |
+
f 81/217 68/218 64/215
|
| 499 |
+
f 13/206 8/189 4/187 16/219
|
| 500 |
+
f 55/220 39/221 38/222
|
| 501 |
+
f 101/223 90/224 76/225
|
| 502 |
+
f 101/226 78/227 90/228
|
| 503 |
+
f 101/229 79/230 78/231
|
| 504 |
+
f 76/232 62/233 101/234
|
| 505 |
+
f 63/235 99/236 101/237 62/238
|
| 506 |
+
f 40/239 99/236 63/235 41/240
|
| 507 |
+
f 19/241 57/142 74/144 88/146
|
| 508 |
+
f 85/145 18/242 19/241 88/146
|
| 509 |
+
f 30/243 55/244 57/142 19/241
|
| 510 |
+
f 85/145 86/152 29/245 18/242
|
| 511 |
+
f 30/243 39/246 55/244
|
| 512 |
+
f 102/247 87/151 92/248 91/249
|
| 513 |
+
f 29/245 86/152 87/151
|
| 514 |
+
f 102/247 26/250 29/245 87/151
|
| 515 |
+
f 91/249 77/251 101/252 102/247
|
| 516 |
+
f 101/253 77/254 79/255
|
| 517 |
+
f 80/256 66/257 27/258
|
| 518 |
+
f 27/259 26/260 102/261 80/262
|
| 519 |
+
f 102/261 100/263 93/264 80/262
|
| 520 |
+
f 82/265 83/266 93/264
|
| 521 |
+
f 93/264 100/263 89/267 82/265
|
| 522 |
+
f 66/268 45/269 27/270
|
| 523 |
+
f 100/271 60/272 59/273 75/274
|
| 524 |
+
f 75/274 89/275 100/271
|
| 525 |
+
f 60/272 99/276 40/277 42/278
|
| 526 |
+
f 60/272 100/271 99/276
|
| 527 |
+
f 100/271 102/279 101/280 99/276
|
external/rlbench/rlbench/assets/procedural_objects/001/001.png
ADDED
|
external/rlbench/rlbench/assets/procedural_objects/001/001.urdf
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
<robot name="blob001">
|
| 3 |
+
<link name="random_obj_001">
|
| 4 |
+
<contact>
|
| 5 |
+
<lateral_friction value="1.0"/>
|
| 6 |
+
<rolling_friction value="0.0"/>
|
| 7 |
+
<inertia_scaling value="3.0"/>
|
| 8 |
+
<contact_cfm value="0.0"/>
|
| 9 |
+
<contact_erp value="1.0"/>
|
| 10 |
+
</contact>
|
| 11 |
+
<inertial>
|
| 12 |
+
<origin rpy="0 0 0" xyz="0 0 0"/>
|
| 13 |
+
<mass value="0.1317"/>
|
| 14 |
+
<inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="0"/>
|
| 15 |
+
</inertial>
|
| 16 |
+
<visual>
|
| 17 |
+
<origin rpy="0 0 0" xyz="0 0 0"/>
|
| 18 |
+
<geometry>
|
| 19 |
+
<mesh filename="001.obj" scale="0.0090 0.0090 0.0090"/>
|
| 20 |
+
</geometry>
|
| 21 |
+
<material name="blockmat">
|
| 22 |
+
<color rgba="0.70 0.13 0.56 1"/>
|
| 23 |
+
</material>
|
| 24 |
+
</visual>
|
| 25 |
+
<collision>
|
| 26 |
+
<origin rpy="0 0 0" xyz="0 0 0"/>
|
| 27 |
+
<geometry>
|
| 28 |
+
<mesh filename="001_coll.obj" scale="0.0090 0.0090 0.0090"/>
|
| 29 |
+
</geometry>
|
| 30 |
+
</collision>
|
| 31 |
+
</link>
|
| 32 |
+
</robot>
|
external/rlbench/rlbench/assets/procedural_objects/001/001_coll.mtl
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Blender MTL File: 'None'
|
| 2 |
+
# Material Count: 1
|
| 3 |
+
|
| 4 |
+
newmtl None
|
| 5 |
+
Ns 0
|
| 6 |
+
Ka 0.000000 0.000000 0.000000
|
| 7 |
+
Kd 0.8 0.8 0.8
|
| 8 |
+
Ks 0.8 0.8 0.8
|
| 9 |
+
d 1
|
| 10 |
+
illum 2
|
external/rlbench/rlbench/assets/procedural_objects/001/001_coll.obj
ADDED
|
@@ -0,0 +1,591 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
o convex_0
|
| 2 |
+
v 1.190970 -4.366068 -3.731546
|
| 3 |
+
v 0.527387 -12.215509 -6.163773
|
| 4 |
+
v 0.141054 -12.049546 -6.274693
|
| 5 |
+
v -0.798643 -5.140563 4.501941
|
| 6 |
+
v -2.567819 -5.029921 3.176244
|
| 7 |
+
v 3.236260 -8.124825 -7.933151
|
| 8 |
+
v 1.080184 -7.683025 -9.094472
|
| 9 |
+
v -1.461658 -11.275051 -6.662246
|
| 10 |
+
v 2.517568 -4.422157 -2.075762
|
| 11 |
+
v -0.079951 -4.422157 4.059597
|
| 12 |
+
v 0.527387 -4.366837 -4.119099
|
| 13 |
+
v 0.693283 -12.160189 -6.054189
|
| 14 |
+
v -2.236027 -4.366837 3.231036
|
| 15 |
+
v 0.859178 -5.914289 0.576969
|
| 16 |
+
v -2.567819 -5.140563 3.285828
|
| 17 |
+
v 2.572677 -4.366068 -2.516770
|
| 18 |
+
v 1.246079 -7.683025 -9.149263
|
| 19 |
+
v -0.632747 -5.195884 4.503277
|
| 20 |
+
v -1.517335 -10.999214 -5.943269
|
| 21 |
+
v 0.527387 -12.104867 -5.887140
|
| 22 |
+
v 1.246079 -7.794436 -9.149263
|
| 23 |
+
v 3.180583 -8.069505 -8.044071
|
| 24 |
+
v -1.130434 -4.366068 0.134624
|
| 25 |
+
v -0.135060 -4.366068 4.114388
|
| 26 |
+
v 0.859178 -11.938904 -6.329485
|
| 27 |
+
v 3.070364 -8.400662 -7.767439
|
| 28 |
+
v -0.743534 -5.306526 4.336229
|
| 29 |
+
v 3.070364 -8.235468 -8.044071
|
| 30 |
+
v 1.190970 -7.462510 -8.872631
|
| 31 |
+
v -1.461658 -11.109089 -6.496533
|
| 32 |
+
v -1.296330 -11.385694 -6.662246
|
| 33 |
+
v -2.567819 -4.919278 3.507668
|
| 34 |
+
v 1.411975 -4.422157 0.633097
|
| 35 |
+
v 3.180583 -7.903542 -7.822231
|
| 36 |
+
v 0.693283 -4.532031 -4.450523
|
| 37 |
+
v 2.627786 -4.697994 -2.626353
|
| 38 |
+
v 0.361491 -11.938904 -6.385613
|
| 39 |
+
v 2.627786 -4.422157 -2.571562
|
| 40 |
+
v 0.582496 -8.400662 -8.652128
|
| 41 |
+
v -1.406549 -11.385694 -6.551325
|
| 42 |
+
v -0.743534 -5.030689 4.503277
|
| 43 |
+
v -2.291137 -4.422157 3.120116
|
| 44 |
+
v 0.472278 -8.677268 -8.541207
|
| 45 |
+
v 3.125474 -7.572383 -6.993670
|
| 46 |
+
v 0.527387 -11.441015 -4.892868
|
| 47 |
+
v -1.572444 -10.666520 -5.722765
|
| 48 |
+
v 1.246079 -11.330373 -6.495197
|
| 49 |
+
v 0.804069 -11.441015 -6.717038
|
| 50 |
+
v -0.853752 -4.366068 -0.583016
|
| 51 |
+
v 1.356866 -7.683025 -9.094472
|
| 52 |
+
v 0.969965 -6.853978 -7.933151
|
| 53 |
+
v 1.688089 -4.366068 -0.031088
|
| 54 |
+
v -1.351439 -5.140563 4.170517
|
| 55 |
+
v 2.627786 -9.119067 -7.601727
|
| 56 |
+
v 0.196164 -12.049546 -6.108981
|
| 57 |
+
v -0.245846 -4.366068 4.114388
|
| 58 |
+
v -0.909429 -10.446005 -7.159382
|
| 59 |
+
v -1.572444 -10.777163 -5.722765
|
| 60 |
+
v 2.627786 -4.477479 -2.405849
|
| 61 |
+
v 0.748392 -8.787142 -8.486416
|
| 62 |
+
f 31 43 60
|
| 63 |
+
f 14 10 18
|
| 64 |
+
f 2 12 20
|
| 65 |
+
f 7 17 21
|
| 66 |
+
f 16 1 23
|
| 67 |
+
f 16 23 24
|
| 68 |
+
f 18 10 24
|
| 69 |
+
f 12 2 25
|
| 70 |
+
f 18 4 27
|
| 71 |
+
f 20 18 27
|
| 72 |
+
f 21 22 28
|
| 73 |
+
f 22 6 28
|
| 74 |
+
f 17 7 29
|
| 75 |
+
f 5 15 32
|
| 76 |
+
f 14 9 33
|
| 77 |
+
f 10 14 33
|
| 78 |
+
f 6 22 34
|
| 79 |
+
f 11 1 35
|
| 80 |
+
f 2 3 37
|
| 81 |
+
f 3 31 37
|
| 82 |
+
f 1 16 38
|
| 83 |
+
f 16 9 38
|
| 84 |
+
f 6 34 38
|
| 85 |
+
f 35 1 38
|
| 86 |
+
f 3 2 40
|
| 87 |
+
f 19 8 40
|
| 88 |
+
f 31 3 40
|
| 89 |
+
f 8 31 40
|
| 90 |
+
f 4 18 41
|
| 91 |
+
f 18 24 41
|
| 92 |
+
f 32 4 41
|
| 93 |
+
f 13 32 41
|
| 94 |
+
f 13 23 42
|
| 95 |
+
f 32 13 42
|
| 96 |
+
f 5 32 42
|
| 97 |
+
f 7 21 43
|
| 98 |
+
f 31 8 43
|
| 99 |
+
f 39 7 43
|
| 100 |
+
f 8 39 43
|
| 101 |
+
f 26 6 44
|
| 102 |
+
f 14 26 44
|
| 103 |
+
f 36 14 44
|
| 104 |
+
f 12 14 45
|
| 105 |
+
f 14 18 45
|
| 106 |
+
f 20 12 45
|
| 107 |
+
f 18 20 45
|
| 108 |
+
f 30 8 46
|
| 109 |
+
f 11 30 46
|
| 110 |
+
f 42 23 46
|
| 111 |
+
f 5 42 46
|
| 112 |
+
f 14 12 47
|
| 113 |
+
f 12 25 47
|
| 114 |
+
f 26 14 47
|
| 115 |
+
f 25 2 48
|
| 116 |
+
f 2 37 48
|
| 117 |
+
f 37 21 48
|
| 118 |
+
f 1 11 49
|
| 119 |
+
f 23 1 49
|
| 120 |
+
f 11 46 49
|
| 121 |
+
f 46 23 49
|
| 122 |
+
f 21 17 50
|
| 123 |
+
f 22 21 50
|
| 124 |
+
f 17 29 50
|
| 125 |
+
f 34 22 50
|
| 126 |
+
f 29 35 50
|
| 127 |
+
f 38 34 50
|
| 128 |
+
f 35 38 50
|
| 129 |
+
f 29 7 51
|
| 130 |
+
f 11 35 51
|
| 131 |
+
f 35 29 51
|
| 132 |
+
f 7 39 51
|
| 133 |
+
f 39 11 51
|
| 134 |
+
f 9 16 52
|
| 135 |
+
f 16 24 52
|
| 136 |
+
f 24 10 52
|
| 137 |
+
f 33 9 52
|
| 138 |
+
f 10 33 52
|
| 139 |
+
f 15 20 53
|
| 140 |
+
f 27 4 53
|
| 141 |
+
f 20 27 53
|
| 142 |
+
f 4 32 53
|
| 143 |
+
f 32 15 53
|
| 144 |
+
f 6 26 54
|
| 145 |
+
f 21 28 54
|
| 146 |
+
f 28 6 54
|
| 147 |
+
f 47 25 54
|
| 148 |
+
f 26 47 54
|
| 149 |
+
f 25 48 54
|
| 150 |
+
f 48 21 54
|
| 151 |
+
f 15 19 55
|
| 152 |
+
f 20 15 55
|
| 153 |
+
f 2 20 55
|
| 154 |
+
f 40 2 55
|
| 155 |
+
f 19 40 55
|
| 156 |
+
f 23 13 56
|
| 157 |
+
f 24 23 56
|
| 158 |
+
f 13 41 56
|
| 159 |
+
f 41 24 56
|
| 160 |
+
f 8 30 57
|
| 161 |
+
f 30 11 57
|
| 162 |
+
f 11 39 57
|
| 163 |
+
f 39 8 57
|
| 164 |
+
f 15 5 58
|
| 165 |
+
f 8 19 58
|
| 166 |
+
f 19 15 58
|
| 167 |
+
f 5 46 58
|
| 168 |
+
f 46 8 58
|
| 169 |
+
f 9 14 59
|
| 170 |
+
f 14 36 59
|
| 171 |
+
f 38 9 59
|
| 172 |
+
f 6 38 59
|
| 173 |
+
f 44 6 59
|
| 174 |
+
f 36 44 59
|
| 175 |
+
f 21 37 60
|
| 176 |
+
f 37 31 60
|
| 177 |
+
f 43 21 60
|
| 178 |
+
o convex_1
|
| 179 |
+
v 0.085427 6.026152 0.080899
|
| 180 |
+
v -0.909486 3.925023 0.357304
|
| 181 |
+
v -0.854078 0.830042 -0.582174
|
| 182 |
+
v 0.859403 0.830551 0.633834
|
| 183 |
+
v 0.859403 0.830551 -0.637555
|
| 184 |
+
v -0.688202 6.026152 -0.637555
|
| 185 |
+
v 0.859403 5.915272 -0.637555
|
| 186 |
+
v 0.859403 5.970203 0.633834
|
| 187 |
+
v -0.854078 0.830042 0.578453
|
| 188 |
+
v -0.909486 5.915272 0.578453
|
| 189 |
+
v -0.854078 6.026152 -0.582174
|
| 190 |
+
v -0.522498 5.970203 0.633834
|
| 191 |
+
v -0.190745 0.830042 -0.637555
|
| 192 |
+
v -0.135511 0.830042 0.633834
|
| 193 |
+
v -0.909486 5.970203 0.412560
|
| 194 |
+
f 72 61 75
|
| 195 |
+
f 66 61 67
|
| 196 |
+
f 64 65 67
|
| 197 |
+
f 65 66 67
|
| 198 |
+
f 67 61 68
|
| 199 |
+
f 64 67 68
|
| 200 |
+
f 62 63 69
|
| 201 |
+
f 62 69 70
|
| 202 |
+
f 63 62 71
|
| 203 |
+
f 66 63 71
|
| 204 |
+
f 61 66 71
|
| 205 |
+
f 68 61 72
|
| 206 |
+
f 64 68 72
|
| 207 |
+
f 70 69 72
|
| 208 |
+
f 63 66 73
|
| 209 |
+
f 66 65 73
|
| 210 |
+
f 69 63 73
|
| 211 |
+
f 69 73 74
|
| 212 |
+
f 65 64 74
|
| 213 |
+
f 64 72 74
|
| 214 |
+
f 72 69 74
|
| 215 |
+
f 73 65 74
|
| 216 |
+
f 62 70 75
|
| 217 |
+
f 71 62 75
|
| 218 |
+
f 61 71 75
|
| 219 |
+
f 70 72 75
|
| 220 |
+
o convex_2
|
| 221 |
+
v -0.301149 -4.255260 -1.854207
|
| 222 |
+
v 2.573013 -4.089599 -1.908884
|
| 223 |
+
v 2.573013 -4.144819 -1.908884
|
| 224 |
+
v 0.582884 -4.310480 -4.064106
|
| 225 |
+
v 0.196546 -2.044402 -0.693239
|
| 226 |
+
v 1.964936 -4.365927 -0.637555
|
| 227 |
+
v -0.743653 -4.365700 -0.637555
|
| 228 |
+
v 2.351599 -3.150172 -0.637555
|
| 229 |
+
v 2.462306 -4.310707 -2.516707
|
| 230 |
+
v 0.472502 -4.365700 -3.898396
|
| 231 |
+
v 0.859489 -2.542294 -1.024992
|
| 232 |
+
v 0.693591 -4.200039 -3.898396
|
| 233 |
+
v 2.573013 -4.365927 -2.406011
|
| 234 |
+
v 0.196546 -2.044402 -0.637555
|
| 235 |
+
v 2.462306 -3.426273 -1.080004
|
| 236 |
+
v 0.141030 -2.210517 -0.803935
|
| 237 |
+
v 2.407115 -3.371053 -0.637555
|
| 238 |
+
v -0.743653 -4.255260 -0.693239
|
| 239 |
+
v 0.472502 -4.089371 -3.677340
|
| 240 |
+
v 0.306928 -2.100077 -0.748587
|
| 241 |
+
v 0.693591 -4.365700 -4.064106
|
| 242 |
+
v 2.573013 -4.365927 -2.130276
|
| 243 |
+
v 2.573013 -4.089599 -2.074928
|
| 244 |
+
f 87 90 98
|
| 245 |
+
f 82 81 83
|
| 246 |
+
f 79 80 87
|
| 247 |
+
f 77 78 88
|
| 248 |
+
f 81 82 88
|
| 249 |
+
f 82 85 88
|
| 250 |
+
f 82 83 89
|
| 251 |
+
f 87 86 90
|
| 252 |
+
f 78 77 92
|
| 253 |
+
f 83 81 92
|
| 254 |
+
f 77 90 92
|
| 255 |
+
f 90 83 92
|
| 256 |
+
f 76 85 93
|
| 257 |
+
f 85 82 93
|
| 258 |
+
f 89 80 93
|
| 259 |
+
f 82 89 93
|
| 260 |
+
f 80 91 93
|
| 261 |
+
f 91 76 93
|
| 262 |
+
f 80 79 94
|
| 263 |
+
f 85 76 94
|
| 264 |
+
f 79 85 94
|
| 265 |
+
f 91 80 94
|
| 266 |
+
f 76 91 94
|
| 267 |
+
f 86 87 95
|
| 268 |
+
f 87 80 95
|
| 269 |
+
f 80 89 95
|
| 270 |
+
f 89 83 95
|
| 271 |
+
f 83 90 95
|
| 272 |
+
f 90 86 95
|
| 273 |
+
f 85 79 96
|
| 274 |
+
f 87 84 96
|
| 275 |
+
f 79 87 96
|
| 276 |
+
f 84 88 96
|
| 277 |
+
f 88 85 96
|
| 278 |
+
f 88 78 97
|
| 279 |
+
f 81 88 97
|
| 280 |
+
f 78 92 97
|
| 281 |
+
f 92 81 97
|
| 282 |
+
f 84 87 98
|
| 283 |
+
f 77 88 98
|
| 284 |
+
f 88 84 98
|
| 285 |
+
f 90 77 98
|
| 286 |
+
o convex_3
|
| 287 |
+
v -2.125250 -4.365841 3.231348
|
| 288 |
+
v 2.407180 -3.094912 -0.415870
|
| 289 |
+
v 2.407180 -3.150131 -0.415870
|
| 290 |
+
v -0.853970 -2.044402 -0.581904
|
| 291 |
+
v 1.522693 -2.044402 2.733707
|
| 292 |
+
v -0.743523 -4.365841 -0.637555
|
| 293 |
+
v -0.079930 -4.365841 4.061055
|
| 294 |
+
v 1.909485 -4.365841 -0.637095
|
| 295 |
+
v -0.853970 -2.044402 2.070493
|
| 296 |
+
v 0.859100 -2.044402 -0.637555
|
| 297 |
+
v 2.185831 -2.044402 1.297356
|
| 298 |
+
v -2.236152 -4.310395 3.120965
|
| 299 |
+
v -0.135381 -4.255177 4.061055
|
| 300 |
+
v -0.853970 -4.365841 -0.581904
|
| 301 |
+
v 1.301343 -4.255177 1.076591
|
| 302 |
+
v 2.407180 -3.150131 -0.637095
|
| 303 |
+
v 1.743587 -2.100075 2.346909
|
| 304 |
+
v 2.185831 -2.044402 0.965749
|
| 305 |
+
v -2.069799 -4.034077 3.065774
|
| 306 |
+
v 1.190896 -2.376393 2.955391
|
| 307 |
+
v 0.195961 -4.034077 3.839830
|
| 308 |
+
v 1.743587 -4.310395 -0.029072
|
| 309 |
+
v -0.743523 -2.044402 2.125684
|
| 310 |
+
v 2.075384 -2.100075 1.573772
|
| 311 |
+
v 0.140510 -2.100075 -0.637555
|
| 312 |
+
v -2.180701 -4.365841 2.955391
|
| 313 |
+
v -1.240763 -2.652712 2.291718
|
| 314 |
+
v 1.301343 -2.486830 2.955391
|
| 315 |
+
v -1.075319 -2.431612 2.291718
|
| 316 |
+
v 2.407180 -3.315558 -0.581904
|
| 317 |
+
v 0.140510 -4.365841 3.618606
|
| 318 |
+
v -0.245828 -4.310395 4.061055
|
| 319 |
+
f 121 127 130
|
| 320 |
+
f 99 104 105
|
| 321 |
+
f 105 104 106
|
| 322 |
+
f 103 102 107
|
| 323 |
+
f 102 103 108
|
| 324 |
+
f 106 104 108
|
| 325 |
+
f 101 100 109
|
| 326 |
+
f 108 103 109
|
| 327 |
+
f 104 99 112
|
| 328 |
+
f 102 104 112
|
| 329 |
+
f 100 101 114
|
| 330 |
+
f 106 108 114
|
| 331 |
+
f 109 103 115
|
| 332 |
+
f 109 100 116
|
| 333 |
+
f 108 109 116
|
| 334 |
+
f 100 114 116
|
| 335 |
+
f 114 108 116
|
| 336 |
+
f 110 99 117
|
| 337 |
+
f 111 103 118
|
| 338 |
+
f 103 107 121
|
| 339 |
+
f 118 103 121
|
| 340 |
+
f 111 118 121
|
| 341 |
+
f 101 109 122
|
| 342 |
+
f 109 115 122
|
| 343 |
+
f 115 113 122
|
| 344 |
+
f 113 120 122
|
| 345 |
+
f 104 102 123
|
| 346 |
+
f 102 108 123
|
| 347 |
+
f 108 104 123
|
| 348 |
+
f 99 110 124
|
| 349 |
+
f 110 102 124
|
| 350 |
+
f 112 99 124
|
| 351 |
+
f 102 112 124
|
| 352 |
+
f 107 102 125
|
| 353 |
+
f 102 110 125
|
| 354 |
+
f 117 107 125
|
| 355 |
+
f 110 117 125
|
| 356 |
+
f 111 105 126
|
| 357 |
+
f 103 111 126
|
| 358 |
+
f 115 103 126
|
| 359 |
+
f 113 115 126
|
| 360 |
+
f 105 119 126
|
| 361 |
+
f 107 117 127
|
| 362 |
+
f 121 107 127
|
| 363 |
+
f 114 101 128
|
| 364 |
+
f 106 114 128
|
| 365 |
+
f 120 106 128
|
| 366 |
+
f 101 122 128
|
| 367 |
+
f 122 120 128
|
| 368 |
+
f 105 106 129
|
| 369 |
+
f 119 105 129
|
| 370 |
+
f 106 120 129
|
| 371 |
+
f 120 113 129
|
| 372 |
+
f 113 126 129
|
| 373 |
+
f 126 119 129
|
| 374 |
+
f 99 105 130
|
| 375 |
+
f 105 111 130
|
| 376 |
+
f 117 99 130
|
| 377 |
+
f 111 121 130
|
| 378 |
+
f 127 117 130
|
| 379 |
+
o convex_4
|
| 380 |
+
v 0.416813 -1.325948 0.689111
|
| 381 |
+
v 0.030393 -0.938998 -0.637555
|
| 382 |
+
v -0.854208 -2.044272 -0.582234
|
| 383 |
+
v 1.633291 -2.044272 0.633790
|
| 384 |
+
v -0.854208 -2.044272 0.578469
|
| 385 |
+
v -0.854208 -0.717736 0.578469
|
| 386 |
+
v 0.859235 -0.717736 -0.637555
|
| 387 |
+
v 0.859235 -2.044272 -0.637555
|
| 388 |
+
v 0.859235 -0.717736 0.633790
|
| 389 |
+
v -0.854208 -0.717736 -0.582234
|
| 390 |
+
v -0.245969 -2.044272 0.689111
|
| 391 |
+
v 1.633291 -1.988956 0.689111
|
| 392 |
+
v 0.030393 -1.160131 0.689111
|
| 393 |
+
v 0.196210 -2.044272 -0.637555
|
| 394 |
+
f 132 138 144
|
| 395 |
+
f 133 134 135
|
| 396 |
+
f 133 135 136
|
| 397 |
+
f 137 134 138
|
| 398 |
+
f 134 133 138
|
| 399 |
+
f 132 137 138
|
| 400 |
+
f 137 136 139
|
| 401 |
+
f 132 133 140
|
| 402 |
+
f 133 136 140
|
| 403 |
+
f 136 137 140
|
| 404 |
+
f 137 132 140
|
| 405 |
+
f 135 134 141
|
| 406 |
+
f 136 135 141
|
| 407 |
+
f 134 137 142
|
| 408 |
+
f 139 131 142
|
| 409 |
+
f 137 139 142
|
| 410 |
+
f 131 141 142
|
| 411 |
+
f 141 134 142
|
| 412 |
+
f 131 139 143
|
| 413 |
+
f 139 136 143
|
| 414 |
+
f 141 131 143
|
| 415 |
+
f 136 141 143
|
| 416 |
+
f 133 132 144
|
| 417 |
+
f 138 133 144
|
| 418 |
+
o convex_5
|
| 419 |
+
v 1.964698 -1.988956 1.960327
|
| 420 |
+
v -0.301079 -2.044272 0.689111
|
| 421 |
+
v -0.411764 -2.044272 0.910396
|
| 422 |
+
v -0.853910 -0.717736 0.799948
|
| 423 |
+
v -0.798568 -2.044272 2.070969
|
| 424 |
+
v 2.075086 -1.270632 2.292058
|
| 425 |
+
v 1.798670 -2.044272 0.744627
|
| 426 |
+
v 1.577597 -2.044272 2.679111
|
| 427 |
+
v 0.141068 -0.717736 1.463217
|
| 428 |
+
v 0.196410 -1.160131 0.689111
|
| 429 |
+
v 2.185771 -1.878325 1.241932
|
| 430 |
+
v 1.467209 -1.933641 2.679111
|
| 431 |
+
v 1.964698 -1.215317 2.126290
|
| 432 |
+
v -0.853910 -0.717736 1.021038
|
| 433 |
+
v -0.411764 -0.717736 0.855075
|
| 434 |
+
v -0.632837 -1.657322 1.905006
|
| 435 |
+
v 2.185771 -2.044272 1.352769
|
| 436 |
+
v 0.030382 -0.717736 1.463217
|
| 437 |
+
v 1.688282 -1.988956 0.689111
|
| 438 |
+
v -0.798568 -2.044272 1.905006
|
| 439 |
+
v 2.075086 -1.436190 2.292058
|
| 440 |
+
v 1.854013 -1.215317 2.236543
|
| 441 |
+
v 2.075086 -1.988956 0.965522
|
| 442 |
+
f 163 154 167
|
| 443 |
+
f 146 147 148
|
| 444 |
+
f 147 146 149
|
| 445 |
+
f 149 146 151
|
| 446 |
+
f 149 151 152
|
| 447 |
+
f 146 148 154
|
| 448 |
+
f 152 150 156
|
| 449 |
+
f 149 152 156
|
| 450 |
+
f 153 150 157
|
| 451 |
+
f 150 155 157
|
| 452 |
+
f 148 149 158
|
| 453 |
+
f 153 148 158
|
| 454 |
+
f 148 153 159
|
| 455 |
+
f 154 148 159
|
| 456 |
+
f 153 157 159
|
| 457 |
+
f 157 155 159
|
| 458 |
+
f 149 156 160
|
| 459 |
+
f 158 149 160
|
| 460 |
+
f 145 152 161
|
| 461 |
+
f 152 151 161
|
| 462 |
+
f 155 150 161
|
| 463 |
+
f 153 158 162
|
| 464 |
+
f 160 156 162
|
| 465 |
+
f 158 160 162
|
| 466 |
+
f 151 146 163
|
| 467 |
+
f 146 154 163
|
| 468 |
+
f 148 147 164
|
| 469 |
+
f 149 148 164
|
| 470 |
+
f 147 149 164
|
| 471 |
+
f 152 145 165
|
| 472 |
+
f 150 152 165
|
| 473 |
+
f 145 161 165
|
| 474 |
+
f 161 150 165
|
| 475 |
+
f 150 153 166
|
| 476 |
+
f 156 150 166
|
| 477 |
+
f 153 162 166
|
| 478 |
+
f 162 156 166
|
| 479 |
+
f 154 159 167
|
| 480 |
+
f 159 155 167
|
| 481 |
+
f 161 151 167
|
| 482 |
+
f 155 161 167
|
| 483 |
+
f 151 163 167
|
| 484 |
+
o convex_6
|
| 485 |
+
v -1.296430 0.553545 -0.084745
|
| 486 |
+
v 0.859403 0.830042 0.633834
|
| 487 |
+
v 0.859403 -0.717735 0.633834
|
| 488 |
+
v 0.859403 0.830042 -0.637555
|
| 489 |
+
v -0.854121 -0.717735 -0.582174
|
| 490 |
+
v -0.854121 -0.717735 0.578453
|
| 491 |
+
v 0.859403 -0.717735 -0.637555
|
| 492 |
+
v -0.854121 0.830042 0.578453
|
| 493 |
+
v -0.854121 0.830042 -0.582174
|
| 494 |
+
v -1.296430 0.221900 -0.305769
|
| 495 |
+
v -0.798833 0.332499 0.633834
|
| 496 |
+
v -0.136003 0.387798 -0.637555
|
| 497 |
+
v -1.241142 0.664144 0.136155
|
| 498 |
+
v -0.688256 -0.551837 0.633834
|
| 499 |
+
v -1.185853 0.774743 -0.084745
|
| 500 |
+
v 0.029863 -0.717735 -0.637555
|
| 501 |
+
v -1.296430 0.443098 0.025643
|
| 502 |
+
v -1.241142 0.443098 -0.361150
|
| 503 |
+
f 182 176 185
|
| 504 |
+
f 169 170 171
|
| 505 |
+
f 172 170 173
|
| 506 |
+
f 171 170 174
|
| 507 |
+
f 170 172 174
|
| 508 |
+
f 169 171 175
|
| 509 |
+
f 175 171 176
|
| 510 |
+
f 172 173 177
|
| 511 |
+
f 170 169 178
|
| 512 |
+
f 169 175 178
|
| 513 |
+
f 175 173 178
|
| 514 |
+
f 171 174 179
|
| 515 |
+
f 172 176 179
|
| 516 |
+
f 176 171 179
|
| 517 |
+
f 173 175 180
|
| 518 |
+
f 173 170 181
|
| 519 |
+
f 170 178 181
|
| 520 |
+
f 178 173 181
|
| 521 |
+
f 175 176 182
|
| 522 |
+
f 168 180 182
|
| 523 |
+
f 180 175 182
|
| 524 |
+
f 174 172 183
|
| 525 |
+
f 179 174 183
|
| 526 |
+
f 172 179 183
|
| 527 |
+
f 177 173 184
|
| 528 |
+
f 168 177 184
|
| 529 |
+
f 180 168 184
|
| 530 |
+
f 173 180 184
|
| 531 |
+
f 176 172 185
|
| 532 |
+
f 172 177 185
|
| 533 |
+
f 177 168 185
|
| 534 |
+
f 168 182 185
|
| 535 |
+
o convex_7
|
| 536 |
+
v -0.356730 -0.662355 0.854945
|
| 537 |
+
v -1.075319 0.277248 0.910266
|
| 538 |
+
v -1.075319 0.277248 1.020908
|
| 539 |
+
v -0.190945 0.553653 0.633834
|
| 540 |
+
v -0.522514 -0.330694 1.518278
|
| 541 |
+
v -0.854197 -0.662355 0.744389
|
| 542 |
+
v 0.085514 0.056099 0.633834
|
| 543 |
+
v -0.798746 0.498273 1.131204
|
| 544 |
+
v -0.909421 -0.385950 1.407722
|
| 545 |
+
v -0.854197 0.332504 0.633834
|
| 546 |
+
v -0.467404 -0.717735 1.241759
|
| 547 |
+
v -0.412067 -0.607099 0.633834
|
| 548 |
+
v -0.909421 -0.717735 1.020908
|
| 549 |
+
v -0.190945 0.498273 0.744389
|
| 550 |
+
v -1.075319 0.443017 1.020908
|
| 551 |
+
v -0.522514 -0.496586 1.518278
|
| 552 |
+
v -0.854197 -0.275438 1.462870
|
| 553 |
+
v -0.798746 -0.551843 0.633834
|
| 554 |
+
v 0.085514 0.111355 0.689241
|
| 555 |
+
v -0.522514 0.553653 0.633834
|
| 556 |
+
f 195 200 205
|
| 557 |
+
f 189 192 195
|
| 558 |
+
f 186 192 196
|
| 559 |
+
f 186 191 197
|
| 560 |
+
f 192 186 197
|
| 561 |
+
f 195 192 197
|
| 562 |
+
f 188 187 198
|
| 563 |
+
f 187 191 198
|
| 564 |
+
f 191 186 198
|
| 565 |
+
f 194 188 198
|
| 566 |
+
f 186 196 198
|
| 567 |
+
f 189 193 199
|
| 568 |
+
f 193 190 199
|
| 569 |
+
f 187 188 200
|
| 570 |
+
f 188 194 200
|
| 571 |
+
f 195 187 200
|
| 572 |
+
f 194 198 201
|
| 573 |
+
f 198 196 201
|
| 574 |
+
f 190 193 202
|
| 575 |
+
f 193 200 202
|
| 576 |
+
f 200 194 202
|
| 577 |
+
f 201 190 202
|
| 578 |
+
f 194 201 202
|
| 579 |
+
f 191 187 203
|
| 580 |
+
f 187 195 203
|
| 581 |
+
f 197 191 203
|
| 582 |
+
f 195 197 203
|
| 583 |
+
f 192 189 204
|
| 584 |
+
f 196 192 204
|
| 585 |
+
f 199 190 204
|
| 586 |
+
f 189 199 204
|
| 587 |
+
f 190 201 204
|
| 588 |
+
f 201 196 204
|
| 589 |
+
f 193 189 205
|
| 590 |
+
f 189 195 205
|
| 591 |
+
f 200 193 205
|
external/rlbench/rlbench/assets/procedural_objects/002/002.mtl
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Blender MTL File: 'None'
|
| 2 |
+
# Material Count: 1
|
| 3 |
+
|
| 4 |
+
newmtl 002_mtl
|
| 5 |
+
Ns 96.078431
|
| 6 |
+
Ka 0.000000 0.000000 0.000000
|
| 7 |
+
Kd 0.186804 0.248292 0.400850
|
| 8 |
+
Ks 0.500000 0.500000 0.500000
|
| 9 |
+
Ni 1.000000
|
| 10 |
+
d 1.000000
|
| 11 |
+
illum 2
|
| 12 |
+
map_Kd 002.png
|
external/rlbench/rlbench/assets/procedural_objects/002/002.obj
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Blender v2.69 (sub 0) OBJ File: ''
|
| 2 |
+
# www.blender.org
|
| 3 |
+
mtllib 002.mtl
|
| 4 |
+
o 002_Cube.022
|
| 5 |
+
v -0.494683 -1.902209 -0.517226
|
| 6 |
+
v -0.506100 5.699374 1.863374
|
| 7 |
+
v -0.496606 6.193315 -2.015181
|
| 8 |
+
v -0.487697 -2.661270 -1.942547
|
| 9 |
+
v -4.609399 -7.489009 -9.036859
|
| 10 |
+
v -0.486802 -1.018160 1.141855
|
| 11 |
+
v 0.485673 6.077884 1.953412
|
| 12 |
+
v 0.194563 -2.463659 -1.980080
|
| 13 |
+
v -1.263427 -0.931532 1.797637
|
| 14 |
+
v -0.479362 -1.981208 1.860958
|
| 15 |
+
v -0.483439 -1.755618 1.704320
|
| 16 |
+
v 0.468883 5.927360 -1.818445
|
| 17 |
+
v -0.170796 -2.381234 1.889419
|
| 18 |
+
v 0.485118 -2.357224 -1.912993
|
| 19 |
+
v -8.545965 -6.863750 -5.687125
|
| 20 |
+
v 0.468922 -1.521625 0.612776
|
| 21 |
+
v 0.476461 -3.318337 2.008140
|
| 22 |
+
v 0.471215 -1.177353 0.344539
|
| 23 |
+
v 2.702883 -1.558775 -1.534568
|
| 24 |
+
v 0.224105 -6.048584 4.509620
|
| 25 |
+
v -7.102721 -12.055964 -2.998164
|
| 26 |
+
v 0.471825 -2.779122 1.583317
|
| 27 |
+
v 1.307912 -1.335748 -0.368242
|
| 28 |
+
v 0.747242 -1.261383 0.097552
|
| 29 |
+
v 0.588978 -1.316433 0.003054
|
| 30 |
+
v 1.063075 -1.498584 -0.532945
|
| 31 |
+
v 0.794689 -1.415864 -0.229664
|
| 32 |
+
v -3.161749 -12.639330 -6.318162
|
| 33 |
+
v 1.006638 -2.480656 0.838316
|
| 34 |
+
v 0.953424 -2.245959 0.694638
|
| 35 |
+
v 1.235248 -3.630896 1.496741
|
| 36 |
+
v 4.111073 -6.760699 1.118512
|
| 37 |
+
v 1.618051 -4.064195 1.433737
|
| 38 |
+
v 1.386469 -4.030951 1.690833
|
| 39 |
+
v 1.333247 -4.041839 1.759698
|
| 40 |
+
v 1.493714 -2.210310 0.165685
|
| 41 |
+
v 1.628489 -2.884655 0.541548
|
| 42 |
+
v 1.853075 -4.022176 1.193840
|
| 43 |
+
v 2.369239 1.135461 0.661173
|
| 44 |
+
v 2.823283 0.933375 0.149441
|
| 45 |
+
v 1.079345 1.113850 -0.531078
|
| 46 |
+
v 1.519451 0.893993 -1.030165
|
| 47 |
+
vt 0.950096 0.767526
|
| 48 |
+
vt 0.870143 0.689703
|
| 49 |
+
vt 0.996945 0.681315
|
| 50 |
+
vt 0.996945 0.774326
|
| 51 |
+
vt 0.872271 0.770391
|
| 52 |
+
vt 0.895553 0.759660
|
| 53 |
+
vt 0.877340 0.767879
|
| 54 |
+
vt 0.908249 0.589216
|
| 55 |
+
vt 0.997557 0.681315
|
| 56 |
+
vt 0.871043 0.676891
|
| 57 |
+
vt 0.870143 0.589845
|
| 58 |
+
vt 0.997556 0.588359
|
| 59 |
+
vt 0.968830 0.464327
|
| 60 |
+
vt 0.968830 0.587842
|
| 61 |
+
vt 0.889593 0.542915
|
| 62 |
+
vt 0.893322 0.534182
|
| 63 |
+
vt 0.870143 0.588359
|
| 64 |
+
vt 0.875982 0.574520
|
| 65 |
+
vt 0.881887 0.460132
|
| 66 |
+
vt 1.000000 0.460132
|
| 67 |
+
vt 0.870143 0.454635
|
| 68 |
+
vt 0.915049 0.370303
|
| 69 |
+
vt 1.000000 0.361449
|
| 70 |
+
vt 0.874584 0.374030
|
| 71 |
+
vt 0.870143 0.229824
|
| 72 |
+
vt 0.994941 0.231477
|
| 73 |
+
vt 0.994941 0.361449
|
| 74 |
+
vt 0.872686 0.356280
|
| 75 |
+
vt 0.672745 1.669635
|
| 76 |
+
vt 0.579178 1.475605
|
| 77 |
+
vt 0.474024 0.494279
|
| 78 |
+
vt 0.567402 0.694188
|
| 79 |
+
vt 0.145574 0.407971
|
| 80 |
+
vt 0.169202 0.321772
|
| 81 |
+
vt 0.237527 0.990546
|
| 82 |
+
vt 0.099573 0.396789
|
| 83 |
+
vt 0.000000 0.474685
|
| 84 |
+
vt 0.046560 0.381745
|
| 85 |
+
vt 0.176629 0.284372
|
| 86 |
+
vt 0.237527 0.000000
|
| 87 |
+
vt 0.118535 0.254987
|
| 88 |
+
vt 0.132829 0.230896
|
| 89 |
+
vt 0.151398 0.199434
|
| 90 |
+
vt 0.103707 0.267033
|
| 91 |
+
vt 0.154160 0.166993
|
| 92 |
+
vt 0.120769 0.234145
|
| 93 |
+
vt 0.000445 1.461323
|
| 94 |
+
vt 0.777073 0.188895
|
| 95 |
+
vt 0.870143 0.000000
|
| 96 |
+
vt 0.766877 0.977631
|
| 97 |
+
vt 0.672745 1.171954
|
| 98 |
+
vt 0.238161 0.000000
|
| 99 |
+
vt 0.474024 0.471789
|
| 100 |
+
vt 0.474024 1.456792
|
| 101 |
+
vt 0.237527 0.992502
|
| 102 |
+
vt 0.870143 1.473231
|
| 103 |
+
vt 0.776450 1.666822
|
| 104 |
+
vt 0.563770 0.592481
|
| 105 |
+
vt 0.569213 0.593413
|
| 106 |
+
vt 0.588352 0.595329
|
| 107 |
+
vt 0.672745 0.189346
|
| 108 |
+
vt 0.635854 0.366918
|
| 109 |
+
vt 0.617677 0.341425
|
| 110 |
+
vt 0.621002 0.438307
|
| 111 |
+
vt 0.613554 0.473370
|
| 112 |
+
vt 0.604451 0.472959
|
| 113 |
+
vt 0.600621 0.410009
|
| 114 |
+
vt 0.571509 0.470023
|
| 115 |
+
vt 0.595755 0.402730
|
| 116 |
+
vt 0.562337 0.552437
|
| 117 |
+
vt 0.557184 0.468294
|
| 118 |
+
vt 0.579805 0.000000
|
| 119 |
+
vt 0.604519 0.322991
|
| 120 |
+
vt 0.581841 0.292195
|
| 121 |
+
vt 0.573998 0.322010
|
| 122 |
+
vt 0.572862 0.371396
|
| 123 |
+
vt 0.564081 0.357986
|
| 124 |
+
vt 0.566236 0.351282
|
| 125 |
+
vt 0.654740 0.395946
|
| 126 |
+
vt 0.622047 0.459242
|
| 127 |
+
vt 0.632674 0.224141
|
| 128 |
+
vt 0.909016 0.798760
|
| 129 |
+
vt 0.919937 0.842919
|
| 130 |
+
vt 0.896502 0.895164
|
| 131 |
+
vt 0.895226 0.830820
|
| 132 |
+
vt 0.919937 0.774326
|
| 133 |
+
vt 0.888858 0.079948
|
| 134 |
+
vt 0.899653 0.060035
|
| 135 |
+
vt 0.914545 0.032467
|
| 136 |
+
vt 0.950437 0.054762
|
| 137 |
+
vt 0.912106 0.000000
|
| 138 |
+
vt 0.950437 0.229824
|
| 139 |
+
vt 0.870143 0.113318
|
| 140 |
+
vt 0.870143 0.910712
|
| 141 |
+
vt 0.871192 0.774326
|
| 142 |
+
vt 0.892750 0.966943
|
| 143 |
+
vt 0.881169 0.939192
|
| 144 |
+
vt 0.895226 0.828189
|
| 145 |
+
vt 0.895226 0.973386
|
| 146 |
+
vt 0.979919 0.002356
|
| 147 |
+
vt 0.979919 0.177202
|
| 148 |
+
vt 0.951210 0.229824
|
| 149 |
+
vt 0.950437 0.056680
|
| 150 |
+
usemtl 002_mtl
|
| 151 |
+
s off
|
| 152 |
+
f 1/1 2/2 3/3 4/4
|
| 153 |
+
f 10/5 2/2 6/6 11/7
|
| 154 |
+
f 2/2 1/1 6/6
|
| 155 |
+
f 8/8 3/9 12/10 14/11
|
| 156 |
+
f 4/12 3/9 8/8
|
| 157 |
+
f 12/13 7/14 16/15 18/16
|
| 158 |
+
f 17/17 22/18 16/15 7/14
|
| 159 |
+
f 18/16 14/19 12/13
|
| 160 |
+
f 7/20 2/21 13/22 17/23
|
| 161 |
+
f 13/22 2/21 10/24
|
| 162 |
+
f 3/25 2/26 7/27 12/28
|
| 163 |
+
f 15/29 21/30 20/31 9/32
|
| 164 |
+
f 4/33 8/34 5/35
|
| 165 |
+
f 5/35 1/36 4/33
|
| 166 |
+
f 1/36 5/35 9/37 6/38
|
| 167 |
+
f 14/39 19/40 5/35 8/34
|
| 168 |
+
f 25/41 27/42 26/43 14/39
|
| 169 |
+
f 14/39 18/44 25/41
|
| 170 |
+
f 23/45 19/40 14/39 26/43
|
| 171 |
+
f 18/44 24/46 25/41
|
| 172 |
+
f 9/37 5/35 15/47
|
| 173 |
+
f 19/48 32/49 28/50 5/51
|
| 174 |
+
f 21/52 28/53 32/54 20/55
|
| 175 |
+
f 21/56 15/57 5/51 28/50
|
| 176 |
+
f 9/32 10/58 11/59 6/60
|
| 177 |
+
f 19/61 23/62 36/63
|
| 178 |
+
f 24/64 18/65 16/66 30/67
|
| 179 |
+
f 16/66 22/68 29/69 30/67
|
| 180 |
+
f 13/70 10/58 9/32 17/71
|
| 181 |
+
f 32/72 37/73 38/74
|
| 182 |
+
f 38/74 33/75 32/72
|
| 183 |
+
f 32/72 19/61 36/63 37/73
|
| 184 |
+
f 22/68 17/71 31/76 29/69
|
| 185 |
+
f 35/77 17/71 32/72
|
| 186 |
+
f 35/77 31/76 17/71
|
| 187 |
+
f 32/72 33/75 34/78 35/77
|
| 188 |
+
f 20/31 32/72 17/71
|
| 189 |
+
f 9/32 20/31 17/71
|
| 190 |
+
f 41/79 25/80 24/64
|
| 191 |
+
f 30/67 39/81 41/79 24/64
|
| 192 |
+
f 35/77 29/69 31/76
|
| 193 |
+
f 35/77 39/81 30/67 29/69
|
| 194 |
+
f 27/82 41/83 42/84 26/85
|
| 195 |
+
f 25/86 41/83 27/82
|
| 196 |
+
f 37/87 36/88 23/89 42/90
|
| 197 |
+
f 23/89 26/91 42/90
|
| 198 |
+
f 37/87 42/90 40/92 38/93
|
| 199 |
+
f 38/94 40/95 34/96 33/97
|
| 200 |
+
f 40/95 39/98 35/99 34/96
|
| 201 |
+
f 40/100 42/101 41/102 39/103
|
external/rlbench/rlbench/assets/procedural_objects/002/002.png
ADDED
|
external/rlbench/rlbench/assets/procedural_objects/002/002.urdf
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
<robot name="blob002">
|
| 3 |
+
<link name="random_obj_002">
|
| 4 |
+
<contact>
|
| 5 |
+
<lateral_friction value="1.0"/>
|
| 6 |
+
<rolling_friction value="0.0"/>
|
| 7 |
+
<inertia_scaling value="3.0"/>
|
| 8 |
+
<contact_cfm value="0.0"/>
|
| 9 |
+
<contact_erp value="1.0"/>
|
| 10 |
+
</contact>
|
| 11 |
+
<inertial>
|
| 12 |
+
<origin rpy="0 0 0" xyz="0 0 0"/>
|
| 13 |
+
<mass value="0.0945"/>
|
| 14 |
+
<inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="0"/>
|
| 15 |
+
</inertial>
|
| 16 |
+
<visual>
|
| 17 |
+
<origin rpy="0 0 0" xyz="0 0 0"/>
|
| 18 |
+
<geometry>
|
| 19 |
+
<mesh filename="002.obj" scale="0.0071 0.0071 0.0071"/>
|
| 20 |
+
</geometry>
|
| 21 |
+
<material name="blockmat">
|
| 22 |
+
<color rgba="0.11 0.63 0.41 1"/>
|
| 23 |
+
</material>
|
| 24 |
+
</visual>
|
| 25 |
+
<collision>
|
| 26 |
+
<origin rpy="0 0 0" xyz="0 0 0"/>
|
| 27 |
+
<geometry>
|
| 28 |
+
<mesh filename="002_coll.obj" scale="0.0071 0.0071 0.0071"/>
|
| 29 |
+
</geometry>
|
| 30 |
+
</collision>
|
| 31 |
+
</link>
|
| 32 |
+
</robot>
|
external/rlbench/rlbench/assets/procedural_objects/002/002_coll.mtl
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Blender MTL File: 'None'
|
| 2 |
+
# Material Count: 1
|
| 3 |
+
|
| 4 |
+
newmtl None
|
| 5 |
+
Ns 0
|
| 6 |
+
Ka 0.000000 0.000000 0.000000
|
| 7 |
+
Kd 0.8 0.8 0.8
|
| 8 |
+
Ks 0.8 0.8 0.8
|
| 9 |
+
d 1
|
| 10 |
+
illum 2
|
external/rlbench/rlbench/assets/procedural_objects/002/002_coll.obj
ADDED
|
@@ -0,0 +1,546 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
o convex_0
|
| 2 |
+
v -4.953259 -3.904402 -2.193069
|
| 3 |
+
v 4.122425 -6.626602 1.210421
|
| 4 |
+
v 1.777946 -2.542310 1.436965
|
| 5 |
+
v -4.499289 -7.459928 -9.074676
|
| 6 |
+
v -7.070131 -12.071001 -2.872701
|
| 7 |
+
v 0.113801 -6.097836 4.539285
|
| 8 |
+
v -3.061507 -12.677147 -6.350818
|
| 9 |
+
v 1.399844 -2.618698 -3.023286
|
| 10 |
+
v -8.583782 -6.778386 -5.595226
|
| 11 |
+
v -0.945879 -2.542310 2.646977
|
| 12 |
+
v -3.364984 -2.542310 -0.227467
|
| 13 |
+
v 3.062745 -2.543302 -1.057684
|
| 14 |
+
v 3.970687 -7.004575 0.983877
|
| 15 |
+
v -6.995506 -11.843821 -3.477706
|
| 16 |
+
v -4.725652 -7.459928 -9.074676
|
| 17 |
+
v 4.122425 -6.853782 0.983877
|
| 18 |
+
v 0.491903 -6.173232 4.386035
|
| 19 |
+
v -8.583782 -7.005567 -5.745811
|
| 20 |
+
v -7.221869 -11.768424 -3.023286
|
| 21 |
+
v -6.767899 -12.147389 -3.099245
|
| 22 |
+
v -3.289114 -12.600759 -6.426776
|
| 23 |
+
v 1.172237 -2.542310 -2.871368
|
| 24 |
+
v -2.911013 -12.525362 -5.972356
|
| 25 |
+
v -6.767899 -7.080963 -7.334285
|
| 26 |
+
v 0.340164 -6.022440 4.539285
|
| 27 |
+
v -4.649783 -7.835917 -8.921425
|
| 28 |
+
v -0.718271 -2.618698 2.798894
|
| 29 |
+
v 2.154804 -2.542310 0.983877
|
| 30 |
+
v -4.649783 -7.308144 -8.921425
|
| 31 |
+
v -1.398606 -2.542310 -1.510772
|
| 32 |
+
v -4.499289 -7.535324 -9.074676
|
| 33 |
+
v -7.599971 -6.097836 -4.535800
|
| 34 |
+
v 2.912251 -3.299248 -1.133643
|
| 35 |
+
v -8.583782 -6.778386 -5.745811
|
| 36 |
+
v 0.113801 -5.947043 4.539285
|
| 37 |
+
v 1.399844 -9.046225 -1.814607
|
| 38 |
+
v -7.146000 -12.071001 -3.099245
|
| 39 |
+
v -3.439609 -2.618698 -0.528637
|
| 40 |
+
v -3.213245 -12.147389 -6.653320
|
| 41 |
+
v -6.995506 -10.709901 -2.947327
|
| 42 |
+
v -0.642402 -6.929178 3.555818
|
| 43 |
+
v 3.894818 -5.946052 0.529457
|
| 44 |
+
v 3.214483 -3.148456 -0.604596
|
| 45 |
+
v -4.121187 -3.147464 -0.983057
|
| 46 |
+
v 1.702077 -2.542310 1.512924
|
| 47 |
+
v 0.113801 -5.340898 4.235450
|
| 48 |
+
v -1.852577 -4.434159 -4.914262
|
| 49 |
+
v 3.894818 -6.777394 1.436965
|
| 50 |
+
v -6.541535 -11.768424 -2.494239
|
| 51 |
+
v 0.870004 -6.097836 4.084865
|
| 52 |
+
v -6.389797 -11.465847 -2.117110
|
| 53 |
+
v -3.439609 -12.677147 -6.048315
|
| 54 |
+
v -0.945879 -2.921275 2.722935
|
| 55 |
+
v 1.928440 -2.618698 -2.418280
|
| 56 |
+
v -8.204436 -8.290278 -4.838303
|
| 57 |
+
v 4.046556 -6.173232 0.907918
|
| 58 |
+
v -5.331361 -8.440079 -7.788705
|
| 59 |
+
v -8.204436 -6.702990 -5.821771
|
| 60 |
+
v -3.213245 -6.249620 -7.636787
|
| 61 |
+
v 3.818949 -6.626602 1.512924
|
| 62 |
+
v 3.290353 -7.156359 1.059836
|
| 63 |
+
v -0.189675 -6.400413 4.235450
|
| 64 |
+
v -4.271681 -12.525362 -5.215432
|
| 65 |
+
v -7.675840 -10.330936 -4.006753
|
| 66 |
+
f 19 55 64
|
| 67 |
+
f 10 3 11
|
| 68 |
+
f 13 7 16
|
| 69 |
+
f 11 3 22
|
| 70 |
+
f 12 8 22
|
| 71 |
+
f 7 13 23
|
| 72 |
+
f 15 18 24
|
| 73 |
+
f 6 17 25
|
| 74 |
+
f 18 15 26
|
| 75 |
+
f 3 2 28
|
| 76 |
+
f 22 3 28
|
| 77 |
+
f 12 22 28
|
| 78 |
+
f 4 15 29
|
| 79 |
+
f 15 24 29
|
| 80 |
+
f 11 22 30
|
| 81 |
+
f 4 8 31
|
| 82 |
+
f 15 4 31
|
| 83 |
+
f 26 15 31
|
| 84 |
+
f 21 26 31
|
| 85 |
+
f 18 9 34
|
| 86 |
+
f 24 18 34
|
| 87 |
+
f 6 25 35
|
| 88 |
+
f 27 10 35
|
| 89 |
+
f 16 7 36
|
| 90 |
+
f 5 19 37
|
| 91 |
+
f 20 5 37
|
| 92 |
+
f 14 21 37
|
| 93 |
+
f 30 1 38
|
| 94 |
+
f 11 30 38
|
| 95 |
+
f 1 34 38
|
| 96 |
+
f 7 21 39
|
| 97 |
+
f 21 31 39
|
| 98 |
+
f 36 7 39
|
| 99 |
+
f 31 36 39
|
| 100 |
+
f 19 35 40
|
| 101 |
+
f 33 12 42
|
| 102 |
+
f 31 33 42
|
| 103 |
+
f 16 36 42
|
| 104 |
+
f 36 31 42
|
| 105 |
+
f 12 28 43
|
| 106 |
+
f 10 11 44
|
| 107 |
+
f 9 32 44
|
| 108 |
+
f 34 9 44
|
| 109 |
+
f 11 38 44
|
| 110 |
+
f 38 34 44
|
| 111 |
+
f 32 40 44
|
| 112 |
+
f 2 3 45
|
| 113 |
+
f 3 10 45
|
| 114 |
+
f 10 27 45
|
| 115 |
+
f 45 27 46
|
| 116 |
+
f 35 25 46
|
| 117 |
+
f 27 35 46
|
| 118 |
+
f 25 45 46
|
| 119 |
+
f 22 29 47
|
| 120 |
+
f 29 24 47
|
| 121 |
+
f 30 22 47
|
| 122 |
+
f 16 2 48
|
| 123 |
+
f 13 16 48
|
| 124 |
+
f 17 13 48
|
| 125 |
+
f 5 20 49
|
| 126 |
+
f 25 17 50
|
| 127 |
+
f 45 25 50
|
| 128 |
+
f 17 48 50
|
| 129 |
+
f 19 5 51
|
| 130 |
+
f 35 19 51
|
| 131 |
+
f 21 7 52
|
| 132 |
+
f 7 23 52
|
| 133 |
+
f 20 37 52
|
| 134 |
+
f 37 21 52
|
| 135 |
+
f 35 10 53
|
| 136 |
+
f 40 35 53
|
| 137 |
+
f 10 44 53
|
| 138 |
+
f 44 40 53
|
| 139 |
+
f 8 12 54
|
| 140 |
+
f 31 8 54
|
| 141 |
+
f 12 33 54
|
| 142 |
+
f 33 31 54
|
| 143 |
+
f 9 18 55
|
| 144 |
+
f 32 9 55
|
| 145 |
+
f 19 40 55
|
| 146 |
+
f 40 32 55
|
| 147 |
+
f 2 16 56
|
| 148 |
+
f 28 2 56
|
| 149 |
+
f 42 12 56
|
| 150 |
+
f 16 42 56
|
| 151 |
+
f 12 43 56
|
| 152 |
+
f 43 28 56
|
| 153 |
+
f 14 18 57
|
| 154 |
+
f 21 14 57
|
| 155 |
+
f 18 26 57
|
| 156 |
+
f 26 21 57
|
| 157 |
+
f 1 30 58
|
| 158 |
+
f 34 1 58
|
| 159 |
+
f 24 34 58
|
| 160 |
+
f 47 24 58
|
| 161 |
+
f 30 47 58
|
| 162 |
+
f 8 4 59
|
| 163 |
+
f 22 8 59
|
| 164 |
+
f 4 29 59
|
| 165 |
+
f 29 22 59
|
| 166 |
+
f 2 45 60
|
| 167 |
+
f 48 2 60
|
| 168 |
+
f 45 50 60
|
| 169 |
+
f 50 48 60
|
| 170 |
+
f 13 17 61
|
| 171 |
+
f 20 13 61
|
| 172 |
+
f 17 41 61
|
| 173 |
+
f 49 20 61
|
| 174 |
+
f 41 49 61
|
| 175 |
+
f 17 6 62
|
| 176 |
+
f 6 35 62
|
| 177 |
+
f 41 17 62
|
| 178 |
+
f 5 49 62
|
| 179 |
+
f 49 41 62
|
| 180 |
+
f 51 5 62
|
| 181 |
+
f 35 51 62
|
| 182 |
+
f 13 20 63
|
| 183 |
+
f 23 13 63
|
| 184 |
+
f 52 23 63
|
| 185 |
+
f 20 52 63
|
| 186 |
+
f 18 14 64
|
| 187 |
+
f 14 37 64
|
| 188 |
+
f 37 19 64
|
| 189 |
+
f 55 18 64
|
| 190 |
+
o convex_1
|
| 191 |
+
v -0.566672 6.230435 -2.040796
|
| 192 |
+
v 0.492192 3.658569 2.043392
|
| 193 |
+
v 0.416529 3.658569 2.043392
|
| 194 |
+
v 0.189541 -0.878381 -2.040796
|
| 195 |
+
v -0.490905 -0.878381 1.891875
|
| 196 |
+
v 0.492192 6.003588 -1.889278
|
| 197 |
+
v -0.566672 5.776045 1.891875
|
| 198 |
+
v 0.492192 -0.878381 2.043392
|
| 199 |
+
v -0.566672 -0.878381 -1.662600
|
| 200 |
+
v 0.492192 6.155283 1.891875
|
| 201 |
+
v 0.492192 -0.878381 -1.964837
|
| 202 |
+
v -0.490905 -0.423294 -2.040796
|
| 203 |
+
v -0.566672 1.240486 1.891875
|
| 204 |
+
v -0.339684 6.230435 -2.040796
|
| 205 |
+
v -0.264021 5.851892 1.967434
|
| 206 |
+
v -0.566672 -0.878381 0.681730
|
| 207 |
+
v 0.265204 -0.878381 2.043392
|
| 208 |
+
v -0.264021 6.230435 -0.754692
|
| 209 |
+
v -0.566672 0.635096 -2.040796
|
| 210 |
+
v -0.188462 6.154588 -2.040796
|
| 211 |
+
v 0.265204 6.079435 1.967434
|
| 212 |
+
v 0.492192 0.937791 -1.964837
|
| 213 |
+
v -0.415346 -0.878381 -2.040796
|
| 214 |
+
v -0.188462 -0.878381 1.967434
|
| 215 |
+
f 81 79 88
|
| 216 |
+
f 66 67 72
|
| 217 |
+
f 69 68 72
|
| 218 |
+
f 70 66 72
|
| 219 |
+
f 68 69 73
|
| 220 |
+
f 71 65 73
|
| 221 |
+
f 66 70 74
|
| 222 |
+
f 72 68 75
|
| 223 |
+
f 70 72 75
|
| 224 |
+
f 65 68 76
|
| 225 |
+
f 71 73 77
|
| 226 |
+
f 68 65 78
|
| 227 |
+
f 74 70 78
|
| 228 |
+
f 71 77 79
|
| 229 |
+
f 73 69 80
|
| 230 |
+
f 69 77 80
|
| 231 |
+
f 77 73 80
|
| 232 |
+
f 72 67 81
|
| 233 |
+
f 69 72 81
|
| 234 |
+
f 67 79 81
|
| 235 |
+
f 65 71 82
|
| 236 |
+
f 78 65 82
|
| 237 |
+
f 74 78 82
|
| 238 |
+
f 73 65 83
|
| 239 |
+
f 65 76 83
|
| 240 |
+
f 76 73 83
|
| 241 |
+
f 68 78 84
|
| 242 |
+
f 78 70 84
|
| 243 |
+
f 67 66 85
|
| 244 |
+
f 66 74 85
|
| 245 |
+
f 79 67 85
|
| 246 |
+
f 71 79 85
|
| 247 |
+
f 82 71 85
|
| 248 |
+
f 74 82 85
|
| 249 |
+
f 75 68 86
|
| 250 |
+
f 70 75 86
|
| 251 |
+
f 68 84 86
|
| 252 |
+
f 84 70 86
|
| 253 |
+
f 68 73 87
|
| 254 |
+
f 76 68 87
|
| 255 |
+
f 73 76 87
|
| 256 |
+
f 77 69 88
|
| 257 |
+
f 79 77 88
|
| 258 |
+
f 69 81 88
|
| 259 |
+
o convex_2
|
| 260 |
+
v 2.534093 -0.878381 0.606134
|
| 261 |
+
v 1.399841 0.634000 -1.057565
|
| 262 |
+
v 1.399841 0.709759 -1.057565
|
| 263 |
+
v 0.643458 -0.878381 0.001328
|
| 264 |
+
v 2.231583 1.163713 0.681708
|
| 265 |
+
v 2.836818 1.012395 0.076687
|
| 266 |
+
v 1.021757 1.163713 -0.452330
|
| 267 |
+
v 1.324267 -0.878381 -0.679266
|
| 268 |
+
v 1.928858 -0.878381 1.135795
|
| 269 |
+
v 1.626777 0.936636 -1.057565
|
| 270 |
+
v 2.534093 1.163713 0.606134
|
| 271 |
+
v 2.836818 0.709759 0.076687
|
| 272 |
+
v 0.794820 -0.878381 -0.376756
|
| 273 |
+
v 1.021757 1.163713 -0.603693
|
| 274 |
+
v 2.534093 -0.878381 0.454771
|
| 275 |
+
v 1.702351 -0.802622 0.984218
|
| 276 |
+
v 1.626777 0.785518 -1.057565
|
| 277 |
+
v 1.172904 -0.802622 -0.754840
|
| 278 |
+
v 2.761030 1.012395 0.379197
|
| 279 |
+
v 0.719247 -0.424427 -0.074246
|
| 280 |
+
v 2.004647 -0.727063 1.135795
|
| 281 |
+
v 2.231583 1.012395 0.757282
|
| 282 |
+
v 1.248908 1.163713 -0.603693
|
| 283 |
+
v 0.794820 0.104887 -0.376756
|
| 284 |
+
v 2.080435 -0.878381 0.001328
|
| 285 |
+
f 105 100 113
|
| 286 |
+
f 89 92 96
|
| 287 |
+
f 92 89 97
|
| 288 |
+
f 90 91 98
|
| 289 |
+
f 95 93 99
|
| 290 |
+
f 98 94 100
|
| 291 |
+
f 91 90 101
|
| 292 |
+
f 96 92 101
|
| 293 |
+
f 98 91 102
|
| 294 |
+
f 95 99 102
|
| 295 |
+
f 89 96 103
|
| 296 |
+
f 100 89 103
|
| 297 |
+
f 92 97 104
|
| 298 |
+
f 90 98 105
|
| 299 |
+
f 98 100 105
|
| 300 |
+
f 101 90 106
|
| 301 |
+
f 96 101 106
|
| 302 |
+
f 90 105 106
|
| 303 |
+
f 105 96 106
|
| 304 |
+
f 94 99 107
|
| 305 |
+
f 89 100 107
|
| 306 |
+
f 100 94 107
|
| 307 |
+
f 92 104 108
|
| 308 |
+
f 97 89 109
|
| 309 |
+
f 104 97 109
|
| 310 |
+
f 89 107 109
|
| 311 |
+
f 107 99 109
|
| 312 |
+
f 93 95 110
|
| 313 |
+
f 99 93 110
|
| 314 |
+
f 95 108 110
|
| 315 |
+
f 108 104 110
|
| 316 |
+
f 109 99 110
|
| 317 |
+
f 104 109 110
|
| 318 |
+
f 94 98 111
|
| 319 |
+
f 99 94 111
|
| 320 |
+
f 98 102 111
|
| 321 |
+
f 102 99 111
|
| 322 |
+
f 91 101 112
|
| 323 |
+
f 101 92 112
|
| 324 |
+
f 95 102 112
|
| 325 |
+
f 102 91 112
|
| 326 |
+
f 108 95 112
|
| 327 |
+
f 92 108 112
|
| 328 |
+
f 103 96 113
|
| 329 |
+
f 100 103 113
|
| 330 |
+
f 96 105 113
|
| 331 |
+
o convex_3
|
| 332 |
+
v -3.289464 -2.542310 -0.301012
|
| 333 |
+
v -0.642305 -2.466573 2.647658
|
| 334 |
+
v -0.717968 -2.466573 2.724091
|
| 335 |
+
v -1.323269 -0.878381 1.740771
|
| 336 |
+
v -0.642305 -2.542310 -1.662630
|
| 337 |
+
v -0.642305 -0.954118 1.210895
|
| 338 |
+
v -0.869293 -2.542310 2.724091
|
| 339 |
+
v -1.020619 -2.315262 -1.284331
|
| 340 |
+
v -3.213801 -2.390999 -0.074290
|
| 341 |
+
v -1.323269 -0.954118 1.891490
|
| 342 |
+
v -3.289464 -2.466573 -0.301012
|
| 343 |
+
v -0.793630 -1.105428 0.908170
|
| 344 |
+
v -0.642305 -0.954118 1.438046
|
| 345 |
+
v -0.793630 -2.466573 -1.662630
|
| 346 |
+
v -1.096281 -1.181165 2.042637
|
| 347 |
+
v -2.986813 -2.466573 0.228435
|
| 348 |
+
v -1.549999 -1.029692 1.513620
|
| 349 |
+
v -0.642305 -2.542310 2.647658
|
| 350 |
+
f 120 118 131
|
| 351 |
+
f 115 118 119
|
| 352 |
+
f 114 118 120
|
| 353 |
+
f 120 116 123
|
| 354 |
+
f 114 122 124
|
| 355 |
+
f 117 119 125
|
| 356 |
+
f 121 124 125
|
| 357 |
+
f 116 115 126
|
| 358 |
+
f 115 119 126
|
| 359 |
+
f 119 117 126
|
| 360 |
+
f 117 123 126
|
| 361 |
+
f 118 114 127
|
| 362 |
+
f 119 118 127
|
| 363 |
+
f 114 124 127
|
| 364 |
+
f 124 121 127
|
| 365 |
+
f 125 119 127
|
| 366 |
+
f 121 125 127
|
| 367 |
+
f 123 116 128
|
| 368 |
+
f 116 126 128
|
| 369 |
+
f 126 123 128
|
| 370 |
+
f 114 120 129
|
| 371 |
+
f 122 114 129
|
| 372 |
+
f 120 123 129
|
| 373 |
+
f 123 122 129
|
| 374 |
+
f 123 117 130
|
| 375 |
+
f 122 123 130
|
| 376 |
+
f 124 122 130
|
| 377 |
+
f 117 125 130
|
| 378 |
+
f 125 124 130
|
| 379 |
+
f 115 116 131
|
| 380 |
+
f 118 115 131
|
| 381 |
+
f 116 120 131
|
| 382 |
+
o convex_4
|
| 383 |
+
v -0.642305 -0.954118 1.362694
|
| 384 |
+
v 0.340718 -2.542310 -2.267695
|
| 385 |
+
v 0.492192 -2.542310 -2.267695
|
| 386 |
+
v -0.566568 -2.542310 2.572824
|
| 387 |
+
v 0.492192 -0.878381 2.043096
|
| 388 |
+
v -0.490831 -0.878381 -1.964452
|
| 389 |
+
v -0.642305 -2.542310 -1.737493
|
| 390 |
+
v 0.492192 -2.542310 2.043096
|
| 391 |
+
v 0.492192 -0.878381 -1.964452
|
| 392 |
+
v -0.490831 -0.878381 1.891948
|
| 393 |
+
v -0.642305 -2.466573 2.572824
|
| 394 |
+
v -0.566568 -0.878381 -1.662156
|
| 395 |
+
v -0.490831 -2.542310 -1.964452
|
| 396 |
+
v -0.339691 -0.878381 -2.040262
|
| 397 |
+
f 144 137 145
|
| 398 |
+
f 133 134 135
|
| 399 |
+
f 133 135 138
|
| 400 |
+
f 135 134 139
|
| 401 |
+
f 136 135 139
|
| 402 |
+
f 134 136 139
|
| 403 |
+
f 136 134 140
|
| 404 |
+
f 137 136 140
|
| 405 |
+
f 136 137 141
|
| 406 |
+
f 135 136 142
|
| 407 |
+
f 132 138 142
|
| 408 |
+
f 138 135 142
|
| 409 |
+
f 141 132 142
|
| 410 |
+
f 136 141 142
|
| 411 |
+
f 138 132 143
|
| 412 |
+
f 137 138 143
|
| 413 |
+
f 132 141 143
|
| 414 |
+
f 141 137 143
|
| 415 |
+
f 138 137 144
|
| 416 |
+
f 133 138 144
|
| 417 |
+
f 134 133 145
|
| 418 |
+
f 140 134 145
|
| 419 |
+
f 137 140 145
|
| 420 |
+
f 133 144 145
|
| 421 |
+
o convex_5
|
| 422 |
+
v 2.382968 -0.878425 0.757600
|
| 423 |
+
v 1.097264 -1.180854 -0.679400
|
| 424 |
+
v 1.021905 -1.332135 -0.603515
|
| 425 |
+
v 0.492192 -1.180854 0.454986
|
| 426 |
+
v 2.458527 -1.332135 0.681900
|
| 427 |
+
v 1.248582 -0.878425 -0.679400
|
| 428 |
+
v 1.777895 -1.332135 1.211428
|
| 429 |
+
v 1.853455 -0.878425 1.135728
|
| 430 |
+
v 0.643510 -0.878425 -0.149687
|
| 431 |
+
v 0.492192 -1.332135 -0.073987
|
| 432 |
+
v 2.534286 -0.954066 0.454986
|
| 433 |
+
v 1.324341 -1.332135 -0.528000
|
| 434 |
+
v 0.492192 -1.332135 0.454986
|
| 435 |
+
f 149 155 158
|
| 436 |
+
f 150 146 152
|
| 437 |
+
f 148 150 152
|
| 438 |
+
f 146 151 153
|
| 439 |
+
f 149 152 153
|
| 440 |
+
f 152 146 153
|
| 441 |
+
f 151 147 154
|
| 442 |
+
f 149 153 154
|
| 443 |
+
f 153 151 154
|
| 444 |
+
f 147 148 155
|
| 445 |
+
f 148 152 155
|
| 446 |
+
f 154 147 155
|
| 447 |
+
f 149 154 155
|
| 448 |
+
f 146 150 156
|
| 449 |
+
f 151 146 156
|
| 450 |
+
f 151 156 157
|
| 451 |
+
f 148 147 157
|
| 452 |
+
f 150 148 157
|
| 453 |
+
f 147 151 157
|
| 454 |
+
f 156 150 157
|
| 455 |
+
f 152 149 158
|
| 456 |
+
f 155 152 158
|
| 457 |
+
o convex_6
|
| 458 |
+
v 0.719402 -2.542191 -2.494565
|
| 459 |
+
v 2.988084 -2.466506 -0.906491
|
| 460 |
+
v 1.475548 -1.332180 -0.225601
|
| 461 |
+
v 0.492192 -2.542191 -0.225601
|
| 462 |
+
v 2.761118 -1.483550 -1.586879
|
| 463 |
+
v 0.492192 -1.407983 -0.376882
|
| 464 |
+
v 1.551285 -2.542191 -2.797127
|
| 465 |
+
v 2.231450 -2.542191 -0.225601
|
| 466 |
+
v 0.492192 -2.466506 -2.343032
|
| 467 |
+
v 2.836611 -2.542191 -1.360335
|
| 468 |
+
v 1.021860 -1.332180 -0.603929
|
| 469 |
+
v 1.324563 -2.466506 -2.797127
|
| 470 |
+
v 0.492192 -1.407983 -0.225601
|
| 471 |
+
v 2.836611 -1.786052 -1.284820
|
| 472 |
+
v 2.609645 -1.483550 -1.586879
|
| 473 |
+
v 2.231450 -2.390821 -0.225601
|
| 474 |
+
v 2.004728 -2.542191 -2.343032
|
| 475 |
+
f 168 165 175
|
| 476 |
+
f 162 159 165
|
| 477 |
+
f 161 162 166
|
| 478 |
+
f 162 165 166
|
| 479 |
+
f 159 162 167
|
| 480 |
+
f 162 164 167
|
| 481 |
+
f 163 160 168
|
| 482 |
+
f 160 166 168
|
| 483 |
+
f 166 165 168
|
| 484 |
+
f 161 163 169
|
| 485 |
+
f 167 164 169
|
| 486 |
+
f 167 169 170
|
| 487 |
+
f 165 159 170
|
| 488 |
+
f 163 165 170
|
| 489 |
+
f 159 167 170
|
| 490 |
+
f 162 161 171
|
| 491 |
+
f 164 162 171
|
| 492 |
+
f 161 169 171
|
| 493 |
+
f 169 164 171
|
| 494 |
+
f 161 160 172
|
| 495 |
+
f 163 161 172
|
| 496 |
+
f 160 163 172
|
| 497 |
+
f 169 163 173
|
| 498 |
+
f 170 169 173
|
| 499 |
+
f 163 170 173
|
| 500 |
+
f 160 161 174
|
| 501 |
+
f 161 166 174
|
| 502 |
+
f 166 160 174
|
| 503 |
+
f 165 163 175
|
| 504 |
+
f 163 168 175
|
| 505 |
+
o convex_7
|
| 506 |
+
v 1.853492 -1.786052 1.362583
|
| 507 |
+
v 0.492192 -2.542191 -0.225601
|
| 508 |
+
v 0.492192 -2.542191 1.438187
|
| 509 |
+
v 0.492192 -1.332180 -0.225601
|
| 510 |
+
v 2.155920 -2.542191 -0.225601
|
| 511 |
+
v 2.383019 -1.332180 0.530945
|
| 512 |
+
v 2.231620 -2.542191 0.908622
|
| 513 |
+
v 0.492192 -1.332180 0.530945
|
| 514 |
+
v 1.550693 -1.332180 -0.225601
|
| 515 |
+
v 1.777792 -1.332180 1.211206
|
| 516 |
+
v 1.702092 -2.542191 1.513961
|
| 517 |
+
v 2.383019 -1.332180 0.757415
|
| 518 |
+
v 0.492192 -2.466506 1.438187
|
| 519 |
+
v 2.383019 -1.710486 0.606548
|
| 520 |
+
v 1.777792 -1.407983 1.286810
|
| 521 |
+
f 188 186 190
|
| 522 |
+
f 177 178 179
|
| 523 |
+
f 178 177 180
|
| 524 |
+
f 177 179 180
|
| 525 |
+
f 178 180 182
|
| 526 |
+
f 179 178 183
|
| 527 |
+
f 181 179 183
|
| 528 |
+
f 180 179 184
|
| 529 |
+
f 179 181 184
|
| 530 |
+
f 181 180 184
|
| 531 |
+
f 181 183 185
|
| 532 |
+
f 182 176 186
|
| 533 |
+
f 178 182 186
|
| 534 |
+
f 176 182 187
|
| 535 |
+
f 181 185 187
|
| 536 |
+
f 183 178 188
|
| 537 |
+
f 178 186 188
|
| 538 |
+
f 180 181 189
|
| 539 |
+
f 182 180 189
|
| 540 |
+
f 181 187 189
|
| 541 |
+
f 187 182 189
|
| 542 |
+
f 185 183 190
|
| 543 |
+
f 186 176 190
|
| 544 |
+
f 176 187 190
|
| 545 |
+
f 187 185 190
|
| 546 |
+
f 183 188 190
|
external/rlbench/rlbench/assets/procedural_objects/003/003.mtl
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Blender MTL File: 'None'
|
| 2 |
+
# Material Count: 1
|
| 3 |
+
|
| 4 |
+
newmtl 003_mtl
|
| 5 |
+
Ns 96.078431
|
| 6 |
+
Ka 0.000000 0.000000 0.000000
|
| 7 |
+
Kd 0.039332 0.463409 0.064767
|
| 8 |
+
Ks 0.500000 0.500000 0.500000
|
| 9 |
+
Ni 1.000000
|
| 10 |
+
d 1.000000
|
| 11 |
+
illum 2
|
| 12 |
+
map_Kd 003.png
|
external/rlbench/rlbench/assets/procedural_objects/003/003.obj
ADDED
|
@@ -0,0 +1,328 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Blender v2.69 (sub 0) OBJ File: ''
|
| 2 |
+
# www.blender.org
|
| 3 |
+
mtllib 003.mtl
|
| 4 |
+
o 003_Cube.025
|
| 5 |
+
v -2.790610 -5.692252 -1.019759
|
| 6 |
+
v -3.011291 -5.501222 1.031529
|
| 7 |
+
v -3.124807 5.555528 1.068109
|
| 8 |
+
v -2.965242 5.897124 -1.025994
|
| 9 |
+
v -2.805275 -4.759879 -1.014611
|
| 10 |
+
v -2.814585 -4.853518 -0.863331
|
| 11 |
+
v -2.781825 -5.104883 -1.017835
|
| 12 |
+
v -0.870712 -5.806000 0.123610
|
| 13 |
+
v -1.479301 -5.779196 -0.365382
|
| 14 |
+
v 2.783922 6.170839 1.054855
|
| 15 |
+
v -2.673009 -5.243381 -1.021073
|
| 16 |
+
v -2.276360 -5.759673 -1.014706
|
| 17 |
+
v -2.002781 -4.661408 -1.013915
|
| 18 |
+
v 3.124106 -6.296260 -1.015186
|
| 19 |
+
v -0.576403 -5.952287 -1.014905
|
| 20 |
+
v -0.221776 -5.872724 -1.012348
|
| 21 |
+
v -1.252407 -4.579683 -1.013216
|
| 22 |
+
v -0.842476 -5.090573 -1.013078
|
| 23 |
+
v -0.842925 -5.799986 0.137931
|
| 24 |
+
v -2.173457 -5.743934 -0.926834
|
| 25 |
+
v -1.523501 -5.791321 -0.401041
|
| 26 |
+
v 0.569050 -5.784701 1.075568
|
| 27 |
+
v 0.532115 -5.973187 1.069222
|
| 28 |
+
v 2.770703 -6.249494 1.097786
|
| 29 |
+
v 0.373444 -5.957219 1.070985
|
| 30 |
+
v 0.078253 -5.586545 1.066646
|
| 31 |
+
v 0.658704 -5.502454 1.075469
|
| 32 |
+
v 0.188745 -5.560415 1.066419
|
| 33 |
+
v -2.188602 -5.782066 -0.941910
|
| 34 |
+
v 2.665923 5.644701 -1.123963
|
| 35 |
+
v 0.001802 -5.965415 -0.817178
|
| 36 |
+
v -0.827833 -5.822031 0.166207
|
| 37 |
+
v -2.171843 -5.760675 -0.943599
|
| 38 |
+
v -0.689131 -5.806808 0.266179
|
| 39 |
+
v 0.800904 -5.992167 -0.238079
|
| 40 |
+
v 1.186784 -6.049783 0.062061
|
| 41 |
+
v 0.897321 -6.007540 0.511911
|
| 42 |
+
v 0.501896 -5.989485 -0.473433
|
| 43 |
+
v 0.156829 -5.980222 -0.761972
|
| 44 |
+
v 0.697227 -6.019755 -0.315334
|
| 45 |
+
v -0.890263 -6.072475 -0.838663
|
| 46 |
+
v -1.195693 -6.439942 -1.003626
|
| 47 |
+
v -0.915933 -6.068815 -0.840784
|
| 48 |
+
v -0.885175 -6.174893 -0.651769
|
| 49 |
+
v -1.362122 -6.340111 -0.955658
|
| 50 |
+
v -1.155161 -6.113369 -0.848697
|
| 51 |
+
v -1.181328 -6.730656 -0.363473
|
| 52 |
+
v -0.910903 -6.360003 -0.315585
|
| 53 |
+
v -1.145394 -6.116344 -0.774558
|
| 54 |
+
v -0.899848 -6.390743 -0.277823
|
| 55 |
+
v -0.833605 -6.312393 -0.184465
|
| 56 |
+
v -1.336932 -6.653980 -0.311539
|
| 57 |
+
v -1.153751 -6.322754 -0.454550
|
| 58 |
+
v -0.884117 -6.071644 -0.072765
|
| 59 |
+
v -0.849306 -6.250440 -0.151754
|
| 60 |
+
v -0.863127 -6.132399 -0.099110
|
| 61 |
+
v -3.688473 -5.033379 -3.324000
|
| 62 |
+
v -3.823167 -3.929676 -2.727962
|
| 63 |
+
v -4.321366 -5.511890 -2.553588
|
| 64 |
+
v 1.209960 -6.253078 -0.053105
|
| 65 |
+
v -4.441604 -4.415698 -1.953824
|
| 66 |
+
v 0.577185 -6.733135 0.706692
|
| 67 |
+
v 0.443797 -5.675393 1.303068
|
| 68 |
+
vt 0.873355 0.951228
|
| 69 |
+
vt 0.851098 0.929676
|
| 70 |
+
vt 0.873078 0.936123
|
| 71 |
+
vt 0.582162 0.946790
|
| 72 |
+
vt 0.576259 0.662189
|
| 73 |
+
vt 0.873355 0.652852
|
| 74 |
+
vt 0.872553 0.927225
|
| 75 |
+
vt 0.258287 0.334357
|
| 76 |
+
vt 0.265381 0.154046
|
| 77 |
+
vt 0.565106 0.000000
|
| 78 |
+
vt 0.565106 0.303385
|
| 79 |
+
vt 0.297480 0.097874
|
| 80 |
+
vt 0.284801 0.120215
|
| 81 |
+
vt 0.294526 0.057534
|
| 82 |
+
vt 0.291082 0.014399
|
| 83 |
+
vt 0.262934 0.135008
|
| 84 |
+
vt 0.104290 0.759436
|
| 85 |
+
vt 0.117367 0.751842
|
| 86 |
+
vt 0.117444 0.758702
|
| 87 |
+
vt 0.117444 0.783846
|
| 88 |
+
vt 0.884458 0.025237
|
| 89 |
+
vt 0.884458 0.334357
|
| 90 |
+
vt 0.565106 0.326976
|
| 91 |
+
vt 0.576058 0.027160
|
| 92 |
+
vt 0.431216 0.351152
|
| 93 |
+
vt 0.437162 0.351836
|
| 94 |
+
vt 0.462481 0.353374
|
| 95 |
+
vt 0.576259 0.654004
|
| 96 |
+
vt 0.576259 0.334357
|
| 97 |
+
vt 0.457669 0.346101
|
| 98 |
+
vt 0.455671 0.341247
|
| 99 |
+
vt 0.264815 0.353043
|
| 100 |
+
vt 0.447135 0.341642
|
| 101 |
+
vt 0.258287 0.637579
|
| 102 |
+
vt 0.000000 0.258209
|
| 103 |
+
vt 0.152746 0.000000
|
| 104 |
+
vt 0.161374 0.217046
|
| 105 |
+
vt 0.161390 0.229303
|
| 106 |
+
vt 0.258287 0.058504
|
| 107 |
+
vt 0.204950 0.119951
|
| 108 |
+
vt 0.162156 0.169664
|
| 109 |
+
vt 0.549025 0.836453
|
| 110 |
+
vt 0.422884 0.722887
|
| 111 |
+
vt 0.436780 0.714965
|
| 112 |
+
vt 0.549025 0.654004
|
| 113 |
+
vt 0.550538 0.654004
|
| 114 |
+
vt 0.550538 0.689068
|
| 115 |
+
vt 0.549762 0.654759
|
| 116 |
+
vt 0.177539 0.348798
|
| 117 |
+
vt 0.162501 0.309708
|
| 118 |
+
vt 0.576259 0.823302
|
| 119 |
+
vt 0.554710 0.805873
|
| 120 |
+
vt 0.557224 0.794786
|
| 121 |
+
vt 0.158612 0.298938
|
| 122 |
+
vt 0.160597 0.254068
|
| 123 |
+
vt 0.270397 0.800392
|
| 124 |
+
vt 0.258287 0.834046
|
| 125 |
+
vt 0.268037 0.800377
|
| 126 |
+
vt 0.418883 0.723838
|
| 127 |
+
vt 0.416911 0.725397
|
| 128 |
+
vt 0.343754 0.762962
|
| 129 |
+
vt 0.348713 0.760423
|
| 130 |
+
vt 0.884283 0.652852
|
| 131 |
+
vt 0.576259 0.647895
|
| 132 |
+
vt 0.587278 0.345181
|
| 133 |
+
vt 0.884283 0.334357
|
| 134 |
+
vt 0.554710 0.654004
|
| 135 |
+
vt 0.554710 0.682131
|
| 136 |
+
vt 0.553691 0.654818
|
| 137 |
+
vt 0.592468 0.000000
|
| 138 |
+
vt 0.592468 0.011067
|
| 139 |
+
vt 0.573737 0.010917
|
| 140 |
+
vt 0.565106 0.001247
|
| 141 |
+
vt 0.129607 0.808404
|
| 142 |
+
vt 0.147184 0.820431
|
| 143 |
+
vt 0.151396 0.833627
|
| 144 |
+
vt 0.150415 0.767203
|
| 145 |
+
vt 0.147077 0.815026
|
| 146 |
+
vt 0.132246 0.717343
|
| 147 |
+
vt 0.151396 0.740592
|
| 148 |
+
vt 0.037297 0.813050
|
| 149 |
+
vt 0.046786 0.807257
|
| 150 |
+
vt 0.057404 0.846377
|
| 151 |
+
vt 0.055663 0.849806
|
| 152 |
+
vt 0.059387 0.839271
|
| 153 |
+
vt 0.060996 0.834907
|
| 154 |
+
vt 0.151396 0.754282
|
| 155 |
+
vt 0.175904 0.717343
|
| 156 |
+
vt 0.166575 0.772945
|
| 157 |
+
vt 0.175086 0.817661
|
| 158 |
+
vt 0.165222 0.844668
|
| 159 |
+
vt 0.175904 0.828153
|
| 160 |
+
vt 0.051022 0.722460
|
| 161 |
+
vt 0.060996 0.717343
|
| 162 |
+
vt 0.077551 0.832732
|
| 163 |
+
vt 0.085149 0.717343
|
| 164 |
+
vt 0.086840 0.762255
|
| 165 |
+
vt 0.087156 0.787027
|
| 166 |
+
vt 0.087591 0.799306
|
| 167 |
+
vt 0.087591 0.846694
|
| 168 |
+
vt 1.000000 0.422688
|
| 169 |
+
vt 0.965259 0.062545
|
| 170 |
+
vt 1.000000 0.044801
|
| 171 |
+
vt 0.942013 0.354544
|
| 172 |
+
vt 0.942374 0.074213
|
| 173 |
+
vt 0.205047 0.334960
|
| 174 |
+
vt 0.216029 0.341746
|
| 175 |
+
vt 0.258287 0.634954
|
| 176 |
+
vt 0.203953 0.334062
|
| 177 |
+
vt 0.153684 0.183424
|
| 178 |
+
vt 0.220325 0.332141
|
| 179 |
+
vt 0.241334 0.291703
|
| 180 |
+
vt 0.238618 0.268187
|
| 181 |
+
vt 0.215740 0.310222
|
| 182 |
+
vt 0.232978 0.102372
|
| 183 |
+
vt 0.240521 0.263115
|
| 184 |
+
vt 0.178304 0.717343
|
| 185 |
+
vt 0.160669 0.339912
|
| 186 |
+
vt 0.241094 0.749332
|
| 187 |
+
vt 0.253415 0.896518
|
| 188 |
+
vt 0.253794 0.898978
|
| 189 |
+
vt 0.258216 0.975556
|
| 190 |
+
vt 0.252474 0.876557
|
| 191 |
+
vt 0.253544 0.892536
|
| 192 |
+
vt 0.258287 0.981150
|
| 193 |
+
vt 0.206262 0.793193
|
| 194 |
+
vt 0.252194 0.717343
|
| 195 |
+
vt 0.258287 0.755808
|
| 196 |
+
vt 0.884790 0.094034
|
| 197 |
+
vt 0.942013 0.025237
|
| 198 |
+
vt 0.904935 0.257134
|
| 199 |
+
vt 0.898719 0.254415
|
| 200 |
+
vt 0.077551 0.878272
|
| 201 |
+
vt 0.064237 0.739960
|
| 202 |
+
vt 0.069712 0.734012
|
| 203 |
+
vt 0.060996 0.742563
|
| 204 |
+
vt 0.549762 0.654004
|
| 205 |
+
vt 0.549762 0.848410
|
| 206 |
+
vt 0.549025 0.790268
|
| 207 |
+
vt 0.121721 0.801631
|
| 208 |
+
vt 0.128606 0.719544
|
| 209 |
+
vt 0.129607 0.717343
|
| 210 |
+
vt 0.129607 0.859408
|
| 211 |
+
vt 0.566142 0.025237
|
| 212 |
+
vt 0.565106 0.023092
|
| 213 |
+
vt 0.566142 0.022776
|
| 214 |
+
vt 0.073155 0.730486
|
| 215 |
+
vt 0.077551 0.717343
|
| 216 |
+
vt 0.942013 0.368966
|
| 217 |
+
vt 0.924878 0.422688
|
| 218 |
+
vt 0.926754 0.269302
|
| 219 |
+
vt 0.884458 0.272141
|
| 220 |
+
vt 0.093188 0.744401
|
| 221 |
+
vt 0.117444 0.717343
|
| 222 |
+
vt 0.117444 0.751842
|
| 223 |
+
vt 0.087591 0.742318
|
| 224 |
+
vt 0.957320 0.932996
|
| 225 |
+
vt 0.873760 0.853580
|
| 226 |
+
vt 0.873355 0.675616
|
| 227 |
+
vt 0.884461 0.694092
|
| 228 |
+
vt 0.922124 0.672786
|
| 229 |
+
vt 0.957320 0.652852
|
| 230 |
+
vt 0.000000 0.798618
|
| 231 |
+
vt 0.037297 0.717343
|
| 232 |
+
vt 0.037297 0.828619
|
| 233 |
+
vt 0.000153 0.910408
|
| 234 |
+
vt 0.197082 0.914564
|
| 235 |
+
vt 0.197563 0.881483
|
| 236 |
+
vt 0.206262 0.881228
|
| 237 |
+
vt 0.175904 0.827968
|
| 238 |
+
vt 0.202125 0.717343
|
| 239 |
+
vt 0.200307 0.799452
|
| 240 |
+
vt 0.192352 0.880520
|
| 241 |
+
vt 0.206262 0.734035
|
| 242 |
+
usemtl 003_mtl
|
| 243 |
+
s off
|
| 244 |
+
f 1/1 6/2 7/3
|
| 245 |
+
f 1/1 2/4 3/5 6/2
|
| 246 |
+
f 3/5 4/6 5/7 6/2
|
| 247 |
+
f 14/8 16/9 4/10 30/11
|
| 248 |
+
f 17/12 4/10 16/9 18/13
|
| 249 |
+
f 13/14 5/15 4/10 17/12
|
| 250 |
+
f 14/8 15/16 16/9
|
| 251 |
+
f 1/17 7/18 11/19 12/20
|
| 252 |
+
f 30/21 10/22 24/23 14/24
|
| 253 |
+
f 26/25 28/26 27/27 10/28
|
| 254 |
+
f 27/27 24/29 10/28
|
| 255 |
+
f 22/30 23/31 24/29 27/27
|
| 256 |
+
f 2/32 25/33 26/25
|
| 257 |
+
f 10/28 3/34 2/32 26/25
|
| 258 |
+
f 14/35 24/36 35/37 40/38
|
| 259 |
+
f 23/39 37/40 36/41 24/36
|
| 260 |
+
f 36/41 35/37 24/36
|
| 261 |
+
f 2/42 32/43 34/44
|
| 262 |
+
f 2/42 34/44 25/45
|
| 263 |
+
f 33/46 1/47 29/48
|
| 264 |
+
f 15/49 14/35 31/50
|
| 265 |
+
f 1/51 12/52 29/53
|
| 266 |
+
f 14/35 39/54 31/50
|
| 267 |
+
f 14/35 38/55 39/54
|
| 268 |
+
f 38/55 14/35 40/38
|
| 269 |
+
f 20/56 1/57 33/58
|
| 270 |
+
f 32/43 2/42 19/59
|
| 271 |
+
f 19/59 2/42 8/60
|
| 272 |
+
f 1/57 20/56 21/61 9/62
|
| 273 |
+
f 1/57 9/62 8/60 2/42
|
| 274 |
+
f 10/63 30/64 4/65 3/66
|
| 275 |
+
f 41/67 42/68 43/69
|
| 276 |
+
f 42/70 45/71 46/72 43/73
|
| 277 |
+
f 47/74 50/75 51/76
|
| 278 |
+
f 47/74 44/77 48/78 50/75
|
| 279 |
+
f 47/74 42/79 44/77
|
| 280 |
+
f 44/77 42/79 41/80
|
| 281 |
+
f 52/81 47/82 56/83 54/84
|
| 282 |
+
f 56/83 47/82 55/85
|
| 283 |
+
f 55/85 47/82 51/86
|
| 284 |
+
f 52/87 54/88 53/89
|
| 285 |
+
f 49/90 45/91 52/87 53/89
|
| 286 |
+
f 46/92 45/91 49/90
|
| 287 |
+
f 45/93 42/94 47/82 52/81
|
| 288 |
+
f 60/95 39/96 38/97 40/98
|
| 289 |
+
f 35/99 36/100 60/95 40/98
|
| 290 |
+
f 57/101 18/102 16/103
|
| 291 |
+
f 57/101 58/104 17/105 18/102
|
| 292 |
+
f 43/106 46/107 59/108
|
| 293 |
+
f 59/108 41/109 43/106
|
| 294 |
+
f 59/108 15/49 60/110 41/109
|
| 295 |
+
f 49/111 53/112 59/108 46/107
|
| 296 |
+
f 60/110 48/113 44/114
|
| 297 |
+
f 60/110 62/115 50/116 48/113
|
| 298 |
+
f 60/110 15/49 31/50
|
| 299 |
+
f 31/50 39/54 60/110
|
| 300 |
+
f 60/110 44/114 41/109
|
| 301 |
+
f 59/108 57/117 16/118 15/49
|
| 302 |
+
f 25/119 19/120 8/121 9/122
|
| 303 |
+
f 25/119 34/123 32/124 19/120
|
| 304 |
+
f 21/125 62/126 25/119 9/122
|
| 305 |
+
f 62/126 63/127 25/119
|
| 306 |
+
f 63/127 26/128 25/119
|
| 307 |
+
f 61/129 59/130 11/131 7/132
|
| 308 |
+
f 62/133 56/134 55/135
|
| 309 |
+
f 62/133 54/136 56/134
|
| 310 |
+
f 62/137 21/138 54/139
|
| 311 |
+
f 21/140 20/141 29/142 54/143
|
| 312 |
+
f 20/144 33/145 29/146
|
| 313 |
+
f 29/53 12/52 54/28
|
| 314 |
+
f 55/135 51/147 62/133
|
| 315 |
+
f 51/147 50/148 62/133
|
| 316 |
+
f 59/130 53/149 54/150 12/151
|
| 317 |
+
f 12/151 11/131 59/130
|
| 318 |
+
f 7/132 6/152 61/129
|
| 319 |
+
f 28/153 63/154 27/155
|
| 320 |
+
f 26/156 63/154 28/153
|
| 321 |
+
f 58/157 61/158 6/159 5/160
|
| 322 |
+
f 13/161 17/162 58/157 5/160
|
| 323 |
+
f 58/163 57/164 59/165 61/166
|
| 324 |
+
f 63/167 22/168 27/169
|
| 325 |
+
f 62/170 60/171 37/172 23/173
|
| 326 |
+
f 23/173 22/168 63/167
|
| 327 |
+
f 23/173 63/167 62/170
|
| 328 |
+
f 37/172 60/171 36/174
|
external/rlbench/rlbench/assets/procedural_objects/003/003.png
ADDED
|
external/rlbench/rlbench/assets/procedural_objects/003/003.urdf
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
<robot name="blob003">
|
| 3 |
+
<link name="random_obj_003">
|
| 4 |
+
<contact>
|
| 5 |
+
<lateral_friction value="1.0"/>
|
| 6 |
+
<rolling_friction value="0.0"/>
|
| 7 |
+
<inertia_scaling value="3.0"/>
|
| 8 |
+
<contact_cfm value="0.0"/>
|
| 9 |
+
<contact_erp value="1.0"/>
|
| 10 |
+
</contact>
|
| 11 |
+
<inertial>
|
| 12 |
+
<origin rpy="0 0 0" xyz="0 0 0"/>
|
| 13 |
+
<mass value="0.0593"/>
|
| 14 |
+
<inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="0"/>
|
| 15 |
+
</inertial>
|
| 16 |
+
<visual>
|
| 17 |
+
<origin rpy="0 0 0" xyz="0 0 0"/>
|
| 18 |
+
<geometry>
|
| 19 |
+
<mesh filename="003.obj" scale="0.0064 0.0064 0.0064"/>
|
| 20 |
+
</geometry>
|
| 21 |
+
<material name="blockmat">
|
| 22 |
+
<color rgba="0.96 0.84 0.49 1"/>
|
| 23 |
+
</material>
|
| 24 |
+
</visual>
|
| 25 |
+
<collision>
|
| 26 |
+
<origin rpy="0 0 0" xyz="0 0 0"/>
|
| 27 |
+
<geometry>
|
| 28 |
+
<mesh filename="003_coll.obj" scale="0.0064 0.0064 0.0064"/>
|
| 29 |
+
</geometry>
|
| 30 |
+
</collision>
|
| 31 |
+
</link>
|
| 32 |
+
</robot>
|
external/rlbench/rlbench/assets/procedural_objects/003/003_coll.mtl
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Blender MTL File: 'None'
|
| 2 |
+
# Material Count: 1
|
| 3 |
+
|
| 4 |
+
newmtl None
|
| 5 |
+
Ns 0
|
| 6 |
+
Ka 0.000000 0.000000 0.000000
|
| 7 |
+
Kd 0.8 0.8 0.8
|
| 8 |
+
Ks 0.8 0.8 0.8
|
| 9 |
+
d 1
|
| 10 |
+
illum 2
|
external/rlbench/rlbench/assets/procedural_objects/003/003_coll.obj
ADDED
|
@@ -0,0 +1,405 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
o convex_0
|
| 2 |
+
v -2.968677 -4.618478 -1.155490
|
| 3 |
+
v -3.718327 -5.099777 -3.350772
|
| 4 |
+
v -3.718327 -4.939623 -3.350772
|
| 5 |
+
v -0.399073 -5.849605 -1.209211
|
| 6 |
+
v -2.594250 -6.009968 -1.316225
|
| 7 |
+
v -1.898374 -4.350787 -1.530467
|
| 8 |
+
v -4.468376 -4.350787 -1.958736
|
| 9 |
+
v -4.307452 -5.581704 -2.547525
|
| 10 |
+
v -3.718327 -3.922104 -2.761767
|
| 11 |
+
v -1.523947 -4.457695 -1.155490
|
| 12 |
+
v -3.236750 -4.939623 -1.155490
|
| 13 |
+
v -1.952148 -6.063632 -1.155490
|
| 14 |
+
v -3.932627 -3.922104 -2.601032
|
| 15 |
+
v -3.289728 -5.046322 -3.136530
|
| 16 |
+
v -0.827672 -5.956723 -1.209211
|
| 17 |
+
v -4.468376 -4.511360 -1.905444
|
| 18 |
+
v -0.452847 -5.688823 -1.209211
|
| 19 |
+
v -4.360827 -5.421132 -2.601032
|
| 20 |
+
v -2.326973 -6.063632 -1.316225
|
| 21 |
+
v -3.932627 -3.922104 -2.708046
|
| 22 |
+
v -4.307452 -5.474586 -2.386790
|
| 23 |
+
v -0.399073 -5.849605 -1.155490
|
| 24 |
+
v -3.932627 -4.511360 -1.530467
|
| 25 |
+
v -2.326973 -6.063632 -1.155490
|
| 26 |
+
v -1.256272 -4.671932 -1.209211
|
| 27 |
+
v -3.664951 -5.099777 -3.350772
|
| 28 |
+
v -4.468376 -4.564814 -2.119471
|
| 29 |
+
v -3.343502 -4.671932 -1.155490
|
| 30 |
+
v -3.611177 -3.922104 -2.601032
|
| 31 |
+
v -1.630698 -4.457695 -1.155490
|
| 32 |
+
v -4.146926 -5.581704 -2.547525
|
| 33 |
+
v -3.771703 -4.886169 -3.297050
|
| 34 |
+
f 18 20 32
|
| 35 |
+
f 10 1 11
|
| 36 |
+
f 10 11 12
|
| 37 |
+
f 3 9 14
|
| 38 |
+
f 4 14 17
|
| 39 |
+
f 14 9 17
|
| 40 |
+
f 2 8 18
|
| 41 |
+
f 5 8 19
|
| 42 |
+
f 15 12 19
|
| 43 |
+
f 9 3 20
|
| 44 |
+
f 7 13 20
|
| 45 |
+
f 13 9 20
|
| 46 |
+
f 8 5 21
|
| 47 |
+
f 5 11 21
|
| 48 |
+
f 11 16 21
|
| 49 |
+
f 18 8 21
|
| 50 |
+
f 16 18 21
|
| 51 |
+
f 10 12 22
|
| 52 |
+
f 15 4 22
|
| 53 |
+
f 12 15 22
|
| 54 |
+
f 4 17 22
|
| 55 |
+
f 13 7 23
|
| 56 |
+
f 7 16 23
|
| 57 |
+
f 11 5 24
|
| 58 |
+
f 12 11 24
|
| 59 |
+
f 5 19 24
|
| 60 |
+
f 19 12 24
|
| 61 |
+
f 9 6 25
|
| 62 |
+
f 6 10 25
|
| 63 |
+
f 17 9 25
|
| 64 |
+
f 10 22 25
|
| 65 |
+
f 22 17 25
|
| 66 |
+
f 2 3 26
|
| 67 |
+
f 8 2 26
|
| 68 |
+
f 3 14 26
|
| 69 |
+
f 14 4 26
|
| 70 |
+
f 4 15 26
|
| 71 |
+
f 15 19 26
|
| 72 |
+
f 16 7 27
|
| 73 |
+
f 18 16 27
|
| 74 |
+
f 7 20 27
|
| 75 |
+
f 20 18 27
|
| 76 |
+
f 11 1 28
|
| 77 |
+
f 16 11 28
|
| 78 |
+
f 1 23 28
|
| 79 |
+
f 23 16 28
|
| 80 |
+
f 6 9 29
|
| 81 |
+
f 10 6 29
|
| 82 |
+
f 9 13 29
|
| 83 |
+
f 13 10 29
|
| 84 |
+
f 1 10 30
|
| 85 |
+
f 10 13 30
|
| 86 |
+
f 23 1 30
|
| 87 |
+
f 13 23 30
|
| 88 |
+
f 19 8 31
|
| 89 |
+
f 8 26 31
|
| 90 |
+
f 26 19 31
|
| 91 |
+
f 3 2 32
|
| 92 |
+
f 2 18 32
|
| 93 |
+
f 20 3 32
|
| 94 |
+
o convex_1
|
| 95 |
+
v 1.153352 6.143103 0.397071
|
| 96 |
+
v -3.129789 0.789805 1.039624
|
| 97 |
+
v -3.129789 0.789805 1.093336
|
| 98 |
+
v 3.081221 -4.511082 -1.048067
|
| 99 |
+
v -2.968678 5.929264 -1.048287
|
| 100 |
+
v -2.861675 -4.511082 -1.048287
|
| 101 |
+
v 2.813107 -4.511082 1.093336
|
| 102 |
+
v 2.706104 5.660918 -1.155490
|
| 103 |
+
v 2.813107 6.197611 1.093336
|
| 104 |
+
v -3.022179 -4.511082 1.039624
|
| 105 |
+
v -3.129789 5.607458 1.093336
|
| 106 |
+
v 3.027112 -2.368505 -1.101779
|
| 107 |
+
v 1.367357 5.660918 -1.155490
|
| 108 |
+
v -3.022179 5.929264 -0.994576
|
| 109 |
+
v -3.075680 -3.011068 1.093336
|
| 110 |
+
v -1.684039 5.875805 -1.101779
|
| 111 |
+
v -3.075680 -4.403114 0.986133
|
| 112 |
+
v 2.706104 3.198632 -1.155490
|
| 113 |
+
v 3.081221 -4.403114 -0.834103
|
| 114 |
+
v 2.759605 5.875805 -0.405734
|
| 115 |
+
v -3.129789 5.553999 0.397071
|
| 116 |
+
v -2.005047 -4.511082 1.093336
|
| 117 |
+
v 2.223985 6.197611 0.932642
|
| 118 |
+
v 2.813107 6.142055 0.718238
|
| 119 |
+
v -2.326663 5.982724 -0.726901
|
| 120 |
+
v 2.973610 -2.690311 -1.101779
|
| 121 |
+
v 2.385097 5.714377 -1.155490
|
| 122 |
+
v 3.081221 -3.760551 -1.048067
|
| 123 |
+
v -2.219052 5.928216 -1.048287
|
| 124 |
+
v -2.968678 2.395689 -1.048287
|
| 125 |
+
v -3.022179 5.661966 0.878931
|
| 126 |
+
v 2.759605 6.197611 0.879151
|
| 127 |
+
v 2.759605 4.590678 -1.155490
|
| 128 |
+
v -3.022179 5.661966 -0.994576
|
| 129 |
+
v 2.813107 6.089643 0.611256
|
| 130 |
+
v 1.420858 6.089643 1.093336
|
| 131 |
+
v 2.706104 5.768886 -0.887594
|
| 132 |
+
v -3.075680 5.822345 -0.191550
|
| 133 |
+
f 63 68 70
|
| 134 |
+
f 38 36 39
|
| 135 |
+
f 35 39 41
|
| 136 |
+
f 38 39 42
|
| 137 |
+
f 34 35 43
|
| 138 |
+
f 35 41 43
|
| 139 |
+
f 39 35 47
|
| 140 |
+
f 45 38 48
|
| 141 |
+
f 35 34 49
|
| 142 |
+
f 38 42 49
|
| 143 |
+
f 47 35 49
|
| 144 |
+
f 42 47 49
|
| 145 |
+
f 38 45 50
|
| 146 |
+
f 45 40 50
|
| 147 |
+
f 39 36 51
|
| 148 |
+
f 41 39 51
|
| 149 |
+
f 34 43 53
|
| 150 |
+
f 49 34 53
|
| 151 |
+
f 42 39 54
|
| 152 |
+
f 39 47 54
|
| 153 |
+
f 47 42 54
|
| 154 |
+
f 37 46 57
|
| 155 |
+
f 55 33 57
|
| 156 |
+
f 36 38 58
|
| 157 |
+
f 44 36 58
|
| 158 |
+
f 38 50 58
|
| 159 |
+
f 50 44 58
|
| 160 |
+
f 40 45 59
|
| 161 |
+
f 45 48 59
|
| 162 |
+
f 36 44 60
|
| 163 |
+
f 51 36 60
|
| 164 |
+
f 41 51 60
|
| 165 |
+
f 56 41 60
|
| 166 |
+
f 48 37 61
|
| 167 |
+
f 57 33 61
|
| 168 |
+
f 37 57 61
|
| 169 |
+
f 59 48 61
|
| 170 |
+
f 46 37 62
|
| 171 |
+
f 37 48 62
|
| 172 |
+
f 48 38 62
|
| 173 |
+
f 38 49 62
|
| 174 |
+
f 55 41 64
|
| 175 |
+
f 33 55 64
|
| 176 |
+
f 41 56 64
|
| 177 |
+
f 56 52 64
|
| 178 |
+
f 61 33 64
|
| 179 |
+
f 44 50 65
|
| 180 |
+
f 50 40 65
|
| 181 |
+
f 40 52 65
|
| 182 |
+
f 52 44 65
|
| 183 |
+
f 53 46 66
|
| 184 |
+
f 49 53 66
|
| 185 |
+
f 46 62 66
|
| 186 |
+
f 62 49 66
|
| 187 |
+
f 44 52 67
|
| 188 |
+
f 52 56 67
|
| 189 |
+
f 60 44 67
|
| 190 |
+
f 56 60 67
|
| 191 |
+
f 43 41 68
|
| 192 |
+
f 41 55 68
|
| 193 |
+
f 55 57 68
|
| 194 |
+
f 63 43 68
|
| 195 |
+
f 52 40 69
|
| 196 |
+
f 40 59 69
|
| 197 |
+
f 59 61 69
|
| 198 |
+
f 64 52 69
|
| 199 |
+
f 61 64 69
|
| 200 |
+
f 53 43 70
|
| 201 |
+
f 46 53 70
|
| 202 |
+
f 57 46 70
|
| 203 |
+
f 43 63 70
|
| 204 |
+
f 68 57 70
|
| 205 |
+
o convex_2
|
| 206 |
+
v 1.742671 -6.224284 -0.994681
|
| 207 |
+
v 3.134796 -6.170824 -0.726932
|
| 208 |
+
v 3.134796 -6.331559 -0.726932
|
| 209 |
+
v 1.260775 -4.511082 1.093158
|
| 210 |
+
v 3.081231 -4.511082 -1.048403
|
| 211 |
+
v 2.813409 -6.277922 1.146879
|
| 212 |
+
v 1.260775 -4.511082 -1.048403
|
| 213 |
+
v 1.260775 -6.117364 1.093158
|
| 214 |
+
v 2.813409 -4.511082 1.093158
|
| 215 |
+
v 1.260775 -6.170824 -1.048403
|
| 216 |
+
v 3.134796 -6.331559 -1.048403
|
| 217 |
+
v 2.545587 -6.277922 1.146879
|
| 218 |
+
v 2.813409 -4.939471 1.146879
|
| 219 |
+
v 3.134796 -5.153666 -0.994681
|
| 220 |
+
v 2.974102 -6.331559 -0.138143
|
| 221 |
+
v 2.277948 -6.117364 1.146879
|
| 222 |
+
v 3.081231 -4.511082 -0.834161
|
| 223 |
+
f 79 84 87
|
| 224 |
+
f 73 72 76
|
| 225 |
+
f 74 75 77
|
| 226 |
+
f 74 77 78
|
| 227 |
+
f 75 74 79
|
| 228 |
+
f 77 75 80
|
| 229 |
+
f 78 77 80
|
| 230 |
+
f 72 73 81
|
| 231 |
+
f 71 80 81
|
| 232 |
+
f 80 75 81
|
| 233 |
+
f 80 71 82
|
| 234 |
+
f 78 80 82
|
| 235 |
+
f 76 72 83
|
| 236 |
+
f 79 74 83
|
| 237 |
+
f 72 79 83
|
| 238 |
+
f 82 76 83
|
| 239 |
+
f 79 72 84
|
| 240 |
+
f 72 81 84
|
| 241 |
+
f 81 75 84
|
| 242 |
+
f 73 76 85
|
| 243 |
+
f 71 81 85
|
| 244 |
+
f 81 73 85
|
| 245 |
+
f 82 71 85
|
| 246 |
+
f 76 82 85
|
| 247 |
+
f 74 78 86
|
| 248 |
+
f 78 82 86
|
| 249 |
+
f 83 74 86
|
| 250 |
+
f 82 83 86
|
| 251 |
+
f 75 79 87
|
| 252 |
+
f 84 75 87
|
| 253 |
+
o convex_3
|
| 254 |
+
v 1.206870 -6.170929 0.129291
|
| 255 |
+
v -3.290420 -4.779003 -1.155490
|
| 256 |
+
v -3.290420 -4.725549 -1.155490
|
| 257 |
+
v -3.022231 -5.528339 1.039415
|
| 258 |
+
v 1.260775 -4.511082 1.092937
|
| 259 |
+
v 1.260775 -4.511082 -1.047963
|
| 260 |
+
v -2.165540 -6.117150 -1.155490
|
| 261 |
+
v -3.022231 -4.511082 1.039415
|
| 262 |
+
v 0.457544 -6.170929 1.092937
|
| 263 |
+
v 1.260775 -6.170929 -1.047963
|
| 264 |
+
v 0.511004 -5.796099 1.307509
|
| 265 |
+
v -2.861852 -4.511082 -1.048204
|
| 266 |
+
v 1.260775 -6.063695 1.092937
|
| 267 |
+
v -2.808392 -5.742482 -1.048204
|
| 268 |
+
v -2.005162 -6.170929 -0.941159
|
| 269 |
+
v -0.346132 -5.742482 -1.155490
|
| 270 |
+
v -1.362755 -4.511082 -1.155490
|
| 271 |
+
v -2.005162 -4.511082 1.093178
|
| 272 |
+
v 0.350179 -5.635248 1.307509
|
| 273 |
+
v -2.861852 -5.581794 1.039415
|
| 274 |
+
v -3.022231 -5.581794 0.771802
|
| 275 |
+
v -2.968771 -5.635248 0.129291
|
| 276 |
+
v 0.296720 -6.170929 0.985892
|
| 277 |
+
v -2.326365 -5.635248 1.093178
|
| 278 |
+
v -0.399146 -5.903008 -1.155490
|
| 279 |
+
f 103 97 112
|
| 280 |
+
f 90 89 91
|
| 281 |
+
f 89 90 94
|
| 282 |
+
f 90 91 95
|
| 283 |
+
f 92 93 95
|
| 284 |
+
f 93 92 97
|
| 285 |
+
f 88 96 97
|
| 286 |
+
f 90 95 99
|
| 287 |
+
f 95 93 99
|
| 288 |
+
f 96 88 100
|
| 289 |
+
f 88 97 100
|
| 290 |
+
f 97 92 100
|
| 291 |
+
f 92 98 100
|
| 292 |
+
f 98 96 100
|
| 293 |
+
f 89 94 101
|
| 294 |
+
f 94 97 102
|
| 295 |
+
f 97 96 102
|
| 296 |
+
f 94 90 103
|
| 297 |
+
f 93 97 103
|
| 298 |
+
f 90 99 104
|
| 299 |
+
f 99 93 104
|
| 300 |
+
f 103 90 104
|
| 301 |
+
f 93 103 104
|
| 302 |
+
f 92 95 105
|
| 303 |
+
f 95 91 106
|
| 304 |
+
f 98 92 106
|
| 305 |
+
f 92 105 106
|
| 306 |
+
f 105 95 106
|
| 307 |
+
f 102 107 108
|
| 308 |
+
f 91 89 108
|
| 309 |
+
f 94 102 108
|
| 310 |
+
f 107 91 108
|
| 311 |
+
f 94 108 109
|
| 312 |
+
f 89 101 109
|
| 313 |
+
f 101 94 109
|
| 314 |
+
f 108 89 109
|
| 315 |
+
f 102 96 110
|
| 316 |
+
f 96 107 110
|
| 317 |
+
f 107 102 110
|
| 318 |
+
f 96 98 111
|
| 319 |
+
f 106 91 111
|
| 320 |
+
f 98 106 111
|
| 321 |
+
f 91 107 111
|
| 322 |
+
f 107 96 111
|
| 323 |
+
f 97 94 112
|
| 324 |
+
f 94 103 112
|
| 325 |
+
o convex_4
|
| 326 |
+
v -1.255805 -6.652789 -0.673494
|
| 327 |
+
v -0.880964 -6.170929 -0.084620
|
| 328 |
+
v -1.041610 -6.170929 -0.084620
|
| 329 |
+
v -0.934513 -6.170929 -0.941138
|
| 330 |
+
v -1.791203 -6.170929 -0.887741
|
| 331 |
+
v -1.362813 -6.652789 -0.245282
|
| 332 |
+
v -0.934513 -6.545670 -0.245282
|
| 333 |
+
v -1.148708 -6.492111 -1.048403
|
| 334 |
+
v -1.148708 -6.759907 -0.459435
|
| 335 |
+
v -0.880964 -6.224546 -0.834156
|
| 336 |
+
v -1.791203 -6.224546 -0.834156
|
| 337 |
+
v -1.362813 -6.706290 -0.405944
|
| 338 |
+
f 123 113 124
|
| 339 |
+
f 115 114 116
|
| 340 |
+
f 115 116 117
|
| 341 |
+
f 114 115 118
|
| 342 |
+
f 114 118 119
|
| 343 |
+
f 117 116 120
|
| 344 |
+
f 119 118 121
|
| 345 |
+
f 113 120 121
|
| 346 |
+
f 121 120 122
|
| 347 |
+
f 116 114 122
|
| 348 |
+
f 114 119 122
|
| 349 |
+
f 120 116 122
|
| 350 |
+
f 119 121 122
|
| 351 |
+
f 115 117 123
|
| 352 |
+
f 118 115 123
|
| 353 |
+
f 120 113 123
|
| 354 |
+
f 117 120 123
|
| 355 |
+
f 113 121 124
|
| 356 |
+
f 121 118 124
|
| 357 |
+
f 118 123 124
|
| 358 |
+
o convex_5
|
| 359 |
+
v 0.618211 -6.170929 0.986123
|
| 360 |
+
v -0.880964 -6.224546 -0.673599
|
| 361 |
+
v -0.880964 -6.331606 -0.512926
|
| 362 |
+
v 1.260774 -6.278047 -0.084411
|
| 363 |
+
v 0.618211 -6.759907 0.771949
|
| 364 |
+
v -0.880964 -6.170929 -0.084411
|
| 365 |
+
v 1.046517 -6.170929 -0.245083
|
| 366 |
+
v 0.403744 -6.224546 1.039792
|
| 367 |
+
v -0.720166 -6.492111 -0.084411
|
| 368 |
+
v 0.618211 -6.759907 0.611277
|
| 369 |
+
v 1.099976 -6.278047 -0.191414
|
| 370 |
+
v -0.666706 -6.170929 -0.673599
|
| 371 |
+
v 0.457203 -6.759907 0.718448
|
| 372 |
+
v 1.153646 -6.170929 0.183097
|
| 373 |
+
v -0.666706 -6.492111 -0.191414
|
| 374 |
+
v -0.880964 -6.385166 -0.137912
|
| 375 |
+
v 0.082986 -6.224546 -0.512926
|
| 376 |
+
f 135 139 141
|
| 377 |
+
f 126 127 130
|
| 378 |
+
f 130 125 131
|
| 379 |
+
f 129 125 132
|
| 380 |
+
f 125 130 132
|
| 381 |
+
f 128 129 134
|
| 382 |
+
f 128 134 135
|
| 383 |
+
f 131 128 135
|
| 384 |
+
f 126 130 136
|
| 385 |
+
f 130 131 136
|
| 386 |
+
f 129 132 137
|
| 387 |
+
f 134 129 137
|
| 388 |
+
f 125 129 138
|
| 389 |
+
f 129 128 138
|
| 390 |
+
f 131 125 138
|
| 391 |
+
f 128 131 138
|
| 392 |
+
f 133 127 139
|
| 393 |
+
f 135 134 139
|
| 394 |
+
f 137 133 139
|
| 395 |
+
f 134 137 139
|
| 396 |
+
f 130 127 140
|
| 397 |
+
f 132 130 140
|
| 398 |
+
f 127 133 140
|
| 399 |
+
f 137 132 140
|
| 400 |
+
f 133 137 140
|
| 401 |
+
f 127 126 141
|
| 402 |
+
f 131 135 141
|
| 403 |
+
f 136 131 141
|
| 404 |
+
f 126 136 141
|
| 405 |
+
f 139 127 141
|
external/rlbench/rlbench/assets/procedural_objects/004/004.mtl
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Blender MTL File: 'None'
|
| 2 |
+
# Material Count: 1
|
| 3 |
+
|
| 4 |
+
newmtl 004_mtl
|
| 5 |
+
Ns 96.078431
|
| 6 |
+
Ka 0.000000 0.000000 0.000000
|
| 7 |
+
Kd 0.302883 0.327844 0.115516
|
| 8 |
+
Ks 0.500000 0.500000 0.500000
|
| 9 |
+
Ni 1.000000
|
| 10 |
+
d 1.000000
|
| 11 |
+
illum 2
|
| 12 |
+
map_Kd 004.png
|
external/rlbench/rlbench/assets/procedural_objects/004/004.obj
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
external/rlbench/rlbench/assets/procedural_objects/004/004.png
ADDED
|
external/rlbench/rlbench/assets/procedural_objects/004/004.urdf
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
<robot name="blob004">
|
| 3 |
+
<link name="random_obj_004">
|
| 4 |
+
<contact>
|
| 5 |
+
<lateral_friction value="1.0"/>
|
| 6 |
+
<rolling_friction value="0.0"/>
|
| 7 |
+
<inertia_scaling value="3.0"/>
|
| 8 |
+
<contact_cfm value="0.0"/>
|
| 9 |
+
<contact_erp value="1.0"/>
|
| 10 |
+
</contact>
|
| 11 |
+
<inertial>
|
| 12 |
+
<origin rpy="0 0 0" xyz="0 0 0"/>
|
| 13 |
+
<mass value="0.0873"/>
|
| 14 |
+
<inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="0"/>
|
| 15 |
+
</inertial>
|
| 16 |
+
<visual>
|
| 17 |
+
<origin rpy="0 0 0" xyz="0 0 0"/>
|
| 18 |
+
<geometry>
|
| 19 |
+
<mesh filename="004.obj" scale="0.0059 0.0059 0.0059"/>
|
| 20 |
+
</geometry>
|
| 21 |
+
<material name="blockmat">
|
| 22 |
+
<color rgba="0.89 0.15 0.78 1"/>
|
| 23 |
+
</material>
|
| 24 |
+
</visual>
|
| 25 |
+
<collision>
|
| 26 |
+
<origin rpy="0 0 0" xyz="0 0 0"/>
|
| 27 |
+
<geometry>
|
| 28 |
+
<mesh filename="004_coll.obj" scale="0.0059 0.0059 0.0059"/>
|
| 29 |
+
</geometry>
|
| 30 |
+
</collision>
|
| 31 |
+
</link>
|
| 32 |
+
</robot>
|
external/rlbench/rlbench/assets/procedural_objects/004/004_coll.mtl
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Blender MTL File: 'None'
|
| 2 |
+
# Material Count: 1
|
| 3 |
+
|
| 4 |
+
newmtl None
|
| 5 |
+
Ns 0
|
| 6 |
+
Ka 0.000000 0.000000 0.000000
|
| 7 |
+
Kd 0.8 0.8 0.8
|
| 8 |
+
Ks 0.8 0.8 0.8
|
| 9 |
+
d 1
|
| 10 |
+
illum 2
|
external/rlbench/rlbench/assets/procedural_objects/004/004_coll.obj
ADDED
|
@@ -0,0 +1,900 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
o convex_0
|
| 2 |
+
v -2.218406 -7.968150 4.699923
|
| 3 |
+
v 3.270262 -3.041586 -0.848987
|
| 4 |
+
v 2.770799 -3.040963 0.211078
|
| 5 |
+
v -1.344854 -3.228410 -4.341580
|
| 6 |
+
v 0.400893 -8.653796 1.207329
|
| 7 |
+
v -2.592494 -3.041586 1.083512
|
| 8 |
+
v -3.653090 -8.154974 2.704563
|
| 9 |
+
v 1.273767 -6.658510 4.513245
|
| 10 |
+
v 2.084970 -4.787773 -3.406285
|
| 11 |
+
v -1.656595 -4.600948 3.826536
|
| 12 |
+
v -0.471981 -9.402963 2.331207
|
| 13 |
+
v 1.960274 -3.040963 -4.404441
|
| 14 |
+
v 2.521407 -5.660866 -0.661356
|
| 15 |
+
v 1.960274 -3.040963 1.519729
|
| 16 |
+
v -2.467798 -5.411767 -1.722373
|
| 17 |
+
v 1.149071 -5.037495 -3.655824
|
| 18 |
+
v -2.779539 -3.041586 -0.288000
|
| 19 |
+
v -2.343102 -6.283615 4.575153
|
| 20 |
+
v -1.344854 -9.028069 4.076076
|
| 21 |
+
v 0.026127 -6.658510 5.012323
|
| 22 |
+
v 3.144888 -3.103861 -3.094838
|
| 23 |
+
v -1.157810 -3.041586 2.080716
|
| 24 |
+
v 0.338545 -8.030425 4.513245
|
| 25 |
+
v 1.398463 -6.720785 4.388475
|
| 26 |
+
v -0.721373 -7.655530 5.137092
|
| 27 |
+
v -3.091279 -6.720785 0.272986
|
| 28 |
+
v 0.151501 -3.041586 -4.592072
|
| 29 |
+
v -1.344854 -6.159688 4.949462
|
| 30 |
+
v -0.222588 -8.965794 3.889397
|
| 31 |
+
v -3.653090 -8.092700 2.892194
|
| 32 |
+
v -1.407202 -3.478133 -4.279672
|
| 33 |
+
v 2.895495 -3.976954 0.459664
|
| 34 |
+
v -1.095462 -8.279524 4.949462
|
| 35 |
+
v -1.781969 -6.969884 5.075184
|
| 36 |
+
v 2.084970 -4.974597 -3.218655
|
| 37 |
+
v 1.773229 -3.540408 -4.403489
|
| 38 |
+
v -1.594247 -9.028069 4.015119
|
| 39 |
+
v -1.220158 -3.041586 -4.279672
|
| 40 |
+
v -2.966583 -7.718428 4.077028
|
| 41 |
+
v -1.906665 -5.661489 4.638014
|
| 42 |
+
v 1.336115 -5.224319 -3.468194
|
| 43 |
+
v -0.409632 -3.478133 -4.466350
|
| 44 |
+
v 2.334363 -3.040963 1.083512
|
| 45 |
+
v -2.779539 -3.041586 0.459664
|
| 46 |
+
v -0.284936 -9.402963 2.392163
|
| 47 |
+
v -0.160918 -7.780703 5.012323
|
| 48 |
+
v -2.343102 -8.154974 4.575153
|
| 49 |
+
v -0.659025 -9.152617 2.080716
|
| 50 |
+
v 1.273767 -6.969884 4.200845
|
| 51 |
+
v 2.708451 -3.040963 -3.780594
|
| 52 |
+
v 3.270262 -3.166136 -1.971912
|
| 53 |
+
v -2.841887 -3.228410 -0.162278
|
| 54 |
+
v 0.525589 -8.466971 0.957790
|
| 55 |
+
v -3.590064 -8.217249 2.704563
|
| 56 |
+
v -3.028931 -6.782437 0.272986
|
| 57 |
+
v -1.531899 -4.538051 3.765580
|
| 58 |
+
v 2.583755 -5.473419 -0.475631
|
| 59 |
+
v 1.336115 -3.041586 1.706407
|
| 60 |
+
v -2.343102 -5.037495 -2.096682
|
| 61 |
+
v -2.405450 -6.408165 4.575153
|
| 62 |
+
v 1.211419 -5.224319 -3.468194
|
| 63 |
+
v 1.460811 -6.533337 4.263706
|
| 64 |
+
v -0.036221 -6.532714 4.950414
|
| 65 |
+
v 2.209666 -4.787773 -3.281516
|
| 66 |
+
f 9 50 64
|
| 67 |
+
f 3 12 14
|
| 68 |
+
f 14 12 17
|
| 69 |
+
f 6 10 22
|
| 70 |
+
f 14 6 22
|
| 71 |
+
f 8 23 24
|
| 72 |
+
f 16 15 31
|
| 73 |
+
f 17 4 31
|
| 74 |
+
f 2 3 32
|
| 75 |
+
f 19 29 33
|
| 76 |
+
f 25 20 34
|
| 77 |
+
f 20 28 34
|
| 78 |
+
f 1 33 34
|
| 79 |
+
f 33 25 34
|
| 80 |
+
f 27 12 36
|
| 81 |
+
f 19 33 37
|
| 82 |
+
f 4 17 38
|
| 83 |
+
f 17 12 38
|
| 84 |
+
f 27 4 38
|
| 85 |
+
f 12 27 38
|
| 86 |
+
f 10 6 40
|
| 87 |
+
f 6 18 40
|
| 88 |
+
f 28 10 40
|
| 89 |
+
f 18 34 40
|
| 90 |
+
f 34 28 40
|
| 91 |
+
f 9 35 41
|
| 92 |
+
f 36 9 41
|
| 93 |
+
f 16 36 41
|
| 94 |
+
f 4 27 42
|
| 95 |
+
f 16 31 42
|
| 96 |
+
f 31 4 42
|
| 97 |
+
f 36 16 42
|
| 98 |
+
f 27 36 42
|
| 99 |
+
f 3 14 43
|
| 100 |
+
f 32 3 43
|
| 101 |
+
f 6 14 44
|
| 102 |
+
f 14 17 44
|
| 103 |
+
f 30 6 44
|
| 104 |
+
f 11 5 45
|
| 105 |
+
f 29 19 45
|
| 106 |
+
f 37 11 45
|
| 107 |
+
f 19 37 45
|
| 108 |
+
f 8 20 46
|
| 109 |
+
f 23 8 46
|
| 110 |
+
f 20 25 46
|
| 111 |
+
f 29 23 46
|
| 112 |
+
f 25 33 46
|
| 113 |
+
f 33 29 46
|
| 114 |
+
f 33 1 47
|
| 115 |
+
f 30 37 47
|
| 116 |
+
f 37 33 47
|
| 117 |
+
f 39 30 47
|
| 118 |
+
f 1 39 47
|
| 119 |
+
f 5 13 49
|
| 120 |
+
f 13 24 49
|
| 121 |
+
f 24 23 49
|
| 122 |
+
f 23 29 49
|
| 123 |
+
f 45 5 49
|
| 124 |
+
f 29 45 49
|
| 125 |
+
f 3 2 50
|
| 126 |
+
f 12 3 50
|
| 127 |
+
f 2 21 50
|
| 128 |
+
f 9 36 50
|
| 129 |
+
f 36 12 50
|
| 130 |
+
f 21 2 51
|
| 131 |
+
f 13 21 51
|
| 132 |
+
f 26 7 52
|
| 133 |
+
f 15 26 52
|
| 134 |
+
f 7 30 52
|
| 135 |
+
f 44 17 52
|
| 136 |
+
f 30 44 52
|
| 137 |
+
f 13 5 53
|
| 138 |
+
f 35 13 53
|
| 139 |
+
f 5 41 53
|
| 140 |
+
f 41 35 53
|
| 141 |
+
f 30 7 54
|
| 142 |
+
f 11 37 54
|
| 143 |
+
f 37 30 54
|
| 144 |
+
f 48 11 54
|
| 145 |
+
f 48 54 55
|
| 146 |
+
f 7 26 55
|
| 147 |
+
f 26 15 55
|
| 148 |
+
f 15 48 55
|
| 149 |
+
f 54 7 55
|
| 150 |
+
f 22 10 56
|
| 151 |
+
f 10 28 56
|
| 152 |
+
f 24 13 57
|
| 153 |
+
f 2 32 57
|
| 154 |
+
f 32 24 57
|
| 155 |
+
f 51 2 57
|
| 156 |
+
f 13 51 57
|
| 157 |
+
f 14 22 58
|
| 158 |
+
f 22 56 58
|
| 159 |
+
f 31 15 59
|
| 160 |
+
f 17 31 59
|
| 161 |
+
f 15 52 59
|
| 162 |
+
f 52 17 59
|
| 163 |
+
f 18 6 60
|
| 164 |
+
f 6 30 60
|
| 165 |
+
f 1 34 60
|
| 166 |
+
f 34 18 60
|
| 167 |
+
f 30 39 60
|
| 168 |
+
f 39 1 60
|
| 169 |
+
f 5 11 61
|
| 170 |
+
f 15 16 61
|
| 171 |
+
f 41 5 61
|
| 172 |
+
f 16 41 61
|
| 173 |
+
f 11 48 61
|
| 174 |
+
f 48 15 61
|
| 175 |
+
f 14 8 62
|
| 176 |
+
f 8 24 62
|
| 177 |
+
f 24 32 62
|
| 178 |
+
f 43 14 62
|
| 179 |
+
f 32 43 62
|
| 180 |
+
f 8 14 63
|
| 181 |
+
f 20 8 63
|
| 182 |
+
f 28 20 63
|
| 183 |
+
f 56 28 63
|
| 184 |
+
f 14 58 63
|
| 185 |
+
f 58 56 63
|
| 186 |
+
f 21 13 64
|
| 187 |
+
f 13 35 64
|
| 188 |
+
f 35 9 64
|
| 189 |
+
f 50 21 64
|
| 190 |
+
o convex_1
|
| 191 |
+
v -0.596390 0.514107 1.208184
|
| 192 |
+
v -0.970754 -0.545946 -1.223673
|
| 193 |
+
v -2.030839 -0.545946 -0.911652
|
| 194 |
+
v -0.097588 -0.545946 1.644902
|
| 195 |
+
v 2.646348 0.638901 -0.724608
|
| 196 |
+
v -2.467160 0.638901 -0.537844
|
| 197 |
+
v 2.708830 -0.545946 -0.911933
|
| 198 |
+
v 2.396947 0.638901 0.771747
|
| 199 |
+
v -2.592123 -0.545946 0.709118
|
| 200 |
+
v 2.396947 -0.545946 0.834095
|
| 201 |
+
v -2.467160 0.638901 0.833814
|
| 202 |
+
v 1.585738 0.638901 -0.974281
|
| 203 |
+
v -1.843920 0.638901 -0.911652
|
| 204 |
+
v -2.655129 -0.545946 -0.412867
|
| 205 |
+
v 2.708830 -0.234077 0.210614
|
| 206 |
+
v -2.655129 0.638901 0.397378
|
| 207 |
+
v 2.147546 0.638901 0.896443
|
| 208 |
+
v -0.596390 -0.483549 1.582273
|
| 209 |
+
v 1.585738 -0.483549 -1.098977
|
| 210 |
+
v -0.970754 -0.358755 -1.223673
|
| 211 |
+
v -0.533908 0.451710 1.270532
|
| 212 |
+
v -2.467160 -0.545946 0.833814
|
| 213 |
+
v 2.583867 0.638901 0.397378
|
| 214 |
+
v -2.217759 -0.109399 -0.849304
|
| 215 |
+
v 2.458904 0.638901 -0.849304
|
| 216 |
+
v -0.097588 0.638901 1.083488
|
| 217 |
+
v 2.708830 -0.545946 0.210614
|
| 218 |
+
v -0.097588 -0.483549 1.644902
|
| 219 |
+
v 2.271984 -0.234077 0.896443
|
| 220 |
+
v -2.655129 -0.545946 0.522074
|
| 221 |
+
v -2.592123 0.638901 -0.225823
|
| 222 |
+
v -0.346989 0.451710 1.270532
|
| 223 |
+
v -2.155802 0.451710 -0.849304
|
| 224 |
+
v -2.592123 -0.171680 -0.537844
|
| 225 |
+
v 2.708830 0.139957 -0.787237
|
| 226 |
+
v -0.346989 -0.483549 1.644902
|
| 227 |
+
v -1.095192 0.514107 -0.974281
|
| 228 |
+
v -2.467160 -0.545946 -0.662540
|
| 229 |
+
v -2.217759 0.638901 0.896163
|
| 230 |
+
f 100 85 103
|
| 231 |
+
f 67 66 68
|
| 232 |
+
f 68 66 71
|
| 233 |
+
f 69 70 72
|
| 234 |
+
f 67 68 73
|
| 235 |
+
f 68 71 74
|
| 236 |
+
f 72 70 75
|
| 237 |
+
f 70 69 76
|
| 238 |
+
f 70 76 77
|
| 239 |
+
f 67 73 78
|
| 240 |
+
f 72 74 79
|
| 241 |
+
f 75 70 80
|
| 242 |
+
f 73 75 80
|
| 243 |
+
f 72 75 81
|
| 244 |
+
f 71 66 83
|
| 245 |
+
f 76 83 84
|
| 246 |
+
f 66 67 84
|
| 247 |
+
f 83 66 84
|
| 248 |
+
f 73 68 86
|
| 249 |
+
f 75 73 86
|
| 250 |
+
f 68 82 86
|
| 251 |
+
f 82 75 86
|
| 252 |
+
f 69 72 87
|
| 253 |
+
f 79 69 87
|
| 254 |
+
f 72 79 87
|
| 255 |
+
f 84 67 88
|
| 256 |
+
f 76 69 89
|
| 257 |
+
f 71 83 89
|
| 258 |
+
f 83 76 89
|
| 259 |
+
f 81 75 90
|
| 260 |
+
f 74 71 91
|
| 261 |
+
f 71 79 91
|
| 262 |
+
f 79 74 91
|
| 263 |
+
f 68 74 93
|
| 264 |
+
f 74 72 93
|
| 265 |
+
f 72 81 93
|
| 266 |
+
f 92 68 93
|
| 267 |
+
f 81 92 93
|
| 268 |
+
f 78 73 94
|
| 269 |
+
f 73 80 94
|
| 270 |
+
f 80 78 94
|
| 271 |
+
f 80 70 95
|
| 272 |
+
f 78 80 95
|
| 273 |
+
f 65 85 96
|
| 274 |
+
f 90 65 96
|
| 275 |
+
f 81 90 96
|
| 276 |
+
f 92 81 96
|
| 277 |
+
f 85 92 96
|
| 278 |
+
f 70 77 97
|
| 279 |
+
f 77 84 97
|
| 280 |
+
f 84 88 97
|
| 281 |
+
f 97 88 98
|
| 282 |
+
f 95 70 98
|
| 283 |
+
f 78 95 98
|
| 284 |
+
f 70 97 98
|
| 285 |
+
f 69 79 99
|
| 286 |
+
f 79 71 99
|
| 287 |
+
f 89 69 99
|
| 288 |
+
f 71 89 99
|
| 289 |
+
f 82 68 100
|
| 290 |
+
f 75 82 100
|
| 291 |
+
f 68 92 100
|
| 292 |
+
f 92 85 100
|
| 293 |
+
f 77 76 101
|
| 294 |
+
f 76 84 101
|
| 295 |
+
f 84 77 101
|
| 296 |
+
f 67 78 102
|
| 297 |
+
f 88 67 102
|
| 298 |
+
f 98 88 102
|
| 299 |
+
f 78 98 102
|
| 300 |
+
f 85 65 103
|
| 301 |
+
f 65 90 103
|
| 302 |
+
f 90 75 103
|
| 303 |
+
f 75 100 103
|
| 304 |
+
o convex_2
|
| 305 |
+
v -2.592336 0.889093 -0.163475
|
| 306 |
+
v 0.463284 5.628820 0.459958
|
| 307 |
+
v 0.463284 5.628820 0.397439
|
| 308 |
+
v 2.646537 0.639017 -0.412965
|
| 309 |
+
v -0.097190 0.639017 1.021457
|
| 310 |
+
v -1.407557 3.632606 -0.849621
|
| 311 |
+
v -2.280443 4.567949 0.834095
|
| 312 |
+
v 1.959956 4.006743 0.834095
|
| 313 |
+
v 1.959956 4.318362 -0.662260
|
| 314 |
+
v 1.398964 0.639017 -0.974464
|
| 315 |
+
v -2.467786 0.639505 0.834095
|
| 316 |
+
v 2.396918 0.639017 0.771772
|
| 317 |
+
v -1.844000 0.639505 -0.911945
|
| 318 |
+
v -0.783770 5.129644 -0.600131
|
| 319 |
+
v -1.906274 3.694636 -0.787102
|
| 320 |
+
v 1.024796 5.441263 -0.288317
|
| 321 |
+
v 2.459193 2.634742 0.272791
|
| 322 |
+
v 1.211620 3.695125 -0.849621
|
| 323 |
+
v 2.459193 0.764055 -0.849426
|
| 324 |
+
v -2.093099 4.318362 0.896419
|
| 325 |
+
v -1.220732 5.191675 0.709448
|
| 326 |
+
v 1.648063 4.568438 0.771772
|
| 327 |
+
v 2.459193 2.884331 -0.350641
|
| 328 |
+
v 2.147300 0.639017 0.896419
|
| 329 |
+
v 0.774658 5.005095 -0.662455
|
| 330 |
+
v -2.404992 0.639505 -0.600131
|
| 331 |
+
v -2.530061 2.635231 0.335115
|
| 332 |
+
v -1.345282 2.760269 -0.911945
|
| 333 |
+
v -0.783770 1.013643 1.021457
|
| 334 |
+
v 1.959956 4.256331 0.771772
|
| 335 |
+
v 2.459193 2.074025 0.646929
|
| 336 |
+
v -2.655129 0.639505 0.397634
|
| 337 |
+
v -2.280443 4.567949 0.709448
|
| 338 |
+
v -0.035434 5.566301 0.584605
|
| 339 |
+
v -2.218168 0.639505 0.896419
|
| 340 |
+
v -0.721495 4.069263 0.896419
|
| 341 |
+
v 2.583743 1.013643 0.397439
|
| 342 |
+
v 2.646537 0.826574 -0.662260
|
| 343 |
+
v 2.085025 3.632117 -0.724779
|
| 344 |
+
v -2.093099 0.951612 -0.849621
|
| 345 |
+
v 2.147300 0.639017 -0.911750
|
| 346 |
+
v 1.897682 2.011506 0.896614
|
| 347 |
+
v 1.461239 4.318850 0.834291
|
| 348 |
+
v -2.031343 4.755018 0.834095
|
| 349 |
+
v 0.463284 5.566301 0.584605
|
| 350 |
+
v -2.343236 4.069263 0.834095
|
| 351 |
+
v 1.273895 5.192163 -0.412965
|
| 352 |
+
v -1.220732 5.191675 0.522281
|
| 353 |
+
v 0.213666 5.628820 0.397439
|
| 354 |
+
v -1.968549 3.570086 -0.724779
|
| 355 |
+
v 1.523513 0.764055 -0.974464
|
| 356 |
+
v -1.095663 4.755018 -0.662260
|
| 357 |
+
v 0.026841 4.629980 -0.724974
|
| 358 |
+
v 2.271850 3.133918 0.709448
|
| 359 |
+
v -2.218168 2.760269 0.896419
|
| 360 |
+
v 1.024796 5.441263 -0.163475
|
| 361 |
+
v -2.280443 1.575337 -0.662260
|
| 362 |
+
v 2.147300 3.819674 -0.599936
|
| 363 |
+
v -2.592336 2.011994 0.397634
|
| 364 |
+
v -1.656656 4.817537 0.148144
|
| 365 |
+
v 2.583743 0.639017 0.397439
|
| 366 |
+
v -1.719450 3.320987 -0.849621
|
| 367 |
+
v -0.596945 1.013643 1.021457
|
| 368 |
+
v 2.521468 2.323612 -0.288317
|
| 369 |
+
f 140 141 167
|
| 370 |
+
f 107 108 113
|
| 371 |
+
f 108 107 115
|
| 372 |
+
f 106 105 119
|
| 373 |
+
f 108 115 127
|
| 374 |
+
f 115 111 127
|
| 375 |
+
f 117 119 128
|
| 376 |
+
f 112 121 128
|
| 377 |
+
f 113 108 129
|
| 378 |
+
f 116 113 129
|
| 379 |
+
f 113 116 131
|
| 380 |
+
f 109 121 131
|
| 381 |
+
f 125 111 133
|
| 382 |
+
f 120 126 133
|
| 383 |
+
f 108 114 135
|
| 384 |
+
f 129 108 135
|
| 385 |
+
f 104 129 135
|
| 386 |
+
f 130 110 136
|
| 387 |
+
f 114 108 138
|
| 388 |
+
f 108 132 138
|
| 389 |
+
f 134 115 140
|
| 390 |
+
f 120 134 140
|
| 391 |
+
f 107 122 141
|
| 392 |
+
f 140 107 141
|
| 393 |
+
f 121 112 142
|
| 394 |
+
f 141 122 142
|
| 395 |
+
f 116 129 143
|
| 396 |
+
f 107 113 144
|
| 397 |
+
f 122 107 144
|
| 398 |
+
f 121 142 144
|
| 399 |
+
f 142 122 144
|
| 400 |
+
f 111 108 145
|
| 401 |
+
f 108 127 145
|
| 402 |
+
f 127 111 145
|
| 403 |
+
f 111 125 146
|
| 404 |
+
f 123 139 146
|
| 405 |
+
f 110 123 147
|
| 406 |
+
f 136 110 147
|
| 407 |
+
f 123 146 147
|
| 408 |
+
f 147 146 148
|
| 409 |
+
f 125 105 148
|
| 410 |
+
f 105 137 148
|
| 411 |
+
f 137 124 148
|
| 412 |
+
f 146 125 148
|
| 413 |
+
f 124 147 148
|
| 414 |
+
f 123 110 149
|
| 415 |
+
f 110 130 149
|
| 416 |
+
f 135 114 149
|
| 417 |
+
f 112 128 150
|
| 418 |
+
f 128 119 150
|
| 419 |
+
f 133 112 150
|
| 420 |
+
f 124 137 151
|
| 421 |
+
f 147 124 151
|
| 422 |
+
f 136 147 151
|
| 423 |
+
f 105 106 152
|
| 424 |
+
f 106 119 152
|
| 425 |
+
f 119 117 152
|
| 426 |
+
f 137 105 152
|
| 427 |
+
f 117 151 152
|
| 428 |
+
f 151 137 152
|
| 429 |
+
f 104 130 153
|
| 430 |
+
f 136 118 153
|
| 431 |
+
f 130 136 153
|
| 432 |
+
f 113 131 154
|
| 433 |
+
f 131 121 154
|
| 434 |
+
f 144 113 154
|
| 435 |
+
f 121 144 154
|
| 436 |
+
f 109 118 155
|
| 437 |
+
f 121 109 156
|
| 438 |
+
f 117 128 156
|
| 439 |
+
f 128 121 156
|
| 440 |
+
f 109 155 156
|
| 441 |
+
f 155 117 156
|
| 442 |
+
f 111 115 157
|
| 443 |
+
f 133 111 157
|
| 444 |
+
f 120 133 157
|
| 445 |
+
f 115 134 157
|
| 446 |
+
f 134 120 157
|
| 447 |
+
f 132 123 158
|
| 448 |
+
f 114 138 158
|
| 449 |
+
f 138 132 158
|
| 450 |
+
f 123 149 158
|
| 451 |
+
f 149 114 158
|
| 452 |
+
f 119 105 159
|
| 453 |
+
f 105 125 159
|
| 454 |
+
f 125 133 159
|
| 455 |
+
f 150 119 159
|
| 456 |
+
f 133 150 159
|
| 457 |
+
f 129 104 160
|
| 458 |
+
f 118 143 160
|
| 459 |
+
f 143 129 160
|
| 460 |
+
f 104 153 160
|
| 461 |
+
f 153 118 160
|
| 462 |
+
f 112 133 161
|
| 463 |
+
f 133 126 161
|
| 464 |
+
f 126 141 161
|
| 465 |
+
f 142 112 161
|
| 466 |
+
f 141 142 161
|
| 467 |
+
f 130 104 162
|
| 468 |
+
f 104 135 162
|
| 469 |
+
f 149 130 162
|
| 470 |
+
f 135 149 162
|
| 471 |
+
f 118 136 163
|
| 472 |
+
f 151 117 163
|
| 473 |
+
f 136 151 163
|
| 474 |
+
f 155 118 163
|
| 475 |
+
f 117 155 163
|
| 476 |
+
f 115 107 164
|
| 477 |
+
f 107 140 164
|
| 478 |
+
f 140 115 164
|
| 479 |
+
f 118 109 165
|
| 480 |
+
f 131 116 165
|
| 481 |
+
f 109 131 165
|
| 482 |
+
f 116 143 165
|
| 483 |
+
f 143 118 165
|
| 484 |
+
f 108 111 166
|
| 485 |
+
f 132 108 166
|
| 486 |
+
f 123 132 166
|
| 487 |
+
f 139 123 166
|
| 488 |
+
f 111 146 166
|
| 489 |
+
f 146 139 166
|
| 490 |
+
f 126 120 167
|
| 491 |
+
f 120 140 167
|
| 492 |
+
f 141 126 167
|
| 493 |
+
o convex_3
|
| 494 |
+
v 3.020467 -1.918148 -1.411072
|
| 495 |
+
v 0.089482 -2.541696 -4.654444
|
| 496 |
+
v 0.089482 -2.479317 -4.654444
|
| 497 |
+
v -1.781914 -2.978347 -1.411072
|
| 498 |
+
v -0.035495 -0.608672 -1.411072
|
| 499 |
+
v 3.269878 -3.040963 -2.471772
|
| 500 |
+
v 2.459157 -1.481973 -3.780740
|
| 501 |
+
v -1.157572 -3.040963 -4.342044
|
| 502 |
+
v -0.097984 -1.170080 -3.655971
|
| 503 |
+
v 2.085312 -3.040963 -4.342044
|
| 504 |
+
v 3.769243 -1.856007 -2.970532
|
| 505 |
+
v 3.269878 -3.040963 -1.411072
|
| 506 |
+
v 0.650792 -0.608672 -2.721311
|
| 507 |
+
v -0.845673 -1.232459 -1.473616
|
| 508 |
+
v 1.648436 -0.982944 -1.411072
|
| 509 |
+
v 1.399025 -1.856007 -4.467131
|
| 510 |
+
v -1.781914 -3.040963 -1.411072
|
| 511 |
+
v 1.086582 -2.978347 -4.654444
|
| 512 |
+
v 2.771056 -2.791211 -3.905510
|
| 513 |
+
v 2.147257 -2.417177 -4.342044
|
| 514 |
+
v -0.409339 -2.105046 -4.342044
|
| 515 |
+
v -1.220061 -2.978347 -4.155049
|
| 516 |
+
v 3.706754 -1.793867 -2.783537
|
| 517 |
+
v 3.457343 -2.729070 -1.536159
|
| 518 |
+
v 3.207389 -2.978347 -3.094984
|
| 519 |
+
v 0.151971 -1.232459 -3.781058
|
| 520 |
+
v 0.463870 -0.608672 -1.473616
|
| 521 |
+
v -0.346851 -0.795808 -1.598385
|
| 522 |
+
v 0.463870 -0.608672 -2.721311
|
| 523 |
+
v 3.769243 -1.980288 -2.970532
|
| 524 |
+
v 3.394855 -2.292181 -1.536159
|
| 525 |
+
v 0.089482 -3.040963 -4.591901
|
| 526 |
+
v 3.394855 -1.668871 -2.908306
|
| 527 |
+
v 2.708568 -3.040963 -3.843284
|
| 528 |
+
v 3.706754 -1.856007 -2.596224
|
| 529 |
+
v -0.970650 -2.604075 -4.155049
|
| 530 |
+
v 1.024637 -1.980288 -4.529357
|
| 531 |
+
v -0.658750 -1.170080 -1.973011
|
| 532 |
+
v 1.086582 -2.666453 -4.654444
|
| 533 |
+
v 2.459157 -1.544352 -3.843284
|
| 534 |
+
v -1.718882 -2.853590 -1.473616
|
| 535 |
+
v -0.159929 -1.357216 -3.843601
|
| 536 |
+
v 1.336536 -0.858187 -1.411072
|
| 537 |
+
v 3.769243 -2.042667 -2.658767
|
| 538 |
+
v 0.837715 -0.671051 -2.721311
|
| 539 |
+
v 2.459157 -1.294837 -1.910468
|
| 540 |
+
v -0.845673 -1.232459 -1.411072
|
| 541 |
+
v -0.845673 -2.978347 -4.466814
|
| 542 |
+
v 1.835358 -2.541696 -4.467131
|
| 543 |
+
v 3.394855 -2.541696 -1.411072
|
| 544 |
+
v 2.334723 -1.419357 -3.718514
|
| 545 |
+
v 1.024637 -1.793867 -4.404905
|
| 546 |
+
v -0.658750 -2.354560 -4.342044
|
| 547 |
+
f 215 175 220
|
| 548 |
+
f 171 168 172
|
| 549 |
+
f 173 175 177
|
| 550 |
+
f 168 171 179
|
| 551 |
+
f 175 173 179
|
| 552 |
+
f 172 168 182
|
| 553 |
+
f 179 171 184
|
| 554 |
+
f 175 179 184
|
| 555 |
+
f 169 170 185
|
| 556 |
+
f 186 177 187
|
| 557 |
+
f 178 186 187
|
| 558 |
+
f 184 171 189
|
| 559 |
+
f 175 184 189
|
| 560 |
+
f 179 173 191
|
| 561 |
+
f 180 172 194
|
| 562 |
+
f 172 180 196
|
| 563 |
+
f 193 176 196
|
| 564 |
+
f 180 193 196
|
| 565 |
+
f 195 172 196
|
| 566 |
+
f 176 195 196
|
| 567 |
+
f 186 178 197
|
| 568 |
+
f 173 192 197
|
| 569 |
+
f 177 175 199
|
| 570 |
+
f 169 185 199
|
| 571 |
+
f 185 177 199
|
| 572 |
+
f 178 174 200
|
| 573 |
+
f 190 178 200
|
| 574 |
+
f 173 177 201
|
| 575 |
+
f 177 186 201
|
| 576 |
+
f 192 173 201
|
| 577 |
+
f 186 197 201
|
| 578 |
+
f 197 192 201
|
| 579 |
+
f 178 190 202
|
| 580 |
+
f 168 198 202
|
| 581 |
+
f 175 189 203
|
| 582 |
+
f 170 188 204
|
| 583 |
+
f 189 181 205
|
| 584 |
+
f 195 176 205
|
| 585 |
+
f 181 195 205
|
| 586 |
+
f 176 203 205
|
| 587 |
+
f 203 189 205
|
| 588 |
+
f 185 170 206
|
| 589 |
+
f 170 204 206
|
| 590 |
+
f 204 183 206
|
| 591 |
+
f 174 178 207
|
| 592 |
+
f 183 174 207
|
| 593 |
+
f 178 187 207
|
| 594 |
+
f 187 183 207
|
| 595 |
+
f 189 171 208
|
| 596 |
+
f 181 189 208
|
| 597 |
+
f 176 193 209
|
| 598 |
+
f 203 176 209
|
| 599 |
+
f 172 182 210
|
| 600 |
+
f 194 172 210
|
| 601 |
+
f 180 194 210
|
| 602 |
+
f 191 173 211
|
| 603 |
+
f 197 178 211
|
| 604 |
+
f 173 197 211
|
| 605 |
+
f 178 202 211
|
| 606 |
+
f 202 198 211
|
| 607 |
+
f 180 210 212
|
| 608 |
+
f 212 210 213
|
| 609 |
+
f 182 168 213
|
| 610 |
+
f 190 200 213
|
| 611 |
+
f 168 202 213
|
| 612 |
+
f 202 190 213
|
| 613 |
+
f 210 182 213
|
| 614 |
+
f 200 212 213
|
| 615 |
+
f 171 172 214
|
| 616 |
+
f 172 195 214
|
| 617 |
+
f 195 181 214
|
| 618 |
+
f 208 171 214
|
| 619 |
+
f 181 208 214
|
| 620 |
+
f 170 169 215
|
| 621 |
+
f 169 199 215
|
| 622 |
+
f 199 175 215
|
| 623 |
+
f 177 185 216
|
| 624 |
+
f 183 187 216
|
| 625 |
+
f 187 177 216
|
| 626 |
+
f 185 206 216
|
| 627 |
+
f 206 183 216
|
| 628 |
+
f 168 179 217
|
| 629 |
+
f 179 191 217
|
| 630 |
+
f 198 168 217
|
| 631 |
+
f 191 211 217
|
| 632 |
+
f 211 198 217
|
| 633 |
+
f 174 183 218
|
| 634 |
+
f 193 180 218
|
| 635 |
+
f 183 193 218
|
| 636 |
+
f 200 174 218
|
| 637 |
+
f 180 212 218
|
| 638 |
+
f 212 200 218
|
| 639 |
+
f 193 183 219
|
| 640 |
+
f 183 204 219
|
| 641 |
+
f 204 188 219
|
| 642 |
+
f 209 193 219
|
| 643 |
+
f 188 209 219
|
| 644 |
+
f 188 170 220
|
| 645 |
+
f 175 203 220
|
| 646 |
+
f 203 209 220
|
| 647 |
+
f 209 188 220
|
| 648 |
+
f 170 215 220
|
| 649 |
+
o convex_4
|
| 650 |
+
v 1.711046 -3.040963 1.582657
|
| 651 |
+
v 3.395007 -2.666582 -1.348547
|
| 652 |
+
v 3.332378 -2.853651 -1.099045
|
| 653 |
+
v 0.525870 -3.040963 -1.411072
|
| 654 |
+
v 0.525870 -0.546062 0.896675
|
| 655 |
+
v 2.708616 -0.546062 -0.912067
|
| 656 |
+
v 0.525870 -0.670856 -1.411072
|
| 657 |
+
v 2.396876 -0.546062 0.834150
|
| 658 |
+
v 0.525870 -3.040963 1.146178
|
| 659 |
+
v 2.958289 -3.040963 -0.101035
|
| 660 |
+
v 3.270030 -3.040963 -1.410773
|
| 661 |
+
v 1.274609 -2.853651 1.645182
|
| 662 |
+
v 2.334527 -3.040963 1.083353
|
| 663 |
+
v 2.708616 -0.546062 0.210394
|
| 664 |
+
v 2.895941 -1.855543 -1.410773
|
| 665 |
+
v 0.525870 -0.546062 -1.036819
|
| 666 |
+
v 1.960439 -0.546062 0.958901
|
| 667 |
+
v 1.648698 -0.982718 -1.411072
|
| 668 |
+
v 2.022506 -2.853651 1.457906
|
| 669 |
+
v 3.332378 -2.354719 -1.410773
|
| 670 |
+
v 1.212261 -3.040963 1.645182
|
| 671 |
+
v 2.771245 -0.608825 -0.911768
|
| 672 |
+
v 1.399306 -2.604063 1.582657
|
| 673 |
+
v 2.271899 -0.546062 0.896675
|
| 674 |
+
v 1.524002 -0.546062 0.958901
|
| 675 |
+
v 3.207682 -3.040963 -0.724791
|
| 676 |
+
v 1.336958 -0.546062 -1.161570
|
| 677 |
+
f 227 236 247
|
| 678 |
+
f 224 225 227
|
| 679 |
+
f 226 225 228
|
| 680 |
+
f 224 221 229
|
| 681 |
+
f 225 224 229
|
| 682 |
+
f 221 224 230
|
| 683 |
+
f 222 223 231
|
| 684 |
+
f 230 224 231
|
| 685 |
+
f 221 230 233
|
| 686 |
+
f 230 228 233
|
| 687 |
+
f 223 222 234
|
| 688 |
+
f 226 228 234
|
| 689 |
+
f 228 230 234
|
| 690 |
+
f 225 226 236
|
| 691 |
+
f 227 225 236
|
| 692 |
+
f 228 225 237
|
| 693 |
+
f 227 226 238
|
| 694 |
+
f 224 227 238
|
| 695 |
+
f 231 224 238
|
| 696 |
+
f 226 235 238
|
| 697 |
+
f 221 233 239
|
| 698 |
+
f 233 228 239
|
| 699 |
+
f 222 231 240
|
| 700 |
+
f 234 222 240
|
| 701 |
+
f 231 238 240
|
| 702 |
+
f 238 235 240
|
| 703 |
+
f 229 221 241
|
| 704 |
+
f 225 229 241
|
| 705 |
+
f 221 232 241
|
| 706 |
+
f 232 225 241
|
| 707 |
+
f 226 234 242
|
| 708 |
+
f 235 226 242
|
| 709 |
+
f 234 240 242
|
| 710 |
+
f 240 235 242
|
| 711 |
+
f 232 221 243
|
| 712 |
+
f 225 232 243
|
| 713 |
+
f 221 239 243
|
| 714 |
+
f 243 239 244
|
| 715 |
+
f 228 237 244
|
| 716 |
+
f 239 228 244
|
| 717 |
+
f 237 243 244
|
| 718 |
+
f 237 225 245
|
| 719 |
+
f 225 243 245
|
| 720 |
+
f 243 237 245
|
| 721 |
+
f 231 223 246
|
| 722 |
+
f 230 231 246
|
| 723 |
+
f 223 234 246
|
| 724 |
+
f 234 230 246
|
| 725 |
+
f 226 227 247
|
| 726 |
+
f 236 226 247
|
| 727 |
+
o convex_5
|
| 728 |
+
v -2.717099 -0.608581 0.335164
|
| 729 |
+
v -1.844067 -3.040963 -1.411072
|
| 730 |
+
v -1.844067 -2.978444 -1.411072
|
| 731 |
+
v 0.525547 -3.040963 1.146202
|
| 732 |
+
v 0.525547 -0.670856 -1.411072
|
| 733 |
+
v 0.213934 -0.546062 1.146202
|
| 734 |
+
v -2.592519 -3.040963 1.083622
|
| 735 |
+
v 0.525547 -3.040963 -1.411072
|
| 736 |
+
v -2.218131 -0.546062 -0.849603
|
| 737 |
+
v -2.779551 -3.040963 -0.288134
|
| 738 |
+
v -2.280583 -0.546062 0.896633
|
| 739 |
+
v 0.525547 -0.546062 0.896633
|
| 740 |
+
v -0.908906 -0.546062 -1.286162
|
| 741 |
+
v -2.654647 -0.546062 -0.475124
|
| 742 |
+
v -1.158066 -0.546062 1.146202
|
| 743 |
+
v -2.405487 -2.978444 1.146202
|
| 744 |
+
v -2.530067 -3.040963 -0.787273
|
| 745 |
+
v -0.846454 -0.982718 -1.411072
|
| 746 |
+
v -2.779551 -3.040963 0.459823
|
| 747 |
+
v 0.525547 -0.546062 -0.974263
|
| 748 |
+
v -2.592519 -0.546062 0.709393
|
| 749 |
+
v -2.031099 -2.853651 -1.286162
|
| 750 |
+
v -2.779551 -2.354719 -0.288134
|
| 751 |
+
v -2.779551 -1.918062 0.335164
|
| 752 |
+
v -2.592519 -1.793513 -0.662363
|
| 753 |
+
v -2.405487 -0.546062 -0.724693
|
| 754 |
+
v -0.035550 -0.608581 -1.411072
|
| 755 |
+
v -2.467939 -0.546062 0.834303
|
| 756 |
+
v 0.525547 -0.670856 0.958962
|
| 757 |
+
f 259 253 276
|
| 758 |
+
f 249 250 252
|
| 759 |
+
f 249 251 254
|
| 760 |
+
f 251 249 255
|
| 761 |
+
f 252 251 255
|
| 762 |
+
f 249 252 255
|
| 763 |
+
f 249 254 257
|
| 764 |
+
f 253 256 258
|
| 765 |
+
f 251 252 259
|
| 766 |
+
f 256 253 259
|
| 767 |
+
f 256 259 260
|
| 768 |
+
f 258 256 261
|
| 769 |
+
f 251 253 262
|
| 770 |
+
f 253 258 262
|
| 771 |
+
f 262 258 263
|
| 772 |
+
f 254 251 263
|
| 773 |
+
f 251 262 263
|
| 774 |
+
f 249 257 264
|
| 775 |
+
f 252 250 265
|
| 776 |
+
f 250 256 265
|
| 777 |
+
f 256 260 265
|
| 778 |
+
f 257 254 266
|
| 779 |
+
f 259 252 267
|
| 780 |
+
f 260 259 267
|
| 781 |
+
f 248 254 268
|
| 782 |
+
f 261 248 268
|
| 783 |
+
f 258 261 268
|
| 784 |
+
f 250 249 269
|
| 785 |
+
f 256 250 269
|
| 786 |
+
f 249 264 269
|
| 787 |
+
f 248 261 270
|
| 788 |
+
f 257 266 270
|
| 789 |
+
f 270 266 271
|
| 790 |
+
f 254 248 271
|
| 791 |
+
f 266 254 271
|
| 792 |
+
f 248 270 271
|
| 793 |
+
f 264 257 272
|
| 794 |
+
f 269 264 272
|
| 795 |
+
f 270 261 272
|
| 796 |
+
f 257 270 272
|
| 797 |
+
f 261 256 273
|
| 798 |
+
f 256 269 273
|
| 799 |
+
f 272 261 273
|
| 800 |
+
f 269 272 273
|
| 801 |
+
f 252 265 274
|
| 802 |
+
f 265 260 274
|
| 803 |
+
f 267 252 274
|
| 804 |
+
f 260 267 274
|
| 805 |
+
f 263 258 275
|
| 806 |
+
f 254 263 275
|
| 807 |
+
f 268 254 275
|
| 808 |
+
f 258 268 275
|
| 809 |
+
f 253 251 276
|
| 810 |
+
f 251 259 276
|
| 811 |
+
o convex_6
|
| 812 |
+
v -0.596616 -2.542081 1.333436
|
| 813 |
+
v -1.345306 -3.040963 1.146202
|
| 814 |
+
v -1.345306 -3.040963 1.333436
|
| 815 |
+
v 0.400954 -3.040963 1.146202
|
| 816 |
+
v -0.970790 -3.040963 1.957045
|
| 817 |
+
v -1.095572 -2.479665 1.146202
|
| 818 |
+
v -1.157963 -2.853772 1.832196
|
| 819 |
+
v 0.338563 -2.916133 1.208587
|
| 820 |
+
v -0.534225 -2.479665 1.146202
|
| 821 |
+
v -0.846179 -2.479665 1.395821
|
| 822 |
+
v -0.970790 -2.978493 1.957045
|
| 823 |
+
f 286 283 287
|
| 824 |
+
f 279 278 280
|
| 825 |
+
f 279 280 281
|
| 826 |
+
f 278 279 282
|
| 827 |
+
f 280 278 282
|
| 828 |
+
f 279 281 283
|
| 829 |
+
f 282 279 283
|
| 830 |
+
f 281 280 284
|
| 831 |
+
f 280 282 285
|
| 832 |
+
f 277 284 285
|
| 833 |
+
f 284 280 285
|
| 834 |
+
f 282 283 286
|
| 835 |
+
f 285 282 286
|
| 836 |
+
f 277 285 286
|
| 837 |
+
f 283 281 287
|
| 838 |
+
f 284 277 287
|
| 839 |
+
f 281 284 287
|
| 840 |
+
f 277 286 287
|
| 841 |
+
o convex_7
|
| 842 |
+
v 0.089226 -1.045158 1.333436
|
| 843 |
+
v -1.158188 -1.169885 1.271051
|
| 844 |
+
v -1.158188 -1.169885 1.582737
|
| 845 |
+
v -0.596604 -2.479610 1.208587
|
| 846 |
+
v -0.222661 -0.733436 1.894660
|
| 847 |
+
v -1.158188 -0.546062 1.146202
|
| 848 |
+
v 0.151550 -0.546062 1.146202
|
| 849 |
+
v -0.970949 -2.479610 1.395821
|
| 850 |
+
v -1.095731 -2.354505 1.146202
|
| 851 |
+
v -0.721385 -0.982700 1.957045
|
| 852 |
+
v -0.409901 -2.354505 1.395821
|
| 853 |
+
v -0.347443 -2.354505 1.146202
|
| 854 |
+
v -0.409901 -0.546062 1.707427
|
| 855 |
+
v -0.285119 -1.294612 1.832196
|
| 856 |
+
v -1.158188 -0.795705 1.520511
|
| 857 |
+
v -1.033407 -2.167510 1.520511
|
| 858 |
+
v 0.214007 -0.857973 1.208587
|
| 859 |
+
v -0.409901 -1.419338 1.832196
|
| 860 |
+
v -0.097880 -0.546062 1.707427
|
| 861 |
+
v -1.095731 -1.045158 1.707427
|
| 862 |
+
v -0.721385 -1.107616 1.957045
|
| 863 |
+
f 297 307 308
|
| 864 |
+
f 289 290 293
|
| 865 |
+
f 290 289 296
|
| 866 |
+
f 289 293 296
|
| 867 |
+
f 293 294 296
|
| 868 |
+
f 291 295 296
|
| 869 |
+
f 295 291 298
|
| 870 |
+
f 291 296 299
|
| 871 |
+
f 296 294 299
|
| 872 |
+
f 298 291 299
|
| 873 |
+
f 294 293 300
|
| 874 |
+
f 297 292 300
|
| 875 |
+
f 298 288 301
|
| 876 |
+
f 293 290 302
|
| 877 |
+
f 300 293 302
|
| 878 |
+
f 297 300 302
|
| 879 |
+
f 290 296 303
|
| 880 |
+
f 296 295 303
|
| 881 |
+
f 288 298 304
|
| 882 |
+
f 299 294 304
|
| 883 |
+
f 298 299 304
|
| 884 |
+
f 301 288 304
|
| 885 |
+
f 292 301 304
|
| 886 |
+
f 295 298 305
|
| 887 |
+
f 298 301 305
|
| 888 |
+
f 300 292 306
|
| 889 |
+
f 294 300 306
|
| 890 |
+
f 292 304 306
|
| 891 |
+
f 304 294 306
|
| 892 |
+
f 302 290 307
|
| 893 |
+
f 297 302 307
|
| 894 |
+
f 290 303 307
|
| 895 |
+
f 307 303 308
|
| 896 |
+
f 292 297 308
|
| 897 |
+
f 301 292 308
|
| 898 |
+
f 303 295 308
|
| 899 |
+
f 295 305 308
|
| 900 |
+
f 305 301 308
|