The objective for this project was to make a behavior planning module and a trajectory generator to steer the car in highway driving. The challenge lies in the requirements:
- Safety first: we have to keep an eye on our environment to make sure we react appropriately to other cars
- Fast: within legal limits, overtake other cars if necessary
- Comfortable: passengers should be comfortable with the acceleration and jerk, our trajectory planner should keep these variables under certain limits
We have at our disposal information about our position and our environment (data about other vehicles in our direction). We provide the simulator a list of coordinates to be visited at regular intervals (Thus also speeds and accelerations).
The project boils down to solving three problems:
- Behaviour planner: take decisions about changing lanes and determine maximum speeds.
- Trajectory planner: based on the directives from the behaviour planner, create a good trajectory that respects all constraints.
- Interface with the simulator: there are some artificial difficulties which arise from the clunky interface to the simulator, i.e. faulty coordinate conversions.
This was one of the coolest parts of the course, since it is in this project that we can really shape the way the car interacts with its environment. Below a video showing my results:
The report I submitted:
The code for my project is hosted in github: