This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

IWR6843ISK: what to indicate by range - azimuth heat map

Part Number: IWR6843ISK

Hello ,

Let me clarify what to indicate by range - azimuth heat map on demo visualizer. I supposed objects position by distance and angle is indicated lilke Fig(8) in below document.

https://arxiv.org/pdf/1912.12566.pdf

But according to the User's Guide(SWRU529A–May 2017–Revised October 2017), radar cube matrix with only no movement by all range bins and all antennas is displayed. Please kindly let me know if angle information is indicated on your range - azimuth heat map. Also, I am fine if you could let me know how to make sure angle information by visualizer.

Best regards,

Taka

  • Former Member
    0 Former Member

    Hello,

    The range-angle heatmap in the papers you linked is calculated using a different method than is done in the mmWave Online Visualizer.

    In TI's mmWave Demo, the range azimuth heatmap is calculated from a subset of the radar-cube correlating to the zero doppler bin (so no movement information). So we only take the 0 doppler information for every range, angle bin combination. Additionally the visualizer converts the information from polar (range,angle) to Cartesian coordinate system so x,y in meters are the axes of the plot.

    In contrast, the paper you linked takes the doppler bin of the highest energy value, and computes the range angle estimation for that doppler bin. You can  think this range-angle heatmap as representative of either moving or non moving objects depending on the range/angle combination.

    If you want to implement the same, you will need to stream out the entire radar-cube and perform the computations as described in the paper. https://e2e.ti.com/support/sensors/f/1023/p/885225/3329328#3329328

    Amanda

  • Hello Amanda,

    Thank you for your message. I would like to ask you sharing a document to understand how to convert radar-cube data to range & angle data shown by range-azimuth heat-map on TI's visualizer.  

    Also, are you suggesting I have to read out rada cube data and then convert to range-angle heat map in the papers as I linked ?

    Best regards,

    Taka 

  • Former Member
    0 Former Member in reply to Takatoshi Tsuji

    Hello,

    1 - Please allow me some more time to provide information for conversion as a document does not currently exist.

    2 - Yes, if you are trying to implement the same kind of range-angle heat map as described in the paper you need the entire radar cube since it searches every velocity bin instead of just the 0 doppler bin portion of the radar cube.

    Amanda

  • Hello Amanda,

    Thank you for your message. I look forward to a document to understand the data conversion to TI's range-azimuth heat map.

    Best regards,

    Taka

  • Hello Amanda,

    Is there any update on this topics ? I am still waiting a document for the data convertion to TI's range-azimuth heat map.

    Best regads,

    Taka

  • Former Member
    0 Former Member in reply to Takatoshi Tsuji

    understand_OOB_output.pdfHello,

    I've attached a document for the OOB UART data.

    To parse and reconstruct the plot for the azimuth heatmap TLV please see this pseudocode/Matlab snippet

        
        % payload is array of unsigned bytes in azimuth heatmap TLV
        q = payload(1:2:end)+payload(2:2:end)*256; % convert to uint16
        q(q>32767) = q(q>32767) - 65536; % convert to signed
        q = 1j*q(1:2:end)+q(2:2:end); %convert to complex. Imaginary first, real second
        q = reshape(q, numVirtualAntenna, numRangeBins); %convert from array to 2d matrix of dim [# virtual ant] x {# range bin]
        Q = fft(q, NUM_ANGLE_BINS); % numAngleBin-point fft along columns (across virtual ant)
    	
        theta = asind([-NUM_ANGLE_BINS/2+1 : NUM_ANGLE_BINS/2-1]'*(2/NUM_ANGLE_BINS));
        range = raneqBin2Meters; %rangeBin2Meters is an array from 0:range_resolution_bin:maxRange of the chirp
        posX = range' * sind(theta');
        posY = range' * cosd(theta');
        xlin=linspace(-floor(range(end)),ceil(range(end)),200);
        ylin=linspace(0,ceil(range(end)),200);
        [X,Y]=meshgrid(xlin,ylin);
    
        QQ = fftshift(abs(Q),1);
        QQ=QQ.';
        QQ=QQ(:,2:end);
        Z=griddata(posX,posY,QQ,X,Y,'linear');
        hAzimuthHeatmapPlot = surf(xlin,ylin,Z);
        shading INTERP
        view([0,90])
        axis('equal')
        axis([-ceil(range(end)) ceil(range(end)) 0 ceil(range(end))])
        xlabel('Range X-Axis [m]');                  
        ylabel('Range Y-Axis [m]');

    Amanda

  • Hello Amanda,

    Thank you for your document. I understand data matrix of range FFT every virtual antenna is figured in range-azimuth heatmap. I think range FFT is figured along 'Distance along longitudinal axis' and it is figured radially from 'zero point' according to virtual antenna order. If I am wrong, please correct me.

    Best regards,

    Taka

  • Former Member
    0 Former Member in reply to Takatoshi Tsuji

    Hello Taka,

    Yes - I think if you can look at the diagram in section 4.1 of this MIMO application note it shows the same idea of computation of angle from 2D FFT:

    Amanda

  • Hello Amanda,

    Thank you for your reply.

    Best regards,

    Taka