File size: 3,755 Bytes
9ebdc51
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#!/bin/bash
# OpenTrack runtime initialization script
# This script downloads datasets and sets up symlinks at container startup

set -e  # Exit on error

echo "πŸ€– Initializing OpenTrack workspace..."
echo "======================================"

# Define paths
WORKSPACE="/data/workspaces/opentrack"
DATASETS_DIR="$WORKSPACE/datasets"
MODELS_DIR="$WORKSPACE/models"
VIDEOS_DIR="$WORKSPACE/videos"
OPENTRACK_REPO="$HOME/OpenTrack"

# Create workspace directories if they don't exist
mkdir -p "$DATASETS_DIR"
mkdir -p "$MODELS_DIR"
mkdir -p "$VIDEOS_DIR"
echo "βœ“ Workspace directories ready"

# Download mocap datasets if not already present
MOCAP_DIR="$DATASETS_DIR/lafan1/UnitreeG1"
mkdir -p "$MOCAP_DIR"

if [ -z "$(ls -A "$MOCAP_DIR" 2>/dev/null)" ]; then
    echo ""
    echo "πŸ“₯ Downloading motion capture datasets..."
    echo "   This may take a few minutes on first run..."

    # Use Python with huggingface_hub to download
    python3 << 'EOF'
import sys
from pathlib import Path

try:
    from huggingface_hub import snapshot_download

    datasets_dir = Path("$DATASETS_DIR")

    print("   Downloading from robfiras/loco-mujoco-datasets...")
    snapshot_path = snapshot_download(
        repo_id="robfiras/loco-mujoco-datasets",
        repo_type="dataset",
        allow_patterns="Lafan1/mocap/UnitreeG1/*.npz",
        local_dir=str(datasets_dir),
        local_dir_use_symlinks=False
    )

    # Count downloaded files
    mocap_dir = datasets_dir / "lafan1" / "UnitreeG1"
    npz_files = list(mocap_dir.glob("*.npz"))
    print(f"   βœ“ Downloaded {len(npz_files)} motion capture files")

except ImportError:
    print("   ⚠️  huggingface_hub not available, skipping dataset download", file=sys.stderr)
    print("   You can download datasets manually from:", file=sys.stderr)
    print("   https://huggingface.co/datasets/robfiras/loco-mujoco-datasets", file=sys.stderr)
except Exception as e:
    print(f"   ⚠️  Error downloading datasets: {e}", file=sys.stderr)
    print("   You may need to run: huggingface-cli login", file=sys.stderr)
EOF

    echo "βœ“ Dataset download completed"
else
    # Count existing files
    FILE_COUNT=$(find "$MOCAP_DIR" -name "*.npz" | wc -l | tr -d ' ')
    echo "βœ“ Found existing mocap datasets ($FILE_COUNT files)"
fi

# Set up symlinks for OpenTrack
if [ -d "$OPENTRACK_REPO" ]; then
    echo ""
    echo "πŸ”— Setting up OpenTrack symlinks..."

    # Create symlink from OpenTrack/data/mocap to datasets
    OPENTRACK_DATA_DIR="$OPENTRACK_REPO/data/mocap"
    mkdir -p "$(dirname "$OPENTRACK_DATA_DIR")"

    if [ -L "$OPENTRACK_DATA_DIR" ]; then
        rm "$OPENTRACK_DATA_DIR"
    elif [ -d "$OPENTRACK_DATA_DIR" ]; then
        rm -rf "$OPENTRACK_DATA_DIR"
    fi

    ln -s "$DATASETS_DIR" "$OPENTRACK_DATA_DIR"
    echo "   βœ“ $OPENTRACK_DATA_DIR -> $DATASETS_DIR"

    # Create symlink from OpenTrack/logs to models
    OPENTRACK_LOGS_DIR="$OPENTRACK_REPO/logs"

    if [ -L "$OPENTRACK_LOGS_DIR" ]; then
        rm "$OPENTRACK_LOGS_DIR"
    elif [ -d "$OPENTRACK_LOGS_DIR" ]; then
        # Move existing logs to MODELS_DIR
        if [ "$(ls -A "$OPENTRACK_LOGS_DIR" 2>/dev/null)" ]; then
            echo "   Moving existing logs to $MODELS_DIR..."
            mv "$OPENTRACK_LOGS_DIR"/* "$MODELS_DIR/" 2>/dev/null || true
        fi
        rm -rf "$OPENTRACK_LOGS_DIR"
    fi

    ln -s "$MODELS_DIR" "$OPENTRACK_LOGS_DIR"
    echo "   βœ“ $OPENTRACK_LOGS_DIR -> $MODELS_DIR"
else
    echo "⚠️  OpenTrack repository not found at $OPENTRACK_REPO"
fi

echo ""
echo "======================================"
echo "βœ… OpenTrack workspace initialized!"
echo ""
echo "   Datasets: $DATASETS_DIR"
echo "   Models:   $MODELS_DIR"
echo "   Videos:   $VIDEOS_DIR"
echo ""