You are on page 1of 5

In: Proceedings of the 4th European Congress on Intelligent Techniques and Soft Computing - EUFIT 96, Aachen, Germany,

Sept. 1996, pp. 2171-2175.

Reverse Parking of a Model Car with Fuzzy Control


R. Holve*, P. Protzel Bavarian Research Center for Knowledge-Based Systems (FORWISS) Am Weichselgarten 7, 91058 Erlangen, Germany
Abstract. To demonstrate the application of fuzzy control for rapid prototyping and robust performance, we use a 1/10 scaled model car with an onboard microcontroller and sensors for the task of autonomous parking. There is no precise mathematical model of the cars kinematics and the controller has to cope with heavy sensor uncertainty, imprecise actuators, and a very sketchy world model. We deliberately do not use any learning approaches, but express the knowledge on how to park a car in the form of fuzzy rules. To solve the parking problem, the system architecture has to handle the interaction of several fuzzy as well as conventional modules performing various subtasks.

1. Introduction
The problem of reverse parking has been the subject of several research projects in the eld of classical control as well as Fuzzy Control theory. Classical approaches as in [1], [3] and [6] are based on an exact mathematical model of the system to be controlled, i.e. the car or the truck-trailer combination. The results of these studies are demonstrated only in simulation environments and their performance for hardware implementations with imprecise mathematical descriptions and noisy sensory inputs is unknown. Approaches using Fuzzy Control to solve the parking problem often generate the fuzzy rules from examples provided by a (human) operators control actions. In [4] and [5] a Takagi-Sugeno type of Fuzzy Controller is constructed by learning the rulebases parameters (i.e. the coefcients of each linear combination forming a Takagi-Sugeno-type fuzzy rule) from a set of example data recorded during human operation of a model car. While the resulting rulebase stays relatively small, every rule covers up to four coefcients, which makes the rulebase difcult to interpret. The B-spline guidance algorithm for the parking problem described in [2] also uses training data from human operators to build the fuzzy rulebase but the algorithm requires time consuming initialization of the rulebase and results in a very large set of rules (686 for the parking problem) which then has to be downsized manually. In contrast to those studies, we do not use any learning approaches, but we describe in this paper a fuzzy controller for reverse parking of a model car where the rulebase was constructed directly by using the designers knowledge on how to park a car and by attempting to express this knowledge in the form of fuzzy rules. In section 2 the details of the underlying problem are characterized. Section 3 outlines the hardware of the model car, the (non-fuzzy) methods of world modeling and position update are illustrated in section 4 and section 5 describes the actual parking algorithm in detail.

2. Problem description
Figure 1 shows the layout of the parking scenario. Since the whole experiment had to t on a single table with a maximum size of two by one meter, a scaling factor of 1/10 was chosen. The model car, currently in its starting position, is connected to a Windows-PC via a serial line cable. The two dummy cars represent the parking gap, i.e. the target position of the model car. The task of the model car is to: recognize the parking gap in passing, approach an appropriate starting point for the parking procedure, execute the parking operation, and strictly avoid obstacles.

* e-mail: holve@forwiss.uni-erlangen.de or protzel@forwiss.uni-erlangen.de

interface cable

dummy cars

model car

Figure 1. The layout of the parking scenario.

The overall idea was to state the problem in such a way that its solution could be applied to a real world scenario without major modications. This relates to the software solution as well as to the hardware layout that is illustrated in the next section.

3. Hardware layout
The hardware basis for the autonomous vehicle is a 1/10 scaled model car chassis with an onboard computer, sensors etc. The outline of the model is shown in Figure 2. The steering mechanics, the ser-

