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-ODS: [ITB4.2.0 - 3D people counting] Azimuth tile value of "sensorPosition" command in cfg file does not work for target position.

Part Number: IWR6843ISK-ODS

Hi,

I am running 68xx_3D_people_counting lab in mmwave_industrial_toolbox_4_2_0 and checking the data from radar using Python visualizer.

The "sensorPosition" command in cfg file is set as:

 sensorPosition 2 30 10

As a result, I got a graph as below.

Point cloud data is displayed at correct position,  but target is displayed at wrong position.

It seems that 30 degrees of azimuth tilt is not calculated properly.

How can I fix this?

Best regards,

Field

  • Hi Fields,

    I've asked an expert to look into this and we should have an answer for you sometime next week.

     

    Cheers,

    Akash

  • Hi Fields,

    Please do the following:

    Lines 1645 and 1646 in mss_main.c should be the following (minus becomes plus):

    gMmwMssMCB.pointCloudToUart.point[pntIdx].azimuth = (int8_t)round((outputFromDSP->pointCloudOut.pointCloud[pntIdx].azimuthAngle + gMmwMssMCB.trackerCfg.trackerDpuCfg.staticCfg.sensorAzimuthTilt ) / gMmwMssMCB.pointCloudToUart.pointUint.azimuthUnit);


    gMmwMssMCB.pointCloudToUart.point[pntIdx].elevation = (int8_t)round((outputFromDSP->pointCloudOut.pointCloud[pntIdx].elevAngle + gMmwMssMCB.trackerCfg.trackerDpuCfg.staticCfg.sensorElevationTilt)/ gMmwMssMCB.pointCloudToUart.pointUint.elevationUnit);

    Lines 1652 and 1653 should be the following(removing modification of point cloud fed to tracker):

    gMmwMssMCB.pointCloudFromDSP[pntIdx].azimuthAngle = outputFromDSP->pointCloudOut.pointCloud[pntIdx].azimuthAngle;// - gMmwMssMCB.trackerCfg.trackerDpuCfg.staticCfg.sensorAzimuthTilt;


    gMmwMssMCB.pointCloudFromDSP[pntIdx].elevAngle = outputFromDSP->pointCloudOut.pointCloud[pntIdx].elevAngle;// - gMmwMssMCB.trackerCfg.trackerDpuCfg.staticCfg.sensorElevationTilt;

    Explanation:

    The tracker module also modifies the point cloud. So I am changing the output modification to match the tracker module modification and removing tracker input point cloud modification.

    Regards,

    Justin

  • Hi Justin,

    I modified the source code as you told me above and checked the behavior.

    I can see that targets now appear at correct positions.

    However, it seems that targets are now less likely to be generated.

    I checked the difference in behaviors between previous FW and modified FW by stopping and moving in front of the radar.

    The previous FW generates a target as soon as I started moving even at the edge of FOV, but the modified FW doesn't create  a target unless I go to directly in front of the radar.

    Do you have any idea why?

    Best regards,

    Fields

  • Hi Fields,

    Can you experiment with the size of the boundary box? Are you visually inside the boundary box before the allocation happens?

    Regards,

    Justin

  • Hi Justin,

    I wrote down the cfg file I am using below and the picture that shows how I am moving in front of the radar.

    You can see that I am setting boundary box so that my position will be inside the box.

    I am using the same cfg file with previous and modified FWs anyway.

    Why does previous(original) FW easily create track while modified FW doesn't?

    Could you please check it the same phenomenon occurs in your side as well?

    ----------------

    sensorStop
    flushCfg
    dfeDataOutputMode 1
    channelCfg 15 7 0
    adcCfg 2 1
    adcbufCfg -1 0 1 1 1
    lowPower 0 0
    profileCfg 0 60.75 7 7 41.10 0 0 54.71 1 96 2950.00 0 0 24
    chirpCfg 0 0 0 0 0 0 0 1
    chirpCfg 1 1 0 0 0 0 0 2
    chirpCfg 2 2 0 0 0 0 0 4
    frameCfg 0 2 96 0 50 1 0
    dynamicRACfarCfg -1 4 4 2 4 8 16 4 4 4.00 4.50 0.50 1 1
    staticRACfarCfg -1 4 4 2 4 8 16 4 6 8.00 13.00 0.30 0 0
    dynamicRangeAngleCfg -1 0.75 0.0010 1 0
    dynamic2DAngleCfg -1 1.5 0.0300 1 0 1 0.50 0.85 8.00
    staticRangeAngleCfg -1 1 8 4
    antGeometry0 0 0 -1 -1 -2 -2 -3 -3 -2 -2 -3 -3
    antGeometry1 0 -1 -1 0 0 -1 -1 0 -2 -3 -3 -2
    antPhaseRot 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1
    fovCfg -1 70.0 20.0
    compRangeBiasAndRxChanPhase 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
    staticBoundaryBox -5 5 -1 9 -2 2
    boundaryBox -5 5 -1 9 -2 2
    sensorPosition 2 -30 10
    gatingParam 3 1.5 1.5 2 0
    stateParam 3 3 10 4000 5 600
    allocationParam 200 800 0.1 15 0.5 20
    maxAcceleration 0.1 0.1 0.1
    trackingCfg 1 2 1000 20 67 105 50
    sensorStart

    ----------------

    Best regards,

    Fields