Skip to content
Merged
Show file tree
Hide file tree
Changes from 26 commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
27eefb9
Porting SkillGen to the public repo
njawale42 Aug 18, 2025
be0a45d
A minor rerun related code update
njawale42 Aug 20, 2025
5ccb27f
Updated cuRobo and isaac sim licenses. Fixed rerun path viz bugs. Min…
njawale42 Aug 27, 2025
7d1c284
Added data gen test for skillgen, and changes to planner and visualizer
njawale42 Aug 27, 2025
048ab03
Minor change in README regarding isaacsim license file
njawale42 Aug 28, 2025
beaeaa9
Addressing review comments: type hints, conditional simplification, r…
njawale42 Aug 29, 2025
a2e64cd
Added make pose helper, minor code refactor for cuRobo planner
njawale42 Sep 3, 2025
aed7dcb
Made rerun import optional depending on visualize_plan flag, added cu…
njawale42 Sep 4, 2025
025f15e
Simplified skillgen related offset and object pose changes by introdu…
njawale42 Sep 4, 2025
6a91163
Added lazy logging to avoid using debug branching in planner script, …
njawale42 Sep 4, 2025
52c5e32
Added docstring for the logger class
njawale42 Sep 4, 2025
5234119
Added a new dockerfile for curobo, reverted the base dockerfile to wh…
njawale42 Sep 4, 2025
f016d58
Added first version of the skillgen.rst doc, minor config change
njawale42 Sep 5, 2025
76b9d95
Addressing Mayank's comments, Documentation changes
njawale42 Sep 5, 2025
7dd4e26
Small bug fix
njawale42 Sep 5, 2025
c3226cb
Doc update, cuRobo tests teardown update
njawale42 Sep 5, 2025
5184660
Changed curobo config to use configclass instead of dataclass
njawale42 Sep 5, 2025
c6716a7
Documentation updates, minor code updates
njawale42 Sep 8, 2025
253e506
Added task gifs to the docs
njawale42 Sep 8, 2025
af2c7ff
Resolve linter errors
njawale42 Sep 8, 2025
a4c8187
Update source/isaaclab_mimic/isaaclab_mimic/datagen/datagen_info_pool.py
kellyguo11 Sep 9, 2025
4b5a2c1
Merge branch 'main' into neel/skillgen
kellyguo11 Sep 9, 2025
31af671
Added updates in changelogs for isaaclab_mimic and isaaclab_tasks. Re…
njawale42 Sep 9, 2025
3d6d2ee
Merge branch 'main' into neel/skillgen
kellyguo11 Sep 9, 2025
56f863c
Update CHANGELOG.rst
kellyguo11 Sep 9, 2025
fbb4605
Update extension.toml
kellyguo11 Sep 9, 2025
1fd97bb
Update source/isaaclab_mimic/docs/CHANGELOG.rst
kellyguo11 Sep 9, 2025
3cee172
Update __init__.py
kellyguo11 Sep 9, 2025
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
2 changes: 1 addition & 1 deletion .github/actions/docker-build/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ inputs:
required: true
dockerfile-path:
description: 'Path to Dockerfile'
default: 'docker/Dockerfile.base'
default: 'docker/Dockerfile.curobo'
required: false
context-path:
description: 'Build context path'
Expand Down
1 change: 1 addition & 0 deletions CONTRIBUTORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ Guidelines for modifications:
* Miguel Alonso Jr
* Mingyu Lee
* Muhong Guo
* Neel Anand Jawale
* Nicola Loi
* Norbert Cygiert
* Nuoyan Chen (Alvin)
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,8 @@ dependencies and assets are present in the [`docs/licenses`](docs/licenses) dire

Note that Isaac Lab requires Isaac Sim, which includes components under proprietary licensing terms. Please see the [Isaac Sim license](docs/licenses/dependencies/isaacsim-license.txt) for information on Isaac Sim licensing.

Note that the `isaaclab_mimic` extension requires cuRobo, which has proprietary licensing terms that can be found in [`docs/licenses/dependencies/cuRobo-license.txt`](docs/licenses/dependencies/cuRobo-license.txt).

## Acknowledgement

