Skip to content

Very long 10+ minute load time #284

@owenonline

Description

@owenonline

Description

I am experiencing incredibly long load times ranging from 1-20 minutes seemingly at random when using Isaac Sim. I've containerized my environment with this dockerfile:

FROM nvcr.io/nvidia/isaac-sim:5.0.0

# ------------------------------------------------------------
# Part 1: Core simulation stuff
# ------------------------------------------------------------

RUN apt-get update && apt-get install -y --no-install-recommends \
    git build-essential cmake unzip git-lfs wget \
  && rm -rf /var/lib/apt/lists/*

# Isaac Lab
RUN git clone https://github.com/isaac-sim/IsaacLab.git /IsaacLab && \
    cd /IsaacLab && \
    git checkout v2.2.0 && \
    ln -s /isaac-sim _isaac_sim && \
    TERM=xterm ./isaaclab.sh --install

# CycloneDDS (necessary to communicate with the simulated robot)
RUN git clone https://github.com/eclipse-cyclonedds/cyclonedds -b releases/0.10.x /cyclonedds && \
    cd /cyclonedds && mkdir build install && cd build && \
    cmake .. -DCMAKE_INSTALL_PREFIX=../install && \
    cmake --build . --target install
ENV CYCLONEDDS_HOME=/cyclonedds/install

# Unitree SDK 2.0
RUN git clone https://github.com/unitreerobotics/unitree_sdk2_python /unitree_sdk2_python && \
    cd /unitree_sdk2_python && \
    /isaac-sim/python.sh -m pip install -e .

# Unitree Sim environment
RUN git clone https://github.com/unitreerobotics/unitree_sim_isaaclab.git /home/code/unitree_sim_isaaclab && \
    cd /home/code/unitree_sim_isaaclab && \
    /isaac-sim/python.sh -m pip install -r requirements.txt

# Fetch USD assets
RUN cd /home/code/unitree_sim_isaaclab && \
    chmod +x fetch_assets.sh && \
    bash -lc ". fetch_assets.sh"

# ------------------------------------------------------------
# Part 2: VR Teleop stuff
# ------------------------------------------------------------

ARG COUNTRY="US"
ARG STATE="CA"
ARG LOCALITY="San Francisco"
ARG ORGANIZATION="University of California, Berkeley"
ARG ORGANIZATION_UNIT="BAIR"
ARG COMMON_NAME="Owen Burns"

ENV PATH="/root/miniconda3/bin:${PATH}"
ARG PATH="/root/miniconda3/bin:${PATH}"

# miniconda setup
RUN mkdir -p ~/miniconda3 && \
    wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh && \
    bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3 && \
    rm ~/miniconda3/miniconda.sh
RUN . ~/miniconda3/bin/activate
RUN conda init --all && \
    conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/main && \
    conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/r && \
    conda create -n tv python=3.10 pinocchio=3.1.0 numpy=1.26.4 -c conda-forge

# XR Teleop stuff
RUN git clone https://github.com/unitreerobotics/xr_teleoperate.git /xr_teleoperate && \
    cd /xr_teleoperate && \
    git submodule update --init --depth 1 && \
    cd teleop/televuer && \
    ~/miniconda3/envs/tv/bin/pip install -e . && \
    openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout key.pem -out cert.pem -subj "/CN=${COUNTRY}/ST=${STATE}/L=${LOCALITY}/O=${ORGANIZATION}/OU=${ORGANIZATION_UNIT}/CN=${COMMON_NAME}" && \
    cd ../robot_control/dex-retargeting/ && \
    ~/miniconda3/envs/tv/bin/pip install -e . && \
    cd ../../../ && \
    ~/miniconda3/envs/tv/bin/pip install -r requirements.txt

# Install the unitree SDK in the conda environment as well
RUN cd /unitree_sdk2_python && \
    ~/miniconda3/envs/tv/bin/pip install -e .

# ------------------------------------------------------------
CMD [ "bash"]

Steps to replicate:

docker build -t unitree_sim_vr .
docker run --name isaac-sim --entrypoint bash -it --runtime=nvidia --gpus all -e "ACCEPT_EULA=Y" --rm --network=host \
    -e "PRIVACY_CONSENT=Y" \
    -v ~/docker/isaac-sim/cache/kit:/isaac-sim/kit/cache:rw \
    -v ~/docker/isaac-sim/cache/ov:/root/.cache/ov:rw \
    -v ~/docker/isaac-sim/cache/pip:/root/.cache/pip:rw \
    -v ~/docker/isaac-sim/cache/glcache:/root/.cache/nvidia/GLCache:rw \
    -v ~/docker/isaac-sim/cache/computecache:/root/.nv/ComputeCache:rw \
    -v ~/docker/isaac-sim/logs:/root/.nvidia-omniverse/logs:rw \
    -v ~/docker/isaac-sim/data:/root/.local/share/ov/data:rw \
    -v ~/docker/isaac-sim/documents:/root/Documents:rw \
    -v /home/owenburns/workareas/teleop_data:/xr_teleoperate/teleop/utils/data \
    -v "$PWD":/workspace \
    unitree_sim_vr
conda deactivate
export PUBLIC_IP=$(curl -s ifconfig.me)
cd /home/code/unitree_sim_isaaclab
export PATH="/isaac-sim/kit/python/bin:$PATH"
/isaac-sim/python.sh sim_main.py --device cpu --enable_cameras --task Isaac-PickPlace-Cylinder-G129-Dex3-Joint --enable_dex3_dds --robot_type g129 --livestream 1

Is there any way to circumvent this very long load time, or reduce the probability of a long load time? Any help is greatly appreciated.

Isaac Sim version

5.0.0

Operating System (OS)

Ubuntu 22

GPU Name

RTX 6000

GPU Driver and CUDA versions

Driver Version: 570.195.03 CUDA Version: 12.8

Logs

No response

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions