Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion docker/.env.base
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ ACCEPT_EULA=Y
# NVIDIA Isaac Sim base image
ISAACSIM_BASE_IMAGE=nvcr.io/nvidia/isaac-sim
# NVIDIA Isaac Sim version to use (e.g. 5.0.0)
ISAACSIM_VERSION=5.1.0
ISAACSIM_VERSION=5.0.0

Copilot AI Feb 25, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isaac Sim version downgraded from 5.1.0 to 5.0.0. While setup.py was updated to support Isaac Sim 5.1.0 (line 84), the Docker configuration uses an older version. This version mismatch could lead to compatibility issues.

Copilot uses AI. Check for mistakes.
# Derived from the default path in the NVIDIA provided Isaac Sim container
DOCKER_ISAACSIM_ROOT_PATH=/isaac-sim
# The Isaac Lab path in the container
Expand All @@ -17,3 +17,4 @@ DOCKER_USER_HOME=/root
# Docker image and container name suffix (default "", set by the container_interface.py script)
# Example: "-custom"
DOCKER_NAME_SUFFIX=""

60 changes: 30 additions & 30 deletions docker/Dockerfile.base
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,23 @@
# All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause

# Nvidia Dockerfiles: https://github.com/NVIDIA-Omniverse/IsaacSim-dockerfiles
# Please check above link for license information.

# Base image
ARG ISAACSIM_BASE_IMAGE_ARG
ARG ISAACSIM_VERSION_ARG
FROM ${ISAACSIM_BASE_IMAGE_ARG}:${ISAACSIM_VERSION_ARG} AS base
ENV ISAACSIM_VERSION=${ISAACSIM_VERSION_ARG}

# Set default RUN shell to bash
SHELL ["/bin/bash", "-c"]

# Adds labels to the Dockerfile
LABEL version="2.1.1"
LABEL description="Dockerfile for building and running the Isaac Lab framework inside Isaac Sim container image."

# Arguments
# Path to Isaac Sim root folder
ARG ISAACSIM_ROOT_PATH_ARG
Expand All @@ -29,13 +29,13 @@ ENV ISAACLAB_PATH=${ISAACLAB_PATH_ARG}
# Home dir of docker user, typically '/root'
ARG DOCKER_USER_HOME_ARG
ENV DOCKER_USER_HOME=${DOCKER_USER_HOME_ARG}

# Set environment variables
ENV LANG=C.UTF-8
ENV DEBIAN_FRONTEND=noninteractive

USER root

