MCPcopy Index your code
hub / github.com/Tinker-Twins/Self_Driving_Car_Trajectory_Tracking

github.com/Tinker-Twins/Self_Driving_Car_Trajectory_Tracking @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
66 symbols 159 edges 4 files 8 documented · 12%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Motion Control of Self-Driving Car for Trajectory Tracking

Github Stars Github Forks

Project Overview

This project was focused on control of an autonomous vehicle for trajectory tracking using CARLA Simulator. Various control algorithms were implemented in Python for accomplishing the task of lateral and longitudinal control of the vehicle.

Following is the list of implemented controllers: - Lateral Controllers: - Bang-Bang Controller - PID Controller - Pure-Pursuit Controller - Stanley Controller - Proximally Optimal Predictive (POP) Controller - Longitudinal Controllers: - PID Controller - Adaptive Longitudinal Controller (ALC)

ALC PID
Bang Bang
PID
Pure Pursuit
Stanley
POP

File Description

  • Waypoints.txt hosts the reference trajectory of the entire mission.
  • Controller.py is used to implement the lateral and longitudinal controllers for tracking the trajectory.
  • Drive.py hosts the simulation parameters, connects with the simulator and runs the entire motion control pipeline for autonomous trajectory tracking.
  • Live_Plotter.py generates and updates plots of the vehicle states and trajectory in real-time.
  • Controller Performance Analysis.ipynb is used to analyze the controller performance in terms of tracking metrics and latency.
  • Results directory hosts the results of a complete trajectory tracking mission in form of plots and log files.

Usage

1. Install CARLA Simulator [Tested with CARLA v0.8.4]

2. Navigate to CARLA directory, for exampe:

Windows:

> cd C:/CARLA

Ubuntu:

$ cd $HOME/CARLA

3. Launch the CARLA Simulator application, for example:

Windows:

> CarlaUE4.exe /Game/Maps/RaceTrack -carla-server -benchmark -fps=20 -carla-no-hud

Ubuntu:

$ ./CarlaUE4.sh /Game/Maps/RaceTrack -carla-server -benchmark -fps=20 -carla-no-hud

4. Run the Python client script while choosing the appropriate longitudinal and lateral control algorithms:

Windows:

> python Drive.py --Longitudinal-Controller: {PID, ALC} --Lateral-Controller: {BangBang, PID, PurePursuit, Stanley, POP}

Ubuntu:

$ python Drive.py --Longitudinal-Controller: {PID, ALC} --Lateral-Controller: {BangBang, PID, PurePursuit, Stanley, POP}

Citation

  • We encourage you to cite the following chapter when using this repository for your research:

bibtex @eprint{Control-Strategies-2021, title={Control Strategies for Autonomous Vehicles}, author={Chinmay Vilas Samak and Tanmay Vilas Samak and Sivanathan Kandhasamy}, year={2021}, eprint={2011.08729}, archivePrefix={arXiv}, primaryClass={cs.RO} }

This work has been published as 2nd Chapter of the book entitled Autonomous Driving and Advanced Driver-Assistance Systems (ADAS): Applications, Development, Legal Issues, and Testing. The publication can be found on CRC Press.

  • We specifically encourage you to cite the following paper when using the POP control algorithm for your research:

bibtex @inproceedings{POP-Controller-2021, author = {Samak, Chinmay Vilas and Samak, Tanmay Vilas and Kandhasamy, Sivanathan}, title = {Proximally Optimal Predictive Control Algorithm for Path Tracking of Self-Driving Cars}, year = {2022}, isbn = {9781450389716}, publisher = {Association for Computing Machinery}, address = {New York, NY, USA}, url = {https://doi.org/10.1145/3478586.3478632}, doi = {10.1145/3478586.3478632}, booktitle = {Proceedings of the 2021 5th International Conference on Advances in Robotics}, articleno = {11}, numpages = {5}, keywords = {Self-driving cars, motion control, path tracking}, location = {Kanpur, India}, series = {AIR '21} }

This work has been published in AIR2021: Advances in Robotics - 5th International Conference of The Robotics Society. The publication can be found on ACM Digital Library.

Core symbols most depended-on inside this repo

add_graph
called by 11
Live_Plotter.py
roll
called by 9
Live_Plotter.py
create_var
called by 7
CUtils.py
send_control_command
called by 6
Drive.py
update
called by 5
Live_Plotter.py
store_trajectory_plot
called by 5
Drive.py
rescale
called by 4
Live_Plotter.py
plot_new_dynamic_figure
called by 4
Live_Plotter.py

Shape

Method 49
Function 11
Class 6

Languages

Python100%

Modules by API surface

Live_Plotter.py24 symbols
Controller.py21 symbols
Drive.py18 symbols
CUtils.py3 symbols

For agents

$ claude mcp add Self_Driving_Car_Trajectory_Tracking \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page