Electric Power Steering Automation for Autonomous Driving J. E. Naranjo, C. González, R. García, T. de Pedro Instituto de Automática Industrial (CSIC) Ctra. Campo Real Km.,2, La Poveda, Arganda del Rey, Madrid 285, Spain {jnaranjo, gonzalez, ricardo, tere}@iai.csic.es Abstract. The automatic control of a vehicle s steering wheel is now one of the most important challenges in the Intelligent Transportation Systems field. In this paper, we present a fuzzy logic-based automatic steering control system for mass-produced electric power steering (EPS) wheel-equipped vehicles that assures human-like behavior. In the literature, we find a lot of theoretical proposals and some simulations, but only a few work teams offer real solutions for this task. One such solution is the work developed by the Autopia Program in which some vehicles have been automated and can perform some maneuvers mimicking human reactions. In this paper, we use the EPS of a Citroën C3 Pluriel to effect the car s behavior. The actuator is controlled from an onboard computer housing a fuzzy logic-based autonomous steering system. The vehicle s internal computers generate the input information, which is read by a CAN bus and a high precision GPS. Some experiments using this equipment on a private test circuit are presented, obtaining an human-like behavior in all the maneuvers. 1 Introduction The development of Intelligent Transportation Systems (ITS) provides an opportunity to apply advanced technology to systems and methods of transport for efficient, comfortable and safer means of transport. Our work focuses on the area of road transport, and more specifically on the field of intelligent vehicles, which includes the topic of autonomous vehicles. This topic refers to vehicles that are equipped with the instrumentation and intelligence needed to provide the actual vehicle with the required service, that is, an autonomous car must control some or all of its functions without external intervention. The Autopia Program is working on this field, focusing mainly on autonomous driving using fuzzy logic controllers. The steering wheel [1], throttle [2] and brake pedal [3] have been automated, working in Citroën Berlingo vans and experiments were run on private circuits. There are some examples of automatic steering wheel control, as a step towards achieving automatic driving. In the Millemiglia in Automatica Tour [4], a car was equipped with a DC motor attached to the steering wheel through a pulley, which could be moved depending on the commands of an onboard computer housing an analytical control system that received the sensor input through artificial vision. In the
Autopia Program [5], two Citroën Berlingo vans have been equipped for automatic driving. Here, the steering wheel has also been modified to be moved by a DC motor using gears attached to the steering bar because the assist mechanism of conventional cars is powered by hydraulic systems. In this case, the sensor input is provided by a Global Navigation Satellite System. Newer vehicles are equipped with electric power steering (EPS), where steering is assisted by an electric motor that acts directly on the rack bar through a pinion. The motor torque depends on the effort required by the driver. The advantage of this kind of power steering for our purposes is that no external actuator has to be added, and we can easily manage the assist motor from our onboard computer. Some developments, for example, Toyota s automatic parking system have taken this approach [6]. The aim of this paper is to present the fuzzy logic-based EPS control system developed for automatic driving that has been installed in a Citroën C3 Pluriel vehicle (Fig. 1). This vehicle has been tested on a private circuit, and human-like behaviors have been achieved. Fig. 1. Citroën C3 Pluriel testbed vehicle. 2 Onboard Equipment Electric power steering basically consists of a torque sensor and motor actuator couple. The sensor is attached to the steering column and measures the torque applied by the driver when he moves the steering wheel. This torque signal is transmitted to a control/power card that sends an amplified proportional power signal to the DC motor, which is engaged to the steering rack bar. The first step for achieving automatic steering control is to manage the wheels from a computer that we have installed in the car. The method for this automation is to bypass the sensor and control/power card equipment and send a power signal directly to the motor. Our onboard computer runs a fuzzy logic-based control system that generates a control analog signal. An external power drive has been added for supplanting the original C3 s power card. It uses as input the analog signal produced by the computer and the output is a power signal that supplies the assist motor. The vehicle instrumentation is completed with the sensor equipment: a carrier phase differential GPS receiver, which generates to-the-centimeter accurate positioning, and a CAN bus interface. Now we can move on to describe the control system developed to manage the assist DC motor and, consequently, the steering of the vehicle.
3 Steering Control System A two-layer fuzzy controller has been defined for steering control. The high-level layer calculates the target position of the steering wheel to fit the vehicle to the desired route. The low level layer generates the optimum torque that must be exerted by the EPS assist motor to move the steering wheel in a human-like way. There is also a computational reference trajectory representation represented by the set of the most representative GPS waypoints of the route to be tracked [1]. 3.1 Steering Position controller Two variables are used as input for the fuzzy steering position control system, namely lateral and angular errors. We define lateral error as the distance between the front of the vehicle and the reference trajectory segment, measured along a line perpendicular to that reference segment. Similarly, angular error is described as the angle formed by the reference segment of the trajectory and the car s director vector. We define two fuzzy variables, also named angular error and lateral error, each of which has two linguistic labels, left and right, that indicate where the vehicle is located with respect to the reference segment. Both variables have one associated membership function for each label, defined by their vertex, as shown in Fig. 2a and Fig. 2b. Fig. 2. Input Variables Membership Functions: a) and b) steering position controller; c), d) and e) steering torque controller. The output of the system is the target turning angle that the steering wheel must be moved to correct the trajectory deviation indicated by the input variables. There is only one fuzzy output variable, named Steering, with two linguistic labels, called left and right, whose membership functions are defined by singletons The rule set for generating the steering turning angle from the input data below is the same for both bend and straight-road driving, as well as for fuzzy control and human driving. The qualitative actions for the human driver (rules) are the same in both cases, and only the quantitative part varies, which is defined in the fuzzy control by the fuzzification of the variables: R1.1: IF Lateral_Error Left THEN Steering Right
R1.2: IF Lateral_Error Right THEN Steering Left R1.3: IF Angular_Error Left THEN Steering Right R1.4: IF Angular_Error Right THEN Steering Left Where the words in italics are the fuzzy variables, the ones to the left of the term THEN being input variables and the variables to the right being output variables. The words in normal type are the linguistic labels associated with each one of the fuzzy variables. 3.2 Steering Torque controller In this case, three input variables are needed to control the torque applied to the steering wheel. The first is the angular position error of the steering wheel, that is, the difference between the target position generated by the high level fuzzy controller and the real position. The second input variable is the real position of the steering wheel, and the last one is the angular speed at which the steering wheel is turning. When these variables are fuzzified for use in the fuzzy controller, they are transformed into fuzzy variables called Ang_Speed for the angular speed, Pos_Error for the angular position error, Pos_Abs for the real steering wheel position and, respectively, associated with the membership functions shown in Fig. 2c, d, and e. The output of the fuzzy controller indicates the voltage that must be sent to the motor power card that applies a proportional amperage to the motor to move the steering wheel with the optimum torque to correctly achieve its target position. Two linguistic labels have been defined, Positive (right) and Negative (left), whose membership functions have been defined as singletons. The definition of the rules accounts for the interaction between the input and output variables that will generate the optimum controller behavior. In this case, we have defined six rules for controlling the applied torque. R2.1: IF Pos_Error Pos_Large THEN Torque Positive R2.2: IF Pos_Vol Neg_Large THEN Torque Negative R2.3: IF Pos_Abs Negative AND Pos_Error Neg_Small THEN Torque Negative R2.4: IF Pos_Abs Positive AND Pos_Error Pos_Small THEN Torque Positive R2.5: IF Ang_Speed MORE THAN Null THEN Torque Positive R2.6: IF Ang_Speed LESS THAN Null THEN Torque Negative 4 Experiments Having installed the described controller in the instrumented testbed car, we ran some automatic steering control experiments, one of which is shown in Fig. 3. In this figure, the black dotted line represents the reference trajectory and the gray line is the automatic vehicle route. This starts at the coordinates 45928.75m North 4462552.9m East, behind the starting point label, and is composed of eight turns, four to the left and four to the right, separated by straight segments
446257 446256 Starting Point 446255 UTM North (m) 446254 446253 446252 446251 44625 GPS map waypoints Automatic Vehicle Route 446249 458845 458895 458945 458995 45945 UTM East (m) Fig. 3. Automatic route trace. The controllers use the input vehicle trajectory variables and, from this information, calculate the necessary torque to move the steering wheel. Fig. 4 includes a trace of controller behavior while taking the first bend to the left to show how the system works. The top graph shows the input variable values for taking the bend. The next graph plots the output of the steering position fuzzy controller. The third graph contains the values of the input variables of the torque fuzzy controller. Finally, the bottom graph shows the output torque, normalized from -1 to 1, to be applied to the EPS motor controlling the steering wheel. At the beginning, the car is driving centered along the first reference segment of the route. Then, a series of new points are loaded, and the lateral error increases to the left and the angular error augments to the right. This is normal behavior since the new reference segments tend to be perpendicular to the first segment, because the angle between the consecutive streets is about 9º. These input values are fuzzified, and the rule inference of the high-level controller is executed, generating a left turning command that is illustrated by the steering output variable. The output of the low-level controller (torque) shows that the maximum effort is applied at the beginning of the turning, when a peak is needed to initiate the steering movement (1-2 sec). Once the movement is under way, the torque decreases rapidly. Finally, the controller maintains the steering position and moves the steering wheel back to the center when the turning has finished. 5 Conclusions In this paper, we have presented a two-layer fuzzy controller for automatic electric power steering control, which we have used to run a number of automatic driving experiments discussed in the last section. These results showed that electromechanical systems, like an EPS, can be managed in a human-like way using artificial intelligence techniques, in this case, fuzzy logic. This method allows the user to mimic human behavior by extracting knowledge from experts, in this case, drivers. An additional advantage of fuzzy logic is that complex nonlinear vehicle models do not need to be developed.
Trajectory Angular Deviation (º) 9 6 3-3 -6 Angular Error Lateral Error 9 6 3-3 -6 Trajectory Lateral Deviation (º) Target Steering Angle (º) Steering Angular Deviation (º) Torque controler output normalized -9 6 4 2-2 -4-6 6 4 2-2 -4-6 1.75.5.25 -.25 -.5 -.75 Steering Position Error Real Position Angular Speed -1 1 2 3 4 5 6 7 8 9 1 11 Time (s) Fig. 4. Detail of the control input and output variables for the first turning to the left of the automatic tracking experiment. torque -9 3 2 1-1 -2-3 Steering Angular Speed (º/s) References 1. R. García et al., Frontal and Lateral Control for Unmanned Vehicles in Urban Tracks, IEEE Intelligent Vehicles Symposium, Versailles, France, 22. 2. JE. Naranjo et. al., Adaptive Fuzzy Control for Inter-Vehicle Gap Keeping, IEEE Trans. ITS, Special Issue on ACC, Volume 4, No. 3, September 23, pp. 132-142. 3. J.E. Naranjo et al., A Throttle & Brake Fuzzy Controller: Towards the Automatic Car, LNCS 289, Springer-Verlag, July 23, pp 291-31. 4. A: Broggi et al., The ARGO Autonomous Vehicles Vision and Control Systems, International Journal of Int. Cont. and Syst., Vol. 3, No. 4, pp. 49-441, 1999. 5. J.E. Naranjo et al., Overtaking Maneuver Experiments with Autonomous Vehicles, Proc. of the ICAR 23, Coimbra, Portugal, pp. 1699-173, June 23. 6. T. Endo et al., Development of reverse parking assist with automatic steering, ITS 23 Congress Proceedings, Madrid, November 23.