#!/usr/bin/env bash # Launch GoWelcome inside the 'welcome' conda env. Any arguments are passed # straight through to main.py. # # ./welcome.sh # mock / webcam (no robot) # ./welcome.sh --interface eth0 # real Go2 over eth0 (TEST SUSPENDED FIRST) # ./welcome.sh --interface eth0 --dry-run --headless set -euo pipefail ENV_NAME="welcome" # Resolve this script's own directory (the project root) so it runs from any CWD. SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # --- locate + activate conda -------------------------------------------- if ! command -v conda >/dev/null 2>&1; then for c in "$HOME/miniconda3" "$HOME/anaconda3" "$HOME/miniforge3" "/opt/conda"; do if [ -f "$c/etc/profile.d/conda.sh" ]; then # shellcheck disable=SC1091 source "$c/etc/profile.d/conda.sh" break fi done fi command -v conda >/dev/null 2>&1 || { echo "ERROR: conda not found. Install Miniconda first, then run ./requirement.sh" >&2 exit 1 } # shellcheck disable=SC1091 source "$(conda info --base)/etc/profile.d/conda.sh" conda activate "$ENV_NAME" 2>/dev/null || { echo "ERROR: conda env '$ENV_NAME' not found. Run ./requirement.sh first." >&2 exit 1 } # Run from the project root so bundled assets (yolov8n.pt, greeting.wav) resolve. cd "$SCRIPT_DIR" # --- default to mock when no args, so a bare ./welcome.sh just runs ------ if [ "$#" -eq 0 ]; then echo "[welcome] no args -> MOCK mode (webcam 0)." echo "[welcome] real robot (WebRTC, default): ./welcome.sh --robot-ip [--aes-key ]" echo "[welcome] real robot (DDS/EDU wired): ./welcome.sh --transport dds --interface eth0" set -- --mock --source 0 fi exec python main.py "$@"