This project implements an autonomous parallel parking system for a three-wheeled tadpole configuration vehicle with two wheels at the front and one at the rear. The system includes path planning, path tracking, and parallel parking functionalities. The environment has been updated to include 12 parking spaces.
- Environment Setup: Designed using OpenCV to visualize obstacles and agent movement.
- Path Planning: Utilizes A algorithm* and B-spline interpolation for path finding and smoothing.
- Path Tracking: Based on a kinematic model with Model Predictive Control (MPC) for speed and steering.
- Parallel Parking: Vehicle performs parallel parking based on predefined rules and equations.
- Three-Wheeled Vehicle: Adapted for tadpole configuration (two wheels in the front, one at the rear).
- Updated Parking Spaces: Environment now features 12 parking spaces.
The kinematic model for the vehicle is based on the following equations:
Where:
-
$x$ ,$y$ : Position -
$v$ : Velocity -
$\psi$ : Yaw angle -
$a$ : Acceleration -
$\delta$ : Steering angle -
$L$ : Wheelbase
The system uses Model Predictive Control (MPC) for controlling the vehicle's speed and steering. The MPC optimizes the control inputs to guide the vehicle along the planned path, ensuring smooth and efficient navigation.
Parallel parking involves several key steps:
- Finding the Parking Spot: The agent first identifies the optimal parking spot.
- Arriving Angle: The arriving angle is computed to determine the vehicle's orientation as it approaches the parking spot.
- Ensure1 and Ensure2:
- Ensure1: A coordinate chosen based on the arriving angle.
- Ensure2: A final coordinate where the parking maneuver is completed, planned using two circle equations to ensure the vehicle parks correctly.
The agent uses MPC to control the vehicle as it maneuvers from Ensure1 to Ensure2 for successful parking.
To set up the project, clone the repository and install dependencies:
https://github.com/Kgabel/ThreeWheelAutonomousParking.git
cd Automatic-Parking
pip install -r requirements.txt
python main_autopark.py --x_start 0 --y_start 90 --psi_start 0 --parking 4The original work and article on automatic parallel parking can be found on Towards Data Science and this Github repository.

