[MOOC] Apollo Lesson 5: Prediction
My note for lesson 5 of MOOC course: Self-Driving Fundamentals - Featuring Apollo. Content: Study different ways to predict how other vehicles or pedestrians might interact with Apollo self-driving cars..
After perceiving the world using sensors, we need to predict how the world is going to look in the future. It's important because as you plan your path, you want to understand the behavior of other objects.
Two approaches of prediction
- Model-based prediction
- data-driven prediction
Lane sequence-based prediction
Lane sequence-based prediction is a model-driven approach in Apollo. We first divide the road into multiple segments and then describe the object movement as a sequence of lane segments. Below is an example of lane sequence.
Example of lane sequence
An autonomous vehicle observes object's state. Some of sate properties may be:
- The position of the object inside the lane segment
- State from previous time-steps
Predict target lane
We can simplify the lane prediction problem into a selection problem by:
- List obvious movement options as lane sequences
- Predict the probability for each option
- Select the most-likely lane sequence
We need a model that take lane sequences and a sequence of obstacle status to probability of each line sequence.
Lane prediction model
Recurrent neural network (RNN)
RNN is an approach to prediction on time-series data. Below is how Apollo predict target lane. It use 2 RNN blocks, one for lane sequence and the other for the sequence of object status. The outputs of these RNN blocks will be concatenated and used to predict probability for each lane sequence.
Lane prediction model in Apollo
Trajectory generation is the final step of prediction. After lane sequence prediction, we predict the object's trajectory. Trajectory generation can be done by fitting a polynomial model with the constraint of the initial state and the final state of the object's motion.