Autonomous Vehicle/Theory

Prediction Step, Motion Model, Correction Step, Observation Model

Naranjito 2024. 3. 14. 11:47
  • Bayes Filter

 

 

 

It can be divided into a Prediction Step and a Correction Step.

 


  • Prediction Step

 

 

The state of prediction step.

It is a process of estimating the probability of the current robot state x t using control input data ( u t ) and robot state of previous step ( x t 1 ).

p ( x t x t 1 , u t ) is call a Motion Model because it estimates the robot's movement by input ( u t ) and calculates the probability of the current state.
  • Motion Model

 

 

State Uncertainty by Motion Model

 

Higher Certainty : The more distributed or darker the spots.

Distributed well.

The uncertification of the direction of progress is greater.

The uncertification of the rotation is greater than the direction.


A Posterior Probability that the control input ( u t ) will change the previous state ( x t 1 ) to the current state ( x t ).

 

It can be divided into an Odometry-based Model and a Velocity-based Model.


-  Odometry-based Model

 

Model using sensor data of wheel encoder on robot or car wheels. More accurate than Velocity Model.


- Velocity-based Model

 

Model using an inertial sensor such as IMU. It mainly used when odometry models are not available.


  • Correction Step

 

 

It is a step of predicting the current position of the robot using input data ( u t ) and correcting the predicted position of the robot from the sensor data ( z t ) obtained at that position.

p ( z t x t ) is refferred to as an Observation Model, and means the probability that the sensor data ( z t ) obtained from the currently predicted state ( x t ).

- η : Normalization

 

normalizer = 1 / (Sum of all the likelihood vectors)

 

To turn likelihood into a probability distribution function, we need to adjust the scale by multiplying the fixed scale factor so that the sum of each value is 1.

When the robot detects light, it has a value that is three times greater than when it does not. We call this scale factor to a normalizer.

 

For instance,

likelihood = [1,3,1,3,1,1,1,3,1,1]
1+3+1+3+1+1+1+3+1+1 = 16  
1/16 = 0.0625
∴ normalized_likelihood = [0.0625,0.1875,0.0625,0.1875,0.0625,0.0625,0.0625,0.1875,0.0625,0.0625]

def normalize(inputList):
    """ calculate the normalizer, using: (1 / (sum of all elements in list)) """
    normalizer = 1 / float(sum(inputList))
    # multiply each item by the normalizer
    inputListNormalized = [x * normalizer for x in inputList]
    return inputListNormalized

  • Observation Model

 

The probability of sensor data in the current state.


 

- z t : Data group vector

- z t 1 ~ z t k : Each scan data in each t step.

- Observation

Multiplication of the probabilities of each sensor data in the current state.


- ∏ : Product(Multiplication)

 

 

For instance,

 

 

https://jinyongjeong.github.io/2017/02/14/lec02_motion_observation_model/

https://soohwan-justin.tistory.com/42