Configuring Radar Sensors
When to Use
Use this skill when the user asks to create a radar scene, configure an OmniRadar prim, choose radar output frame/coordinate behavior, configure radar scan outputs, or request radar PointCloud channels.
Inputs
Resolve inputs in this order: existing repository files and referenced snippets, explicit user request, then broader agent context.
- Target API surface: Python, C/C++, USD, or a combination.
- Radar sensor prim path, pose, frame rate, scan configuration, and output format attributes.
- RenderProduct path, PointCloud RenderVar path, requested output channels, coordinate representation, and output frame.
- Whether the user needs USD authoring only or an end-to-end example that steps and reads the configured output.
- Repository source snippets referenced below. Treat these snippets as the API source of truth.
Prerequisites
- Use an ovrtx checkout that contains the referenced examples and docs tests.
- Read the relevant
> **Source:** snippet before writing or explaining API usage.
- Use
reading-sensor-pointclouds for map/read code after the configured scene renders.
- Use
interpreting-radar-pointclouds for channel units, signed radial velocity, validity, and visualization semantics.
Instructions
- Identify the radar prim, RenderProduct, PointCloud RenderVar, requested channels, scan behavior, coordinate behavior, and output frame.
- Read the matching USD, Python, or C/C++ source snippet before writing API usage.
- Author the
OmniRadar prim and PointCloud RenderVar channel set explicitly; do not imply channels are available unless requested or auto-enabled.
- Combine configuration, reading, and interpretation skills only when the user asks for an end-to-end radar workflow.
- When changing code, run the narrow docs test or example that owns the snippet whenever practical.
Output Format
- For explanations, cite the relevant API names, source snippets, and caveats.
- For code changes, summarize the files changed, snippets affected, and validation run.
Scripts
This skill has no scripts.
Limitations
- The referenced snippets remain the source of truth; update or add tested snippets before documenting new API usage.
Overview
An ovrtx radar setup has two parts:
- An
OmniRadar prim with OmniSensorGenericRadarWpmDmatAPI that defines the sensor model, pose, frame rate, and output format.
- A
RenderProduct pointing at that radar plus a PointCloud RenderVar that selects the radar output channels to expose.
The same USDA scene pattern is used from Python and C; the language-specific code only loads the scene, steps the render product, and maps the output.
Minimal Radar Prim
Python example scene
Source: examples/python/radar/radar_example.usda snippet configure-radar-sensor
C example scene
Source: examples/c/radar/radar_example.usda snippet configure-radar-sensor
Use OmniSensorGenericRadarWpmDmatAPI for the generic WPM DMAT radar model. The schema automatically includes scan configuration s001; apply OmniSensorGenericRadarWpmDmatScanCfgAPI:s002, s003, and so on only when authoring additional scan patterns.
In Z-up scenes, keep the physical scene Z-up and rotate the radar prim so sensor +X points along the intended forward direction. Prefer authoring that transform in USD instead of relying on renderer settings that change the coordinate frame globally.
Output Attributes
These output-defining attributes, among others, live on the radar prim with the omni:sensor:WpmDmat: prefix.
| Attribute |
Values / Shape |
Use |
elementsCoordsType |
CARTESIAN, SPHERICAL |
Coordinate representation for detection coordinates. |
outputFrameOfReference |
SENSOR, WORLD, CUSTOM |
Frame of reference for outputs. Prefer SENSOR when downstream consumers expect sensor-frame detections. |
customFrameOfReferenceTrafo |
[x, y, z, roll, pitch, yaw] |
Custom transform used only with outputFrameOfReference = CUSTOM. |
OmniRadar prims expose many additional WPM DMAT sensor and scan attributes for wavelength, ray depth, CFAR behavior, range/velocity/angular bins, noise, RCS tuning, and antenna/aperture configuration. Preserve existing attributes when editing a tuned sensor, and author model-specific values from the schema.
For the full schema-derived attribute list, read schemas/omni_sensors/schema.usda.
Scan Configuration
The default scan is s001, and scan attributes use the omni:sensor:WpmDmat:scan:<scanName>: prefix. Use scan attributes such as max range, angular limits, resolution, bin counts, CFAR settings, noise settings, and RCS tuning to match the target radar model.
For concise examples, keep one scan unless the behavior being demonstrated requires near/far or otherwise distinct scan patterns.
PointCloud Render Output
Python example scene
Source: examples/python/radar/radar_example.usda snippet configure-radar-pointcloud-output
C example scene
Source: examples/c/radar/radar_example.usda snippet configure-radar-pointcloud-output
sourceName = "PointCloud" is the radar sensor render output. Request only the channels needed by the consumer to keep memory use down.
Common radar channels:
| Channel |
Meaning |
Coordinates |
3D detection coordinates in the configured coordinate representation and output frame. |
RCS |
Radar cross section in dBsm. |
RadialVelocityMs |
Doppler radial velocity in meters per second. Approaching objects can have negative velocity, so use magnitude when checking only for motion. |
TimeOffsetNs |
Per-detection time offset in nanoseconds relative to scan start. |
Flags |
Model-delivered per-detection status flags. The model auto-enables this channel even when it is not requested explicitly. |
Counts |
Model-delivered detection entry count used to bound every per-detection tensor. The model auto-enables this channel even when it is not requested explicitly. |
Troubleshooting
- Output-defining attributes are not intended for runtime mutation; author them in USD before loading the scene.
Counts defines the delivered range in per-detection tensors. Do not iterate over the full tensor allocation; use Flags for per-detection validity.
PointCloud only needs requested payload channels; the model auto-enables Counts and Flags and delivers them like ordinary channel tensors.
- Radar output frame and visualizer frame are separate concerns. If output is in
SENSOR frame, configure the visualizer to interpret that frame instead of changing the sensor to WORLD unless world-frame output is actually desired.
Related Skills
reading-render-output for mapping render variables and composite tensors.
reading-sensor-pointclouds for point-cloud tensor access patterns.
interpreting-radar-pointclouds for radar channel units and visualization.
References
- Use the
> **Source:** directives in this skill to locate tested snippets before reusing API patterns.
- Keep related skills, docs, and snippets synchronized when changing the workflow.
1---2# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.3# SPDX-License-Identifier: LicenseRef-NvidiaProprietary4#5# NVIDIA CORPORATION, its affiliates and licensors retain all intellectual6# property and proprietary rights in and to this material, related7# documentation and any modifications thereto. Any use, reproduction,8# disclosure or distribution of this material and related documentation9# without an express license agreement from NVIDIA CORPORATION or10# its affiliates is strictly prohibited.11name: configuring-radar-sensors12description: >13 Authoring and configuring OmniRadar sensor prims and radar PointCloud render outputs.14 Use when user asks to create a radar scene, configure an OmniRadar prim, choose radar15 output frame/coordinate behavior, configure radar scan outputs, or request radar16 PointCloud channels.17license: LicenseRef-NvidiaProprietary18author: NVIDIA ovrtx19tags:20 - ovrtx21 - sensors22 - radar23tools:24 - Read25 - Grep26---2728# Configuring Radar Sensors2930## When to Use3132Use this skill when the user asks to create a radar scene, configure an OmniRadar prim, choose radar output frame/coordinate behavior, configure radar scan outputs, or request radar PointCloud channels.3334## Inputs3536Resolve inputs in this order: existing repository files and referenced snippets, explicit user request, then broader agent context.3738- Target API surface: Python, C/C++, USD, or a combination.39- Radar sensor prim path, pose, frame rate, scan configuration, and output format attributes.40- RenderProduct path, PointCloud RenderVar path, requested output channels, coordinate representation, and output frame.41- Whether the user needs USD authoring only or an end-to-end example that steps and reads the configured output.42- Repository source snippets referenced below. Treat these snippets as the API source of truth.4344## Prerequisites4546- Use an ovrtx checkout that contains the referenced examples and docs tests.47- Read the relevant `> **Source:**` snippet before writing or explaining API usage.48- Use `reading-sensor-pointclouds` for map/read code after the configured scene renders.49- Use `interpreting-radar-pointclouds` for channel units, signed radial velocity, validity, and visualization semantics.5051## Instructions52531. Identify the radar prim, RenderProduct, PointCloud RenderVar, requested channels, scan behavior, coordinate behavior, and output frame.542. Read the matching USD, Python, or C/C++ source snippet before writing API usage.553. Author the `OmniRadar` prim and `PointCloud` RenderVar channel set explicitly; do not imply channels are available unless requested or auto-enabled.564. Combine configuration, reading, and interpretation skills only when the user asks for an end-to-end radar workflow.575. When changing code, run the narrow docs test or example that owns the snippet whenever practical.5859## Output Format6061- For explanations, cite the relevant API names, source snippets, and caveats.62- For code changes, summarize the files changed, snippets affected, and validation run.6364## Scripts6566This skill has no scripts.6768## Limitations6970- The referenced snippets remain the source of truth; update or add tested snippets before documenting new API usage.7172## Overview7374An ovrtx radar setup has two parts:7576- An `OmniRadar` prim with `OmniSensorGenericRadarWpmDmatAPI` that defines the sensor model, pose, frame rate, and output format.77- A `RenderProduct` pointing at that radar plus a `PointCloud` `RenderVar` that selects the radar output channels to expose.7879The same USDA scene pattern is used from Python and C; the language-specific code only loads the scene, steps the render product, and maps the output.8081## Minimal Radar Prim8283### Python example scene8485> **Source:** `examples/python/radar/radar_example.usda` snippet `configure-radar-sensor`8687### C example scene8889> **Source:** `examples/c/radar/radar_example.usda` snippet `configure-radar-sensor`9091Use `OmniSensorGenericRadarWpmDmatAPI` for the generic WPM DMAT radar model. The schema automatically includes scan configuration `s001`; apply `OmniSensorGenericRadarWpmDmatScanCfgAPI:s002`, `s003`, and so on only when authoring additional scan patterns.9293In Z-up scenes, keep the physical scene Z-up and rotate the radar prim so sensor `+X` points along the intended forward direction. Prefer authoring that transform in USD instead of relying on renderer settings that change the coordinate frame globally.9495## Output Attributes9697These output-defining attributes, among others, live on the radar prim with the `omni:sensor:WpmDmat:` prefix.9899| Attribute | Values / Shape | Use |100|---|---|---|101| `elementsCoordsType` | `CARTESIAN`, `SPHERICAL` | Coordinate representation for detection coordinates. |102| `outputFrameOfReference` | `SENSOR`, `WORLD`, `CUSTOM` | Frame of reference for outputs. Prefer `SENSOR` when downstream consumers expect sensor-frame detections. |103| `customFrameOfReferenceTrafo` | `[x, y, z, roll, pitch, yaw]` | Custom transform used only with `outputFrameOfReference = CUSTOM`. |104105OmniRadar prims expose many additional WPM DMAT sensor and scan attributes for wavelength, ray depth, CFAR behavior, range/velocity/angular bins, noise, RCS tuning, and antenna/aperture configuration. Preserve existing attributes when editing a tuned sensor, and author model-specific values from the schema.106107For the full schema-derived attribute list, read `schemas/omni_sensors/schema.usda`.108109## Scan Configuration110111The default scan is `s001`, and scan attributes use the `omni:sensor:WpmDmat:scan:<scanName>:` prefix. Use scan attributes such as max range, angular limits, resolution, bin counts, CFAR settings, noise settings, and RCS tuning to match the target radar model.112113For concise examples, keep one scan unless the behavior being demonstrated requires near/far or otherwise distinct scan patterns.114115## PointCloud Render Output116117### Python example scene118119> **Source:** `examples/python/radar/radar_example.usda` snippet `configure-radar-pointcloud-output`120121### C example scene122123> **Source:** `examples/c/radar/radar_example.usda` snippet `configure-radar-pointcloud-output`124125`sourceName = "PointCloud"` is the radar sensor render output. Request only the channels needed by the consumer to keep memory use down.126127Common radar channels:128129| Channel | Meaning |130|---|---|131| `Coordinates` | 3D detection coordinates in the configured coordinate representation and output frame. |132| `RCS` | Radar cross section in dBsm. |133| `RadialVelocityMs` | Doppler radial velocity in meters per second. Approaching objects can have negative velocity, so use magnitude when checking only for motion. |134| `TimeOffsetNs` | Per-detection time offset in nanoseconds relative to scan start. |135| `Flags` | Model-delivered per-detection status flags. The model auto-enables this channel even when it is not requested explicitly. |136| `Counts` | Model-delivered detection entry count used to bound every per-detection tensor. The model auto-enables this channel even when it is not requested explicitly. |137138## Troubleshooting139140- Output-defining attributes are not intended for runtime mutation; author them in USD before loading the scene.141- `Counts` defines the delivered range in per-detection tensors. Do not iterate over the full tensor allocation; use `Flags` for per-detection validity.142- `PointCloud` only needs requested payload channels; the model auto-enables `Counts` and `Flags` and delivers them like ordinary channel tensors.143- Radar output frame and visualizer frame are separate concerns. If output is in `SENSOR` frame, configure the visualizer to interpret that frame instead of changing the sensor to `WORLD` unless world-frame output is actually desired.144145## Related Skills146147- `reading-render-output` for mapping render variables and composite tensors.148- `reading-sensor-pointclouds` for point-cloud tensor access patterns.149- `interpreting-radar-pointclouds` for radar channel units and visualization.150151## References152153- Use the `> **Source:**` directives in this skill to locate tested snippets before reusing API patterns.154- Keep related skills, docs, and snippets synchronized when changing the workflow.