Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
0e4bff7
add leapmotion device and recording script for G1 locomanip
peterd-NV Sep 30, 2025
35c70e2
add leapmotion dockerfile
peterd-NV Sep 30, 2025
f25e3a6
lint
peterd-NV Sep 30, 2025
9c56fe4
cleanup recording script
peterd-NV Sep 30, 2025
af46fb0
fix viewport head cam setting
peterd-NV Sep 30, 2025
551736a
run lint
peterd-NV Sep 30, 2025
129e85f
Merge branch 'main' of github.com:isaac-sim/isaac_arena into peterd/l…
peterd-NV Oct 1, 2025
b45daca
add leapmotion libs to arena dockerfile to fix test failures
peterd-NV Oct 1, 2025
319f4af
remove leapmotion dockerfile
peterd-NV Oct 1, 2025
66dfc58
Merge branch 'main' of github.com:isaac-sim/isaac_arena into peterd/l…
peterd-NV Oct 2, 2025
8138002
Merge branch 'main' of github.com:isaac-sim/isaac_arena into peterd/l…
peterd-NV Oct 2, 2025
17e1d71
fix circular import errors
peterd-NV Oct 2, 2025
b215df8
lint
peterd-NV Oct 2, 2025
4cd03f9
add print reminder to remove before release
peterd-NV Oct 2, 2025
50a7054
lint
peterd-NV Oct 2, 2025
f702810
Merge branch 'main' of github.com:isaac-sim/isaac_arena into peterd/l…
peterd-NV Oct 3, 2025
1c04aa8
update leapmotion docker file and lint
peterd-NV Oct 3, 2025
64ac02e
Merge branch 'main' of github.com:isaac-sim/isaac_arena into peterd/l…
peterd-NV Oct 3, 2025
0f31ea4
Merge branch 'main' of github.com:isaac-sim/isaac_arena into peterd/l…
peterd-NV Oct 7, 2025
815e4f5
Merge branch 'main' of github.com:isaac-sim/isaac_arena into peterd/l…
peterd-NV Oct 7, 2025
fc9d8ad
update import paths after arena_g1 package refactor
peterd-NV Oct 7, 2025
877d2ee
Merge branch 'main' of github.com:isaac-sim/isaac_arena into peterd/l…
peterd-NV Oct 8, 2025
066bd2f
Merge branch 'main' of github.com:isaac-sim/isaac_arena into peterd/l…
peterd-NV Oct 9, 2025
186dcec
Merge branch 'main' of github.com:isaac-sim/isaac_arena into peterd/l…
peterd-NV Oct 13, 2025
963bc86
Merge branch 'main' of github.com:isaac-sim/isaac_arena into peterd/l…
peterd-NV Oct 14, 2025
692b71b
Merge branch 'main' of github.com:isaac-sim/isaac_arena into peterd/l…
peterd-NV Oct 17, 2025
c053605
Merge branch 'main' of github.com:isaac-sim/isaac_arena into peterd/l…
peterd-NV Oct 17, 2025
d86a7ca
Merge branch 'main' of github.com:isaac-sim/isaac_arena into peterd/l…
peterd-NV Oct 20, 2025
f27d36a
update leapmotion teleop dockerfile with lw sdk install
peterd-NV Oct 20, 2025
ef32761
Merge branch 'main' of github.com:isaac-sim/isaac_arena into peterd/l…
peterd-NV Oct 22, 2025
861a60c
Merge branch 'main' of github.com:isaac-sim/isaac_arena into peterd/l…
peterd-NV Oct 23, 2025
acadb46
Merge branch 'main' of github.com:isaac-sim/isaac_arena into peterd/l…
peterd-NV Oct 27, 2025
c75f962
update isaac_arena -> isaaclab_arena
peterd-NV Oct 27, 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
157 changes: 157 additions & 0 deletions docker/Dockerfile.leapmotion_teleop
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
ARG BASE_IMAGE=nvcr.io/nvidia/isaac-sim:5.0.0

FROM ${BASE_IMAGE}

# GR00T Policy Build Arguments, these are only used if INSTALL_GROOT is true
ARG INSTALL_GROOT=false
ARG GROOT_DEPS_GROUP=base

ARG WORKDIR="/workspace"
ENV WORKDIR=${WORKDIR}
WORKDIR "${WORKDIR}"

# Hide conflicting Vulkan files, if needed.
RUN if [ -e "/usr/share/vulkan" ] && [ -e "/etc/vulkan" ]; then \
mv /usr/share/vulkan /usr/share/vulkan_hidden; \
fi

# Install apt packages
RUN apt-get update && apt-get install -y \
git \
git-lfs \
cmake \
sudo \
python3-pip

# Update pip to the latest version
RUN pip3 install --upgrade pip

################################
# Install Isaac Lab
################################
# Split copying into separate instructions
# to avoid docker cache invalidation on code edits.
COPY ./submodules/IsaacLab ${WORKDIR}/submodules/IsaacLab
# Set the ISAACLAB_PATH environment variable
ENV ISAACLAB_PATH=${WORKDIR}/submodules/IsaacLab
ENV TERM=xterm
# Symlink isaac sim to IsaacLab
RUN ln -s /isaac-sim/ ${WORKDIR}/submodules/IsaacLab/_isaac_sim
# Install IsaacLab dependencies
RUN for DIR in ${WORKDIR}/submodules/IsaacLab/source/isaaclab*/; do pip install --no-deps -e "$DIR"; done
# Logs and other stuff appear under dist-packages per default, so this dir has to be writeable.
RUN chmod 777 -R /isaac-sim/kit/
# Install isaaclab
RUN ${ISAACLAB_PATH}/isaaclab.sh -i