Isaac Lab development initiated from the [Orbit](https://isaac-orbit.github.io/) framework. We would appreciate if
Expand Down
144 changes: 144 additions & 0 deletions docker/Dockerfile.curobo
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
# Copyright (c) 2022-2025, The Isaac Lab Project Developers (https://github.com/isaac-sim/IsaacLab/blob/main/CONTRIBUTORS.md).
Copy link
Collaborator

Choose a reason for hiding this comment

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

this dockerfile should inherit from the isaaclab-base image so that the commands do not have to be repeated and the build process is speed up. See the ros image as example

FROM isaac-lab-base${DOCKER_NAME_SUFFIX} AS ros2

Copy link
Contributor Author

Choose a reason for hiding this comment

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

See reply on the above comment.

Copy link
Contributor

Choose a reason for hiding this comment

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

yes agreed, this will be a TODO for the follow-up PR

# 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
ENV ISAACSIM_ROOT_PATH=${ISAACSIM_ROOT_PATH_ARG}
# Path to the Isaac Lab directory
ARG ISAACLAB_PATH_ARG
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 \
build-essential \
cmake \
git \
libglib2.0-0 \
ncurses-term \
wget && \
apt -y autoremove && apt clean autoclean && \
rm -rf /var/lib/apt/lists/*

# Detect Ubuntu version and install CUDA 12.8 via NVIDIA network repo (cuda-keyring)
RUN set -euo pipefail && \
. /etc/os-release && \
case "$ID" in \
ubuntu) \
case "$VERSION_ID" in \
"20.04") cuda_repo="ubuntu2004";; \
"22.04") cuda_repo="ubuntu2204";; \
"24.04") cuda_repo="ubuntu2404";; \
*) echo "Unsupported Ubuntu $VERSION_ID"; exit 1;; \
esac ;; \
*) echo "Unsupported base OS: $ID"; exit 1 ;; \
esac && \
apt-get update && apt-get install -y --no-install-recommends wget gnupg ca-certificates && \
wget -q https://developer.download.nvidia.com/compute/cuda/repos/${cuda_repo}/x86_64/cuda-keyring_1.1-1_all.deb && \
dpkg -i cuda-keyring_1.1-1_all.deb && \
rm -f cuda-keyring_1.1-1_all.deb && \
wget -q https://developer.download.nvidia.com/compute/cuda/repos/${cuda_repo}/x86_64/cuda-${cuda_repo}.pin && \
mv cuda-${cuda_repo}.pin /etc/apt/preferences.d/cuda-repository-pin-600 && \
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}

# 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 && \
mkdir -p ${DOCKER_USER_HOME}/.cache/pip && \
mkdir -p ${DOCKER_USER_HOME}/.cache/nvidia/GLCache && \
mkdir -p ${DOCKER_USER_HOME}/.nv/ComputeCache && \
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
RUN touch /bin/nvidia-smi && \
touch /bin/nvidia-debugdump && \
touch /bin/nvidia-persistenced && \
touch /bin/nvidia-cuda-mps-control && \
touch /bin/nvidia-cuda-mps-server && \
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

# Install cuRobo from source (pinned commit); needs CUDA env and Torch
RUN ${ISAACLAB_PATH}/isaaclab.sh -p -m pip install --no-build-isolation \
"nvidia-curobo @ git+https://github.com/NVlabs/curobo.git@ebb71702f3f70e767f40fd8e050674af0288abe8"

# HACK: Remove install of quadprog dependency
RUN ${ISAACLAB_PATH}/isaaclab.sh -p -m pip uninstall -y quadprog

# aliasing isaaclab.sh and python for convenience
RUN echo "export ISAACLAB_PATH=${ISAACLAB_PATH}" >> ${HOME}/.bashrc && \
echo "alias isaaclab=${ISAACLAB_PATH}/isaaclab.sh" >> ${HOME}/.bashrc && \
echo "alias python=${ISAACLAB_PATH}/_isaac_sim/python.sh" >> ${HOME}/.bashrc && \
echo "alias python3=${ISAACLAB_PATH}/_isaac_sim/python.sh" >> ${HOME}/.bashrc && \
echo "alias pip='${ISAACLAB_PATH}/_isaac_sim/python.sh -m pip'" >> ${HOME}/.bashrc && \
echo "alias pip3='${ISAACLAB_PATH}/_isaac_sim/python.sh -m pip'" >> ${HOME}/.bashrc && \
echo "alias tensorboard='${ISAACLAB_PATH}/_isaac_sim/python.sh ${ISAACLAB_PATH}/_isaac_sim/tensorboard'" >> ${HOME}/.bashrc && \
echo "export TZ=$(date +%Z)" >> ${HOME}/.bashrc && \
echo "shopt -s histappend" >> /root/.bashrc && \
echo "PROMPT_COMMAND='history -a'" >> /root/.bashrc

# make working directory as the Isaac Lab directory
# this is the default directory when the container is run
WORKDIR ${ISAACLAB_PATH}
Loading
Loading