Radar Datagram

Table of contents

Introduction

This documentation gives an overview of the structure of the radar datagrams. With regard to the PreHeader, final consultations will be carried out with SICK, so that slight changes may still occur here in Q3/2018.

Structure of Radar Datagram

composition

The message sick_scan_xd/RadarScan consists of four parts:

  • Header in standard format

  • radarPreHeader with higher-level information

  • targets: Raw targets output from radar

  • objects: Tracking objects that are determined based on the raw targets using the internal tracking algorithm.

The complete structure can be determined using the command:

rosmsg show sick_scan_xd/RadarScan'

Structure of Radar Preheader

The following is a short datagram showing the structure of the radar datagram. The position of the individual elements for the data of the PreHeader is explained below. See the documenation on https://www.sick.com/de/en/radar-sensors/c/g575803?q=:Def_Type:ProductFamily for further information.

Example of very short radar datagram:

sSN LMDradardata 1 1 112F6E9 0 0 BCC DC0C 730E9D16 730EA06D 0 0 0 0 0 0 1 0 0 4 DIST1 42200000 00000000 0 AZMT1 3C23D70A 00000000 0 VRAD1 3C23D70A 00000000 0 AMPL1 3DCCCCCD 00000000 0 1 MODE1 3F800000 00000000 0 0 0 0 0 0

In the following, the individual tokens are numbered one after another and their meaning is explained:

  0: sSN               
  1: LMDradardata
  
  MeasurementData
  ===============
  2: 1             MeasurementData.uiVersionNo  : Version Information for this while structureValue 
                   Value   Range: 0 ... 65535                                 
  DeviceBlock
  ===========
  3: 1             DeviceBlock.uiIdent      : Logical number of the device
                   Value   Range: 0 ... 65535                                 
  4: 112F6E9       DeviceBlock.udiSerialNo  : Serial number of the device
                   Value Range  : 0..4294967295
                   
    
  5: 0             DeviceBlock.xbState      : State of the device
                   Bit length   : 16
                   
                   0.0 Bool     : Value Range False, True
                   Initialisation: False
                   Meaning       : bDeviceError

                   0.1 Bool      : Value Range False, True
                   Initialisation: False                  
                   Meaning       : bContaminationWarning
                   
                   0.2 Bool      : Value Range False, True
                   Initialisation: False
                   Meaning       : bContaminationError
                                      
                   0.3 ...  0.7
  6: 0             1.0 ...  1.7 Bool      : Value Range False, True
                                           Reserved

StatusBlock
===========                   
  7: BCC            uiTelegramCount  
  8: DC0C           uiCycleCount (or uiScanCount???)
  9: 730E9D16       udiSystemCountScan
 10: 730EA06D       udiSystemCountTransmit
 11: 0              xbInputs (Bit 0.0 .. 0.7)
 12: 0              xbInputs (Bit 1.0 .. 1.7)
 13: 0              xbOutputs (Bit 0.0 .. 0.7)
 14: 0              xbOutputs (Bit 1.0 .. 1.7)
 
MeasurementParam1Block
======================
 15: 0              MeasurementParam1Block.uiCycleDuration
 16: 0              MeasurementParam1Block.uiNoiseLevel

aEncoderBlock
============= 
 17: 1              Number of aEncoderBlocks
 
 
 18: 0              aEncoderBlock[0].udiEncoderPos                     
 19: 0              aEncoderBlock[0].iEncoderSpeed
 
 20: 4              Number of following data channels
 21: DIST1
 22: 42200000
 23: 00000000
 24: 0
 25: AZMT1
 26: 3C23D70A
 27: 00000000
 28: 0
 29: VRAD1
 30: 3C23D70A
 31: 00000000
 32: 0
 33: AMPL1
 34: 3DCCCCCD
 35: 00000000
 36: 0
 37: 1
 38: MODE1
 39: 3F800000
 40: 00000000
 41: 0
 42: 0
 43: 0
 44: 0
 45: 0
 46: 0