This project aims to optimize vehicle path planning for specific parking scenarios utilizing genetic algorithms to automate the maneuvering of vehicles into designated parking spots.
- Programming Language: Python
- Libraries: NumPy, Matplotlib, SciPy
- Population Initialization: Begins with a random initialization of the population using binary strings that represent control variables for steering and velocity.
- Fitness Evaluation: Utilizes a custom cost function that evaluates each solution based on the vehicle's final position, orientation, and velocity.
- Genetic Operations: Employs selection, crossover, and mutation to evolve the population through generations, enhancing solution quality iteratively.
- Control Interpolation: Implements cubic spline interpolation to ensure smooth transitions between control points generated by the genetic algorithm.
- Visualization: Generates detailed plots using Matplotlib to visualize the vehicle's trajectory, steering angles, and velocity profiles during simulations.
- Spatial Constraints: The vehicle must navigate complex spatial constraints without collisions.
- Integration Method: Uses the Euler method to simulate real-time dynamics of the vehicle under various control inputs.
- Performance Monitoring: Plots are dynamically generated to monitor the trajectory and control variable changes, aiding in the optimization process.
- The algorithm is designed to efficiently find optimal or near-optimal solutions within pre-defined generational or time constraints.
- Demonstrates the successful automated parking of vehicles, validating the genetic algorithm's effectiveness.
- Final State Visualization: At the end of each successful simulation, the final state values and trajectory plots are displayed.
- Data Export: Control variables are saved to a file upon achieving a successful parking scenario, which can be used for further analysis or implementation.
- Research and Development: Ideal for R&D teams working on autonomous vehicle navigation systems.
- Adaptability: The framework can be adapted or extended to other types of dynamic control simulations that require optimization of operational parameters.