Skip to content

Simple Radar Pipeline Application

Authors: Cliff Burdick (NVIDIA)
Supported platforms: x86_64, aarch64
Last modified: March 18, 2025
Language: C++
Latest version: 1.1
Minimum Holoscan SDK version: 2.6.0
Tested Holoscan SDK versions: 2.6.0
Contribution metric: Level 2 - Trusted

This demonstration walks the developer through building a simple radar signal processing pipeline, targeted towards detecting objects, with Holoscan. In this example, we generate random radar and waveform data, passing both through: 1. Pulse Compression 2. Moving Target Indication (MTI) Filtering 3. Range-Doppler Map 4. Constant False Alarm Rate (CFAR) Analysis

While this example generates 'offline' complex-valued data, it could be extended to accept streaming data from a phased array system or simulation via modification of the SignalGeneratorOperator.

The output of this demonstration is a measure of the number of pulses per second processed on GPU.

The main objectives of this demonstration are to: - Highlight developer productivity in building an end-to-end streaming application with Holoscan and existing GPU-Accelerated Python libraries - Demonstrate how to construct and connect isolated units of work via Holoscan operators, particularly with handling multiple inputs and outputs into an Operator - Emphasize that operators created for this application can be re-used in other ones doing similar tasks

Building the application

Make sure CMake (https://www.cmake.org) is installed on your system (minimum version 3.20)

  • Holoscan Debian Package - Follow the instructions in the link to install the latest version of Holoscan Debian package from NGC.

  • Create a build directory:

    mkdir -p <build_dir> && cd <build_dir>
    

  • Configure with CMake:

Make sure CMake can find your installation of the Holoscan SDK. For example, setting holoscan_ROOT to its install directory during configuration:

cmake -S <source_dir> -B <build_dir> -DAPP_simple_radar_pipeline=1 

Notes: If the error No CMAKE_CUDA_COMPILER could be found is encountered, make sure that the :code:nvcc executable can be found by adding the CUDA runtime location to your PATH variable:

export PATH=$PATH:/usr/local/cuda/bin
  • Build:
cmake --build <build_dir>

Running the application

<build_dir>/simple_radar_pipeline