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.

IWR6843: Divide by zero in Gtrack

Part Number: IWR6843

Dear Sir/madam,

I'm testing the Gtrack code on the PC with synthetic targets and bump into a divide by zero problem. If you are tracking single points: config.advParams.allocationParams.pointsThre = 0.

In the file: gtrack_unit_update.c

In the function: gtrack_unitUpdate

In the line: alpha = ((float)(inst->estNumOfPoints-myPointNum))/((inst->estNumOfPoints-1)*myPointNum);

If value is inst->estNumOfPoints ==1, then this becomes a dived by 0, resulting in an NaN value in alpha, messing up all the matrix operations afterwards.

Could you support to fix this issue, or help me fixing it?

  • This issue I bumped into with MMWAVE SDK 3.1.1.2, but the at first sight the issue is also in version 3.3.0.3, and test confirms that the issue is still there.

    For now I have a workaround by generating 2 points close together and setting the value config.advParams.allocationParams.pointsThre to 1.

    Nevertheless, this is something that would be very nice to be fixed.

  • Former Member
    0 Former Member in reply to Sjors Hettinga

    Hello Sjors,

    The intention of gtrack alg was to group and track multiple points so I don't believe the single point tracking use case was considered with pointsThre = 0 for allocation.

    Thanks for your feedback. I will need some time to discuss this internally and will get back to you next week. If possible, can you share the use case why it would be useful to use the gtrack alg for single point tracking? 

    Thanks,

    Amanda

  • Dear Amanda,

    In this case I was just validating settings. The smaller you dataset, the better you can focus on issues. Therefore I wanted to see how it tracked a single point.

    In real world applications, it would be a sensible configuration if a course range resolution is likely to produce only a limited number of detections.

    At other places in the code there seems to be an attempt to support the tracking of a single point, but at this point, the code is broken. If the settings pointsThre = 0 is not supported, the documentation should state it and the tracker should return an error code when trying to set this.

    Kind regards,

    Sjors Hettinga

  • Hi Sjors,

    GTrack is built to track groups of points as they move around.  You have seen that it does not support tracking a single point due to this issue - if this is resolved, there will be other tracking issues. If you are trying to debug the tracker performance, starting with 1 point will not give representative results.

    Regards,

    Justin