[MOOC] Apollo Lesson 5: Prediction

Share on:

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

Example of lane sequence

Object state

An autonomous vehicle observes object's state. Some of sate properties may be:

  • Position
  • Speed
  • Heading
  • Acceleration
  • 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

Lane selection

Lane selection

We need a model that take lane sequences and a sequence of obstacle status to probability of each line sequence.

Lane prediction model

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

Lane prediction model in Apollo

Trajectory

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.

Demo of prediction module