Software Development Guidance

Introduction

The Navtech Radar SDK provides a simple interface to communicate with Radar sensors. As well as ROS and ROS2 examples, the SDK includes source code for C++, a simple .NET DLL that can easily be integrated into applications running on Windows and Linux. The Navtech Radar Bitbucket repository also contains some simple Python scripts which both demonstrate network communication with radar sensors and provide a visualisation of the received data.

Navtech Radar sensors provide output in one or both of two modes: “FFT data” (sometimes referred to as “raw radar data” and “navigation output”. These are explained below. The SDK provides support for both modes, allowing developers to receive either type of data from the sensor and also send control messages back.

Communication with Navtech Radar sensors is over Ethernet and utilises a proprietary binary communication protocol called Colossus Network Protocol. The SDK abstracts this protocol to avoid having to develop the low level socket and messaging processing code. However you can develop your own interface without the SDK if required and the protocol documentation will provide all the information you need to achieve this.

Code downloads are accessible here.

Contents



IA Sensor Modes

FFT Data

In this mode the radar outputs FFT processed data, which is amplitude and range. Data is sampled 400x per radar rotation and packet is sent across the network for each sample. This packet includes the sample azimuth enabling the receiver to analyse target data based on range, bearing and amplitude. The data output rate for native mode is quite high. The normal data rate is between 11Mbps - 38Mbps.

To use native mode you will need to understand and use the Colossus Network Protocol. The protocol describes the format of the messages sent across the network and also explains how to control functions on the sensor. For example, after you connect to the radar you must ask the device to start sending FFT data. This ensures the receiving client is in full control of when it starts and receives raw data.

When working with native data the developer is responsible for performing all the signal processing to extract targets and establishing logic to discriminate targets from unwanted clutter.

The SDK provides a simple hook to enable your application to receive this data and also provides the appropriate methods to control the radar, such as switching the data stream on and off.

Navigation Data

In this mode the radar will analyse the data in real time and extract targets on each azimuth that are above a specified threshold. Messages describing these plots are then sent across the network as they are extracted.

In addition, this process will sub-resolve the range of the plot using a curve-fitting algorithm on the signal peak. This enables the sensor to achieve a far higher range resolution than the native signal processing normally allows. The algorithm will provide all targets in an azimuth that are above the specified threshold.

The target data are returned with the following information:

  • Azimuth

  • Seconds

  • SplitSeconds

  • List of targets

    • Range (m)

    • Power (dB half steps e.g 152 = 76dB)

The seconds and split seconds are using the UNIX epoch of the 1st Jan 1970 00:00:00; split seconds is the number of elapsed nano seconds since the last second

The mode of the radar’s operation provides data at a much lower rate than the raw FFT data output and is ideally suited to support collision avoidance navigation and positioning applications without much further development.

The SDK provides a simple hook to enable your application to receive this data and also provides the appropriate methods to control the radar. This includes the ability to switch the plot extraction on and off and also allows the threshold to be set.