Skip to content

Commit d35f6ea

Browse files
Release v0.4.0 (#213)
Post release v0.4.0 to main Signed-off-by: Mingxin Zheng <[email protected]>
1 parent 6bfe292 commit d35f6ea

File tree

59 files changed

+1407
-193
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+1407
-193
lines changed

.github/markdown-link-check.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,5 @@
1818
"retryOn429": true,
1919
"retryCount": 3,
2020
"fallbackRetryDelay": "30s",
21-
"aliveStatusCodes": [200, 202, 403, 429]
21+
"aliveStatusCodes": [0, 200, 202, 403, 429]
2222
}

.github/workflows/blossom-ci.yml

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,20 @@ jobs:
3434

3535
# This job only runs for pull request comments
3636
if: |
37-
github.event.comment.body == '/build' && (github.actor == 'mingxin-zheng' || github.actor == 'KumoLiu' || github.actor == 'Nic-Ma' || github.actor == 'yiheng-wang-nv' || github.actor == 'NigelNelson' || github.actor == 'jjomier' || github.actor == 'wendell-hom' || github.actor == 'masoudmoghani' || github.actor == 'maximilianofir' || github.actor == 'mahdiazizian')
37+
github.event.comment.body == '/build' &&
38+
(
39+
github.actor == 'mingxin-zheng' ||
40+
github.actor == 'KumoLiu' ||
41+
github.actor == 'Nic-Ma' ||
42+
github.actor == 'yiheng-wang-nv' ||
43+
github.actor == 'NigelNelson' ||
44+
github.actor == 'jjomier' ||
45+
github.actor == 'wendell-hom' ||
46+
github.actor == 'masoudmoghani' ||
47+
github.actor == 'maximilianofir' ||
48+
github.actor == 'mahdiazizian' ||
49+
github.actor == 'mimiliaogo'
50+
)
3851
3952
steps:
4053
- name: Check if comment is issued by authorized person

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,3 +237,7 @@ cmake
237237

238238
# Dev container
239239
.devcontainer/
240+
241+
# License file
242+
*.lic
243+
*.dat

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
<img src="./docs/source/ultrasound.jpg" alt="Robotic Ultrasound" style="width: 45%; height: auto; aspect-ratio: 16/9; object-fit: cover;" />
66
</p>
77

