Files
hand-motion-pipeline/docs/FOUNDATIONPOSE_SETUP.md
liyang ae28d55f81 Update to 2026-09-17 pipeline snapshot; add weights, L20 assets and recording via Git LFS
Source: RGB-D -> Dyn-HaMR -> L20 retargeting -> FoundationPose -> reference repair -> SPIDER,
documented in docs/PIPELINE_LATEST.md and docs/SETUP_AND_WEIGHTS.md. Adds FoundationPose and
nvdiffrast upstream snapshots, requirements/pipeline_venv.txt and the FoundationPose weight
manifest/downloader.

Assets (Git LFS): weights/ (WiLoR detector, HandFlow denoiser, UniDepth-L), FoundationPose
checkpoints, HaMeR checkpoint, Dyn-HaMR HMP model and BMC constraints, L20 URDF/meshes, the
20260915_171525 D405 recording and the two box CADs. MANO models are not redistributed
(third_party/hamer/_DATA/data/mano/README.txt). Environments, caches and run outputs excluded.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-17 11:43:37 +08:00

2.0 KiB

FoundationPose local setup

Validated 2026-09-16 for model-based RGB-D inference using an existing STL.

  • Source: third_party/FoundationPose, upstream commit a1b694b83e633c2cb6115b9063d940a687759392.
  • Interpreter: existing .venv/bin/python; reused Torch 2.7.1+cu128 and PyTorch3D.
  • CUDA toolkit: existing .cuda/usr/local/cuda-12.8; GPU architecture 8.6.
  • Installed upstream Python requirements, pybind11, ninja, and locally built nvdiffrast 0.4.0.
  • Compiled third_party/FoundationPose/mycpp/build/mycpp.cpython-311-x86_64-linux-gnu.so.
  • Weights and mirror provenance: third_party/FoundationPose/weights/download_manifest.json.

Run the verified smoke check

From the HandFlow root, in a shell with NVIDIA GPU access:

source scripts/foundationpose_env.sh
python scripts/verify_foundationpose_setup.py

The environment script clears ROS-related Python/library overrides and selects the existing project environment/toolkit. It does not install Torch or CUDA.

The check exercises actual CUDA rasterization, loads both pretrained networks and executes their forward passes, and initializes FoundationPose with docs/上半.stl, including compiled C++ rotation clustering. Results: output/foundationpose_setup/runtime_verification.json; installation/build logs are in the same directory.

This does not validate pose accuracy or contact constraints on the recorded video. Optional BundleSDF mycuda/NeRF extensions are not required for the existing-STL path and were not built.

Rebuild compiled modules

source scripts/foundationpose_env.sh
python -m pip install --no-build-isolation --no-deps ./third_party/nvdiffrast
cmake -S third_party/FoundationPose/mycpp -B third_party/FoundationPose/mycpp/build \
  -DCMAKE_BUILD_TYPE=Release \
  -Dpybind11_DIR="$FP_ROOT/.venv/lib/python3.11/site-packages/pybind11/share/cmake/pybind11" \
  -DPYTHON_EXECUTABLE="$FP_ROOT/.venv/bin/python" \
  -DPython_EXECUTABLE="$FP_ROOT/.venv/bin/python"
cmake --build third_party/FoundationPose/mycpp/build -j2