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: True Ground Speed x- and y- velocity components

Part Number: IWR6843ISK

Tool/software:

Hello,

I´m currently working on a project for slip angle estimation via True Ground Speed Measurment.

For this I need to get the y- and x-component of the estimated velocity.

In my understanding, the example code uses the y-component only and the x-component is disregarded.

There are a few questions for my general understanding and for finding a solution:

1. The implementation of the RANSAC-algorithm ist programmed in mss_tracker and is used to filter outliners, not to calcualte any velocity - is that right?

2. Speaking of the RANSAQ-algorithm in mss_tracker.c: Each velocity data of each measurement point in the pointcloud has it´s own information of the angle regarded to the longitudinal axis of the radarsensor. - is that right?

3. Where is the calculation of the resltuing velocity implemented and are the individual angles of the velocity vectors considered?

4. Further more, has the resulting velocity an angle regared to the longitudinale axis and only the the y-component is taken to account in the example code?

5. Where (in which file of the example code) can I implement further trigonometrical calculation of the velocity for the velocity component calculation?

I´d be very grateful if you could help me with this problem.

  • Hello.

    1. The implementation of the RANSAC-algorithm ist programmed in mss_tracker and is used to filter outliners, not to calcualte any velocity - is that right?

    This is correct; it is taking out the points with outlier velocities to isolate only the inlier points and calculate that velocity based on the RANSAC polynomial that is generated from these points.

    2. Speaking of the RANSAQ-algorithm in mss_tracker.c: Each velocity data of each measurement point in the pointcloud has it´s own information of the angle regarded to the longitudinal axis of the radarsensor. - is that right?

    Yes this is correct; the point information is relative to the sensor

    3. Where is the calculation of the resltuing velocity implemented and are the individual angles of the velocity vectors considered?

    This should answer questions 3, 4, and 5.  You can find the velocity computation in the ransacFitPolynomial function in mss_tracker.c.  After determining the model of best fit, the velocity at zero degrees is considered and then transformed to represent the horizontal velocity component of the sensor's velocity vector.

  • Hello.

    Thank you for your answer.

    In my understanding best_point[1] and best_point[2] represent the velocity information of the other two tx-antennas. The velocity is not projected on the y-component yet. So it´s the raw velocity information from the antennas point of view.

    Is that correct?

    I noticed that the variable "velocity" which is contained in the struct "MmwDemo_Ego_Velocity" is defined as a float.

    In my understanding it would not be possible to consider all three best_points in "ransacStats->velocity" without redefining velocity as an array.

    But if doing so, I have to correct the whole code, so that velocity is handled as an array..

    Is there an easier way and am i missung something?

    Thank you for your time!

  • Hello.

    In my understanding best_point[1] and best_point[2] represent the velocity information of the other two tx-antennas. The velocity is not projected on the y-component yet. So it´s the raw velocity information from the antennas point of view.

    If by best_point you are referring to the P_best[0, 1, 2], those are the polynomial parameters for best-fit equation.  P_best[0] is used for the velocity as it represent the velocity when the azimuth is 0(driving the x and x^2 components in the polynomial to 0).  That is why a single velocity is returned and why ransacStats->velocity is not an array.

    Sincerely,

    Santosh

  • Okay I understand that, but the answer didn´t really help me out because the situation is as i expected and not solved.

    So there are still a few questions left:

     1. It´s still not clear what p_best[1] and p_best[2] represent - is it the velocity measured by the other two antennas?

     2. If so, how could I include them in velocity?

     3. By redefining velocity as an array? Or is there an easier way, which doesnt require to adapt the whole process?

    Thank you for your effort and your time!

  • Hello.

     1. It´s still not clear what p_best[1] and p_best[2] represent - is it the velocity measured by the other two antennas?

     2. If so, how could I include them in velocity?

     3. By redefining velocity as an array? Or is there an easier way, which doesnt require to adapt the whole process?

    I think you are misunderstanding the use of the RANSAC-LSQ algorithm.  This algorithm generates a polynomial that describes the average velocity(singular) of the inlier points in the pointcloud with respect to the angle from the device, not individual velocities.  The p_best are coefficients to best describe this polynomial.  If you want to look at the velocity at a different angle, you will plug in that angle and compute the sum of products(p_best[2] * azimuth^2 + p_best[1] * azimuth + p_best[0]).  Because we only care about the velocity with respect to boresight on the sensor, we use p_best[0] as it is equivalent to plugging in zero; if you wanted to use p_best[2]/[1], it would be in the case that you want to look at it from an angle.  At the end of the day, the result from the RANSAC will always be a singular velocity, never an array.

    Sincerely,

    Santosh