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.

CCS/AWR1642BOOST: Do not understand the code of ekfInit

Part Number: AWR1642BOOST


Tool/software: Code Composer Studio

In the documents of SRR and SDK, we know that TI uses Kalman and Extended Kalman for object tracking.

I want to know how this code in SRR calculates  Q in Kalman

I want to know what theory you use to calculate this Q, which is not stated in the document.

Thank you.

  • Hi,

    The Kalman filter used in the SRR TI Design assumes a constant velocity model. Hence the process noise matrix (or the Q matrix) holds the expected variance of each measurement due to 'target acceleration' (which is the model noise for a constant velocity model).

    The maximum target acceleration in the transverse dimension is MAX_ACCEL_X_M_P_SECSQ ( 5m/s^2) and in the longitudinal dimension it is MAX_ACCEL_Y_M_P_SECSQ (12m/s^2) which seem like reasonable numbers for a car.

    When initializing the tracker, we want to allow for higher process noise, so that the convergence would be faster, hence the are two additional Q matrices that allow for higher acceleration that can be used.

    Regards

    Anil

  • Hi

    Thank you for your response and let me know more about the entire tracking architecture.

    I want to ask more questions about this issue. Why do you use a constant speed model instead of constant acceleration?

    Regarding the observation matrix in Kalman, if we adjust the observations, we can make the observation matrix linear. Why not?

  • Hi

    In retrospect, a constant acceleration model would have been better than a constant velocity model. In fact the newer traffic monitoring demo uses a more advanced tracker (called the group tracker which uses the constant acceleration model within its Kalman filter).

    I didn't understand your second question. Could you rephrase it? As far as I know, there is no way to have 'constant velocity in cartesian axes', when the measurements are range, angle and radial velocity.

    Regards

    Anil

  • Hi Anil :

    Thank you for your willing to discuss this with me.

    My idea is to change the original measured value to (horizontal distance, vertical distance, speed), that is, I will combine the angle of the original observation with the distance.

    In fact, the horizontal distance and the vertical distance of the object are calculated in the process of calculating the angle, so the calculation amount is not increased.

    Through such observations, the observation matrix can be made into a linear matrix without using the Extended Kalman filter.

    Because the Extended Kalman filter is relatively inaccurate compared to the average Kalman filter, I hope that this problem can be improved by this method.

    Is this idea correct?

    Regards

    Paul

  • Hi Paul

    While you can use the computed 'horizontal distance' and 'vertical distance' of a target as measurements, there is no way to use the speed (or range-rate) measurement to create 'horizontal speed' / 'vertical speed' of a target.

    This is because a radar can only measure 'radial velocity' (i.e the component of velocity in the direction of the line connecting the target and the radar).

    It cannot measure 'tangential velocity' - the component of velocity perpendicular to the line connecting the target and the radar. For example, if a target is moving in a circle with a constant angular velocity, and a radar is placed at the center of that circle, then the radar will measure the 'radial velocity' of the target as 0.

    Without a measure of 'tangential velocity', it will not be able to generate 'horizontal speed' and 'vertical speed'.

    We use an EKF with a constant velocity target model to converge to the horizontal speed and vertical speed.

    Anil
  • Hi Anil

    I finally got to know your thoughts.

    For the question of Extended Kalman, I think it can be over.

    However, for other problems with Kalman, I would like to ask you again.

    What I want to ask is the part of the observation error matrix.

    In the code, the variance is calculated using CRLB.

    However, I am curious, why is the CRLB of distance, speed and angle the same computing architecture?

    In my opinion, the speed will be calculated using the distance calculated from the distance (FFT).

    Does that mean that the calculated observation error affects the speed?

    But in the code, it seems that the three are independent operations. Is this correct?

    Thank you 

    paul