1 Introduction

Generally, an autonomous driving system can be divided into three subsystems: sensing, planning and control [20, 21]. The control system needs to control the actuators such as throttle, brake and steering wheel according to the smooth and drivable path generated by the planning system. The efficiency of control will directly determine the safety and comfort of the ride [9]. With the advancement of the commercialization of self-driving technology, people have put forward higher requirements for the safety and ride comfort of self-driving vehicles [22]. However, autonomous vehicles are usually faced with complex road scenarios. The control efficiency is affected by numerous factors, including the vehicle dynamics, the change of path curvature and the road condition. Therefore, the design of control system is a key and challenging problem for self-driving technology.

Traditional control system typically consists of a lateral controller and a longitudinal controller [12, 24]. The lateral controller is used to calculate the steering wheel angle of the vehicle to achieve path tracking, and the longitudinal controller is used to control the throttle and brake pedal percentage to control the speed of vehicle [3]. Although the traditional control method can provide a well solution to the problem of tracking accuracy, it is often difficult to adjust the ride comfort. In addition, traditional methods tend to have poor control performance at a high speed. An important reason is that the vehicle models used in traditional methods ignore the influence of longitudinal speed on lateral control. While designing the control system, only by considering such kind of influence can the control system have good performance at different speeds.

Therefore, we make great efforts in tuning proper look-ahead distance and designing a vehicle model to improve traditional methods. Since the control performance is determined by the performance of modules, a better control strategy is automatically selected. In order to enable the vehicle to track the target path quickly and accurately, we propose a nonlinear lateral controller. It can fit a quintic spline curve that starts from the current pose of vehicle and converges to the trajectory to be tracked. The goal point of quintic spline curve is determined by the look-ahead distance. After generating the quintic spline curve, the required curvature towards the target point can be determined for the vehicle. Then the corresponding steering wheel angle can be calculated according to the curvature and the current speed. The quintic spline curve is updated in real time according to a certain frequency, which provides a new reference for the lateral controller.

In self-driving systems, the speed commands generated by planning system may not be smooth and continuous. If such speed commands are directly executed without processing, it will cause sharp changes to the output of longitudinal controller, which affects the ride comfort. Therefore, when designing longitudinal controller, we first determine the constraint of speed command through passenger’s feedback on the ride comfort. After the speed command is input to the longitudinal controller, the speed command will be processed according to the constraint condition, and then executed by the controller. Different control strategies are adopted for different dynamic characteristics of the throttle pedal and brake pedal, and the throttle or brake commands that meets the comfort requirement is obtained.

Compared with traditional system, our control system is easy to implement, and it can accurately track the target path while controlling the speed comfortably and smoothly. The “Pioneer” self-driving vehicle, which is equipped with the proposed control system, had participated in the 10th IVFC [23] and won the first place in the total score.

In this paper, firstly we review some relevant research on self-driving vehicle control systems, then introduce our proposed control system and describe the specific details in its implementation. Following that, the performance of control system is verified through the simulated experiments and the experiments on “Pioneer” self-driving experimental platform, indicating that our control system can work effectively on real vehicles. A comparison with the widely used traditional methods is presented as well. Finally, we summarize our contributions and future work.

Fig. 1.
figure 1

Block diagram of the proposed control system. Our control system includes a lateral controller and a longitudinal controller. The lateral controller receives the target path and current pose of vehicle, converts the path to vehicle coordinate system firstly, then generates a quintic spline curve in real time, and finally calculates a steering wheel angle command by vehicle model. The longitudinal controller smoothes the speed command, then adopts different control strategies for throttle and brake pedal.

2 Related Work