Onboard Microcontroller 24 cm Sensor Multiplexer Potentiometer Ultrasonic Sensors 44 cm Figure 2. Hardware layout of the model car. vos and the gearbox are omitted for clarity. The onboard microcontroller, which is based on a MC68HC11, is connected via a serial link to a Windows PC. The controller runs a real-time operating system and is programmable in PASCAL and assembler. Its task is to collect all sensory inputs, transmit them to the PC, where the main parking algorithm resides, receive the steering commands from the PC, and hand these commands over to the servos for driving and steering. The three ultrasonic sensors have a range of approximately 0.05 to 0.5 meter and a scope of ve degrees. These sensors are controlled by the sensor multiplexer, which ensures that the different sensors dont interfere and processes the sensor signals. The incremental encoder is mounted to the left rear wheel and allows to measure the velocity and the driven distance of the car. The potentiometer which is connected to the front wheels by a string that is wound round the potentiometers shaft, measures the current steering angle though only with a precision of about three degrees. The overall range of the steering angle is about +/- 28 degrees which makes the model car far less maneuverable than a real car with a steering range of up to +/-45 degrees.

Incremental Encoder

4. World modeling
Since the number of distance sensors was limited, we could not expect to monitor the entire border of

the model car for obstacle avoidance. Furthermore, the parking gap could not be recognized at a glance, as would have been possible with a laser scanner, for example. On the other hand, we didnt want to give the vehicle more information in advance about the position of the parking gap than absolutely necessary. All it should know was something like there is a parking gap on the right side somewhere straight ahead. So some kind of world model had to be constructed on-line while passing the parking gap. This world model consists of a set of xy-coordinates forming the contour of the obstacles on the right side of the car (Figure 3). To detect the parking gap, the vehicle tries to t a big enough rectangle into this contour and determines the target position once the parking gap is found. The constructed world model (i.e. the contour polygon) is also used for the determination of the cars current position. Since the steering angle is measurable only very imprecisely, and the somehow wobbly chassis of the car prohibits a precise mathematical model of the kinematics, position update on the basis of speed and steering angle is reliable only for a few centimeters. So we use a very simple mathematical model of the car for the position calculation and the measured distances of the ultrasonic sensors are matched to the contour polygon to correct the calculated position and orientation. The problem is aggravated by sensor availability, i.e. the sensors respond only, when the angle of incidence to the detected object is fairly perpendicular. Thus, we use the wall at the rear side of the table to provide enough useful input to the sensory system to ensure a sufcient position update.

contour of detected obstacles

detected parking gap

target position xy-position of the car Figure 3. World model for the parking procedure. y

5. The parking algorithm


The problem of parking the model car reversely into the located parking gap is divided in 4 subproblems, each of them using Fuzzy Control to a certain degree. Step 1: Searching for the parking gap As the model car knows that the parking gap will be somewhere ahead on the right side, all it has to do is to go straight and keep an appropriate distance to the cars and the wall (which would be the curb or the sidewalk in the real world) until the described procedure has detected the gap. The Fuzzy controller for this simple task is shown in Figure 4. The velocity was set to a xed value of about 0.15 m/s. Step 2: Approach an appropriate starting point for the parking procedure A suitable starting position for reverse parking is reached by simply moving straight on (see Fig. 4) until the car is about 0.17 m ahead of the detected parking gap (see Fig. 3) Step 3: Reverse to the right and then to the left This maneuver will get the car as far into the gap as possible, with the condition that the cars orientation should be parallel to the parking gap afterwards. So the point for turning the steering angle from

1.0

if DISTANCE is (HIGH or VVL) then STEERING is LEFT if DISTANCE is (VVH or LOW) then STEERING is RIGHT if DISTANCE is (VH or VL) then STEERING is STRAIGHT

1.0

VVL

VL

LOW

HIGH

VH

VVH

RIGHT

STRAIGHT

LEFT

0.0 0.0 DISTANCE [m] 0.5

0.0 -30.0 STEERING [degree] 30.0

Figure 4. Fuzzy controller for going straight and keeping a distance to the right. full right to full left depends on the size of the parking gap. If the gap is long, we can go on as long as. the following left turn will not lead to a collision with the back wall (curb). If the gap is short, we can go on as long as the distance to the rear car allows us to get the car parallel to the gap with the following left turn. The determination of this turning point is achieved by a fuzzy decision component that was constructed using some test data. Step 4: Maneuver the car to the target position If the target position isnt reached with step 3, some maneuvering is necessary to nish the parking process. This is done by a more complex fuzzy controller with the block structure depicted in Figure 5.

