Part Number: IWR6843ISK
Other Parts Discussed in Thread: MMWAVE-SDK
Hello TI Team,
I am currently analyzing the Long Range People Detection project using the IWR6843ISK board.
After executing the following function:
uint32_t DPU_AoAProcDSP_process(
DPU_AoAProcDSP_Handle handle,
uint32_t numObjsIn,
DPU_AoAProcDSP_OutParams *outParams);
the point cloud data such as X, Y, Z, Velocity, noise, and SNR are generated and stored for each detected object.
Subsequently, the following function is called:
int32_t DPU_TrackerProc_process(
DPU_TrackerProc_Handle handle,
uint32_t numObjsIn,
DPIF_PointCloudSpherical *detObjIn,
DPIF_PointCloudSideInfo *detObjInSideInfo,
DPU_TrackerProc_OutParams *outParams);
Before thegtrack_step()function is executed, the following code assigns data to the tracker input structure:
trackerProcObj->pointCloud[n].range = pDpuCfg->res.detObjIn[n].range;
trackerProcObj->pointCloud[n].azimuth = pDpuCfg->res.detObjIn[n].azimuthAngle + pDpuCfg->staticCfg.sensorAzimuthTilt;
trackerProcObj->pointCloud[n].elevation = pDpuCfg->res.detObjIn[n].elevAngle;
trackerProcObj->pointCloud[n].doppler = pDpuCfg->res.detObjIn[n].velocity;
trackerProcObj->pointCloud[n].snr = pDpuCfg->res.detObjInSideInfo[n].snr;
My question is about where the following values come from:
-
pDpuCfg->res.detObjIn[n].range -
pDpuCfg->res.detObjIn[n].azimuthAngle -
pDpuCfg->res.detObjIn[n].elevAngle
It seems that these values are derived by converting Cartesian coordinates to Spherical coordinates, but I would like to confirm exactly which part of the AoA processing code performs this conversion.
Could you please clarify which function or section of the DPU_AoAProcDSP_process() or DPU_TrackerProc_process() (or related modules) is responsible for calculating and assigning these range, azimuthAngle, and elevAngle values before they are passed to the tracker?
Thank you for your support and clarification.
Best regards,
Jaehoon Kim