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.

IWR1443: Some really import things in lab009 using iwr1443 radar. Please, Please help us.

Part Number: IWR1443

If you can help me, I would be really grateful for that. Please please read it carefully.

We not only just want ti use the demo, we want to rewrite it. The classification which is neural network will be rewrite. But now, we have to change the detection range of the radar. We think that after FFT 2D, some points have been filtered.

In the Lab0009-gesture-recog-twirl, the original detection range is under 40cm. When I twirl my finger with a distance larger than 40cm, the picture will not be zoomed in or out.

Objective: I want to increse the functional range in the lab009, i.e. when I twirl my finger with a distance of 2m, the picture still can be zoomed in or out according to the gesture.

Problems:

In the previous answers from the engineer, I learned that 

In gesture_twirl.h the following parameters are defined that affect the initial and max range bins used for gesture recognition:

#define NUM_INITIAL_RANGE_BINS_SKIP 2
#define MAX_RANGE_BIN_USED 9

But after I incresed the MAX_RANGE_BIN_USED from 9 to 20, the maximum detection range was not changed, i.e. I twirled my finger with a distance greater than 40cm, the picture cannot be zoomed in or out.

And after I decresed the MAX_RANGE_BIN_USED from 9 to 5, the maximum detectioin range was reduced to 30 cm or so.

1. I want to know why the maximum detection range can only be decresed but not incresed.

And I looked into the code carefully. The variable MAX_RANGE_BIN_USED is used in the following code (in the gesture_twirl.c):

//tempPtr=preDetMatrixPtr+numDopplerBins*NUM_INITIAL_RANGE_BINS_SKIP+NUM_INITIAL_DOPPLER_BINS_SKIP;
	//Computing statistics for positive dopplers
	for(i=NUM_INITIAL_RANGE_BINS_SKIP;i<MAX_RANGE_BIN_USED ;i++)
	{

		for(j=NUM_INITIAL_DOPPLER_BINS_SKIP+1;j<MAX_DOPPLER_BIN_USED_ONE_SIDED+1;j++)//+1 to include the zero doppler bin
		{
			valatindx = preDetMatrix[i*numDopplerBins+j];
			if((valatindx>detThresh))
			{
				numDetectionsPos++;
				wt=valatindx;
				dopplerAvgPos+=wt*j;
				rangeAvgPos+=(wt+4000)*i;
				wtSumPos+=wt;
			}

			if(valatindx>maxVal)
			{
				maxVal=valatindx;
				maxRangeIdx=i;
				maxDopplerIdx=j;
			}
		}
	}

2. can you explain the following code above specifically line by line:

valatindx = preDetMatrix[i*numDopplerBins+j];
			if((valatindx>detThresh))
			{
				numDetectionsPos++;
				wt=valatindx;
				dopplerAvgPos+=wt*j;
				rangeAvgPos+=(wt+4000)*i;
				wtSumPos+=wt;
			}

			if(valatindx>maxVal)
			{
				maxVal=valatindx;
				maxRangeIdx=i;
				maxDopplerIdx=j;
			}

3. And why there are rangeAvgPos and rangeAvgNeg (both positive and negative)?

4. What does the parameter detThresh mean in the function Gesture_findNumDetections(uint16_t numRangeBins, uint16_t numDopplerBins,uint16_t *preDetMatrix,uint16_t detThresh,short * gestureMetrics, uint16_t *maxIndices )

5.When I changed the parameter detThresh from 8000 to 4000, the matlab program cannot run correctly, I think maybe the memory of the chip was crashed beacuse of the data overflow(I am not sure), can you tell me why?
Does this parameter connected to the maximum detection range.

6.The ultimate problem is to change the detection range of the lab0009. For example, the picture can response to my gesture with a distance of 2m or so.

Thank you very much!


  • Hi,

    The same question has been duplicated in the following threads.

    1. IWR1443BOOST: iwr1443: how to change the detection range of the demo twirl gesture recognition
    2. IWR1443BOOST: Lab0009-gesture-recog-twirl: how to change the maximum detection range?

    As already explained in the first thread above, the gesture recognition at increased range may not work out by changing the search indices without any other modifications. The training for the gesture classifier was trained at done at close range. Therefore the thresholds for the handcrafted classifier may not hold up under your modifications and would also need to be modified. Since longer range gesture was not the aim for this lab it is not supported.

    Thanks

    -Nitin

  • Hi,
    I know what you means. The classification is neutral network, and it was train by the data with certain range. But now, what we want to do is :
    1. build a new classification by ourselves
    2. get the data beyond that range(40cm), so we need to know after doing a FFT-2d, how you filter the data without 40cm range
    Thanks
    -Sen
  • Hi,

    In the lab009 for IWR1443.

    Here is the code of the main_twirl.c from line number 1696 to line number 1702.

    I wonder that:

    the exact value of  : dataPathObj->numRangeBins and dataPathObj->numDopplerBins

     and the matrix structure of dataPathObj->rangeDopplerLogMagMatrix. From which bytes to bytes means angle, range or something else.

    Since we don't know  what are the data means after doing the 2nd Dimension FFT done

    Code:

    MmwDemo_process2D(dataPathObj);

            /* 2nd Dimension FFT done! */

    //Gesture_findNumDetections(dataPathObj);

            //numDetectedObjects=Gesture_findNumDetections(4000,dataPathObj );

            //counterstart = Pmu_getCount(0);

            Gesture_findNumDetections(dataPathObj->numRangeBins, dataPathObj->numDopplerBins, dataPathObj->rangeDopplerLogMagMatrix,8000 ,gestureMetrics,maxIndices);

    Thanks

  • Former Member
    0 Former Member in reply to user5878504
    Hello,

    After the 2nd FFT, the range-doppler matrix is generated which gives the radar cube.

    Amanda