# Install pip dependencies
# NOTE(alexmillane, 2025-07-22): Dependencies are installed in the IsaacSim version of python.
RUN /isaac-sim/python.sh -m pip install --upgrade pip && \
/isaac-sim/python.sh -m pip install \
pytest \
jupyter \
# NOTE(xinjieyao, 2025-09-15): Needed for inheritance of torch nn.module, saving/loading model
typing_extensions \
# NOTE(xinjieyao, 2025-09-15): Needed for WBC running onnx compiled policy
onnxruntime

# lwlabs deps
RUN /isaac-sim/python.sh -m pip install --upgrade pip && \
/isaac-sim/python.sh -m pip install \
vuer[all] \
lightwheel-sdk

# Lightwheel server
ENV LW_API_ENDPOINT="https://api-dev.lightwheel.net"

###############################
# Install GR00T and CUDA 12.8 #
###############################
# Copy CUDA 12.8 installation script
COPY docker/setup/install_cuda.sh /tmp/install_cuda.sh
RUN chmod +x /tmp/install_cuda.sh
# If GR00T deps to be installed, install cuda 12.8 (needed for flash-attn, and avoid 4G memory addon)
RUN if [ "$INSTALL_GROOT" = "true" ]; then \
/tmp/install_cuda.sh; \
else \
echo "Skipping CUDA 12.8 installation"; \
fi && \
rm -f /tmp/install_cuda.sh
# Copy GR00T
COPY ./submodules/Isaac-GR00T ${WORKDIR}/submodules/Isaac-GR00T
# Copy GR00T dependencies installation script
COPY docker/setup/install_gr00t_deps.sh /tmp/install_gr00t_deps.sh
RUN chmod +x /tmp/install_gr00t_deps.sh
# Install GR00T dependencies if requested
RUN if [ "$INSTALL_GROOT" = "true" ]; then \
/tmp/install_gr00t_deps.sh; \
# Fix damage to /isaac-sim/exts/omni.isaac.ml_archive/pip_prebundle/torch
rm -rf /isaac-sim/exts/omni.isaac.ml_archive/pip_prebundle/torch \
else \
echo "Skipping GR00T installation"; \
fi && \
# Clean up installation scripts
rm -f /tmp/install_gr00t_deps.sh

# Copy the rest of the files
COPY *.* ${WORKDIR}/
COPY isaac_arena ${WORKDIR}/isaac_arena
COPY docs ${WORKDIR}/docs

# Install Isaac Arena
RUN /isaac-sim/python.sh -m pip install -e ${WORKDIR}/

# Set an alias to run the isaac lab python interpreter.
RUN echo "alias python='/isaac-sim/python.sh'" >> /etc/bash.bashrc
RUN echo "alias pip3='/isaac-sim/python.sh -m pip'" >> /etc/bash.bashrc
RUN echo "alias pytest='/isaac-sim/python.sh -m pytest'" >> /etc/bash.bashrc

# Debugging with debugpy
# Usage:
# 1) Set your breakpoints
# 2) Start the script you want to debug with "debugpy" instead of "python".
# It will pause waiting for the debugger to attach.
# 3) Attach to the running container with VSCode using the "Attach to debugpy session"
# configuration from the Run and Debug panel.
RUN pip3 install debugpy
RUN echo "alias debugpy='python -Xfrozen_modules=off -m debugpy --listen localhost:5678 --wait-for-client'" >> /etc/bash.bashrc

####################################################################################################
# Install dependencies for Leapmotion teleop
####################################################################################################
RUN apt install -y wget

RUN wget -qO - https://repo.ultraleap.com/keys/apt/gpg | gpg --dearmor | tee /etc/apt/trusted.gpg.d/ultraleap.gpg
RUN echo 'deb [arch=amd64] https://repo.ultraleap.com/apt stable main' | tee /etc/apt/sources.list.d/ultraleap.list
# Pre-accept UltraLeap license and install
RUN apt update && \
echo 'ultraleap-hand-tracking ultraleap-hand-tracking/license-agreement boolean true' | debconf-set-selections && \
DEBIAN_FRONTEND=noninteractive apt install -y ultraleap-hand-tracking

# Install build module first
RUN /isaac-sim/kit/python/bin/python3 -m pip install build

# Clone and install leapc python bindings
RUN git clone https://github.com/ultraleap/leapc-python-bindings /opt/leapc-python-bindings && \
cd /opt/leapc-python-bindings && \
/isaac-sim/kit/python/bin/python3 -m pip install -r requirements.txt && \
/isaac-sim/kit/python/bin/python3 -m build leapc-cffi && \
/isaac-sim/kit/python/bin/python3 -m pip install leapc-cffi/dist/leapc_cffi-0.0.1.tar.gz && \
/isaac-sim/kit/python/bin/python3 -m pip install -e leapc-python-api/

RUN /isaac-sim/kit/python/bin/python3 -m pip install numpy==1.26.0
####################################################################################################
####################################################################################################

# Change prompt so it's obvious we're inside the arena container
RUN echo "PS1='[Isaac Arena] \[\e[0;32m\]~\u \[\e[0;34m\]\w\[\e[0m\] \$ '" >> /etc/bash.bashrc
# List files as a table, with colors, show hidden, append indicators (/ for dirs, * for executables, @ for symlinks)
RUN echo "alias ll='ls -alF --color=auto'" >> /etc/bash.bashrc
# Go one level up
RUN echo "alias ..='cd ..'" >> /etc/bash.bashrc
# Change prompt to colored one for root too
RUN cp /etc/bash.bashrc /root/.bashrc

# Set the entrypoint
COPY docker/setup/entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
Loading
Loading