Y1 Y2 Y3 RB1 Y

ORIENTATION

DIRECTION LENGTH

RB2

DIRECTION

STEERING

STATE

Figure 5. Structure of the Fuzzy Controller for maneuvering inside the parking First, three values (Y1, Y2, Y3) concerning the y-position of the car are processed through rulebase RB1 into a symbolic representation of the y-position, which allows to handle this value with terms like FRONT, REAR, MIDDLE independently of the length of the parking gap. This variable, together with the x-position, the orientation of the car relative to the gap, the actual driving direction and the length of the gap are processed by rulebase RB2 to determine the new driving direction and the steering angle. If the current position and orientation is within a certain range of the target position, the boolean output variable STATE is set to TRUE, to inform the main program of the success. The strategy of RB2 is that of a human driver, i.e. to drive back and fore alternately while steering left and right to get the car further into the gap. The following three rules illustrate this strategy:

if Y is FRONT and X is LEFT and ORIENTATION is STRAIGHT then STEERING is RIGHT and DIRECTION is BACK if Y is MIDDLE and X is LEFT and ORIENTATION is LEFT and DIRECTION is BACK then STEERING is LEFT and DIRECTION is BACK if Y is BACK and X is LEFT and ORIENTATION is STRAIGHT then STEERING is RIGHT and DIRECTION is FORWARD

The performance of the overall algorithm is illustrated in Figure 6. The trajectory on the left shows a parking process into a relatively long parking gap, thus almost no maneuvering is needed. The trajectory on the right shows a trajectory leading into a very short gap which requires some alternating back and fore movements.
1.3 1.2 1.1 1.3 1.2 1.1

x [m]

1 0.9 0.8 0.7 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8

x [m]

1 0.9 0.8 0.7 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8

y [m] y [m] Figure 6. Trajectories of parking procedures into a long (left) and into a short (right) parking gap.

6. Conclusion
Since we have also started out with a simulated environment for reverse parking, we can attest to the differences between a cartoon problem and an actual hardware setup. The problem got even more challenging by the deliberate use of few and inexpensive sensors and by the lack of a precise mathematical model of the cars kinematics. Thus, the problem of autonomous parking could not be solved with just one simple fuzzy controller, but it requires an intelligently designed system architecture with the interaction of several fuzzy as well as conventional modules performing certain subtasks. As expected, the car does not park with a robot precision of +/- 1 mm, but outperforms most humans attempting to park the car manually via joystick. The rapid prototyping aspect of fuzzy control can be underlined by the time of just 10 days it took us to develop the controller. The robustness of fuzzy control is demonstrated by the fact that the controller is able to cope with heavy sensor uncertainty, imprecise actuators, and a very sketchy world model. After all, the car has endured 7 days of nonstop operation at the Hannover fair without any performance degradation.

References
[1] [2] [3] [4] J. Barraquand and J.-C. Latombe: Controllability of Mobile Robots with Kinematic Constraints. Stanford University, California, Report No. STAN-CS-90-1317, 1990. M. Brown and C. Harris: Neuro Fuzzy Adaptive Modeling and Control. Prentice Hall International, 1994. I. Kageyama and A. Hirata: A Control of Backward Maneuverability at Parking. Proceedings of AVEC94, 1994, pp. 266 - 269. M. Sugeno and K. Murakami: An experimental study of fuzzy parking control using a model car. In: M. Sugeno, Ed., Industrial Applications of Fuzzy Control, North-Holland, Amsterdam, 1985, pp. 125 - 138. M. Sugeno and M. Nishida: Fuzzy control of model car, Fuzzy Sets and Systems 16-1985, pp. 103 - 113. D. Tilbury and R. Murray: Trajectory Generation for the N-Trailer Problem Using Goursat Normal Form. IEEE Transactions on Automatic Control, Vol. 40, No. 5, May 1995, pp. 802 - 818. M. Wabner: Construction of a model car for sensor guided parking (in German). Master thesis, Bavarian Research Center for Knowledge Based Systems, 1996.

[5] [6] [7]

You might also like