8-
[![IsaacSim](https://img.shields.io/badge/IsaacSim-4.5.0-silver.svg)](https://docs.isaacsim.omniverse.nvidia.com/4.5.0/index.html)
9-
[![Python](https://img.shields.io/badge/python-3.10-blue.svg)](https://docs.python.org/3/whatsnew/3.10.html)
10-
[![Linux platform](https://img.shields.io/badge/platform-linux--64-orange.svg)](https://releases.ubuntu.com/22.04/)
8+
[![IsaacSim](https://img.shields.io/badge/IsaacSim-5.0.0-silver.svg)](https://docs.isaacsim.omniverse.nvidia.com/5.0.0/index.html)
9+
[![Python](https://img.shields.io/badge/python-3.11-blue.svg)](https://docs.python.org/3/whatsnew/3.11.html)
10+
[![Linux platform](https://img.shields.io/badge/platform-linux--64-orange.svg)](https://releases.ubuntu.com/24.04/)
1111
[![License](https://img.shields.io/badge/license-Apache--2.0-yellow.svg)](https://opensource.org/license/apache-2-0)
1212
[![Documentation](https://img.shields.io/badge/docs-latest-brightgreen.svg)](https://github.com/isaac-for-healthcare/i4h-workflows/tree/main/docs)
1313
[![Contributing](https://img.shields.io/badge/contributions-welcome-brightgreen.svg)](./CONTRIBUTING.md)
@@ -42,7 +42,7 @@ This repository currently includes four main workflows:
4242

4343
Each workflow provides complete simulation environments, training datasets, pre-trained models, and deployment tools to accelerate your healthcare robotics development.
4444

45-
Please see [What's New](./docs/source/whatsnew_0_3_0.md) for details on our milestone releases.
45+
Please see [What's New](./docs/source/whatsnew_0_4_0.md) for details on our milestone releases.
4646

4747
### Tutorials
4848

docs/source/whatsnew.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ What's New
66
.. toctree::
77
:maxdepth: 1
88

9+
whatsnew_0_4_0.md
910
whatsnew_0_3_0.md
1011
whatsnew_0_2_0.md
1112
whatsnew_0_1_0.md

docs/source/whatsnew_0_4_0.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# What's New in Isaac for Healthcare Workflows v0.4.0 🎉🎉
2+
3+
- **SO-ARM Starter Expansions**: Added DGX platform and Jetson Thor/Orin support, plus Holoscan integration for real-time streaming.
4+
- **Workflow Updates**: Updates for IsaacSim 5.x and IsaacLab 2.2/2.3 across ultrasound, telesurgery, and surgery workflows, plus migration to Python 3.11 across all workflows.
5+
6+
## SO-ARM Starter Expansions
7+
8+
![SO-ARM Starter Workflow](../source/so_arm_starter_workflow.jpg)
9+
10+
Major expansions improve deployment flexibility and performance.
11+
12+
* **Jetson Orin and Thor Support:** Deploy to edge with Jetson Orin and Thor for on-device inference.
13+
* **DGX Support:** Simulation and deployment on DGX Spark (IsaacSim 5.1) for accelerated development.
14+
* **Holoscan Integration:** Enable low-latency streaming and processing in the SO-ARM workflow.
15+
* **Documentation Enhancements:** Expanded SO-ARM Starter docs and guidance.
16+
17+
Learn more in the [SO-ARM Starter Workflow README](../../workflows/so_arm_starter/README.md).
18+
19+
## Workflow Updates
20+
21+
All workflows now support IsaacSim 5.x and IsaacLab 2.2/2.3 with Python 3.11.
22+
23+
* **Robotic Ultrasound Workflow:** Consolidated on IsaacSim 5.0 and IsaacLab 2.3; updated SE(3) teleoperation for latest IsaacLab API changes; improved documentation for Cosmos-Transfer1; pip-based installation of the ultrasound raytracing package to avoid manual CMake steps.
24+
* **Telesurgery Workflow:** Consolidated on IsaacSim 5.0 and IsaacLab 2.3.
25+
* **Robotic Surgery Workflow:** Consolidated on IsaacSim 5.0 and IsaacLab 2.3.

pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ include_trailing_comma = true
55
force_grid_wrap = 0
66
use_parentheses = true
77
line_length = 120
8-
py_version = 310
8+
py_version = 311
99
group_by_package = true
1010
known_third_party = ["openpi", "i4h_asset_helper"]
1111

1212
[tool.ruff]
1313
line-length = 120
14-
target-version = "py310"
14+
target-version = "py311"
1515
exclude = [
1616
"workflows/telesurgery/cmake/pybind11/"
1717
]
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#!/bin/bash
2+
3+
# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
4+
# SPDX-License-Identifier: Apache-2.0
5+
6+
# Licensed under the Apache License, Version 2.0 (the "License");
7+
# you may not use this file except in compliance with the License.
8+
# You may obtain a copy of the License at
9+
10+
# http://www.apache.org/licenses/LICENSE-2.0
11+
12+
# Unless required by applicable law or agreed to in writing, software
13+
# distributed under the License is distributed on an "AS IS" BASIS,
14+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
# See the License for the specific language governing permissions and
16+
# limitations under the License.
17+
18+
set -e
19+
20+
# install holoscan
21+
pip install holoscan==3.5.0
22+
23+
# install holoscan cli
24+
pip install holoscan-cli==3.5.0
25+
26+
echo "Holoscan installed successfully!"
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
#!/bin/bash
2+
3+
# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
4+
# SPDX-License-Identifier: Apache-2.0
5+
6+
# Licensed under the Apache License, Version 2.0 (the "License");
7+
# you may not use this file except in compliance with the License.
8+
# You may obtain a copy of the License at
9+
10+
# http://www.apache.org/licenses/LICENSE-2.0
11+
12+
# Unless required by applicable law or agreed to in writing, software
13+
# distributed under the License is distributed on an "AS IS" BASIS,
14+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
# See the License for the specific language governing permissions and
16+
# limitations under the License.
17+
18+
set -e
19+
20+
# Get the parent directory of the current script
21+
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && cd ../.. && pwd)"
22+
23+
# Source utility functions
24+
source "$PROJECT_ROOT/tools/env_setup/bash_utils.sh"
25+
26+
# Check if running in a conda environment
27+
check_conda_env
28+
29+
# Ensure the parent third_party directory exists
30+
mkdir -p "$PROJECT_ROOT/third_party"
31+
32+
# ---- Install IsaacSim ----
33+
echo "Installing IsaacSim..."
34+
pip install "isaacsim[all,extscache]==5.0.0" \
35+
git+https://github.com/isaac-for-healthcare/[email protected] \
36+
--extra-index-url https://pypi.nvidia.com
37+
38+
ISAACLAB_DIR="$PROJECT_ROOT/third_party/IsaacLab"
39+
40+
if [ -d "$ISAACLAB_DIR" ]; then
41+
echo "IsaacLab directory already exists at $ISAACLAB_DIR. Skipping clone. Will use existing."
42+
else
43+
echo "Cloning IsaacLab repository into $ISAACLAB_DIR..."
44+
git clone -b release/2.3.0 https://github.com/isaac-sim/IsaacLab.git "$ISAACLAB_DIR"
45+
fi
46+
47+
48+
49+
pushd "$ISAACLAB_DIR"
50+
echo "Installing IsaacLab ..."
51+
yes Yes | ./isaaclab.sh --install
52+
popd
53+
54+
# Remove top-level import of omni.log
55+
sed -i '/^[[:space:]]*import omni\.log[[:space:]]*$/d' "$ISAACLAB_DIR/source/isaaclab/isaaclab/utils/math.py"
56+
57+
# Insert an indented local import immediately before each usage of omni.log.warn(
58+
# This preserves the leading whitespace so the inserted import lives inside the function body
59+
sed -i -E 's/^([[:space:]]*)omni\.log\.warn\(/\1import omni.log\
60+
\1omni.log.warn(/g' "$ISAACLAB_DIR/source/isaaclab/isaaclab/utils/math.py"
61+
62+
echo "IsaacSim and dependencies installed successfully!"
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
#!/bin/bash
2+
3+
# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
4+
# SPDX-License-Identifier: Apache-2.0
5+
6+
# Licensed under the Apache License, Version 2.0 (the "License");
7+
# you may not use this file except in compliance with the License.
8+
# You may obtain a copy of the License at
9+
10+
# http://www.apache.org/licenses/LICENSE-2.0
11+
12+
# Unless required by applicable law or agreed to in writing, software
13+
# distributed under the License is distributed on an "AS IS" BASIS,
14+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
# See the License for the specific language governing permissions and
16+
# limitations under the License.
17+
18+
set -e
19+
20+
# Get the parent directory of the current script
21+
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && cd ../.. && pwd)"
22+
23+
# Source utility functions
24+
source "$PROJECT_ROOT/tools/env_setup/bash_utils.sh"
25+
26+
# Check if running in a conda environment
27+
check_conda_env
28+
29+
# Ensure the parent third_party directory exists
30+
mkdir -p "$PROJECT_ROOT/third_party"
31+
32+
# ---- Install IsaacSim ----
33+
echo "Installing IsaacSim..."
34+
pip install "isaacsim[all,extscache]==5.1.0" \
35+
git+https://github.com/isaac-for-healthcare/[email protected] \
36+
--extra-index-url https://pypi.nvidia.com
37+
38+
ISAACLAB_DIR="$PROJECT_ROOT/third_party/IsaacLab"
39+
40+
if [ -d "$ISAACLAB_DIR" ]; then
41+
echo "IsaacLab directory already exists at $ISAACLAB_DIR. Skipping clone. Will use existing."
42+
else
43+
echo "Cloning IsaacLab repository into $ISAACLAB_DIR..."
44+
git clone -b release/2.3.0 https://github.com/isaac-sim/IsaacLab.git "$ISAACLAB_DIR"
45+
fi
46+
47+
48+
pushd "$ISAACLAB_DIR"
49+
echo "Installing IsaacLab ..."
50+
yes Yes | ./isaaclab.sh --install
51+
popd
52+
53+
54+
echo "IsaacSim and dependencies installed successfully!"

0 commit comments

Comments
 (0)