# sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation architecture

> Architecture diagram of the GitHub repository sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-14). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation
- Repository: https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation

## Overview

This is a research ADAS simulator for reinforcement-learning-based intersection navigation. The interactive workflow configures a scenario, runs MetaDrive, fuses sensor inputs into perception, and uses a vehicle controller to produce driving actions; a sensor display supports inspection. A separate RL workflow trains and evaluates a policy in a Gymnasium environment. The graph reflects documented capabilities and source-index references, but several implementation links are based on imports rather than sampled call sites, so uncertain connections are omitted.

Main entry points: [`src/adas_sim/sensors/sensor_fusion.py`](https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/sensors/sensor_fusion.py) (Sensor Fusion), [`src/adas_sim/metadrive/adapter.py`](https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/metadrive/adapter.py) (MetaDrive Adapter), [`src/main.py`](https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/main.py) (Simulation CLI), [`src/adas_sim/rl/environment.py`](https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/rl/environment.py) (RL Environment)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Interactive Simulation"]
  node_main["Simulation CLI<br/>[main.py]"]
end

subgraph group_world["Scenario and Simulator"]
  node_adapter["MetaDrive Adapter<br/>[adapter.py]"]
  node_scenario["Scenario Configurator"]
  node_map["Map Loader<br/>[map_loader.py]"]
  node_indianenv["Indian Traffic Env<br/>[indian_env.py]"]
  node_traffic["Traffic Manager<br/>[traffic_manager.py]"]
  node_metadrive["MetaDrive"]
end

subgraph group_perception["Sensors and Perception"]
  node_lidar["LiDAR Sensor<br/>[lidar.py]"]
  node_radar["Radar Sensor<br/>[radar.py]"]
  node_ultrasonic["Ultrasonic Sensor<br/>[ultrasonic.py]"]
  node_camera["Camera Sensor<br/>[camera.py]"]
  node_gps["GPS Sensor<br/>[gps.py]"]
  node_imu["IMU Sensor<br/>[imu.py]"]
  node_vehicle_state["Vehicle State<br/>[vehicle_state.py]"]
  node_fusion["Sensor Fusion<br/>[sensor_fusion.py]"]
end

subgraph group_learning["Reinforcement Learning"]
  node_rl_env["RL Environment<br/>[environment.py]"]
  node_training["Training Pipeline<br/>[training.py]"]
  node_train_script["Training Entry<br/>[train_rl.py]"]
end

subgraph group_control["Control and Display"]
  node_controller["Vehicle Controller"]
  node_display["Sensor Display<br/>[sensor_display.py]"]
end

node_driver(("User"))

node_driver -->|"starts"| node_main
node_main -->|"runs simulator"| node_adapter
node_main -->|"processes perception"| node_fusion
node_main -->|"gets actions"| node_controller
node_main -->|"updates display"| node_display
node_adapter -->|"configures scenario"| node_scenario
node_adapter -->|"queries map"| node_map
node_adapter -->|"uses environment"| node_indianenv
node_indianenv -->|"uses traffic"| node_traffic
node_adapter -->|"configures and resets"| node_metadrive
node_metadrive -.->|"returns observations"| node_adapter
node_fusion -->|"processes scans"| node_lidar
node_fusion -->|"processes detections"| node_radar
node_fusion -->|"processes readings"| node_ultrasonic
node_fusion -->|"uses imagery"| node_camera
node_fusion -->|"processes position"| node_gps
node_fusion -->|"processes motion"| node_imu
node_fusion -->|"processes state"| node_vehicle_state
node_controller -->|"reads perception"| node_fusion
node_controller -.->|"controls vehicle"| node_metadrive
node_main -.->|"can run policy"| node_rl_env
node_train_script -->|"starts training"| node_training
node_training -->|"trains and evaluates"| node_rl_env
node_rl_env -->|"wraps simulator"| node_adapter
node_rl_env -->|"builds perception"| node_fusion
node_rl_env -->|"uses controller"| node_controller

