Skip to content

This project details a steering control system for an autonomous vehicle designed to accurately follow a predetermined path. The system is based on a kinematic model of vehicle motion and a hybrid control strategy that addresses two key types of errors: orientation error and cross-track error (CTE).

Notifications You must be signed in to change notification settings

A-S-Control-Systems/Path-Tracking-Control-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 

Repository files navigation

🚗 Path Tracking Control System

MATLAB Simulink Status


📖 Overview & Methodology

This project implements a path tracking control system that ensures an autonomous vehicle follows a predefined trajectory. The work is structured in two main stages:

🔹 Kinematic Model Extraction

  • The vehicle is modeled using a bicycle kinematic model, valid for:
    • Low-speed motion
    • Large curvature paths
    • Negligible bank and inclination angles
  • The bicycle abstraction represents each axle (front and rear) by a single wheel located at its midpoint.
bicycle model

🔹 Control Strategy

The proposed control scheme combines two methods:

  1. Orientation Error Handling

    • A geometric procedure relates steering angle to orientation error.
    • Aligns the velocity vector with the tangent of the reference path.
  2. Cross-Track Error (CTE) Handling

    • A PID controller adjusts the steering angle based on the lateral deviation (CTE).
    • Ensures the velocity vector rotates toward the path centerline.

👉 By combining both, the system avoids the limitations of each method individually (parallel tracking, divergence, or wrong direction).

control scheme

🖥️ Simulation Environment

The system is implemented and tested in MATLAB & Simulink.

The simulation includes the following blocks:

  • Road Block: Defines the mathematical expression of the path.
  • Sensors Block: Computes orientation error and cross-track error.
  • Controller Block: Combines PID (for CTE) + geometric approach (for orientation).
  • Kinematic Model Block: Updates vehicle pose using lateral kinematic equations.
simulation structure

📊 Simulation Results

The combined controller demonstrates robust path tracking on different reference paths:

Key findings:

  • The orientation-only controller may cause parallel tracking without convergence.
  • The CTE-only controller can lead to divergence if the vehicle starts far from the path.
  • The combined method ensures convergence and prevents opposite-direction tracking.
  • Both orientation error and cross-track error converge and remain small over time.

🚀 Quick Start

🔧 Prerequisites

  • MATLAB 2014a or newer (with Simulink)

📂 Installation & Usage

# Clone the repository
git clone https://github.com/A-S-Control-Systems/Path-Tracking-Control-System

from the src , run play_me_first.m to initialize the car parameters and define the path to be tracked (you can edit it as you want), then run the code main.m which automatically run the Kinematic_Model_Delta_Psi_Control.slx to calculate the traversed path, then it simulates it using drawnow.

📂 Project Structure

├ src  #contains MATLAB codes
│   ├── play_me_first.m           # Initializes car parameters & defines path
│   ├── Kinematic_Model_Delta_Psi_Control.slx       # Simulink model with control scheme
│   ├── main.m          # Runs the simulation & visualization
├ Documentation       # Documentation file (PDF)
├ README.md

📖 Citation

@software{myproject2025,
  author    = {Ali Deeb and Saleh Rabea},
  title     = {Path-Tracking-Control-System},
  year      = {2023},
  publisher = {GitHub},
  note      = {Supervised by Dr. Hasan Alahmad, Dr. Samer Suleiman, Eng. Wassim Ahmad},
  url       = {https://github.com/A-S-Control-Systems/Path-Tracking-Control-System}
}

About

This project details a steering control system for an autonomous vehicle designed to accurately follow a predetermined path. The system is based on a kinematic model of vehicle motion and a hybrid control strategy that addresses two key types of errors: orientation error and cross-track error (CTE).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages