Skip to content

Commit

Permalink
Docs: planning update
Browse files Browse the repository at this point in the history
  • Loading branch information
natashadsouza authored and xiaoxq committed Jan 4, 2020
1 parent c1255be commit 4de7f7d
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 15 deletions.
6 changes: 3 additions & 3 deletions RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ The car has complete 360-degree visibility, along with upgraded perception deep
## Major Features And Improvements
* Brand new Data Pipeline Service
* Sensor Calibration service
* Brand new module - Story Telling
* Brand new module - Storytelling
* Scenario - Based Planning with a new planning scenarios to support curb-to-curb driving
* Park and go
* Emergency pull over
* Park-and-go
* Emergency
* Prediction Model - Caution Obstacle
* Semantic LSTM evaluator
* Extrapolation predictor
Expand Down
34 changes: 22 additions & 12 deletions modules/planning/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@
## Introduction

The previous versions of Apollo, including Apollo 3.0 currently use the same configuration and parameters to plan different driving scenarios. This approach although linear and easy to implement, was not flexible or scenario specific. As Apollo matures and takes on different road conditions and driving use cases, we felt the need to move to a more modular, scenario specific and wholistic approach for planning its trajectory. In this approach, each driving use case is treated as a different driving scenario. This is useful because an issue now reported in a particular scenario can be fixed without affecting the working of other scenarios as opposed to the previous versions, wherein an issue fix affected other driving use cases as they were all treated as a single driving scenario.
Apollo 5.5 focuses on curb-to-curb autonomous driving on urban roads and introduces 2 new planning scenarios.

## Driving Scenarios

There are 3 main driving scenarios that we will focus on, namely:
There are 5 main driving scenarios that we will focus on Lane Follow, Intersection, Pull-Over, and the newly introduced Park-and-go and Emergency. Let's dive into them individually:

### Lane Follow - Default

Expand Down Expand Up @@ -99,23 +100,32 @@ The Apollo team is proud to introduce Open Space Planner, a new planning algorit

![](images/pull_over3.png)

## Planning Module Architecture

The architecture of the planning module had changed in Apollo 3.5, to reflect our modular approach towards different driving scenarios.
As seen in the figure below, in the planner, are individual driving scenarios discussed above along with their handlers. With only a few changes in how the scenarios are divided, the overall architecture of the Planning module remains the same in Apollo 5.0.
Each driving scenario has its set of driving parameters that are unique to that scenario making it safer, efficient, easier to customize and debug and more flexible. Each stage is also configurable as it is divided into tasks and each task can be moved or created by editing the `config` file of that scenario.
### Park-and-go

Apollo 5.5 which focuses on curb-to-curb driving introduces the Park-and-go scenario which was designed to handle curb side parking, planning a new trajectory to the next destination and then driving along that trajectory. This scenario is extremely useful in situations like curb-side delivery or passenger pickup or drop-off. This scenario combines Open Space Planner along with other traditional trajectory planners to ensure that the car not only parks safely but is also able to exit per the new trajectory.

![](images/park_and_go.png)



## Emergency

The Emergency scenario is another newly introduced scenario in Apollo 5.5, developed to ensure that the vehicle can be brought to a stop safely in the situation of a given trigger event (either via human input or due to a failure in one or more of the vehicle's hardware or software modules). This scenario is extremely crucial to urban driving as one often encounters several unforeseen situations on the road that requires the vehicle to come to a complete stop. There are two types of emergency stops that are performed using this scenario:
1. **Pull Over and Stop**: In this scenario, the autonomous car uses Open Space Planner to pull-over and then come to a full stop on the curb-side
2. **In Lane Stop**: In this scenario, the autonomous car comes to a complete stop in its lane. In this situation the car is well aware of its surrounding obstacles to prevent any rear-end collisions and ensure not just the safety of itself but also the vehicles around it.

![](images/emergency.png)

## Planning Module Architecture

Some of the key features include:
In Apollo 5.5, the Planning module architecture has been modified to incorporate new curb-to-curb driving scenarios on urban roads. As seen in the figure below, we have 2 new complex scenarios Emergency and Park-and-go. In order to plan these scenarios effectively, we have 2 new Deciders - Path Reuse Decider and Speed Bound Decider and have updated existing deciders making the planning architecture robust and flexible enough to handle many different types of urban road driving scenarios.

- **Apollo FSM**: A finite state machine that determines the vehicle state given its location and routing together with HD Map.
- **Planning Dispatcher**: Call an appropriate planner given the vehicle's state and some other relevant information
- **Planner**: Obtain the required context data and other information, decide a corresponding vehicle intention, execute the required planning tasks for this intention and generate the planning trajectory. It will also update the context for future jobs.
- **Deciders & Optimizers**: A set of stateless libraries that implement decision tasks and various optimizations. Optimizers specifically optimize the vehicle's trajectory and speed. Deciders are rule-based decision makers that advise on when to change lane, when to stop, creep or when the creep is complete.
- **Yellow box**: These boxes are included for future scenarios and/or developers to contribute their own scenarios based on real-world driving use cases
Each driving scenario has its set of driving parameters that are unique to that scenario making it safer, efficient, easier to customize and debug and more flexible.

```
Note:
If you wish to include your own driving scenarios, please refer to existing scenarios as a reference. We currently do not have a template for writing your own planning scenario.
```

![](images/architecture.png)
![](images/architecture_5.5.png)
Binary file added modules/planning/images/architecture_5.5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added modules/planning/images/emergency.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added modules/planning/images/park_and_go.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 4de7f7d

Please sign in to comment.