lsnu commited on
Commit
f3eaffd
·
verified ·
1 Parent(s): 4bcc54d

Add files using upload-large-folder tool

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. environment/setup_same_hardware.sh +26 -17
  2. external/rlbench/.github/workflows/task_tests.yml +52 -0
  3. external/rlbench/.github/workflows/unit_tests.yml +52 -0
  4. external/rlbench/examples/custom_action_mode.py +61 -0
  5. external/rlbench/examples/few_shot_rl.py +56 -0
  6. external/rlbench/examples/imitation_learning.py +51 -0
  7. external/rlbench/examples/multi_task_rl.py +55 -0
  8. external/rlbench/examples/rearrangement_challenge.py +67 -0
  9. external/rlbench/examples/rlbench_gym.py +16 -0
  10. external/rlbench/examples/single_task_rl.py +45 -0
  11. external/rlbench/examples/single_task_rl_domain_randomization.py +56 -0
  12. external/rlbench/examples/single_task_rl_with_demos.py +57 -0
  13. external/rlbench/examples/swap_arm.py +50 -0
  14. external/rlbench/rlbench/action_modes/__init__.py +0 -0
  15. external/rlbench/rlbench/action_modes/action_mode.py +164 -0
  16. external/rlbench/rlbench/action_modes/arm_action_modes.py +540 -0
  17. external/rlbench/rlbench/action_modes/gripper_action_modes.py +355 -0
  18. external/rlbench/rlbench/assets/procedural_objects/000/000.jpg +0 -0
  19. external/rlbench/rlbench/assets/procedural_objects/000/000.mtl +12 -0
  20. external/rlbench/rlbench/assets/procedural_objects/000/000.obj +0 -0
  21. external/rlbench/rlbench/assets/procedural_objects/000/000.png +0 -0
  22. external/rlbench/rlbench/assets/procedural_objects/000/000.urdf +32 -0
  23. external/rlbench/rlbench/assets/procedural_objects/000/000_BKUP.obj +0 -0
  24. external/rlbench/rlbench/assets/procedural_objects/000/000_coll.mtl +10 -0
  25. external/rlbench/rlbench/assets/procedural_objects/000/000_coll.obj +612 -0
  26. external/rlbench/rlbench/assets/procedural_objects/000/test.py +91 -0
  27. external/rlbench/rlbench/assets/procedural_objects/001/001.mtl +12 -0
  28. external/rlbench/rlbench/assets/procedural_objects/001/001.obj +527 -0
  29. external/rlbench/rlbench/assets/procedural_objects/001/001.png +0 -0
  30. external/rlbench/rlbench/assets/procedural_objects/001/001.urdf +32 -0
  31. external/rlbench/rlbench/assets/procedural_objects/001/001_coll.mtl +10 -0
  32. external/rlbench/rlbench/assets/procedural_objects/001/001_coll.obj +591 -0
  33. external/rlbench/rlbench/assets/procedural_objects/002/002.mtl +12 -0
  34. external/rlbench/rlbench/assets/procedural_objects/002/002.obj +201 -0
  35. external/rlbench/rlbench/assets/procedural_objects/002/002.png +0 -0
  36. external/rlbench/rlbench/assets/procedural_objects/002/002.urdf +32 -0
  37. external/rlbench/rlbench/assets/procedural_objects/002/002_coll.mtl +10 -0
  38. external/rlbench/rlbench/assets/procedural_objects/002/002_coll.obj +546 -0
  39. external/rlbench/rlbench/assets/procedural_objects/003/003.mtl +12 -0
  40. external/rlbench/rlbench/assets/procedural_objects/003/003.obj +328 -0
  41. external/rlbench/rlbench/assets/procedural_objects/003/003.png +0 -0
  42. external/rlbench/rlbench/assets/procedural_objects/003/003.urdf +32 -0
  43. external/rlbench/rlbench/assets/procedural_objects/003/003_coll.mtl +10 -0
  44. external/rlbench/rlbench/assets/procedural_objects/003/003_coll.obj +405 -0
  45. external/rlbench/rlbench/assets/procedural_objects/004/004.mtl +12 -0
  46. external/rlbench/rlbench/assets/procedural_objects/004/004.obj +0 -0
  47. external/rlbench/rlbench/assets/procedural_objects/004/004.png +0 -0
  48. external/rlbench/rlbench/assets/procedural_objects/004/004.urdf +32 -0
  49. external/rlbench/rlbench/assets/procedural_objects/004/004_coll.mtl +10 -0
  50. 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] clone exact upstream repos"
32
  mkdir -p "${ROOT}"
33
- if [[ ! -d "${ROOT}/rlbench/.git" ]]; then
34
- git clone https://github.com/markusgrotz/RLBench.git "${ROOT}/rlbench"
35
- fi
36
- if [[ ! -d "${ROOT}/pyrep/.git" ]]; then
37
- git clone https://github.com/markusgrotz/PyRep.git "${ROOT}/pyrep"
38
- fi
39
- if [[ ! -d "${ROOT}/peract_bimanual/.git" ]]; then
40
- git clone https://github.com/markusgrotz/peract_bimanual.git "${ROOT}/peract_bimanual"
41
- fi
42
- if [[ ! -d "${ROOT}/yarr/.git" ]]; then
43
- git clone https://github.com/markusgrotz/YARR.git "${ROOT}/yarr"
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