The Project involved Implementing a Behavoiur Planner and a Motion Planner for Automated Driving (in C++) and Setting up Simulation environment in CARLA including the Carla Client interface (in Python) for testing the algorithm on simulated vehicle. Car should be able to follow its Driving Lane, Safely Avoid static obsctacles on its way and Stop at Traffic Lights.
This module is supposed to take decisons about selecting an appropriate driving Maneuver based on the Car's immediate environment and actual driving Scenario in Simulation. Possible Maneuvers at any given time are :
- Follow Lane and drive at Cruise Speed
- Deaccelerating and Braking to Stop at Traffic Lights
- Remain Standstill until Traffic Light Turns Green.
This Problem is sub divided into Path Planning and Velocity profile Generation.
- Multiple Possible Paths between Car's current Position and Next Goal Point are computed by using Cubic Spirals.
- Velocity Profiles are generated for these Spirals based on the type of Maneuver Selected by Behaviour Planner. These profiles are different for when Following Lane or Braking to stop at Traffic Light
Cost is Computed for Every possible spiral Trajectory based on chances of collision and proximity to Centre of the driving lane.
Collisions are penalised while driving near Lane Centre line is rewarded. Minimum cost trajectory is selected.
The starter Project Code is provided by Udacity. git clone https://github.com/udacity/nd013-c5-planning-starter.git. Download all the dependencies mentioned there if you want to run this project on your system
-
Run Carla Simulator
-
cd nd013-c5-planning-starter/project 3 ./install-ubuntu.sh
-
cd starter_files/
-
cmake .
-
make
-
cd nd013-c5-planning-starter/project
-
./run_main.sh
SimulatorAPI is the Python Carla Client Script for Setting up and Controlling the simulation.
Incorporate Intent Predection algorithms in order to avoid collision with moving Actors/Obstacles in Simulation
Lane Changing Safely Following Vehicle in the front