# RAI: NoMaD ROS 2 navigation inference

Load NoMaD and expose start/stop services gating camera inference and velocity-command publication.

ID: `rai-src-rai-extensions-rai-nomad-rai-nomad-nomad-py`

Record version: `source-2385002ec8283c4923454d932504259db81dac32303e8b61f73d93a6a6110aae`

Hub commit: `ab214094ec555451d7f9892e295dff22ed3c451c`

## Access

Fetch the pinned repository, verify this source checksum, and use upstream installation and invocation. This record does not install or execute code.

Optional inert file retrieval: `python /PATH_TO_SKILL/scripts/rsh.py fetch-source rai-src-rai-extensions-rai-nomad-rai-nomad-nomad-py --expected-source-revision b018729833742c6f71e1e9f332ee2b435676fb4f --expected-source-sha256 2385002ec8283c4923454d932504259db81dac32303e8b61f73d93a6a6110aae --project ./experiment --json`. This verifies one file, preserves provenance and never installs or runs it. See [source-file retrieval](https://hub.superfastrobotics.com/source-files.md).

Hub preparation adapter: **false**. Runtime verification: **not_run**.

Upstream setup: https://github.com/RobotecAI/rai/blob/b018729833742c6f71e1e9f332ee2b435676fb4f/docs/setup/install.md

## Source and license

- Repository: https://github.com/RobotecAI/rai
- Pinned source: https://github.com/RobotecAI/rai/blob/b018729833742c6f71e1e9f332ee2b435676fb4f/src/rai_extensions/rai_nomad/rai_nomad/nomad.py
- Revision: `b018729833742c6f71e1e9f332ee2b435676fb4f`
- Path: `src/rai_extensions/rai_nomad/rai_nomad/nomad.py`
- Source SHA256: `2385002ec8283c4923454d932504259db81dac32303e8b61f73d93a6a6110aae`
- Source bytes: 13619
- Original authors: Robotec.AI (per-file copyright notice), Dhruv Shah, Ajay Sridhar, Nitish Dashora, Kyle Stachowicz, Kevin Black, Noriaki Hirose, Sergey Levine
- License: [NOASSERTION](https://github.com/RobotecAI/rai/blob/b018729833742c6f71e1e9f332ee2b435676fb4f/src/rai_extensions/rai_nomad/rai_nomad/nomad.py)
- License scope: Pinned Python source link only. Robotec.AI first-party header declares Apache-2.0; an inline notice declares MIT for incorporated visualnav-transformer/fork code. Exact incorporated-code boundaries and notice completeness are not cleared by this review. Preserve both notices; no redistribution or preparation grant is asserted. Model/checkpoint terms remain separate.

License SHA256: `2385002ec8283c4923454d932504259db81dac32303e8b61f73d93a6a6110aae`

## Artifact

```json
{
  "kind": "workflow",
  "format": "python",
  "workflow_role": "navigation-policy-inference"
}
```

## Requirements

```json
{
  "python": "Root/core/whoami/perception/semap/s2s use >=3.10,<3.13; standalone finetune uses >=3.10,<3.12. Match sourced ROS distribution Python.",
  "packages": [
    "Pinned RAI checkout",
    "Matching ROS 2 and rai_interfaces",
    "Per-workflow packages, local model or hosted-provider dependencies from pinned setup"
  ],
  "display": "Official setup documents ROS 2 Humble/Jazzy, rai_interfaces and feature-specific environment. Nothing installed or runtime verified.",
  "execution_domain": "computation-or-hardware",
  "source_imports": [
    "ament_index_python.packages",
    "diffusers.schedulers.scheduling_ddpm",
    "gdown",
    "geometry_msgs.msg",
    "numpy",
    "os",
    "rcl_interfaces.msg",
    "rclpy",
    "rclpy.executors",
    "rclpy.node",
    "sensor_msgs.msg",
    "std_msgs.msg",
    "std_srvs.srv",
    "torch",
    "typing",
    "visualnav_transformer.deployment.src.utils",
    "visualnav_transformer.train.vint_train.training.train_utils",
    "yaml"
  ],
  "notes": "Upstream per-workflow profile declarations only; provider availability, dependency resolution and runtime/robot compatibility are unverified.",
  "declared_requirements": {
    "nomad": {
      "gpu": "Source chooses CUDA when available, CPU otherwise; no fixed GPU or latency requirement established.",
      "external_models": "Separate NoMaD checkpoint and visualnav_transformer dependency. Missing checkpoint triggers gdown in the source; no weights were fetched.",
      "api": "No hosted LLM API required by this node. Missing-checkpoint retrieval is an external network dependency.",
      "environment": "ROS 2 camera and velocity target, model configuration and robot limits. Calling the start service causes velocity-command publication.",
      "evidence_paths": [
        "src/rai_extensions/rai_nomad/README.md",
        "src/rai_extensions/rai_nomad/setup.py",
        "src/rai_extensions/rai_nomad/package.xml",
        "pyproject.toml"
      ]
    }
  }
}
```

## Invocation

```json
{
  "entrypoint": "ros2 run rai_nomad nomad --ros-args -p image_topic:=<camera-topic>",
  "notes": "Source/setup invocation shape only; not executed or runtime verified. Source references only; no Hub adapter, compatibility promise, provider access grant or runtime result. License remains NOASSERTION/verified:false because mixed source-notice boundaries and completeness were not resolved."
}
```

## Compatibility

```json
[]
```

Missing environment fields remain unknown. Source discovery labels do not establish robot compatibility.

## Evidence

Level: **source_reviewed**. Runtime verification: **not_run**.

Verified exact source, setup registration, scoped license notice and author/setup bytes at a full Git commit; parsed Python AST and matched a literal setuptools console registration to its top-level source function. No setup file, source module, installation, robot command, dataset, mesh or checkpoint was executed or loaded.

Source review and contributor reports do not establish task completion. Preserve upstream attribution and licenses.