click node_main "https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/main.py"
click node_adapter "https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/metadrive/adapter.py"
click node_scenario "https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/scenarios/scenario_configurator.py"
click node_map "https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/map/map_loader.py"
click node_indianenv "https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/metadrive/indian_env.py"
click node_traffic "https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/metadrive/traffic_manager.py"
click node_lidar "https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/sensors/lidar.py"
click node_radar "https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/sensors/radar.py"
click node_ultrasonic "https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/sensors/ultrasonic.py"
click node_camera "https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/sensors/camera.py"
click node_gps "https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/sensors/gps.py"
click node_imu "https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/sensors/imu.py"
click node_vehicle_state "https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/sensors/vehicle_state.py"
click node_fusion "https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/sensors/sensor_fusion.py"
click node_controller "https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/controllers/vehicle_controller.py"
click node_display "https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/gui/sensor_display.py"
click node_rl_env "https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/rl/environment.py"
click node_training "https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/rl/training.py"
click node_train_script "https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/scripts/train_rl.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main,node_driver toneBlue
class node_adapter,node_scenario,node_map,node_indianenv,node_traffic,node_metadrive toneAmber
class node_lidar,node_radar,node_ultrasonic,node_camera,node_gps,node_imu,node_vehicle_state,node_fusion toneMint
class node_rl_env,node_training,node_train_script toneRose
class node_controller,node_display toneIndigo
```

## Components

### Interactive Simulation

- [Simulation CLI](https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/main.py): `src/main.py`

### Scenario and Simulator

- [MetaDrive Adapter](https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/metadrive/adapter.py): `src/adas_sim/metadrive/adapter.py`
- [Scenario Configurator](https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/scenarios/scenario_configurator.py): `src/adas_sim/scenarios/scenario_configurator.py`
- [Map Loader](https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/map/map_loader.py): `src/adas_sim/map/map_loader.py`
- [Indian Traffic Env](https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/metadrive/indian_env.py): `src/adas_sim/metadrive/indian_env.py`
- [Traffic Manager](https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/metadrive/traffic_manager.py): `src/adas_sim/metadrive/traffic_manager.py`
- **MetaDrive**

### Sensors and Perception

- [LiDAR Sensor](https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/sensors/lidar.py): `src/adas_sim/sensors/lidar.py`
- [Radar Sensor](https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/sensors/radar.py): `src/adas_sim/sensors/radar.py`
- [Ultrasonic Sensor](https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/sensors/ultrasonic.py): `src/adas_sim/sensors/ultrasonic.py`
- [Camera Sensor](https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/sensors/camera.py): `src/adas_sim/sensors/camera.py`
- [GPS Sensor](https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/sensors/gps.py): `src/adas_sim/sensors/gps.py`
- [IMU Sensor](https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/sensors/imu.py): `src/adas_sim/sensors/imu.py`
- [Vehicle State](https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/sensors/vehicle_state.py): `src/adas_sim/sensors/vehicle_state.py`
- [Sensor Fusion](https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/sensors/sensor_fusion.py): `src/adas_sim/sensors/sensor_fusion.py`

### Reinforcement Learning

- [RL Environment](https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/rl/environment.py): `src/adas_sim/rl/environment.py`
- [Training Pipeline](https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/rl/training.py): `src/adas_sim/rl/training.py`
- [Training Entry](https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/scripts/train_rl.py): `scripts/train_rl.py`

### Control and Display

- [Vehicle Controller](https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/controllers/vehicle_controller.py): `src/adas_sim/controllers/vehicle_controller.py`
- [Sensor Display](https://github.com/sanjay8906/klh-cse-2026-27-adas-15-rl-based_autonomous_intersection_navigation/blob/main/src/adas_sim/gui/sensor_display.py): `src/adas_sim/gui/sensor_display.py`

### Other components

- **User**

## Connections

- User → Simulation CLI: starts (evidence: `README.md`)
- Simulation CLI → MetaDrive Adapter: runs simulator (evidence: `src/main.py`)
- Simulation CLI → Sensor Fusion: processes perception (evidence: `src/main.py`)
- Simulation CLI → Vehicle Controller: gets actions (evidence: `src/main.py`)
- Simulation CLI → Sensor Display: updates display (evidence: `src/main.py`)
- MetaDrive Adapter → Scenario Configurator: configures scenario (evidence: `src/adas_sim/metadrive/adapter.py`)
- MetaDrive Adapter → Map Loader: queries map (evidence: `src/adas_sim/metadrive/adapter.py`)
- MetaDrive Adapter → Indian Traffic Env: uses environment (evidence: `src/adas_sim/metadrive/adapter.py`)
- Indian Traffic Env → Traffic Manager: uses traffic (evidence: `src/adas_sim/metadrive/indian_env.py`)
- MetaDrive Adapter → MetaDrive: configures and resets (evidence: `src/adas_sim/metadrive/adapter.py`)
- MetaDrive → MetaDrive Adapter: returns observations
- Sensor Fusion → LiDAR Sensor: processes scans (evidence: `src/adas_sim/sensors/sensor_fusion.py`)
- Sensor Fusion → Radar Sensor: processes detections (evidence: `src/adas_sim/sensors/sensor_fusion.py`)
- Sensor Fusion → Ultrasonic Sensor: processes readings (evidence: `src/adas_sim/sensors/sensor_fusion.py`)
- Sensor Fusion → Camera Sensor: uses imagery (evidence: `src/adas_sim/sensors/sensor_fusion.py`)
- Sensor Fusion → GPS Sensor: processes position (evidence: `src/adas_sim/sensors/sensor_fusion.py`)
- Sensor Fusion → IMU Sensor: processes motion (evidence: `src/adas_sim/sensors/sensor_fusion.py`)
- Sensor Fusion → Vehicle State: processes state (evidence: `src/adas_sim/sensors/sensor_fusion.py`)
- Vehicle Controller → Sensor Fusion: reads perception (evidence: `src/adas_sim/controllers/vehicle_controller.py`)
- Vehicle Controller → MetaDrive: controls vehicle
- Simulation CLI → RL Environment: can run policy
- Training Entry → Training Pipeline: starts training (evidence: `scripts/train_rl.py`)
- Training Pipeline → RL Environment: trains and evaluates (evidence: `src/adas_sim/rl/training.py`)
- RL Environment → MetaDrive Adapter: wraps simulator (evidence: `src/adas_sim/rl/environment.py`)
- RL Environment → Sensor Fusion: builds perception (evidence: `src/adas_sim/rl/environment.py`)
- RL Environment → Vehicle Controller: uses controller (evidence: `src/adas_sim/rl/environment.py`)
