Functional Architecture
The diagram above illustrates the functional architecture of our project. The architecture is designed to achieve point-to-point navigation with our Reinforcement Learning Agents. The information flow starts from the command center where the user inputs a desired destination to the system.
Then, the simulator transforms this destination to a global pose and generates a high-level route plan which the vehicle can follow to arrive at the destination. While the high-level route plan being perfect at a static world with no other actor, it does not consider the interaction with other actors of the world. Therefore, the path plan is passed into the full planner to create a more feasible plan that considers the interaction with other actors.
The full planner starts with a situation planner which classifies the situation of the vehicle (following a lane, changing lane, or going through an intersection). Depending on the classification of the situation, the full planner uses a behavior planner to determine what action the vehicle should take. This action is then used by the path planner to create a detailed path plan for the action. Next, the path plan is filled in with velocities by the velocity profile generator to create a trajectory plan. Eventually, the tracking pose selector chooses an appropriate tracking pose and speed from the trajectory plan and passes it to the simulator.
The simulator has an agent controller so that it can determine the appropriate control commands from the tracking pose and speed. After having the control commands, the simulator simulates the world forward by a timestep and outputs the world state to the full planner. To complete the loop, the global planner also generates a new global path plan from the new vehicle pose and passes it again to the full planner at every iteration.