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.

AWR1843BOOST: A few questions about Gating in the Gtrack

Expert 2985 points
Part Number: AWR1843BOOST

Hi,

I am using mmwave_sdk_03_03_00_03 and mmwave_industrial_toolbox_4_0_0.

In the 'Section 3.4.1. Gating Function' in 'Tracking radar targets with multiple reflection points.pdf' under the path C:\ti\mmwave_sdk_03_03_00_03\packages\ti\alg\gtrack\docs, the constant volume (V) concept was proposed instead of the traditional constant gate (G). This makes sense to me. And it also said that, quoting, 'Given the constant volume V we compute G.'

And in the Table 5 in the 'Section 4.3.2. Advanced parameters - Gating Parameters', we have the 'Gating Function Parameters' as: Volume, DepthLimit, WidthLimit, HeightLimit, VelocotyLimit.

So I suppose that, we give a V (target specific) in the configuration file, and then internally GTrack is going to compute the G.

However, as I traced the source code of GTrack, I didn't find this computation (from V to G). 

First, in the demo project under the path C:\ti\mmwave_industrial_toolbox_4_0_0\labs\traffic_monitoring\18xx_68xx_traffic_monitoring, it reads 'Volume' in the configuration file as 'Gain' as in line 359 in \traffic_monitoring_18xx_mss\mss\tracker_utils.c,

gMmwMssMCB.trackerCfg.trackerDpuCfg.staticCfg.gatingParams.gain = (float) atof (argv[1]);

In line 123 in the file C:\ti\mmwave_sdk_03_03_00_03\packages\ti\alg\gtrack\src\gtrack_unit_start.c, we have

inst->G = inst->gatingParams->gain;

And in line 131 in the file C:\ti\mmwave_sdk_03_03_00_03\packages\ti\alg\gtrack\src\gtrack_unit_score.c, we have

/* Gating Step */
if(mdp < inst->G) {

The mdp is the Mahalanobis Distance without velocity dimension. So it seems like the for the current version of mmwave_sdk, the Gtrack still implements the constant 'G' as in the book of 'Multiple-Target Tracking with Radar Applications'.

At the same time, for the limit parameters, i.e. DepthLimit, WidthLimit, HeightLimit and VelocotyLimit, in the 'Gating Function Parameters', they are updated into 'H_limites.vector' as below.

But the H_limits.vector hasn't been used in any other places. So it seems like the limit parameters are dummies.

Simply put, I want to confirm two things:

1. Although the constant 'V' was proposed in the Gtrack doc, it only implements the constant 'G' in the current version of mmwave_sdk (as of 03_03_00_03). And the parameter 'Volume' in the 'gatingParam' in the configuration file works as 'G' rather than 'V'.

2. And the other parameters, i.e. DepthLimit, WidthLimit, HeightLimit and VelocotyLimit, in the 'gatingParam' in the configuration file do nothing with the gating results.

By the way, the parameter 'Gain' in the Gating function cause a bit confusion with Kalman 'Gain'. Maybe 'Gate' is better as in the reference book.

Thanks,

Feng

  • Hi Feng,

    First, Volume has been replaced with what is referred to internally as "Gain".  GTrack calculates dimensions for the gating function. Each dimension can be grown by the Gain amount, but ultimately limited by the limit.  Growth is multiplicative. So if the Gain is 3, and the dimension is 2, with limit 4, then it could grow up to 3*2 = 6, but will be limited to 4.

    I will check with the author to determine if the limits are used.

    Regards,

    Justin

  • Hi Justin,

    So the 'Volume' in the configuration file is the same thing as the 'Gain' in the Gtrack source project.

    And the current implementation of Gtrack doesn't follow what is in the Gtrack doc as bellow, right?

    Therefore, the proposed gating solution is based on constant volume concept. We are seeking the gating
    function that produces the same volume ellipsoid. Given the constant volume V we compute G. Now,
    the group tracks with significant amount of dispersion will see the decresing reach, leading towards less
    aggressive track acquisitions. The tracks with access dispersion (those that have incompatible
    mesurments) are going to split. That is the desired behaviour.

    Thus, the guide to choose 'Volume' in the Table 5 in the Gtrack doc, like 

    wouldn't be followed as well?

    So another question arises. How  to choose 'Volume' in the configuration file or 'Gain' in the source code?

    In the reference book, although I didn't find the [2] in the picture below, the square_d_max should be the same as 'Volume' or 'Gain', right?

    For the single target, the 'Gate' in the reference book should follow:

    But for the group track, the choice of square_d_max should follow something in the [2] in the second picture?

    Thanks,

    Feng

  • Hi Fang,

    Usually, we find that Gain = 3 is a good value for humans. I will respond with a description of how we determine gain.

    Regards,

    Justin

  • That would be very helpful.

    Thanks,

    Feng

  • Hi Feng,

    I spoke with the author of GTrack. 

    "As the user correctly said, the gating function uses the gain parameter as normalized distance function. Normalized means that the distance is measured in standard deviations. For example, in 2D a point at the distance equal to std2 form the expected center will produce the mahalanobis distance of sqrt(2). With default value of 3, the point will be considered within a gate.

    We found that setting this parameter to 3 is good for most of 2D cases. We may need to increase this parameter (say to 4) for 3D. "

    Generally, we do not expect that you would need to change the gate.

    Regards,

    Justin