Decision-making in Autonomous Driving using Monte Carlo Tree Search (MCTS)

This repository contains the code, datasets, and supplementary materials related to our research paper on leveraging MCTS for decision-making in autonomous vehicles.

Abstract

We present a comprehensive framework based on Monte Carlo Tree Search for decision-making in autonomous driving scenarios. Through extensive simulations in MATLAB's autonomous driving toolbox 2023a (Note that some functions may not supported for lower version.). We showcase the framework's efficacy across various driving conditions, from intricate urban intersections to highway exits. While our simulations demonstrate promising results, we highlight areas for potential improvement and suggest future research directions.

Setup & Usage

  1. Clone the repository
  2. Choose or set the environment. Make sure the version of MATLAB is above 2023a and the version of Automated Driving Toolbox is above 3.7.
  3. Run mctsPlanning.m

Qualitative Results

Real-world Road Scenarios

We demonstrate the effectiveness of our autonomous driving algorithm in navigating through typical real-world environments, from left to right: Navigation through an Intersection, Unprotected Left Turn at Intersection, Managing Merging and Diverging, and Navigation through a Roundabout.

Roads in Shanghai, China.

ShanghaiCenturalAvenue

ShanghaiIntersection

ShanghaiLujiazuiTunnel

ShanghaiRoundAbout

Birds Eye View:

ShanghaiCenturalAvenue

ShanghaiLujiazuiTunnel

ShanghaiLujiazuiTunnel

ShanghaiRoundAbout

Typical Results:

ShanghaiCenturalAvenue

ShanghaiLujiazuiTunnel

ShanghaiLujiazuiTunnel

ShanghaiRoundAbout

Typical Highway Scenarios

Qualitative Results 1

ds4_lanes_highWay_advanced Figure 1: Highway Exit (HE) example.

Qualitative Results 2

large_curvature Figure 2: Large Curvature example.

Typical Urban Scenarios

Qualitative Results 3

ds6_lanes_roadWith5Cars_2Cars_CuttingIn

Figure 3: Intersection, Straight example.

Qualitative Results 4

ds6_lanes_roadWith5Cars_egoTurningLeft

Figure 4: Intersection, Unprotected Left Turn example.

Qualitative Results 5

ds6_lanes_roadWith5Cars_egoTurningLeft_2

Figure 5: Intersection, Unprotected Left Turn example 2.

Qualitative Results 6

ds6_lanes_roadWith5Cars_egoTurningRight_2

Figure 6: Intersection, Unprotected Right Turn example.

Qualitative Results 7

ds6_lanes_roadWith5Cars_horizontal_crossing

Figure 7: Intersection, Unprotected Straight Cross example.

Qualitative Results 8

ds6_lanes_roadWith5Cars_stopping

Figure 8: Intersection, Blocked example.

Qualitative Results 9

ds6_lanes_roadWith5Cars_stucked

Figure 9: Intersection, Blocked by Stationary Objects example.

Qualitative Results 10

ds6_lanes_roadWith5CarsCuttingIn

Figure 10: Intersection, Go Straight example.

Qualitative Results 11

ds6_lanes_roadWith5CarsTurningLeft

Figure 11: Intersection, Go Straight example 2.