Rose-Hulman projects

Fuzzy-logic controllers for autonomous parking.

Rule-based Mamdani fuzzy-logic controllers that mimic a Lexus autonomously backing into a parking space and parallel parking, written as the rules a human driver follows rather than derived from a model.

School Rose-Hulman
Level Undergraduate
Method Mamdani fuzzy inference
Stack MATLAB Fuzzy Toolbox · Simulink

The idea

Fuzzy control is the opposite of learning a controller from data. Instead you write down the rules a human driver follows in words, and the controller interpolates smoothly between them. Rather than a hard threshold, the car is partly "too far left" and partly "centered" at the same time, and the rules blend accordingly.

The vehicle model has 3 degrees of freedom, the center of the rear axle (xB, yB) and the heading angle psi, and the controller output is the steering angle beta.

Backing into a space

For the back-parking case there are three input membership functions, for xB, yB and psi, and one output membership function for beta. The controller is formulated with 27 Mamdani rules.

Geometry of the back parking problem
The back-parking geometry: the car's rear axle, heading, and the target space.
Fuzzy inference system with three inputs and 27 rules
The inference system: 3 inputs, 1 output, 27 rules.

The controller is robust enough to park from a range of starting positions and headings, including the double-diamond case where the car has to swing out before it can come back in.

Back parking from a start position below the space
Starting below the space and backing straight in.
Back parking from an offset start on the left
Offset to the left, correcting into the space.
Back parking from an offset start on the right
The double-diamond case from the right, swinging out and back in.
Back parking from a start position far to the left and close to the obstacle
A hard start: far left and tight against the obstacle.

Parallel parking

For the parallel-parking case there are four input membership functions, for xB, yB, xa and psi, and one output membership function for beta, where xa is the front-axle displacement in the x-direction. The extra input matters because parallel parking is a tighter maneuver: the controller has to track the front of the car as well as the back to avoid clipping the vehicle ahead. This controller is formulated with 43 Mamdani rules.

Geometry of the parallel parking problem
The parallel-parking geometry, with the target space and the starting pose.
Fuzzy inference system with four inputs and 43 rules
The inference system: 4 inputs, 1 output, 43 rules.
Parallel parking trajectory from a start below and to the left
Sweeping up into the space from below and to the left.
Parallel parking trajectory from a farther start
The same maneuver from farther out.
Parallel parking trajectory with a deep approach
A deeper approach, curling around into the slot.
Parallel parking trajectory from a start alongside the left obstacle
Starting alongside the left-hand car and pulling in.
Fuzzy Logic Mamdani Membership Functions Autonomous Parking MATLAB Simulink