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.

IWR6843AOP: long_range_people_det_68xx: Use With Different Antenna (ISK=> AOP)

Part Number: IWR6843AOP
Other Parts Discussed in Thread: IWR6843

In the Project/Lab: long_range_people_det_68xx

What needs to be changed in order to use it with different Antenna Geometry?
AOP Antenna (instead of ISK)

The HW Base is the same:  IWR6843 ES2.0

The Project already runs on our Target, but since Antenna Geometry is wrong,
all Angular Values are pretty wrong...

long_range_people_det_68xx_dss
long_range_people_det_68xx_mss

Single Tx Chirps are used (no Beamforming used)

Previously we used Project: mmwave_sdk_68xx_aop_hwa
In the Corresponding Config API the Antenna geometry (x/y distances Lambda/2 count based) is passed,
But since different Headers/Targets are used now  (MSS=>DSS , objectdetection/objdethwa   => objectdetectionandtracking/objdetrangehwa )
There seems to be no easy way to just pass that GeometryData into the API (parameter missing)

Kind regards

  • Hello

    Angle information computation is based on the virtual array formed by antenna configuration. 

    Please see the mmWave training video for angle estimation which shows the concept.

     

    Thank you,

    Vaibhav

  • Hello,

    tnx for the fast reply.

    In the long_range_people_det_68xx (ISK Antenna Geometry mus be build in somwhere) i see this API:

    static int32_t DPC_ObjDetDSP_AoAconfig
    (
        DPU_AoAProcDSP_Handle            dpuHandle,
        DPU_AoAProc_compRxChannelBiasCfg *inpCommonCompRxCfg,
        DPC_ObjectDetection_StaticCfg    *staticCfg,
        DPC_ObjectDetection_DynCfg       *dynCfg,
        EDMA_Handle                      edmaHandle,
        DPIF_RadarCube                   *radarCube,
        DPIF_CFARDetList                 *cfarRngDopSnrList,
        uint32_t                         cfarRngDopSnrListSize,
        MemPoolObj                       *CoreL1RamObj,
        MemPoolObj                       *CoreL2RamObj,
        MemPoolObj                       *L3RamObj,
        int32_t                          *window,
        uint32_t                         windowSize,
        cmplx32ReIm_t                    *twiddleBuf,
        uint32_t                         twiddleSize,
        cmplx32ReIm_t                    *angleTwiddle32x32,
        uint32_t                         angleTwiddle32x32Size,
        DPU_AoAProcDSP_Config            *cfgSave
    )

    in the AOP Demo (Antenna Geometry is dynamical loadable, theres even one set for ISK Geometry...) i see insted this one:

    static int32_t DPC_ObjDet_AoAconfig(DPU_AoAProcHWA_Handle dpuHandle,
                       DPU_AoAProc_compRxChannelBiasCfg *inpCommonCompRxCfg,
                       ANTDEF_AntGeometry               *antDef,
                       DPC_ObjectDetection_StaticCfg    *staticCfg,
                       DPC_ObjectDetection_DynCfg       *dynCfg,
                       EDMA_Handle                      edmaHandle,
                       DPIF_RadarCube                   *radarCube,
                       DPIF_CFARDetList                 *cfarRngDopSnrList,
                       uint32_t                         cfarRngDopSnrListSize,
                       MemPoolObj                       *CoreLocalRamObj,
                       MemPoolObj                       *L3RamObj,

                       /* doppler window parameters */
                       uint8_t                          dopplerWindowSym,
                       uint32_t                         dopplerWinSize,
                       int32_t                          *dopplerWindow,
                       uint32_t                         dopplerWinRamOffset,

                       uint8_t                          cfarParamSetStartIdx,
                       bool                             *isAoAHWAparamSetOverlappedWithCFAR,
                       DPU_AoAProcHWA_Config            *cfgSave)

    The Antenna Definition is located in Param *antDef
    and is loaded into staticCfg:
        /* antenna geometry definition */
        DPC_ObjDet_GetAntGeometryDef(staticCfg, antDef);
        aoaCfg.staticCfg.antDef = &staticCfg->antDef;

    however in the ISK related demo the Antenna Geometry parameter is missing and theres no field for the static Cfg to store the Geometry onto:

    typedef struct DPU_AoAProcDSP_StaticConfig_t
    {
        /*! @brief  Number of transmit antennas */
        uint8_t     numTxAntennas;

        /*! @brief  Number of receive antennas */
        uint8_t     numRxAntennas;

        /*! @brief  Number of virtual azimuth antennas */
        uint8_t     numVirtualAntAzim;

        /*! @brief  Number of virtual elevation antennas */
        uint8_t     numVirtualAntElev;

        /*! @brief  Number of range bins */
        uint16_t    numRangeBins;

        /*! @brief Number of chirps for Doppler computation purposes.
                   For example, in TDM/BPM-MIMO scheme, this is the physical chirps
                   in a frame per transmit antenna
                   i.e numDopplerChirps = numChirpsPerFrame / numTxAntennas.\n
                   Must be multiple of 4. */
        uint16_t    numDopplerChirps;

        /*! @brief  Number of doppler bins. Must be at least 16. Must be power of 2. */
        uint16_t    numDopplerBins;

        /*! @brief  Range conversion factor for range FFT index to meters */
        float       rangeStep;

        /*! @brief  Doppler conversion factor for Doppler FFT index to m/s */
        float       dopplerStep;
        
        /*! @brief Flag that indicates if BPM is enabled.
        BPM can only be enabled/disabled during configuration time.*/
        bool        isBpmEnabled;

    } DPU_AoAProcDSP_StaticConfig;

    So the Question remains:

    In Project long_range_people_det_68xx,
    At which location in Code is the Antenna Geometry defined and can it be modified by us?
    Or whould would have to be changed (different Headers or so) in order to let it know AOP Antenna Geometry ?

    kind regards

  • Hi,

    We have the Hardware accelerator based version of the Long Range People Detection demo for the 6443 device (this works on 6843 as well). This is based on the 64xx OOB demo to which we added the tracker to create the long range detection demo.

    Similar to the 64xx AOP Out of Box Demo, you can modify the projectspec for the 64xx - Long Range People detection demo the AoA2DProc DPU  to make it compatible with the IWR6843 AOP antenna geometry. 

    I have attached the modified projectspec for the 64xx - Long range People detection demo for you to understand the changes. Note that we do not support the Long range People detection demo on AOP device and we have not tested the attached project so the debugging and getting it to work to your requirements is up to you.

    Also note that we do not have the AoA2DProc DPU available for the DSP version which is why you need to use the 64xx (i.e. HWA based) version of the demo. 

    Regards

    -Nitin

    /cfs-file/__key/communityserver-discussions-components-files/1023/64xx_5F00_long_5F00_range_5F00_people_5F00_det_5F00_aop.projectspec

  • Hi,

    tnx for the explanation, i will look into this approach when i have time,
    since you are using liked files/precompiled libraries it should work very fast for us to understand.
    (i see you included the antennageometry file (for AOP?) that seems promising)

    For us we decied to swith to a AOP natiive Project,
    for now we use PeopleCounting3D (edited),results are very good for now but still limited to 10m (there seems to be a hard cut at that range)
    we intend to look much further, havent found the root cause yet.

    kind regards

  • Hello,

    You will need to use the ISK EVM along-with the chirp configuration provided for 14m for longer range. The AOP antenna is meant for relatively short range and wider field of view applications.

    Regards

    -Nitin 

  • Tnx!

    i fot the long_RangeDetection running for AOP now.
    Angle detection is kindof reasonable,

    - due to the fact that only two chirp config and 2D Angle Estimation is used
    + the DetectionAlgorith is much Doppler/Speed detection based

    we dont have a out-of-box-solution for humandetection@50m (as Expected)
    I take this as a further lession of the device, how to realise the needed Application-case
    For example with only 2 TX antennas we have less RadarCube Memory,
    which could be good for us...