Autonomous Valet Parking

RBE550-Valet implements state lattice-based motion planning with A* search to navigate three distinct vehicle types through a constrained parking environment with obstacles, developed as part of the RBE550 Motion Planning course at Worcester Polytechnic Institute. Each vehicle type operates under unique kinematic constraints reflecting real-world drive mechanics.


Vehicle Types

Differential Drive (Skid Steer)

Skid steer robot

Ackermann Steering

Ackermann vehicle

Truck + Trailer

Truck with trailer
Ackermann trailer path

Planning Approach

State Lattice — A structured graph of pre-computed motion primitives is constructed that respects each vehicle’s kinematic constraints. Feasible maneuvers (forward, reverse, turning) are encoded as edges between discrete states.

A* Search — The lattice is searched using A* with a Euclidean distance heuristic. The planner finds the minimum-cost path from start (50, 50) to goal (350, 500) while avoiding rectangular obstacles.

Collision Detection — At each expansion step, candidate configurations are checked for intersection with environment obstacles before being added to the search frontier.

Vehicle Constraint Degrees of Freedom
Differential Drive Independent wheel speeds Translation + rotation
Ackermann Fixed turning radius (steering angle) Non-holonomic, car-like
Truck + Trailer Trailer angle coupling constraint 3-DOF (truck + trailer angle)

View Code on GitHub