File size: 2,974 Bytes
150d02a
 
 
 
 
 
 
f3eaffd
 
150d02a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f3eaffd
150d02a
f3eaffd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
150d02a
f3eaffd
 
 
 
 
150d02a
 
 
 
 
 
ed4f6d2
 
150d02a
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#!/usr/bin/env bash
set -euo pipefail

ROOT="${1:-/workspace}"
MINIFORGE_DIR="${ROOT}/miniforge3"
ENV_PREFIX="${MINIFORGE_DIR}/envs/rlbench"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)"
EXTERNAL_ROOT="${REPO_ROOT}/external"

echo "[1/6] optional system packages"
echo "Install these on Ubuntu 22.04 if they are missing:"
echo "  sudo apt-get update"
echo "  sudo apt-get install -y git wget curl xvfb git-lfs libgl1 libglib2.0-0 libsm6 libxext6 libxrender1 libxrandr2 libxi6 libxcursor1 libxinerama1 libxxf86vm1 libfontconfig1 libfreetype6"

echo "[2/6] install Miniforge if needed"
if [[ ! -x "${MINIFORGE_DIR}/bin/conda" ]]; then
  wget -O "${ROOT}/Miniforge3-Linux-x86_64.sh" \
    "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh"
  bash "${ROOT}/Miniforge3-Linux-x86_64.sh" -b -p "${MINIFORGE_DIR}"
fi

source "${MINIFORGE_DIR}/etc/profile.d/conda.sh"

echo "[3/6] create or update rlbench environment"
if [[ ! -d "${ENV_PREFIX}" ]]; then
  conda env create -p "${ENV_PREFIX}" -f "${SCRIPT_DIR}/conda_env_rlbench.yml"
else
  conda env update -p "${ENV_PREFIX}" -f "${SCRIPT_DIR}/conda_env_rlbench.yml" --prune
fi
conda activate "${ENV_PREFIX}"

echo "[4/6] install benchmark source trees"
mkdir -p "${ROOT}"
if [[ -d "${EXTERNAL_ROOT}/rlbench" ]]; then
  rsync -a "${EXTERNAL_ROOT}/rlbench/" "${ROOT}/rlbench/"
  rsync -a "${EXTERNAL_ROOT}/pyrep/" "${ROOT}/pyrep/"
  rsync -a "${EXTERNAL_ROOT}/peract_bimanual/" "${ROOT}/peract_bimanual/"
  rsync -a "${EXTERNAL_ROOT}/yarr/" "${ROOT}/yarr/"
else
  if [[ ! -d "${ROOT}/rlbench/.git" ]]; then
    git clone https://github.com/markusgrotz/RLBench.git "${ROOT}/rlbench"
  fi
  if [[ ! -d "${ROOT}/pyrep/.git" ]]; then
    git clone https://github.com/markusgrotz/PyRep.git "${ROOT}/pyrep"
  fi
  if [[ ! -d "${ROOT}/peract_bimanual/.git" ]]; then
    git clone https://github.com/markusgrotz/peract_bimanual.git "${ROOT}/peract_bimanual"
  fi
  if [[ ! -d "${ROOT}/yarr/.git" ]]; then
    git clone https://github.com/markusgrotz/YARR.git "${ROOT}/yarr"
  fi

  git -C "${ROOT}/rlbench" checkout 8af748c51287989294e00c9c670e3330a0e35ed5
  git -C "${ROOT}/pyrep" checkout b8bd1d7a3182adcd570d001649c0849047ebf197
  git -C "${ROOT}/peract_bimanual" checkout bb0232a6ba3fe116566e9568f0c7af980ed6703d
  git -C "${ROOT}/yarr" checkout 6822ff78602c77878b27d4cfe759ce029c67bffb
fi

echo "[5/6] install editable repos used by the rlbench env"
python -m pip install -e "${ROOT}/pyrep"
python -m pip install -e "${ROOT}/rlbench"

echo "[6/6] CoppeliaSim and dataset"
echo "If the repo includes runtime asset archives, extract them first via:"
echo "  ${SCRIPT_DIR}/extract_runtime_assets.sh ${ROOT}"
echo "Provide a CoppeliaSim extraction at ${ROOT}/coppelia_sim."
echo "Provide the benchmark dataset at ${ROOT}/data/bimanual_take_tray_out_of_oven_train_128."
echo "Then source: ${SCRIPT_DIR}/activate_rlbench_runtime.sh ${ROOT}"