# Install dependencies and remove cache
RUN --mount=type=cache,target=/var/cache/apt \
apt-get update && apt-get install -y --no-install-recommends \
Expand All @@ -47,25 +47,25 @@ RUN --mount=type=cache,target=/var/cache/apt \
wget && \
apt -y autoremove && apt clean autoclean && \
rm -rf /var/lib/apt/lists/*

# Copy the Isaac Lab directory (files to exclude are defined in .dockerignore)
COPY ../ ${ISAACLAB_PATH}

# Ensure isaaclab.sh has execute permissions
RUN chmod +x ${ISAACLAB_PATH}/isaaclab.sh

# Set up a symbolic link between the installed Isaac Sim root folder and _isaac_sim in the Isaac Lab directory
RUN ln -sf ${ISAACSIM_ROOT_PATH} ${ISAACLAB_PATH}/_isaac_sim

# Install toml dependency
RUN ${ISAACLAB_PATH}/isaaclab.sh -p -m pip install toml

# Install apt dependencies for extensions that declare them in their extension.toml
RUN --mount=type=cache,target=/var/cache/apt \
${ISAACLAB_PATH}/isaaclab.sh -p ${ISAACLAB_PATH}/tools/install_deps.py apt ${ISAACLAB_PATH}/source && \
apt -y autoremove && apt clean autoclean && \
rm -rf /var/lib/apt/lists/*

# for singularity usage, have to create the directories that will binded
RUN mkdir -p ${ISAACSIM_ROOT_PATH}/kit/cache && \
mkdir -p ${DOCKER_USER_HOME}/.cache/ov && \
Expand All @@ -75,7 +75,7 @@ RUN mkdir -p ${ISAACSIM_ROOT_PATH}/kit/cache && \
mkdir -p ${DOCKER_USER_HOME}/.nvidia-omniverse/logs && \
mkdir -p ${DOCKER_USER_HOME}/.local/share/ov/data && \
mkdir -p ${DOCKER_USER_HOME}/Documents

# for singularity usage, create NVIDIA binary placeholders
# NOTE: These are only needed for Singularity, not Docker
# For Docker, comment these out as they override the real nvidia binaries
Expand All @@ -87,12 +87,12 @@ RUN mkdir -p ${ISAACSIM_ROOT_PATH}/kit/cache && \
# touch /etc/localtime && \
# mkdir -p /var/run/nvidia-persistenced && \
# touch /var/run/nvidia-persistenced/socket

# installing Isaac Lab dependencies
# use pip caching to avoid reinstalling large packages
RUN --mount=type=cache,target=${DOCKER_USER_HOME}/.cache/pip \
${ISAACLAB_PATH}/isaaclab.sh --install

# HACK: Remove install of quadprog dependency
RUN ${ISAACLAB_PATH}/isaaclab.sh -p -m pip uninstall -y quadprog
RUN set -euo pipefail && \
Expand All @@ -116,8 +116,8 @@ RUN set -euo pipefail && \
apt-get update && \
apt-get install -y --no-install-recommends cuda-toolkit-12-8 && \
apt-get -y autoremove && apt-get clean && rm -rf /var/lib/apt/lists/*


ENV CUDA_HOME=/usr/local/cuda-12.8
ENV PATH=${CUDA_HOME}/bin:${PATH}
ENV LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${LD_LIBRARY_PATH}
Expand All @@ -135,19 +135,19 @@ RUN echo "export ISAACLAB_PATH=${ISAACLAB_PATH}" >> ${HOME}/.bashrc && \
echo "export TZ=$(date +%Z)" >> ${HOME}/.bashrc && \
echo "shopt -s histappend" >> /root/.bashrc && \
echo "PROMPT_COMMAND='history -a'" >> /root/.bashrc

# use pip caching to avoid reinstalling large packages
#RUN --mount=type=cache,target=${DOCKER_USER_HOME}/.cache/pip \
# pip install --upgrade --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu128
# install TensorFlow and nightly PyTorch
RUN --mount=type=cache,target=${DOCKER_USER_HOME}/.cache/pip \
${ISAACLAB_PATH}/_isaac_sim/python.sh -m pip install --upgrade --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu128

${ISAACLAB_PATH}/_isaac_sim/python.sh -m pip install --upgrade --pre torch torchvision torchaudio
RUN --mount=type=cache,target=${DOCKER_USER_HOME}/.cache/pip \
${ISAACLAB_PATH}/_isaac_sim/python.sh -m pip install tensorflow scikit-learn

RUN --mount=type=cache,target=${DOCKER_USER_HOME}/.cache/pip \
${ISAACLAB_PATH}/_isaac_sim/python.sh -m pip install protobuf==3.20.2
${ISAACLAB_PATH}/_isaac_sim/python.sh -m pip install tensorflow scikit-learn protobuf
# RUN --mount=type=cache,target=${DOCKER_USER_HOME}/.cache/pip \
# ${ISAACLAB_PATH}/_isaac_sim/python.sh -m pip install protobuf
# Detect Ubuntu version and install CUDA 12.8 via NVIDIA network repo (cuda-keyring)
RUN set -euo pipefail && \
. /etc/os-release && \
Expand All @@ -170,15 +170,15 @@ RUN set -euo pipefail && \
apt-get update && \
apt-get install -y --no-install-recommends cuda-toolkit-12-8 && \
apt-get -y autoremove && apt-get clean && rm -rf /var/lib/apt/lists/*


ENV CUDA_HOME=/usr/local/cuda-12.8
ENV PATH=${CUDA_HOME}/bin:${PATH}
ENV LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${LD_LIBRARY_PATH}
ENV TORCH_CUDA_ARCH_LIST=8.0+PTX

# Copy the Isaac Lab directory (files to exclude are defined in .dockerignore)
COPY ../ ${ISAACLAB_PATH}
# make working directory as the Isaac Lab directory
# this is the default directory when the container is run
WORKDIR ${ISAACLAB_PATH}
WORKDIR ${ISAACLAB_PATH}
2 changes: 1 addition & 1 deletion docs/find_best_checkpoints.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ def main():
"""Main function to process all model directories."""
# Define paths - handle both host and Docker container paths
script_dir = Path(__file__).parent.resolve()
base_dir = script_dir / "place/Dev-IK-Rel-Place-v0"
base_dir = script_dir / "insert/Dev-IK-Rel-Insert-v0"
output_dir = base_dir / "best_models"

# Create output directory (including parent directories if needed)
Expand Down
57 changes: 22 additions & 35 deletions docs/run_experiments.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,65 +2,52 @@

## script to run experiments in the background

task="Dev-IK-Rel-Place-v0"
horizon=5000
task="Dev-IK-Rel-v1"
horizon=500
num_rollouts=100
run_file="scripts/imitation_learning/robomimic/play_ensemble_v05.py"
ensemble_size=15
exp_type="lift_none"

##### this now runs the experiments

## ensemble 15
seed=101
exp_name="${task}_ensemble_${ensemble_size}_seed_${seed}_highdem"
./isaaclab.sh -p $run_file --task $task --horizon $horizon --num_rollouts $num_rollouts --ensemble_size $ensemble_size --seed $seed --exp_name $exp_name --headless
# ## ensemble 15
# ensemble_size=15
# seed=101
# exp_name="${task}_ensemble_${ensemble_size}_seed_${seed}_${exp_type}"
# ./isaaclab.sh -p $run_file --task $task --horizon $horizon --num_rollouts $num_rollouts --ensemble_size $ensemble_size --seed $seed --exp_name $exp_name --headless

seed=107
exp_name="${task}_ensemble_${ensemble_size}_seed_${seed}_highdem"
./isaaclab.sh -p $run_file --task $task --horizon $horizon --num_rollouts $num_rollouts --ensemble_size $ensemble_size --seed $seed --exp_name $exp_name --headless
# seed=107
# exp_name="${task}_ensemble_${ensemble_size}_seed_${seed}_${exp_type}"
# ./isaaclab.sh -p $run_file --task $task --horizon $horizon --num_rollouts $num_rollouts --ensemble_size $ensemble_size --seed $seed --exp_name $exp_name --headless

seed=115
exp_name="${task}_ensemble_${ensemble_size}_seed_${seed}_highdem"
./isaaclab.sh -p $run_file --task $task --horizon $horizon --num_rollouts $num_rollouts --ensemble_size $ensemble_size --seed $seed --exp_name $exp_name --headless
# seed=115
# exp_name="${task}_ensemble_${ensemble_size}_seed_${seed}_${exp_type}"
# ./isaaclab.sh -p $run_file --task $task --horizon $horizon --num_rollouts $num_rollouts --ensemble_size $ensemble_size --seed $seed --exp_name $exp_name --headless

## ensemble 10
## ensemble 10
ensemble_size=10
seed=101
exp_name="${task}_ensemble_${ensemble_size}_seed_${seed}_highdem"
exp_name="${task}_ensemble_${ensemble_size}_seed_${seed}_${exp_type}"
./isaaclab.sh -p $run_file --task $task --horizon $horizon --num_rollouts $num_rollouts --ensemble_size $ensemble_size --seed $seed --exp_name $exp_name --headless

seed=107
exp_name="${task}_ensemble_${ensemble_size}_seed_${seed}_highdem"
exp_name="${task}_ensemble_${ensemble_size}_seed_${seed}_${exp_type}"
./isaaclab.sh -p $run_file --task $task --horizon $horizon --num_rollouts $num_rollouts --ensemble_size $ensemble_size --seed $seed --exp_name $exp_name --headless

seed=115
exp_name="${task}_ensemble_${ensemble_size}_seed_${seed}_highdem"
exp_name="${task}_ensemble_${ensemble_size}_seed_${seed}_${exp_type}"
./isaaclab.sh -p $run_file --task $task --horizon $horizon --num_rollouts $num_rollouts --ensemble_size $ensemble_size --seed $seed --exp_name $exp_name --headless

## ensemble 5
## ensemble 5
ensemble_size=5
seed=101
exp_name="${task}_ensemble_${ensemble_size}_seed_${seed}_highdem"
./isaaclab.sh -p $run_file --task $task --horizon $horizon --num_rollouts $num_rollouts --ensemble_size $ensemble_size --seed $seed --exp_name $exp_name --headless

seed=107
exp_name="${task}_ensemble_${ensemble_size}_seed_${seed}_highdem"
./isaaclab.sh -p $run_file --task $task --horizon $horizon --num_rollouts $num_rollouts --ensemble_size $ensemble_size --seed $seed --exp_name $exp_name --headless

seed=115
exp_name="${task}_ensemble_${ensemble_size}_seed_${seed}_highdem"
./isaaclab.sh -p $run_file --task $task --horizon $horizon --num_rollouts $num_rollouts --ensemble_size $ensemble_size --seed $seed --exp_name $exp_name --headless

## ensemble 1
ensemble_size=1
seed=101
exp_name="${task}_ensemble_${ensemble_size}_seed_${seed}_highdem"
exp_name="${task}_ensemble_${ensemble_size}_seed_${seed}_${exp_type}"
./isaaclab.sh -p $run_file --task $task --horizon $horizon --num_rollouts $num_rollouts --ensemble_size $ensemble_size --seed $seed --exp_name $exp_name --headless

seed=107
exp_name="${task}_ensemble_${ensemble_size}_seed_${seed}_highdem"
exp_name="${task}_ensemble_${ensemble_size}_seed_${seed}_${exp_type}"
./isaaclab.sh -p $run_file --task $task --horizon $horizon --num_rollouts $num_rollouts --ensemble_size $ensemble_size --seed $seed --exp_name $exp_name --headless

seed=115
exp_name="${task}_ensemble_${ensemble_size}_seed_${seed}_highdem"
exp_name="${task}_ensemble_${ensemble_size}_seed_${seed}_${exp_type}"
./isaaclab.sh -p $run_file --task $task --horizon $horizon --num_rollouts $num_rollouts --ensemble_size $ensemble_size --seed $seed --exp_name $exp_name --headless
Loading
Loading