Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 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
2 changes: 1 addition & 1 deletion tools/env_setup/install_cosmos_transfer1.sh
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ if [ -d "$COSMOS_TRANSFER_DIR" ]; then
echo "Cosmos Transfer directory already exists at $COSMOS_TRANSFER_DIR. Skipping clone."
else
echo "Cloning Cosmos Transfer repository into $COSMOS_TRANSFER_DIR..."
git clone git@github.com:nvidia-cosmos/cosmos-transfer1.git "$COSMOS_TRANSFER_DIR"
git clone https://github.com/nvidia-cosmos/cosmos-transfer1.git "$COSMOS_TRANSFER_DIR"
fi

pushd "$COSMOS_TRANSFER_DIR"
Expand Down
4 changes: 2 additions & 2 deletions tools/env_setup/install_isaac.sh
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ mkdir -p "$PROJECT_ROOT/third_party"
# ---- Install IsaacSim ----
echo "Installing IsaacSim..."
pip install 'isaacsim[all,extscache]==4.5.0' \
git+ssh://git@github.com/isaac-for-healthcare/[email protected].0rc3 \
git+https://github.com/isaac-for-healthcare/[email protected].0 \
--extra-index-url https://pypi.nvidia.com

ISAACLAB_DIR="$PROJECT_ROOT/third_party/IsaacLab"
Expand All @@ -44,7 +44,7 @@ if [ -d "$ISAACLAB_DIR" ]; then
echo "IsaacLab directory already exists at $ISAACLAB_DIR. Skipping clone. Will use existing."
else
echo "Cloning IsaacLab repository into $ISAACLAB_DIR..."
git clone -b v2.1.0 git@github.com:isaac-sim/IsaacLab.git "$ISAACLAB_DIR"
git clone -b v2.1.0 https://github.com/isaac-sim/IsaacLab.git "$ISAACLAB_DIR"
fi

# ---- Apply events_random_texture.patch patch to IsaacLab ----
Expand Down
42 changes: 42 additions & 0 deletions tools/env_setup/install_raysim.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#!/bin/bash

# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at

# http://www.apache.org/licenses/LICENSE-2.0

# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

set -e

echo "Installing Raysim..."

# Get the parent directory of the current script
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && cd ../.. && pwd)"


if [ -d "$PROJECT_ROOT/workflows/robotic_ultrasound/scripts/raysim" ]; then
echo "Raysim already installed. Skipping installation."
exit 0
fi

echo "Downloading Raysim..."

wget https://github.com/isaac-for-healthcare/i4h-asset-catalog/releases/download/v0.2.0/raysim-py310-linux-v0.2.0.zip \
-O $PROJECT_ROOT/workflows/robotic_ultrasound/scripts/raysim.zip

echo "Unzipping Raysim..."

unzip $PROJECT_ROOT/workflows/robotic_ultrasound/scripts/raysim.zip -d $PROJECT_ROOT/workflows/robotic_ultrasound/scripts/raysim

rm $PROJECT_ROOT/workflows/robotic_ultrasound/scripts/raysim.zip

echo "Raysim installed successfully."
9 changes: 7 additions & 2 deletions tools/env_setup_robot_us.sh
Original file line number Diff line number Diff line change
Expand Up @@ -73,11 +73,11 @@ echo "Installing build tools..."
if [ "$EUID" -ne 0 ]; then
sudo apt-get install -y cmake
sudo apt-get update
sudo apt-get install -y git build-essential pybind11-dev libxcb-cursor0
sudo apt-get install -y git build-essential pybind11-dev libxcb-cursor0 unzip
else
apt-get install -y cmake
apt-get update
apt-get install -y git build-essential pybind11-dev libxcb-cursor0
apt-get install -y git build-essential pybind11-dev libxcb-cursor0 unzip
fi


Expand Down Expand Up @@ -136,6 +136,11 @@ echo "Installing Cosmos..."
bash "$PROJECT_ROOT/tools/env_setup/install_cudnn.sh"
bash "$PROJECT_ROOT/tools/env_setup/install_cosmos_transfer1.sh"

# ---- Install Raysim (Common) ----
echo "Installing Raysim..."
bash "$PROJECT_ROOT/tools/env_setup/install_raysim.sh"


