File size: 3,513 Bytes
c26f879 | 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 71 72 73 74 75 76 77 | #!/usr/bin/env bash
# install_mujoco_sim.sh
# Minimal venv setup for running the MuJoCo simulator (run_sim_loop.py).
# Skips XRoboToolkit SDK and teleop dependencies that are NOT needed for sim.
# Based on install_pico.sh β see that script for the full teleop setup.
#
# Usage: bash install_scripts/install_mujoco_sim.sh (run from repo root)
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
# ββ 0. Print detected architecture βββββββββββββββββββββββββββββββββββββββββββ
ARCH="$(uname -m)"
echo "[OK] Architecture: $ARCH"
# ββ 1. Ensure uv is installed and available ββββββββββββββββββββββββββββββββββ
if ! command -v uv &>/dev/null; then
echo "[INFO] uv not found β installing via official installer β¦"
curl -LsSf https://astral.sh/uv/install.sh | sh
# Source the uv env so it's available in this session
if [ -f "$HOME/.local/bin/env" ]; then
# shellcheck disable=SC1091
source "$HOME/.local/bin/env"
elif [ -f "$HOME/.cargo/env" ]; then
# shellcheck disable=SC1091
source "$HOME/.cargo/env"
else
export PATH="$HOME/.local/bin:$PATH"
fi
# Verify uv is now reachable
if ! command -v uv &>/dev/null; then
echo "[ERROR] uv installation succeeded but binary not found on PATH."
echo " Please add ~/.local/bin (or ~/.cargo/bin) to your PATH and re-run."
exit 1
fi
fi
echo "[OK] uv $(uv --version)"
# ββ 2. Install a uv-managed Python 3.10 (includes dev headers / Python.h) ββββ
echo "[INFO] Installing uv-managed Python 3.10 (includes development headers) β¦"
uv python install 3.10
MANAGED_PY="$(uv python find --no-project 3.10)"
echo "[OK] Using Python: $MANAGED_PY"
# ββ 3. Clean previous venv (if any) ββββββββββββββββββββββββββββββββββββββββββ
cd "$REPO_ROOT"
echo "[INFO] Removing old .venv_sim (if present) β¦"
rm -rf .venv_sim
# ββ 4. Create venv & install sim extra ββββββββββββββββββββββββββββββββββββββββ
echo "[INFO] Creating .venv_sim with uv-managed Python 3.10 β¦"
uv venv .venv_sim --python "$MANAGED_PY" --prompt gear_sonic_sim
# shellcheck disable=SC1091
source .venv_sim/bin/activate
echo "[INFO] Installing gear_sonic[sim] β¦"
uv pip install -e "gear_sonic[sim]"
# ββ 5. Install unitree_sdk2_python (needed by the sim β WBC bridge) ββββββββββ
echo "[INFO] Installing unitree_sdk2_python β¦"
uv pip install -e external_dependencies/unitree_sdk2_python
echo ""
echo "ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ"
echo " Setup complete! Activate the venv with:"
echo ""
echo " source .venv_sim/bin/activate"
echo ""
echo " You should see (gear_sonic_sim) in your prompt."
echo ""
echo " Then run the MuJoCo simulator with:"
echo " python gear_sonic/scripts/run_sim_loop.py"
echo "ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ"
|