| 名称 | “i4h-catheter-navigation-setup” |
| 版本 | “0.7.0” |
| 描述 | “验证导管导航工作流的主机/GPU 要求和 PYTHONPATH。在要求设置、安装或引导 catheter_navigation 时,或遇到导入/GPU/slangpy 错误时使用。” |
| 开源协议 | Apache-2.0 metadata: |
| 作者 | “Isaac for Healthcare Team isaac-for-healthcare-support@nvidia.com” tags: - isaac-for-healthcare - i4h - catheter-navigation - setup - installation |
i4h 导管导航 - 设置
目的
验证主机和 GPU 要求,确认 ./i4h CLI 能够识别工作流,并运行 CPU 冒烟测试。在要求设置导管导航,或遇到缺失导入、GPU 或 slangpy 错误时使用。
基础代码
这些步骤使用 i4h-workflows 基础代码(workflows/catheter_navigation/ 目录树)。若要复用现有的 checkout,请将 I4H_WORKFLOWS 设置为其路径(不会执行 clone)。否则,此步骤会解析当前仓库,或克隆到 ~/i4h-workflows - 无需提示即可选择该默认位置。在解析后的根目录下运行下面的每条命令:
ROOT="${I4H_WORKFLOWS:-$(git rev-parse --show-toplevel 2>/dev/null)}"
if [ ! -d "$ROOT/workflows/catheter_navigation" ]; then
ROOT="${I4H_WORKFLOWS:-$HOME/i4h-workflows}"
[ -d "$ROOT/workflows/catheter_navigation" ] || git clone https://github.com/isaac-for-healthcare/i4h-workflows "$ROOT"
fi
export I4H_WORKFLOWS="$ROOT"; cd "$ROOT"
基本说明
- 导管导航通过
workflows/catheter_navigation/metadata.json注册,并通过./i4h run catheter_navigation <mode>运行。 - 运行时优先包:
render_drr使用已安装的fluorosim(python -m fluorosim.examples.render_drr),而interactive_viewport从metadata.json中的本地工作流脚本路径启动。 - Docker 镜像:
workflows/catheter_navigation/docker/Dockerfile(在./i4h run时使用--local以外的模式会使用它)。 - GPU 模式需要 slangpy、Warp 和 CUDA;CPU 冒烟测试不需要。
预检
command -v python3
command -v git
nvidia-smi
df -h .
要求:Linux x86_64(已测试 Ubuntu 22.04/24.04),NVIDIA GPU(计算能力 >= 7.0),支持 CUDA 12.8 的驱动,>= 16 GB 内存,>= 20 GB 磁盘。
按顺序执行下面的步骤。每一步是一个单独的 bash 调用;变量在本地代理的 tmux 会话中持久存在。
步骤 1 - 解析仓库并导出路径
REPO_ROOT="${I4H_WORKFLOWS:-$(git rev-parse --show-toplevel 2>/dev/null)}"; [ -d "$REPO_ROOT/workflows/catheter_navigation" ] || REPO_ROOT="$HOME/i4h-workflows"
WF_ROOT="${REPO_ROOT}/workflows/catheter_navigation"
SIM_ROOT="${WF_ROOT}/scripts/simulation"
export PYTHONPATH="${SIM_ROOT}:${PYTHONPATH:-}"
RUN_DIR="${WF_ROOT}/runs/setup_$(date +%Y%m%d_%H%M%S)"
mkdir -p "${RUN_DIR}/logs"
ln -sfn "${RUN_DIR}" "${WF_ROOT}/runs/.latest"
步骤 2 - 验证 CLI 注册
"${REPO_ROOT}/i4h" modes catheter_navigation 2>&1 | tee "${RUN_DIR}/logs/modes.log"
步骤 3 - CPU 冒烟测试(无 GPU)
python3 -m unittest workflows/catheter_navigation/tests/test_fluorosim_smoke.py \
2>&1 | tee "${RUN_DIR}/logs/smoke.log"
预期:Ran 7 tests ... OK。来自负向测试用例的 stderr 解析错误行属于预期现象。
步骤 4 - 可选 GPU 安全检查(合成 DRR)
无 GPU 或未安装 slangpy 时跳过。
"${REPO_ROOT}/i4h" run catheter_navigation render_drr --local \
--run-args="--output ${RUN_DIR}/drr.png" \
2>&1 | tee "${RUN_DIR}/logs/render_drr.log"
验证
test -f "${RUN_DIR}/logs/smoke.log"
grep -q "OK" "${RUN_DIR}/logs/smoke.log"
python3 -c "import fluorosim; print('fluorosim', fluorosim.__file__)"
前置条件
- 包含
workflows/catheter_navigation/的仓库 checkout。 - Python 3 和 numpy;渲染/视口模式需要完整的 GPU 栈(slangpy、torch CUDA、warp)。
局限
- 还没有专门的
setup.sh- 此技能用来验证并记录主机要求;当主机依赖不完整时,请使用 Docker。 - 步骤 4 需要 GPU;仅步骤 3 就足以进行 CI 式验证。
故障排查
- 错误:
fluorosim导入失败 - 原因:未设置 PYTHONPATH。修复:重新运行步骤 1;确认SIM_ROOT存在。 - 错误:找不到
./i4h- 原因:不在仓库根目录。修复:cd "$REPO_ROOT"到./i4h所在目录。 - 错误:render_drr 在 slang/GPU 上失败 - 原因:缺少 CUDA 或 slangpy。修复:使用 Docker(不带
--local的./i4h run catheter_navigation render_drr)或按 README 安装依赖。
最终响应
报告设置状态、冒烟测试结果、可选 DRR 输出路径,并推荐下一个技能(用于患者数据的 [[i4h-catheter-navigation-digital-twin]],用于交互式演示的 [[i4h-catheter-navigation-viewport]])。