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.

AWR1642BOOST: How to find Tracking TLV velocity (m/s) ?

Part Number: AWR1642BOOST

Hi,

I want to find the Tracking Tlv velocity ? i just looking the SRR GUI source code , this file:- "C:\ti\radar_toolbox_1_30_01_03\tools\visualizers\SRR_GUI\read_file_and_plot_object_location.m"

and here below the code for,  IF(TRACKING TLV ):

function [detObj, idx] = getTrackers(bytevec, idx, tlvLen)
global TRACKER_STRUCT_SIZE_BYTES ;
detObj =[];
detObj.numObj = 0;
len_bytevec = length(bytevec);
if len_bytevec < idx +4;
    idx = len_bytevec;
    return;
end

if tlvLen > 0
    %Get detected object descriptor
    word = [1 256]';
    detObj.numObj = sum(bytevec(idx+(1:2)) .* word);
    idx = idx + 2;
    xyzQFormat = 2^sum(bytevec(idx+(1:2)) .* word);
    idx = idx + 2;
    onebyXyzQFormat = 1/xyzQFormat;
    %Get detected array of detected objects
    if len_bytevec < idx + (1:detObj.numObj*TRACKER_STRUCT_SIZE_BYTES);
        detObj.numObj = 0;
        idx = len_bytevec;
        return;
    end
    bytes = bytevec(idx+(1:detObj.numObj*TRACKER_STRUCT_SIZE_BYTES ));
    idx = idx + detObj.numObj*TRACKER_STRUCT_SIZE_BYTES ;
   
    bytes = reshape(bytes, TRACKER_STRUCT_SIZE_BYTES , detObj.numObj);
    detObj.x = bytes(1,:)+bytes(2,:)*256;
    detObj.y = bytes(3,:)+bytes(4,:)*256;
    detObj.x( detObj.x > 32767) =  detObj.x( detObj.x > 32767) - 65536;
    detObj.y( detObj.y > 32767) =  detObj.y( detObj.y > 32767) - 65536;
    detObj.x = detObj.x*onebyXyzQFormat;
    detObj.y = detObj.y*onebyXyzQFormat;
   
    detObj.vx = bytes(5,:)+bytes(6,:)*256;
    detObj.vy = bytes(7,:)+bytes(8,:)*256;
    detObj.vx( detObj.vx > 32767) =  detObj.vx( detObj.vx > 32767) - 65536;
    detObj.vy( detObj.vy > 32767) =  detObj.vy( detObj.vy > 32767) - 65536;
    detObj.vx = detObj.vx*onebyXyzQFormat;
    detObj.vy = detObj.vy*onebyXyzQFormat;
    x_size = bytes(9,:)+bytes(10,:)*256;
    y_size = bytes(11,:)+bytes(12,:)*256;
   
    x_size = x_size.*onebyXyzQFormat;
    y_size = y_size.*onebyXyzQFormat;
   
    x_loc = (repmat(detObj.x',[1,6])) + x_size'*([-1 1 1 -1 -1 inf]);
    y_loc = (repmat((detObj.y+y_size)',[1,6])) + y_size'*([-1 -1 1 1 -1 inf]);
   
    x_loc = x_loc';
    y_loc = y_loc';
    detObj.clusters_x_loc = x_loc(:);
    detObj.clusters_y_loc = y_loc(:);
   
    detObj.range = sqrt(detObj.y.*detObj.y + detObj.x.*detObj.x);
    detObj.doppler = (detObj.vy.*detObj.y + detObj.vx.*detObj.x)./detObj.range;
   
end
return
---> QUESTION 1: In the above code, this part = detObj.doppler = (detObj.vy.*detObj.y + detObj.vx.*detObj.x)./detObj.range;
We can find velocity, but this output we get is in which unit? Is there any conversion needed?
---> QUESTION 2: What does tracking tlv mean? I thought any object moving at that time would only be present, but I put radar on the don't have moving objects, but it always sends a tracking tlv. I'm currently using the SRR demo 80M range (SRR mode). 
==> Now I'm trying to neglect the non-movable objects by their velocity from the tracking tlv so that's why i want to know all the above. like velocity minimum value and maximum value.