A great deal of explorations has been conducted in the construction of self-driving control systems. In aim of solving path tracking problems, which is a core issue of control system, there are quite a few available ways including geometric controllers [6, 8, 18], dynamic controllers [18], optimization controllers [13], model predictive controllers [25], and adaptive controllers [10]. The geometric controller is relatively simple to configure and implement while showing strong robustness in most driving scenarios, thus being widely used. One of the most classic geometric controller is based on the pure pursuit algorithm [6, 19] for calculating the steering wheel angle according to the circular arc. Many self-driving platforms, such as Autoware [14], integrate the pure pursuit algorithm or its modified versions in the control system. “Stanley Method” [20] is based on the vehicle kinematics model, considering the cross track error and orientation error. Filho et al. [15] proposed a geometric controller based on the cubic Bezier curve, however, in his work, the author did not take much into consideration the influence of tire slip, and the cubic Bezier curve only guaranteed the continuity of orientation but that of curvature, so the curve does not exactly match the actual travel trajectory of the vehicle. Amidi [2] proposed a geometry controller based on a quintic curve that reduces the discontinuous motion of the steering wheel. Dominguez [7] analyzed the performance of several geometric controllers and performed several comparative experiments.

In determining the geometric controller’s look-ahead distance, a traditional method is to set the look-ahead distance as constant or a linear or quadratic function of speed, but usually fails to make the controller maintain an optimal performance. The core issue is that there is no considering the trend of curvature change of the forward path segment, making it unable to adjust the look-ahead distance in time while driving. Moreover, the relative position and orientation of the vehicle and the desired path are not considered. Ollero [17] analyzed the effect of look-ahead distance on stability in the pure pursuit algorithm. Chen et al. [4] proposed a robust fuzzy logic-based look-ahead distance tuning strategy, which can operate by providing fewer related variables, but this method cannot guarantee the continuity of control thus bringing certain limitations in the real car applications.

In the construction of self-driving integrated control system, Xu et al. [24] proposed a design scheme for self-driving vehicle control system, which integrates multiple adaptive and robust algorithms to improve the compatibility of control system. Kang et al. [13] improves the lateral safety of vehicle by combining the steering controller with a speed controller that maintains the lateral acceleration limit.

3 Lateral and Longitudinal Controller

3.1 Lateral Controller

In our control system, we define the lateral controller as a module that calculates steering wheel angle commands for a self-driving vehicle to keep on the target path based on the path information and the current state of vehicle (see Fig. 1), where the target path is defined as a set of ordered points. Each point contains the information about position, orientation and curvature.

Vehicle Model. In our lateral controller, how to map the driving trajectory to the steering wheel angle of vehicle is a key issue. For easy implementation, the model should not be designed to be too complex. Thus, we apply the Ackermann model [16] and its simplified version, the bicycle model [1] (shown in Fig. 2). The Ackermann model is the most commonly used kinematic model in vehicle modeling, the centers of curvature circles that correspond to four wheels intersect at point O. The bicycle model is an effective way to simplify the Ackermann model, and its simplification is based on following assumptions:

Fig. 2.
figure 2

Ackermann model and bicycle model. Bicycle model simplifies the four wheels of ackermann model into two wheels, centered on the front and rear axles of vehicle.

  1. 1.

    Ignore the movement of vehicle in the vertical direction.

  2. 2.

    The front and rear tires of vehicle can be described by one tire each, and the center points of the front and rear wheels are the same respectively.

  3. 3.

    The rear wheel cannot deflects, the control input on steering wheel is mapped to the steering of front wheel, and the proportionality of the steering wheel angle and the front wheel angle of the vehicle is fixed.

According to the bicycle model, we can get relationship between the steering wheel angle and the curvature of driving path:

$$\begin{aligned} \theta _{steering} = k_{sf}tan^{-1}(\frac{L}{R}) = k_{sf}tan^{-1}(L\gamma ), \end{aligned}$$
(1)

where L is the wheelbase of vehicle, R is the radius of driving track, \(\gamma \) is the curvature of driving track, and \(k_{sf}\) is the steering ratio coefficient from steering wheel angle to front wheel angle.

However, the bicycle model does not take into account the effects of lateral forces of wheels at different speeds. Therefore, when driving at high speeds, the slip of tire is increased, making control performance worse than normal conditions. So we introduce a curvature compensation coefficient, thus the relationship between the obtained steering wheel angle and curvature of the traveling track is calculated as follows:

