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: Assigning Unique id to Tracked Objects

Part Number: AWR1843BOOST

Hello Team,
Is there anyway to assign unique ID to a tracked object, as the data frame of tracked object keeps sending the following parameters as shown in below image dynamically, i cannot predict lets say In 1st frame no of obj detected = 1 and its vel is 100 m/s, and in 2nd frame no of obj = 2, and in 3rd frame no of obj = 4 and so on

As you can see in 3rd frame we have 4 objects. so object 1 parameters can be in any of the index (index 3 in third frame, index 2 in second frame and so on)
What factor i can consider so i can assign unique id to the tracked object (That i can print its id on visualizer).

  • Hi,

    Please give me a few days to check with algorithm developer

    thank you

    Cesar

  • Hi,

    I checked with algorithm developer. You would need to add ID in the Tracker State structure.

    Then you would need to increase the value of the ID when a tracker is created

    Something similar to below

    I hope this helps

    thank you

    Cesar

    typedef struct KFstate

    {

        Uint32_t ID;

        uint8_t age;

        uint8_t tick;

        uint16_t validity;

        int16_t xSize;

        int16_t ySize;

        float vec[N_STATES];

        float covmat[N_UNIQ_ELEM_IN_SYM_COVMAT];

    }KFstate_t

    void createNewTracks(MmwDemo_DSS_DataPathObj * restrict dataPathObj,

                         trackingInputReport_t const * restrict measArray,

                         int16_t const * restrict freeTrackerIndxArray,

                         int16_t const * restrict selectedIndxArr,

                         const int32_t numSelected)

    {

     

        trackingInputReport_t const * restrict currMeas;

        KFstate_t * restrict currTrack;

        int32_t iTrack;

        int32_t freeTrackIndx;

        int32_t selectedMeasIndx;

     

     

        for (iTrack = 0; iTrack < numSelected; iTrack++)

        {

            freeTrackIndx = freeTrackerIndxArray[iTrack];

            selectedMeasIndx = selectedIndxArr[iTrack];

            currTrack = &(dataPathObj->trackerState[freeTrackIndx]);

            currMeas = &(measArray[selectedMeasIndx]);

     

            initNewTracker(currTrack, currMeas);

            currTrack->age = 0;

            currTrack->validity = IS_VALID;

            currTrack->tick = 0;

            currTrack->xSize = currMeas->xSize;

            currTrack->ySize = currMeas->ySize; 

            currTrack->ID = global_ID_track++; //keep increasing don’t recycle define as uint32

         

        }

  • Thank you for your reply, I will implement this and get back to you

  • Thank you

    Cesar