|
25 | 25 | echo "Installing Isaac Sim components for architecture: $TARGETARCH" |
26 | 26 | echo "Isaac Sim version: $ISAAC_SIM_VERSION" |
27 | 27 |
|
| 28 | +ISAAC_SIM_STANDALONE_ARCHIVE="" |
| 29 | +ISAAC_SIM_SOURCE_PATH="/home/$USERNAME/IsaacSim" |
| 30 | + |
28 | 31 | # Only install Isaac Sim components on amd64 architecture |
29 | 32 | if [ "$TARGETARCH" != "amd64" ]; then |
30 | 33 | echo "Skipping Isaac Sim installation for architecture: $TARGETARCH (only supported on amd64)" |
31 | 34 | exit 0 |
32 | 35 | fi |
33 | 36 |
|
| 37 | +if [ "$ISAAC_SIM_VERSION" = "develop" ]; then |
| 38 | + echo "Isaac Sim source build enabled from branch: develop" |
| 39 | + |
| 40 | + echo "Installing build dependencies for Isaac Sim source build..." |
| 41 | + sudo apt-get update && sudo apt-get install -y \ |
| 42 | + build-essential gcc-11 g++-11 \ |
| 43 | + && sudo rm -rf /var/lib/apt/lists/* \ |
| 44 | + || exit 1 |
| 45 | +fi |
| 46 | + |
34 | 47 | echo "Installing 'libglu1-mesa' for Iray and 'libxrandr2' to support Isaac Sim WebRTC streaming..." |
35 | 48 | sudo apt-get update && sudo apt-get install -y \ |
36 | 49 | libglu1-mesa libxrandr2 \ |
37 | 50 | && sudo rm -rf /var/lib/apt/lists/* \ |
38 | 51 | || exit 1 |
39 | 52 |
|
40 | | -if [ "$ISAAC_SIM_VERSION" = "5.1.0" ]; then |
| 53 | +if [ "$ISAAC_SIM_VERSION" = "develop" ]; then |
| 54 | + echo "Cloning Isaac Sim source repository..." |
| 55 | + git clone -b develop https://github.com/isaac-sim/IsaacSim.git "$ISAAC_SIM_SOURCE_PATH" \ |
| 56 | + && cd "$ISAAC_SIM_SOURCE_PATH" \ |
| 57 | + && git lfs install \ |
| 58 | + && git lfs pull \ |
| 59 | + && touch .eula_accepted \ |
| 60 | + && ./build.sh --config release \ |
| 61 | + && ./repo.sh package --config release -m isaac-sim-standalone \ |
| 62 | + || exit 1 |
| 63 | + |
| 64 | + ISAAC_SIM_STANDALONE_ARCHIVE="$( |
| 65 | + find "$ISAAC_SIM_SOURCE_PATH/_build/packages" -maxdepth 1 -type f -name 'isaac-sim-standalone*release*.7z' \ |
| 66 | + | sort \ |
| 67 | + | tail -n 1 |
| 68 | + )" |
| 69 | + if [ -z "$ISAAC_SIM_STANDALONE_ARCHIVE" ]; then |
| 70 | + echo "Error: Isaac Sim standalone package archive was not generated" |
| 71 | + exit 1 |
| 72 | + fi |
| 73 | +elif [ "$ISAAC_SIM_VERSION" = "5.1.0" ]; then |
41 | 74 | echo "Installing Isaac Sim 5.1.0 (packaged with Python 3.11)..." |
42 | 75 | # Ref: https://docs.isaacsim.omniverse.nvidia.com/5.1.0/installation/install_workstation.html |
43 | 76 | cd /tmp \ |
44 | 77 | && wget -q https://download.isaacsim.omniverse.nvidia.com/isaac-sim-standalone-5.1.0-linux-x86_64.zip \ |
45 | | - && 7z x "isaac-sim-standalone-5.1.0-linux-x86_64.zip" -o"$ISAACSIM_PATH" \ |
46 | | - && rm "isaac-sim-standalone-5.1.0-linux-x86_64.zip" \ |
47 | | - && cd "$ISAACSIM_PATH" \ |
| 78 | + || exit 1 |
| 79 | + |
| 80 | + ISAAC_SIM_STANDALONE_ARCHIVE="/tmp/isaac-sim-standalone-5.1.0-linux-x86_64.zip" |
| 81 | +else |
| 82 | + echo "Error: Unsupported Isaac Sim version: $ISAAC_SIM_VERSION" |
| 83 | + exit 1 |
| 84 | +fi |
| 85 | + |
| 86 | +if [ "$ISAAC_SIM_VERSION" = "develop" ]; then |
| 87 | + echo "Extracting standalone package to $ISAACSIM_PATH..." |
| 88 | + rm -rf "$ISAACSIM_PATH" \ |
| 89 | + && mkdir -p "$ISAACSIM_PATH" \ |
| 90 | + && 7z x "$ISAAC_SIM_STANDALONE_ARCHIVE" -o"$ISAACSIM_PATH" \ |
| 91 | + || exit 1 |
| 92 | + |
| 93 | + echo "Removing Isaac Sim source build artifacts after packaging..." |
| 94 | + rm -rf "$ISAAC_SIM_SOURCE_PATH" \ |
| 95 | + && rm -rf "/home/$USERNAME/.cache/packman" \ |
| 96 | + || exit 1 |
| 97 | +elif [ "$ISAAC_SIM_VERSION" = "5.1.0" ]; then |
| 98 | + # It's a bit unfortunate that we are currently manually compressing the source build and then extracting |
| 99 | + # it again to install, but without this process, the build will not be standalone (depends on `.cache`). |
| 100 | + echo "Extracting standalone package to $ISAACSIM_PATH..." |
| 101 | + rm -rf "$ISAACSIM_PATH" \ |
| 102 | + && mkdir -p "$ISAACSIM_PATH" \ |
| 103 | + && 7z x "$ISAAC_SIM_STANDALONE_ARCHIVE" -o"$ISAACSIM_PATH" \ |
| 104 | + || exit 1 |
| 105 | + |
| 106 | + cd "$ISAACSIM_PATH" \ |
48 | 107 | && ./post_install.sh \ |
| 108 | + && rm -f "$ISAAC_SIM_STANDALONE_ARCHIVE" \ |
49 | 109 | || exit 1 |
50 | 110 |
|
51 | 111 | # Note: Optional dependencies and the Isaac Sim ROS workspace are not installed to minimize image size |
52 | 112 | # Ref: https://docs.isaacsim.omniverse.nvidia.com/5.1.0/installation/install_ros.html#install-ros-2 |
53 | 113 | # Ref: https://docs.isaacsim.omniverse.nvidia.com/5.1.0/installation/install_ros.html#setting-up-workspaces |
54 | | -else |
55 | | - echo "Error: Unsupported Isaac Sim version: $ISAAC_SIM_VERSION" |
56 | | - exit 1 |
57 | 114 | fi |
58 | 115 |
|
59 | 116 | echo "Creating Isaac Sim directories with correct ownership to avoid permission issues after volume mount..." |
60 | 117 | sudo mkdir -p /isaac-sim && sudo chown $USERNAME:$USERNAME /isaac-sim || exit 1 |
61 | 118 |
|
62 | | -if [ "$ISAAC_SIM_VERSION" = "5.1.0" ]; then |
| 119 | +if [ "$ISAAC_SIM_VERSION" = "develop" ] || [ "$ISAAC_SIM_VERSION" = "5.1.0" ]; then |
63 | 120 | echo "Creating Isaac Sim 5.1.0 specific directories with correct ownership to avoid permission issues after volume mount..." |
64 | 121 | mkdir -p /isaac-sim/kit/cache \ |
65 | 122 | && mkdir -p /home/$USERNAME/.cache/ov \ |
|
0 commit comments