$$\begin{aligned} \theta _{steering} = k_{sf}tan^{-1}((L + k_{\gamma }v_{c}^2)\gamma ), \end{aligned}$$
(2)

where \(k_{\gamma }\) is the curvature compensation coefficient that is determined empirically, and \(v_{c}\) is current speed of vehicle.

Tuning Look-Ahead Distance. The look-ahead maneuver simulates driving behavior of the human driver, which enables self-driving vehicle to calculate steering wheel angle commands in advance based on road information ahead, thereby improving the stability of control system. Our controller uses a single-point look-ahead model and the look-ahead point is determined by look-ahead distance l. Similar to most look-ahead-based algorithms, the look-ahead distance selection in our controller also has a large impact on control performance. In our lateral controller, the look-ahead distance is calculated as follows:

$$\begin{aligned} l =\left\{ \begin{array}{ll} \frac{tanh(\gamma _{avg}(kv_{c}+l_0))}{\gamma _{avg}} + k_e * cte, &{} {\gamma _{\text {avg}}>10^{-4}} \\ (kv_{c}+l_0)-\frac{\gamma _{avg}^2(kv_{c}+l_0)^3}{3.0} + \frac{\gamma _{avg}^4(kv_{c}+l_0)^5}{15.0} + k_e * cte, &{} \text {else} \end{array},\right. \end{aligned}$$
(3)

where \(v_{c}\) is the current speed of vehicle, cte is the cross track error of vehicle, and \(\gamma _{avg}\) is the average curvature of path within original look-ahead distance \(kv_{c}+l_0\). When calculating look-ahead distance, we take multiple factors into account, such as current speed of vehicle, curvature of path in the front, and current cross track error.

Quintic Spline Curve Fitting. In order to ensure the continuous movement of steering wheel when the vehicle tracks the path, we adopt a method of generating a quantic spline curve that converges from current state

\([x_{current},y_{current},\theta _{current}, \gamma _{current}]^T\) to the state of the look-ahead point

\([x_{lookahead},y_{lookahead},\theta _{lookahead}, \gamma _{lookahead}]^T\) on the target path. Compared to circular arcs and cubic Bezier curves, the curvature of quintic spline curve is always continuous, thus improving the stability of steering wheel.

Fig. 3.
figure 3

Quintic spline curve generated by lateral controller, which converges from current state of vehicle to the state of look-ahead point on the path.

In the vehicle coordinate system, the current state of vehicle is \([0,0,0,\frac{tan\delta _c}{L + k_{\gamma }v_{c}^2}]^T\), where \(\delta _c\) is the front wheel angle of vehicle calculated by \(\frac{\theta _{steering}}{k_{sf}}\). And the state of look-ahead point is \([x_l,y_l,\theta _l, \gamma _l]^T\), where \(x_l\), \(y_l\), \(\theta _l\), \(\gamma _l\) are the values of the position, orientation and curvature of the look-ahead point converted to vehicle coordinate system. According to the work [2], in solving the polynomial, we need to assume that the absolute value of \(\theta _l\) is less than \(\pi /2\), and we can describe x as a quintic polynomial about y:

$$\begin{aligned} x(y) = a_0 + a_1y + a_2y^2 + a_3y^3 + a_4y^4 + a_5y^5. \end{aligned}$$
(4)

According to the constraints of x(y), \(\dot{x}(y)\) and \(\ddot{x}(y)\) on current state and the state of look-ahead points, the quantic polynomial can be solved as follows [2]:

$$\begin{aligned} x(y) = a_2y^2 + (10k_1-4k_2+\frac{k_3}{2})y^3 + (-15k_1+7k_2-k_3)y^4 +(6k_1-3k_2+\frac{k_3}{2})y^5, \end{aligned}$$
(5)

where \(a_2=-\frac{tan\delta _c}{2(L + k_{\gamma }v_{c}^2)}\), \(k_1=x_l+\frac{tan\delta _c}{2(L + k_{\gamma }v_{c}^2)}\), \(k_2=-tan\theta _l+\frac{tan\delta _c}{L + k_{\gamma }v_{c}^2}\),

\(k_3=-\gamma _lsec^3\theta _l+\frac{tan\delta _c}{L + k_{\gamma }v_{c}^2}\). The solved quintic spline curve is as shown in Fig. 3.

Calculate the Steering Wheel Angle. After getting the quantic spline curve, the ideal driving curvature of vehicle needs to be determined. The curvature corresponding to a position in front of current pose is used as the driving curvature, so that the problem caused by mechanism delay can be solved. Then according to Eq. 2, we can get the steering wheel angle command.

3.2 Longitudinal Controller

The structure of our longitudinal controller is shown in Fig. 1. In our control system, the longitudinal controller is a module to receive speed commands sent by planning system and based on real-time state of vehicle, calculate throttle pedal percentage and brake pedal percentage and send them to vehicle in order to make the speed gradually approaches the required value with high ride comfort. The work [11] pointed out that ride comfort has a strong correlation with acceleration and jerk. However, in experiments, we found that as long as the longitudinal acceleration and jerk are within a certain range, the ride comfort in most cases can be guaranteed. Therefore, we first preprocess the input raw speed command \(v_{cmd}\) to get a new speed command \(v_{comfort}\) that meets the acceleration and jerk constraints:

$$\begin{aligned} v_{comfort} = \int {a_{comfort}dt}, \end{aligned}$$
(6)

where

$$\begin{aligned} a_{comfort} = \left\{ \begin{array}{lll} a_{ul}, &{} {\int {j_{\text {comfort}}dt} > a_{ul}} \\ a_{ll}, &{} {\int {j_{\text {comfort}}\text {dt}} < a_{ll}} \\ \int {j_{comfort}dt}, &{} \text {else} \end{array}, \right. \end{aligned}$$
(7)
$$\begin{aligned} j_{comfort} = \left\{ \begin{array}{lll} j_{ul}, &{} {\ddot{v}_{\text {cmd}} > j_{ul}} \\ j_{ll}, &{} {\ddot{v}_{\text {cmd}} < j_{ll}} \\ \ddot{v}_{cmd}, &{} \text {else} \end{array}, \right. \end{aligned}$$
(8)

where \(a_{ul}\), \(a_{ll}\) is the upper and lower limits of acceleration, \(j_{ul}\), \(j_{ll}\) is the upper and lower limits of jerk, and the principle of selecting constraints is to take passenger’s ride comfort requirements and controller’s dynamic performance into account, in the meanwhile, to ensure safety. In practical applications, the constraints can also be flexibly switched according to driving scenarios. Since it is not allowed to simultaneously depress the throttle pedal and brake pedal, after inputting \(a_{comfort}\) as an input signal to the controller, we need to calculate \(e_{speed} = v_{comfort} - v_{c}\). If \(e_{speed}\) is greater than zero, the throttle sub-controller is used to calculate throttle pedal percentage, and the brake pedal percentage is not calculated. If \(e_{speed}\) is less than zero, the brake sub-controller is used to calculate brake pedal percentage, and the throttle pedal percentage is not calculated. The resulting throttle pedal percentage and brake pedal percentage output are as follows:

$$\begin{aligned} u_{throttle} = \left\{ \begin{array}{ll} K_{pt}((K_ae_{speed}-a_c) + \int {\frac{K_ae_{speed} - a_c}{T_{it}}}dt), &{} {e_{\text {speed}} > 0} \\ 0, &{} \text {else} \end{array}, \right. \end{aligned}$$
(9)
$$\begin{aligned} u_{brake} = \left\{ \begin{array}{ll} 0, &{} {e_{\text {speed}} > 0} \\ K_{pb}((K_Te_{speed}-T_c) + \int {\frac{K_Te_{{speed}} - T_c}{T_{ib}}}dt), &{} \text {else} \end{array}, \right. \end{aligned}$$
(10)

where \(K_{pt}\), \(K_{pb}\), \(T_{it}\) and \(T_{ib}\) are the parameters of PI controllers. \(a_c\) is the current acceleration of vehicle, and \(T_c\) is the current braking torque of vehicle.

4 Experiments and Results

4.1 Experimental Platform

Our real car experimental platform “Pioneer” is shown in Fig. 4(a). “Pioneer” is based on 2017 Lincoln MKZ hybrid model. It is equipped with a drive-by-wire system, communicates with an IPC through the CAN bus. Developers can use the IPC to send control commands to control the throttle pedal percentage, brake pedal percentage, steering wheel angle and gear status, while receiving the information of vehicle in real time. Our experimental platform is equipped with a high-precision integrated navigation system for accurate position estimation. The software platform is developed based on ROS (Robot Operating System). Specific parameters of our vehicle are as shown in Table 1.

Besides, we also conducted experiments in a simulation platform [5]. The simulation platform includes a simulated vehicle model and simulated roads to maximize the reality of real vehicle motion, as shown in Fig. 4(b). Similar to controlling a real vehicle, we can also control the driving of the simulated vehicle through the control system to achieve safe and efficient algorithm testing.

Fig. 4.
figure 4

(a) The self-driving experimental platform “Pioneer”, based on 2017 Lincoln MKZ hybrid model. (b) The simulation platform based on Gazebo. Various experimental scenarios can be built in this simulation platform.

Table 1. Vehicle parameters.

4.2 Path Tracking Experiment

In the path tracking experiment, we conducted a series of comparative experiments to verify the effectiveness of our proposed lateral control method. The experimental path on campus is shown in Fig. 5, suitable for testing the performance of controllers in curvature-changing scenarios. We chose two widely-used path tracking algorithms, Pure Pursuit [6] and Stanley Method [20] to compare with our methods by controlling the real car running the entire road, the cross track error and orientation error box-plot of different methods and the excerpt of steering wheel angle while crossing U-turn are shown in Figs. 6 and 7. It can be found that when using our method, the distribution of cross track error and orientation error are more concentrated. In addition, our method produces less jitter, and the actual performance of the steering wheel movement is closer to that of a human driver. On the simulation platform, we also carried out the same comparative experiments. The experimental results are shown in Figs. 8 and 9. Similar to the real vehicle experiment results, our approach has the best performance.

Fig. 5.
figure 5

Target path in path tracking experiment. The vehicle needs to track the path on which there are scenarios that require maneuvers including straight-line driving, quarter-turn, U-turn, etc.

Fig. 6.
figure 6

Cross track error and orientation error in realistic environment.

Fig. 7.
figure 7

Excerpt of steering wheel angle while crossing U-turn in real environment.

Fig. 8.
figure 8

Cross track error and orientation error in simulation.

Fig. 9.
figure 9

Excerpt of steering wheel angle while crossing U-turn in simulation.

4.3 Speed Control Experiment

The speed control experiment on real car is carried out on a straight two-lane road, the planning system sends changing speed commands to the longitudinal controller. The experimental results in the realistic environment are as shown in Fig. 10. Although the speed command issued by the planning system is drastically changing, the longitudinal controller can guide the vehicle to smoothly reach the reference speed. In the meanwhile, there is no significant overshoot in the process of controlling the speed. Similarly, the experimental results in simulation are shown in Fig. 11.

Fig. 10.
figure 10

Experimental results of speed control in realistic environment.

Fig. 11.
figure 11

Experimental results of speed control in simulation.

5 Conclusion

This paper proposes a mixture modules based self-driving control system that guarantees both accuracy and ride comfort, which includes a lateral controller that controls the steering wheel angle and a longitudinal controller that controls the vehicle speed. By improving the vehicle model and look-ahead distance tuning strategy, as well as implementing a geometric controller based on quintic spline curve, smoother output and better control effect have been achieved. In this paper, the implementation details of lateral controller and longitudinal controller are introduced, and the experimental verification is carried out both in realistic environment and in simulation. The experiment results that the performance of our control system is superior. In the future work, we plan to further improve the generality and robustness of the controller to better adapt to the requirement of different vehicles and different scenarios.