echo "=========================================="
echo "Environment setup script finished."
echo "=========================================="
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ This tutorial shows how to teleoperate the [Virtual Incision MIRA](https://virtu
This tutorial requires the following dependencies:
- [IsaacSim 4.5.0](https://docs.isaacsim.omniverse.nvidia.com/4.5.0/index.html)
- [IsaacLab 2.1.0](https://isaac-sim.github.io/IsaacLab/v2.1.0/index.html)
- [i4h_asset_helper](https://github.com/isaac-for-healthcare/i4h-asset-catalog/blob/v0.2.0rc3/docs/catalog_helper.md)
- [i4h_asset_helper](https://github.com/isaac-for-healthcare/i4h-asset-catalog/blob/v0.2.0/docs/catalog_helper.md)

Please ensure these are installed.

Expand Down
2 changes: 1 addition & 1 deletion tutorials/assets/bring_your_own_xr/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ Set up your Apple Vision Pro and enable Developer Mode.

On your Mac development machine, clone the [Isaac XR Teleop Sample Client](https://github.com/isaac-sim/isaac-xr-teleop-sample-client-apple) GitHub repository:
```bash
git clone git@github.com:isaac-sim/isaac-xr-teleop-sample-client-apple.git
git clone https://github.com/isaac-sim/isaac-xr-teleop-sample-client-apple.git
```

Follow the repository README document to build the application and deploy to your Apple Vision Pro on the local network.
Expand Down
14 changes: 2 additions & 12 deletions workflows/robotic_surgery/docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -40,14 +40,6 @@ RUN apt-get update && \
libglu1-mesa && \
rm -rf /var/lib/apt/lists/*

# Add github.com to list of known hosts for git clone with ssh
# use COPY command instead
RUN mkdir -p ~/.ssh && \
curl --silent https://api.github.com/meta \
| jq --raw-output '"github.com "+.ssh_keys[]' >> ~/.ssh/known_hosts
#RUN mkdir -p ~/.ssh
#COPY ./github /root/.ssh/known_hosts

# all devices should be visible
ENV NVIDIA_VISIBLE_DEVICES=all
# set 'compute' driver cap to use Cuda
Expand All @@ -64,17 +56,15 @@ COPY tools /workspace/i4h-workflows/tools
COPY workflows /workspace/i4h-workflows/workflows

# Install miniconda3 and create robotic_surgery
RUN --mount=type=ssh \
mkdir -p ~/miniconda3 && \
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 && \
source ~/miniconda3/bin/activate && \
conda init --all && \
conda create -n robotic_surgery python=3.10.14 -y

RUN --mount=type=ssh \
source ~/miniconda3/bin/activate && \
RUN source ~/miniconda3/bin/activate && \
conda activate robotic_surgery && \
cd /workspace/i4h-workflows && \
BUILD_DOCKER_IMAGE=true bash tools/env_setup_robot_surgery.sh
Expand Down
11 changes: 1 addition & 10 deletions workflows/robotic_surgery/docker/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ This guide provides instructions for running robotic surgery simulations using D

- **Docker Engine**
- **NVIDIA Docker Runtime**
- **Git** with SSH key access to private repositories
- **X11 forwarding** support (for GUI mode)

## Build the Docker Image
Expand All @@ -16,15 +15,7 @@ This guide provides instructions for running robotic surgery simulations using D
git clone https://github.com/isaac-for-healthcare/i4h-workflows.git
cd i4h-workflows

# Enable BuildKit
export DOCKER_BUILDKIT=1

# Set up SSH agent for private repository access
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519 # Replace with your SSH key path

# Build the Docker image with SSH forwarding
docker build --ssh default -f workflows/robotic_surgery/docker/Dockerfile -t robotic_surgery:latest .
docker build -f workflows/robotic_surgery/docker/Dockerfile -t robotic_surgery:latest .
```

## Running the Container
Expand Down
16 changes: 4 additions & 12 deletions workflows/robotic_ultrasound/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,15 +124,6 @@ export RTI_LICENSE_FILE=<path-to-your-rti-license-file>
**Note:** If you have `robotic_surgery` workflow scripts or previous versions of `robotic_ultrasound` workflow scripts in your `PYTHONPATH`, you can reset it to include only the robotic_ultrasound scripts by running `export PYTHONPATH=$(pwd)/workflows/robotic_ultrasound/scripts`
</details>

#### 4️⃣ Raytracing Ultrasound Simulator Installation
```bash
# Download precompiled ray tracing engine
# FIXME: this https assets will not be available before GA. Alternatively, you can download it from the link below.
wget https://github.com/isaac-for-healthcare/i4h-sensor-simulation/releases/download/v0.2.0rc1/raysim-py310-linux-v0.2.0rc1.zip -O workflows/robotic_ultrasound/scripts/raysim.zip
unzip workflows/robotic_ultrasound/scripts/raysim.zip -d workflows/robotic_ultrasound/scripts/raysim
rm workflows/robotic_ultrasound/scripts/raysim.zip
```


✅ **Installation Complete** - Your robotic ultrasound simulation environment is operational.

Expand Down Expand Up @@ -243,7 +234,7 @@ The robotic ultrasound workflow is built on the following dependencies:
- [Gr00T N1](https://github.com/NVIDIA/Isaac-GR00T)
- [Cosmos Transfer 1](https://github.com/nvidia-cosmos/cosmos-transfer1/tree/main)
- [openpi](https://github.com/Physical-Intelligence/openpi) and [lerobot](https://github.com/huggingface/lerobot)
- [Raytracing Ultrasound Simulator](https://github.com/isaac-for-healthcare/i4h-sensor-simulation/tree/v0.2.0rc3/ultrasound-raytracing)
- [Raytracing Ultrasound Simulator](https://github.com/isaac-for-healthcare/i4h-sensor-simulation/tree/v0.2.0/ultrasound-raytracing)
- [RTI Connext DDS](https://www.rti.com/products)

### 🐳 Docker Installation Procedures
Expand Down Expand Up @@ -308,8 +299,9 @@ Expected PyTorch version conflicts between IsaacLab (2.5.1) and OpenPI (2.6.0) a
#### 6️⃣ Raytracing Ultrasound Simulator Installation

Choose one of the following options:
- **(Use pre-built binary)** Download the pre-release version from [here](https://github.com/isaac-for-healthcare/i4h-sensor-simulation/releases/tag/v0.2.0rc3) and extract to `workflows/robotic_ultrasound/scripts/raysim`.
- **(Compiling from source)** Install and build following instructions in [Raytracing Ultrasound Simulator](https://github.com/isaac-for-healthcare/i4h-sensor-simulation/tree/v0.2.0rc3/ultrasound-raytracing#installation) and copy the `raysim` folder to `workflows/robotic_ultrasound/scripts/`.
- **(Use pre-built binary)** Current [installation script](../../tools/env_setup_robot_us.sh) will download the pre-built binary and install it to `workflows/robotic_ultrasound/scripts/raysim`.

- **(Compiling from source)** Install and build following instructions in [Raytracing Ultrasound Simulator](https://github.com/isaac-for-healthcare/i4h-sensor-simulation/tree/v0.2.0/ultrasound-raytracing#installation) and copy the `raysim` folder to `workflows/robotic_ultrasound/scripts/`.

### 📦 Asset Management

Expand Down
14 changes: 2 additions & 12 deletions workflows/robotic_ultrasound/docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -40,14 +40,6 @@ RUN apt-get update && \
libglu1-mesa && \
rm -rf /var/lib/apt/lists/*

# Add github.com to list of known hosts for git clone with ssh
# use COPY command instead
RUN mkdir -p ~/.ssh && \
curl --silent https://api.github.com/meta \
| jq --raw-output '"github.com "+.ssh_keys[]' >> ~/.ssh/known_hosts
#RUN mkdir -p ~/.ssh
#COPY ./github /root/.ssh/known_hosts

# all devices should be visible
ENV NVIDIA_VISIBLE_DEVICES=all
# set 'compute' driver cap to use Cuda
Expand All @@ -66,17 +58,15 @@ COPY workflows /workspace/i4h-workflows/workflows
COPY holoscan_i4h /workspace/i4h-workflows/holoscan_i4h

# Install miniconda3 and create robotic_ultrasound
RUN --mount=type=ssh \
mkdir -p ~/miniconda3 && \
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 && \
source ~/miniconda3/bin/activate && \
conda init --all && \
conda create -n robotic_ultrasound python=3.10.14 -y

RUN --mount=type=ssh \
source ~/miniconda3/bin/activate && \
RUN source ~/miniconda3/bin/activate && \
conda activate robotic_ultrasound && \
cd /workspace/i4h-workflows && \
BUILD_DOCKER_IMAGE=true bash tools/env_setup_robot_us.sh
Expand Down
12 changes: 1 addition & 11 deletions workflows/robotic_ultrasound/docker/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ This guide provides instructions for running robotic ultrasound simulations usin

- **Docker Engine**
- **NVIDIA Docker Runtime**
- **Git** with SSH key access to private repositories
- **X11 forwarding** support (for GUI mode)
- **RTI License**
- Please refer to the [Environment Setup](../README.md#environment-setup) for instructions to prepare the I4H assets and RTI license locally.
Expand All @@ -21,16 +20,7 @@ This guide provides instructions for running robotic ultrasound simulations usin
# Clone the repository
git clone https://github.com/isaac-for-healthcare/i4h-workflows.git
cd i4h-workflows

# Enable BuildKit
export DOCKER_BUILDKIT=1

# Set up SSH agent for private repository access
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519 # Replace with your SSH key path

# Build the Docker image with SSH forwarding
docker build --ssh default --no-cache -f workflows/robotic_ultrasound/docker/Dockerfile -t robotic_us:latest .
docker build --no-cache -f workflows/robotic_ultrasound/docker/Dockerfile -t robotic_us:latest .
```

## Running the Container
Expand Down
4 changes: 0 additions & 4 deletions workflows/telesurgery/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -146,10 +146,6 @@ export RTI_LICENSE_FILE=/home/username/rti/rti_license.dat
When running the Patient and the Surgeon applications on separate systems, export the following environment variables:

```bash
# Starts the SSH agent and adds your private key
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519 # Replace with your SSH key

# Set IP addresses of patient and surgeon machines
export PATIENT_IP="<IP Address of the system running the Patient application>"
export SURGEON_IP="<IP Address of the system running the Surgeon application>"
Expand Down
4 changes: 1 addition & 3 deletions workflows/telesurgery/docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ RUN apt-get update && \
apt-get update && \
apt-get install -y \
curl \
openssh-client \
cmake \
wget \
build-essential \
Expand All @@ -44,8 +43,7 @@ RUN apt-get update && \
gcc-12 \
g++-12 && \
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100 && \
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 100 && \
mkdir -p ~/.ssh && ssh-keyscan github.com >> ~/.ssh/known_hosts
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 100

ENV PATH=/usr/local/cuda-12.8/bin${PATH:+:${PATH}}
ENV LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
Expand Down
9 changes: 3 additions & 6 deletions workflows/telesurgery/docker/Dockerfile.sim
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ RUN apt-get update && \
apt-get update && \
apt-get install -y \
curl \
openssh-client \
cmake \
wget \
build-essential \
Expand All @@ -45,8 +44,7 @@ RUN apt-get update && \
gcc-12 \
g++-12 && \
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100 && \
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 100 && \
mkdir -p ~/.ssh && ssh-keyscan github.com >> ~/.ssh/known_hosts
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 100

# Install Holoscan SDK
WORKDIR /tmp
Expand All @@ -63,9 +61,8 @@ RUN update-alternatives --install /usr/bin/python python $PYTHON_EXECUTABLE 100
&& update-alternatives --install /usr/bin/python3 python3 $PYTHON_EXECUTABLE 100

# # Set up the Simulation
RUN --mount=type=ssh \
$PYTHON_EXECUTABLE -m pip install --no-deps \
git+ssh://[email protected]/isaac-for-healthcare/[email protected]
RUN $PYTHON_EXECUTABLE -m pip install --no-deps \
git+https://github.com/isaac-for-healthcare/[email protected]

# Install Python dependencies
COPY workflows/telesurgery/requirements.txt /tmp/requirements.txt
Expand Down
4 changes: 1 addition & 3 deletions workflows/telesurgery/docker/real.sh
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ CONTAINER_NAME=telesurgery
function build() {
BASE_IMAGE=nvcr.io/nvidia/clara-holoscan/holoscan:v3.2.0-$(get_host_gpu)
echo "Building Telesurgery Docker Image using ${BASE_IMAGE}"
docker build --ssh default \
docker build \
--build-arg BASE_IMAGE=$BASE_IMAGE \
-t $DOCKER_IMAGE \
-f workflows/telesurgery/docker/Dockerfile .
Expand All @@ -56,13 +56,11 @@ function run() {
--ipc=host \
--network=host \
--privileged \
--volume $SSH_AUTH_SOCK:/ssh-agent \
-e ACCEPT_EULA=Y \
-e PRIVACY_CONSENT=Y \
-e DISPLAY \
-e XDG_RUNTIME_DIR \
-e XDG_SESSION_TYPE \
-e SSH_AUTH_SOCK=/ssh-agent \
-e PATIENT_IP="$PATIENT_IP" \
-e SURGEON_IP="$SURGEON_IP" \
-v /tmp/.X11-unix:/tmp/.X11-unix \
Expand Down
4 changes: 1 addition & 3 deletions workflows/telesurgery/docker/sim.sh
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ function build() {
if [ -L $SCRIPT_DIR/../../../third_party/IssacLab ]; then
rm $SCRIPT_DIR/../../../third_party/IssacLab
fi
docker build --ssh default -t $DOCKER_IMAGE -f workflows/telesurgery/docker/Dockerfile.sim .
docker build -t $DOCKER_IMAGE -f workflows/telesurgery/docker/Dockerfile.sim .
download_operators
}

Expand All @@ -55,13 +55,11 @@ function run() {
--ipc=host \
--network=host \
--privileged \
--volume $SSH_AUTH_SOCK:/ssh-agent \
-e ACCEPT_EULA=Y \
-e PRIVACY_CONSENT=Y \
-e DISPLAY \
-e XDG_RUNTIME_DIR \
-e XDG_SESSION_TYPE \
-e SSH_AUTH_SOCK=/ssh-agent \
-e PATIENT_IP="$PATIENT_IP" \
-e SURGEON_IP="$SURGEON_IP" \
$OTHER_ARGS \
Expand Down
Loading