Conference PaperPDF Available

Fuzzy Logic Based Self-Driving Racing Car Control System

Authors:

Abstract and Figures

In this study, we propose a fuzzy logic based self-driving car control system and its deployment into the JavaScript Racer game. In the design of the self-driving system, it is aimed to design an intelligent vehicle control system such that the racing car finishes the race in the shortest time without getting out of the road. To accomplish such a goal, the proposed intelligent driving system takes up and merges the frameworks of control theory, fuzzy logic and computer vision. In this structure, computer vision is used for lane detection while the fuzzy logic control is employed for positioning and regulating the speed of the racing car. The paper presents in detail the structure and design of the intelligent driving system by presenting all of its design steps. The efficiency of the fuzzy logic based self-driving racing car control system is shown with results collected from the game environment.
Content may be subject to copyright.
978-1-5386-7641-7/18/$31.00 ©2018 IEEE
Fuzzy Logic Based Self-Driving Racing Car Control
System
Berk Korkmaz, Ugur Bugra Etlik, Aykut Beke, Tufan Kumbasar
Department of Control and Automation Engineering
Istanbul Technical University
Istanbul, Turkey
{korkmazbe, etlik, beke, kumbasart}@itu.edu.tr
Abstract—In this study, we propose a fuzzy logic based self-
driving car control system and its deployment into the JavaScript
Racer game. In the design of the self-driving system, it is aimed to
design an intelligent vehicle control system such that the racing car
finishes the race in the shortest time without getting out of the
road. To accomplish such a goal, the proposed intelligent driving
system takes up and merges the frameworks of control theory,
fuzzy logic and computer vision. In this structure, computer vision
is used for lane detection while the fuzzy logic control is employed
for positioning and regulating the speed of the racing car. The
paper presents in detail the structure and design of the intelligent
driving system by presenting all of its design steps. The efficiency
of the fuzzy logic based self-driving racing car control system is
shown with results collected from the game environment.
Keywords—fuzzy logic; expert systems, self-driving car; lane
tracking; JavaScript Racer
I. INTRODUCTION
In recent years, self-driving car projects have grown in
numbers significantly and earned an important place in the
automotive industry [1]. However, the self-driving car
technology still have some drawbacks such as reliability and
cost. In real world applications, the implementation of self-
driving car systems is quite challenging and requires very
expensive hardware [2]. As a consequence, researchers have
handled simulated environments such as computer games to test
their self-driving car systems since games provide dynamic,
cheap and realistic testbeds. In this context, various games have
been investigated such as The Open Racing Car Simulator
(TORCS) [3-6], JavaScript Racer [7], VDrift [8], and World
Rally Championship 6 [9]. In literature, various types of self-
driving car systems have been designed and employed into
racing game environments. For example, a nonlinear model
predictive control has implemented to VDrift [8] while a fuzzy
logic based autonomous vehicle control system has been
designed for TORCS [6]. In most of these applications, it is
assumed that the race track and lanes are known in advance
which separates them from real-word application. Yet, in real-
world application, the lanes of the road must be detected in real
time. Therefore, vision based lane detection methods are
commonly employed [10]. In vision based lane detection, there
are two main problems that are lane detection and lane tracking.
Detecting a lane is a challenging problem since the road has
changing conditions [11]. Many different vision based lane
detection systems have been developed and they usually use
different lane patterns and different techniques such as hough
transform, template-matching, and neural networks [12-14]. On
the other hand, lane tracking is also an important problem which
is needed for the lateral control of the self-driving car. Various
methods have been proposed to generate position reference
trajectory based on lane tracking such as fuzzy logic [6], deep
reinforcement learning [7], and neural network [14] have been
employed to solve this problem.
In this study, we will propose a fuzzy logic based self-
driving car control system and its deployment into the JavaScript
Racer game. In the design of the self-driving system, we aim to
design an intelligent vehicle control system such that the racing
car is capable to finish the race in the shortest time without
getting out of the road (i.e. as Formula 1 qualifying race). The
proposed structure is composed of three main components which
are the vision based lane detection system, Fuzzy logic based
Position Reference (FPR) generator and Fuzzy logic based
Velocity Reference (FVR) generator. We will firstly design the
vision based lane detection system to solve road curve
estimation problem in real time. The intelligent FPR and FVR
structures are designed to generate the position reference (𝑝)
and velocity reference (𝑣), respectively, for the self-driving car
control system by processing the road curvature information that
is provided by the vision based localization. Then, we will
design PD controllers for both the position and velocity control
loops of racing car. Finally, in order to show the effectiveness of
the developed fuzzy logic based self-driving car control system
simulation results are presented and investigated. The game
performance of the developed fuzzy logic based self-driving car
control system can be seen at https://youtu.be/SO076c2GJg0
This paper is organized as follows. Section II provides
information about the JavaScript Racer game. Section III
presents the proposed fuzzy logic based self-driving racing car
system. The real-time game performance of the proposed
intelligent control system are given in Section IV. Finally, the
conclusions are given in Section V.
II. JAVASCRIPT RACER GAME ENVIRONMENT
In this study, the JavaScript Racer game environment, which
is illustrated in Fig. 1, has been handled [15]. The JavaScript
Racer is an open-source pseudo-3d web browser based racing
game. It provides a realistic and easily modifiable environment
for the self-driving car systems. In the game, various types of
roads are available that have different sharpness and length.
These adjustable features provide realistic and persuasive
testbeds for self-driving systems.
0
-1 1-0.4 0.4
Fig. 1. A screenshot from JavaScript Racer game
In the JavaScript Racer game environment, we cannot
directly send velocity or angle reference input signals to the car,
we can only send discrete actions. There are four discrete binary
actions that are the left (𝑢), right (𝑢), up (𝑢) and binary
down (𝑢) as given in Table I. 𝑢 and 𝑢 binary key-press
actions are used to accelerate and decelerate the car in
longitudinal axis, respectively, while 𝑢 and 𝑢 binary key-
presses actions are used to accelerate and decelerate the car in
lateral axis. Moreover, the velocity of the racing car is limited in
between 0 − 12000 and the visible frame of the image is
limited in between −1 (left edge of the road) and 1 (right edge
of the road) as seen in Fig. 1. Also, the game has seven road
curves that were defined as follows: Left Hard (LH), Left
Medium (LM), Left Easy (LE), Straight (S), Right Easy (RE),
Right Medium (RM) and Right Hard (RH).
TABLE I. BINARY ACTIONS OF JAVASCRIPT RACER GAME
Input
Action
𝑢
0
,
1
}
Longitudinal Up
𝑢
0
,
1
}
Longitudinal Down
𝑢
{
0
,
1
}
Lateral Right
𝑢
{
0
,
1
}
Lateral
Left
The frames of the JavaScript Racer game environment
cannot be collected directly since the JavaScript Racer is a web
browser based game. Thus, Tornado web server [16] is used to
collect JSON-encoded frames and send JSON-encoded actions
to the racing car as seen in Fig. 3. Moreover, we modified the
code of JavaScript Racer to send the instant position (𝑝) and
velocity (𝑣) to the our Python web server which would run data
through our intelligent control system and return each actions
back to the browser in every 𝑇 = 0.01𝑠.
III. FUZZY LOGIC BASED CAR CONTROL SYSTEM
In this section, we will present the fuzzy logic based self-
driving racing car control system which is illustrated in Fig. 3.
A. Vision Based Lane Detection
In this subsection, we will explain how we accomplished
identifying lane problem with simple but efficient color based
image processing methods. The Tornado web server provides us
RGB frames with 480×360 pixels resolution. In order to reduce
the computational complexity, we have resized the frame into
300×300 pixel frame. Moreover, we have specified a trapezoidal
region of interest on this frame that is sufficient for identifying
various types of curves present in the game. Then, a perspective
transform is performed on this frame.
(a) (b) (c)
Fig. 2. Transformed images in (a) 𝐼, (b) 𝐼, (c) 𝐼 form
In this study, we preferred to use RGB (𝐼), HSV (𝐼)
and HSL (𝐼) color spaces as shown in Fig. 2. Then, we
applied the following thresholds to increase the performance of
lane detection
HSV mask filter’s threshold range is
between (0, 0,187)– (255, 20,255).
Mask filter for HSL is defined between (0,195,0)
(255,255,60)
RGB mask filter is determined between
(200,200,200)–(255,255,255) for white extraction.
Numpy Frames
𝑎
,
𝑎
𝑝
𝑟
𝑢
𝑝
PD Velocity
Controller
𝑣
𝑟
𝑢
𝑣
𝑢
𝑈
,
𝑢
𝐷
-
+
-
𝑣
𝑒
𝑝
𝑒
+
𝑝
𝑐
𝑣
𝑐
JSON Frames
Data
JavaScript Racer
Game Environment
JSON Actions
Vision Based Lane Detection
𝑢
𝐿
,
𝑢
𝑅
FVR
FPR PWM
PWM
PD Position
Controller
Fig. 3. Fuzzy logic based self-driving racing car control system
The resulting color spaces HSV (𝐼
), HSL (𝐼
), and
RGB (𝐼
) are then merged into a final bitmask (𝐼
) as
follows:
𝐼

=
𝐼

𝐼

𝐼
 (1)
Then, the resulting image given in Fig. 4a is used for lane
detection. The lanes were detected by using a sliding histogram
window approach on the frame (𝐼
). At each slice, a point was
captured where the pixel intensities are the highest. These
captured points are then used to fit a 2nd order polynomials that
represent the curves. As shown in Fig. 4b, two polynomials are
defined one for left line 𝑃 and one for right line 𝑃 that are
defined as follows:
𝑃
(
𝑥
)
=
𝑎
𝑥
+
𝑏
𝑥
+
𝑐
(2)
𝑃
(
𝑥
)
=
𝑎
𝑥
+
𝑏
𝑥
+
𝑐
(3)
For all possible road curves (LH, LM, LE, S, RE, RM and RH)
in the racetrack, we have performed several experiments and
calculated corresponding coefficients of 𝑃 and 𝑃. The mean
values of these coefficients are given in Table II.
𝑃
𝑟
𝑃
𝑙
(a) (b)
Fig. 4. Image 𝐼
 (a), visualization of 𝑃 𝑎𝑛𝑑 𝑃 on road (b)
TABLE II. THE COEFFICIENTS OF 𝑃 AND 𝑃
LH
LM
LE
S
RE
RM
RH
𝒂
𝒍
(
×
10

)
60
35
10
15
30
55
8
0
𝒃
𝒍
0
.
5
0
.
45
0
.
35
0
.
25
0
.
1
0
.
09
0
.
21
𝒄
𝒍
200
180
160
140
120
100
80
𝒂
𝒓
(
10

)
80
55
3
15
10
35
60
𝒃
𝒓
0
.
23
0
.
12
0
.
09
0
.
18
0
.
33
0
.
39
0
.
44
𝒄
𝒓
230
207
183
160
137
114
90
As it can be observed from Table II, there is a strong
relationship between the coefficients 𝑎 & 𝑎 and the sharpness
of curves as expected due to the meaning of 1st and 2nd order
derivative tests. Thus, in order to estimate sharpness of the
upcoming curve on the frame, we only take account the current
mean values of 𝑎 and 𝑎 and its change with respect to time.
The mean value (𝑎) is defined as
𝑎
=
(
𝑎
+
𝑎
)
/
2
(4)
while, the change 𝑎 (∆𝑎) is defined as
𝑎
(
𝑘
)
=
𝑎
(
𝑘
)
𝑎
(
𝑘
1
)
𝑇
(5)
Here, 𝑇 = 0.01𝑠 is the sampling time. In order to reduce the
effect of uncertainties caused by low resolution, we have
implemented a moving average filter on the signals 𝑎 and
∆𝑎.
𝑎
(
𝑘
)
=
(
𝑎
(
𝑘
3
)
)
/
3
(6)
𝛥
𝑎
(
𝑘
)
=
(
𝛥𝑎
(
𝑘
3
)
)
/
3
(7)
Then, to avoid possible errors while the car is changing its lane
in high speed, a low pass filter with 𝛽 = 0.8 has been also
employed to 𝑎 and 𝛥𝑎 as follows:
𝑎
(
𝑘
+
1
)
=
𝛽
𝑎
(
𝑘
)
+
(
1
𝛽
)
𝑎
(
𝑘
)
(8)
𝑎
(
𝑘
+
1
)
=
𝛽
𝑎
(
𝑘
)
+
(
1
𝛽
)
𝛥
𝑎
(
𝑘
)
(9)
Fuzzy Logic
Controller
𝑎
𝐴
𝛥
𝐴
𝛥
𝑎
𝑣
𝑟
,
𝑝
𝑟
𝐾
𝑎
𝐾
𝛥
𝑎
Fig. 5. Fuzzy logic reference generator structure
B. Intelligent Velocity Control System
In this subsection, we will present the structure of FVR
generator and the conventional velocity controller.
1) Fuzzy Logic Based Reference Velocity Generator
We will present the FVR that generates the proper velocity
reference signal (𝑣) by using the inputs 𝑎 and 𝛥𝑎 as seen in Fig.
5. The inputs are normalized into the universe of discourse of
the antecedent Membership Functions (MFs) as follows [17,
18]:
𝐴
=
𝐾
𝑎
𝛥
𝐴
=
𝐾
𝛥
𝑎
(10)
where, 𝐾
and 𝐾
are the input Scaling Factors (SFs) and fixed
to the values 𝐾
= 1428.57 and 𝐾
= 42.86.
TABLE III. THE RULE BASE OF THE FVR GENERATOR
𝒂
/
𝜟
𝒂
LH
LM
LE
S
RE
RM
RH
LH
LV
LV
LV
LV
MV
HV
VHV
LM
LV
LV
LV
MV
HV
VHV
HV
LE
LV
LV
MV
HV
VHV
HV
MV
S
LV
MV
HV
VHV
HV
MV
LV
RE
MV
HV
VHV
HV
MV
LV
LV
RM
HV
VHV
HV
MV
LV
LV
LV
RH
VHV
HV
MV
LV
LV
LV
LV
𝐴
Fig. 6. Illustration of the antecedent MFs of 𝐴
The FVR generator is constructed with a 7×7 rule base as
given in Table III. As shown in Fig. 6 and Fig. 7, the antecedent
part of the fuzzy rules is defined with triangular MFs and are
defined with same linguistic variables that define the curve types
of the game. The consequent part of the fuzzy rules are defined
with the following four linguistic fuzzy terms as follows: Low
Velocity (𝐿𝑉)= 4000, Medium Velocity (𝑀𝑉) = 5000, High
Velocity (𝐻𝑉)= 6000, and Very High Velocity (𝑉𝐻𝑉)=
7000. The FVR uses and employs the product implication and
the center of sets defuzzification method [17, 18]. The resulting
surface of FVR can be seen in Fig. 8.
𝛥
𝐴
Fig. 7. Illustration of the antecedent MFs of ∆𝐴
𝐴
𝛥
𝐴
Fig. 8. Illustration of the FVR generator surface
2) PD Velocity Controller
We have firstly performed a system identification experiment to
reveal the relationship between the car velocity (𝑣) and the
control signal (𝑢). The system dynamics are defined with the
following first order integrating difference equation:
𝑣
(
𝑘
)
=
𝑣
(
𝑘
1
)
+
65
.
97
𝑢
(
𝑘
1
)
(11)
To regulate the velocity of the racing car, we have designed a
PD controller to minimize the velocity error (𝑣) defined as
𝑣
(
𝑘
)
=
𝑣
(
𝑘
)
𝑣
(
𝑘
)
(12)
The control law of PD in sampled time domain is
𝑢
(
𝑘
)
=
𝐾
𝑣
(
𝑘
)
+
𝐾
(
𝑣
(
𝑘
)
𝑣
(
𝑘
1
)
)
𝑇
(13)
where 𝑇 = 0.01s and the coefficients of PD controller are tuned
as 𝐾= 0.00001656 and 𝐾= 0.0000001 to have a fast
system response. As it can be seen in Fig. 3, the sampled control
signal 𝑢 is then converted into the discrete game actions 𝑢
{0,1} and 𝑢∈ {0,1} via a Pulse Width Modulation (PWM)
generator as follows:
𝑢
>
0
𝑢
=
1
,
𝑢
=
0
𝑢
<
0
𝑢
=
0
,
𝑢
=
1
(14)
The resulting closed loop system performance for velocity
reference 𝑣= 7000 is given in Fig. 9.
Fig. 9. PD controller performance
C. Intelligent Position Control System
In this subsection, the design of the FPR generator and
position control system for the system will be explained.
1) Fuzzy Logic Based Reference Position Generator
The FPR generator uses 𝑎 and 𝛥𝑎, similar to the FVR
structure, to generate position reference 𝑝 for the racing car as
shown in Fig. 5. The FPR generator is constructed with a 7×7
rule base as given in Table IV. The FPR uses the same
antecedent MFs of the FVR, while the consequent part is defined
with five linguistic fuzzy terms as follows: Far Left
Position (𝐹𝐿𝑃)= −0.7, Close Left Position (𝐶𝐿𝑃)= −0.35,
Middle Position (𝑀𝑃) = 0, Close Right Position (𝐶𝑅𝑃)=
0.7, and Far Right Position (𝐹𝑅𝑃)= 0.7. The FVR uses and
employs the product implication and the center of sets
defuzzification method [23]. The resulting surface of FPR
generator is given in Fig. 10.
TABLE IV. THE RULE BASE OF THE FPR GENERATOR
𝒂
/
𝜟
𝒂
LH
LM
LE
S
RE
RM
RH
LH
FLP
FLP
FLP
FLP
MS
CLP
MP
LM
FLP
FLP
FLP
MS
CLP
MP
CRP
LE
FLP
FLP
FLP
CLP
MP
CRP
FRP
S
FLP
FLP
CLP
MP
CRP
FRP
FRP
RE
FLP
CLP
MP
CRP
FRP
FRP
FRP
RM
CLP
MP
CRP
FRP
FRP
FRP
FRP
RH
MP
CRP
FRP
FRP
FRP
FRP
FRP
Velocity
𝛥
𝐴
𝐴
Fig. 10. Illustration of the FPR generator surface
2) PD Position Controller
We have firstly performed a system identification
experiment to obtain the difference equation between the car
position (𝑝) and the control signal (𝑢).
𝑝
(
𝑘
)
=
1
.
98
𝑝
(
𝑘
1
)
0
.
98
𝑝
(
𝑘
2
)
+
10

(
8
.
82
𝑢
(
𝑘
1
)
+
8
.
76
𝑢
(
𝑘
2
)
)
(15)
To regulate the position of the racing car, we have designed a
PD controller to minimize the position error (𝑝) defined as:
𝑝
(
𝑘
)
=
𝑝
(
𝑘
)
𝑝
(
𝑘
)
(16)
The sampled control law of the PD controller is as follows:
𝑢
(
𝑘
)
=
𝐾
𝑝
(
𝑘
)
+
𝐾
(
𝑝
(
𝑘
)
𝑝
(
𝑘
1
)
)
𝑇
(17)
The coefficients of PD controller are tuned as 𝐾= 5 and 𝐾=
0.05. As we have done in the velocity control system, the control
signal 𝑢 is then converted into the binary game actions 𝑢
{0,1} and 𝑢∈ {0,1} via a PWM generator as follows:
𝑢
>
0
𝑢
=
0
,
𝑢
=
1
𝑢
<
0
𝑢
=
1
,
𝑢
=
0
(18)
The resulting position control performance for varying position
reference signal is given in Fig. 11.
Fig. 11. PD controller behavior
IV. REAL-TIME GAME PERFORMANCE
Here, we will examine the real-time game performance of
the proposed fuzzy logic based self-driving racing car control
system. In the experiment, the car is going to complete a
racetrack that is structured with all possible road curves (LH,
LM, LE, S, RE, RM and RH) which are generated in a random
order. The resulting intelligent control system performance is
given in Fig. 12. It can be firstly concluded that the overall racing
performance of the proposed autonomous control system is
satisfactory. It can be also stated that when the racing car is
positioned on one of the lanes, the vision based lane detection
mechanism is unable to estimate the curves with polynomials
efficiently. This effect can be seen at 8.8s and 23.5s in the Fig.
12. However, these effects are eliminated in a short time. The
game performance of the intelligent control system can be seen
at https://youtu.be/SO076c2GJg0
Now, let us focus on the shaded area in Fig. 12a, the car is
driving through a LH curve at 26.5ths to a RH curve at 29ths.
Consequently, due to the radical change of road curve
characteristics, the FPR mechanism changed the 𝑝 value from
-0.7 to 0.7. The car tracked this position reference change within
2.6s. Moreover, as it can be seen in the shaded area in Fig. 12b,
during the transition from LH curve to RH curve, the 𝑣 value
has increased until 28.5ths to stabilize the position dynamics of
the car. After that, the 𝑣 value has decreased to an optimum
value for avoiding effects of centrifugal force.
0 5 10 15 20 25 30 35 40
Time [s]
0
2000
4000
6000
8000
vr
vc
0 5 10 15 20 25 30 35 40
Time [s]
-0.5
0
0.5
pr
pc
(b)
(a)
Fig. 12. Fuzzy logic based self-driving racing car control system performance
V. CONCLUSION AND FUTURE WORK
In this study, we proposed a self-driving racing car control
system and its performance was examined in JavaScript Racer
game environment. Firstly, we designed vision based lane
detection system to solve lane identification problem. The
predicted lane curvature information was used for lane tracking.
For this problem, we proposed intelligent velocity and position
control systems. FPR and FVR generators were designed by
using expert knowledge to generate reference values.
Experimental results show that the proposed fuzzy logic based
self-driving racing car control system has reached the desired
reference values very quickly and they eliminated effects of
disturbances in a short period of time..
For our future work, we plan to deploy the proposed
intelligent structure to more complex computer games and to a
real-world autonomous car.
REFERENCES
[1] T. Litman, “Autonomous vehicle implementation predictions,” Victoria
Transport Policy Institute, 2017.
[2] R. W. Wall, J. Bennett, and G. Eis, “Creating a low-cost autonomous
vehicle,” IEEE 2002 28th Annual Conference of the Industrial Electronics
Society (IECON02), vol. 4, pp. 3112-3116, 2002.
[3] T. Wang and K. T. Liaw, “Driving style imitation in simulated car racing
using style evaluators and multi-objective evolution of a fuzzy logic
controller,” 2014 IEEE Conference on Norbert Wiener in the 21st Century
(21CW), Boston, pp. 1-7, 2014.
[4] S. Zuo, Z. Wang, X. Zhu, and Y. Ou, “Continuous reinforcement learning
from human demonstrations with integrated experience replay for
autonomous driving,” 2017 IEEE International Conference on Robotics
and Biomimetics (ROBIO), Macau, pp. 2450-2455, 2017.
[5] D. Perez, G. Recio, and Y. Saez, “Evolving a fuzzy controller for a car
racing competition,” IEEE Symposium on In Computational Intelligence
and Games, pp. 263-270, 2009.
[6] E. Armagan and T. Kumbasar, “A fuzzy logic based autonomous vehicle
control system design in the TORCS environment,” 10th International
Conference on IEEE, pp. 737-741, 2017.
[7] A. Yu, R. Palefsky-Smith, and R. Bedi, “Deep reinforcement learning for
simulated autonomous vehicle control,” Course Project Reports: Winter,
1-7, 2016.
[8] F. Kehrle, J. V. Frasch, C. Kirches, and S. Sager, “Optimal control of
formula 1 race cars in a VDrift based virtual environment,” IFAC
Proceedings Volumes, vol. 44, no. 1, pp. 11907-11912, 2011.
[9] E. Perot, M. Jaritz, M. Toromanoff, and R. d. Charette, “End-to-end
driving in a realistic racing game with deep reinforcement learning,” IEEE
Conference on Computer Vision and Pattern Recognition Workshops
(CVPRW), Honolulu, pp. 474-475, 2017.
[10] S. G. Jeong et al., “Real-time lane detection for autonomous vehicle,”
IEEE International Symposium on Industrial Electronics Proceedings,
Pusan, vol. 3, pp. 1466-1471, 2001.
[11] A. A. Assidiq, O. O. Khalifa, M. R. Islam and S. Khan, “Real time lane
detection for autonomous vehicles,” International Conference on
Computer and Communication Engineerin, pp. 82-88, 2008.
[12] Y. Wang, E. K. Teoh, and D. Shen, “Lane detection and tracking using B-
Snake,” Image and Vision Computing, vol. 22, no. 4, pp. 269-280, 2004.
[13] F. You, R. Zhang, G. Lie, H. Wang, H. Wen, and J. Xu, “Trajectory
planning and tracking control for autonomous lane change maneuver
based on the cooperative vehicle infrastructure system,” Expert Systems
with Applications, vol. 42, no. 14, pp. 5932-5946, 2015.
[14] Z. Kim, “Robust lane detection and tracking in challenging scenarios,” in
IEEE Transactions on Intelligent Transportation Systems, vol. 9, no. 1,
pp. 16-26, 2008.
[15] J. Gordon (2016, January 6). Javascript pseudo 3D racer [Online].
Available: http://github.com/jakesgordon/javascript-racer.
[16] “Documentation”, Computer Vision System Toolbox Documentation.
[Online]. Available: http://www.tornadoweb.org/en/stable/. [Accessed:
15-January-2018].
[17] A. I. Savran, A. Beke, T. Kumbasar, E. Yesil, “An IMC based fuzzy self-
tuning mechanism for fuzzy PID controllers,” In Innovations in Intelligent
SysTems and Applications (INISTA), pp. 1-7, 2015.
[18] F. Candan, A. Beke, T. Kumbasar “Design and Deployment of Fuzzy PID
Controllers to the nano quadcopter Crazyflie 2.0,” in 2018 IEEE INISTA,
2018.
Article
Full-text available
The rising popularity of self-driving cars has led to the emergence of a new research field inrecent years: Autonomous racing. Researchers are developing software and hardware for high-performancerace vehicles which aim to operate autonomously on the edge of the vehicle’s limits: High speeds, highaccelerations, low reaction times, highly uncertain, dynamic, and adversarial environments. This paperrepresents the first holistic survey that covers the research in the field of autonomous racing. We focuson the field of autonomous racecars only and display the algorithms, methods, and approaches used inthe areas of perception, planning, control, and end-to-end learning. Further, with an increasing numberof autonomous racing competitions, researchers now have access to high-performance platforms to testand evaluate their autonomy algorithms. This survey presents a comprehensive overview of the currentautonomous racing platforms, emphasizing the software-hardware co-evolution to the current stage. Finally,based on additional discussion with leading researchers in the field, we conclude with a summary of openresearch challenges that will guide future researchers in this field.
Preprint
Full-text available
The rising popularity of self-driving cars has led to the emergence of a new research field in the recent years: Autonomous racing. Researchers are developing software and hardware for high performance race vehicles which aim to operate autonomously on the edge of the vehicles limits: High speeds, high accelerations, low reaction times, highly uncertain, dynamic and adversarial environments. This paper represents the first holistic survey that covers the research in the field of autonomous racing. We focus on the field of autonomous racecars only and display the algorithms, methods and approaches that are used in the fields of perception, planning and control as well as end-to-end learning. Further, with an increasing number of autonomous racing competitions, researchers now have access to a range of high performance platforms to test and evaluate their autonomy algorithms. This survey presents a comprehensive overview of the current autonomous racing platforms emphasizing both the software-hardware co-evolution to the current stage. Finally, based on additional discussion with leading researchers in the field we conclude with a summary of open research challenges that will guide future researchers in this field.
Conference Paper
Full-text available
Nowadays, nano quadcopters have attracted research interest since they are fast quadcopters with high maneuverability. In this study, the design and deployment of a Fuzzy PID (FPID) controller structure is presented to solve the position control problem of the Crazyflie 2.0 nano quadcopter in a real-world environment. In this context, we will firstly present an experimental environment in which a low cost camera system is implemented instead of the OptiTrack or VICON camera system. Then, we will present a fuzzy logic based position controller structure which uses a vision based positioning system that is capable to track the position of Crazyflie 2.0 through the low cost camera. In this structure, since the usage of a low cost camera might result with feedback uncertainties, we will design FPID controllers to end up with a robust and satisfactory control system performance in presence of noise and the present highly coupled nonlinearities of Crazyflie 2.0. The paper will present comparative experimental results that show the resulting performance of the FPID structure is superior in various operating points and is more robust against noise and nonlinearities when compared to its PID counterpart.
Conference Paper
Full-text available
As a promising subfield of machine learning, Reinforcement Learning (RL) has drawn increasing attention among the academia as well as the public. However, the practical application of RL is still restricted by a variety of reasons. The two most significant challenges of RL are the large exploration domain and the difficulty to converge. Integrating RL with human expertise is technically an interesting way to accelerate the exploration and increase the stability. In this work, we propose a continuous reinforcement learning method which integrates Deep Deterministic Policy Gradient (DDPG) with human demonstrations. The proposed method uses a combined loss function for updating the actor and critic networks. In addition, the experience replay buffer is also drawn from different transition data samples to make the learning more stable. The proposed method is tested with a popular RL task, i.e. the autonomous driving, by simulations with TORCS environment. Experimental results not only show the effectiveness of our method in improving the learning stability, but also manifest the potential capability of our method in mastering human preferences.
Conference Paper
Full-text available
In this study, we will present a novel Internal Model Control (IMC) based Self-Tuning (ST) mechanism to tune the Scaling Factors (SFs) of the fuzzy PID controllers in an online manner. Moreover, we will present a fuzzy PI-D (FPI-D) structure in order to eliminate the derivative kick and the effect of noise on the control signal. The proposed IMC based fuzzy ST mechanism is constructed by two Fuzzy Inference Systems (FISs) and an IMC based SF (IMC-SF) parameter regulator. The two FISs will predict the current values of the system parameters by using the system output value and then the IMC-SF parameter regulator will tune the SFs of FPI-D with respect to presented tuning method. The performance of the proposed Self-Tuning FPI-D (ST-FPI-D) will be evaluated on a realtime laboratory scale extruder process with its discrete implementation via the ABB PLC PM573 industrial controller. We will compare and examine the control system performance of the proposed ST fuzzy control structure with an IMC based tuned ABB-PID and FPI-D structures. The real-time experimental results will show that the proposed ST-FPI-D structure enhanced significantly the control performance for various operating points and in the presence of uncertainties and nonlinearities when compared to the ABB-PID and FPI-D structures.
Article
Lane change maneuver is one of the most conventional behaviors in driving. Unsafe lane change maneuvers are key factor for traffic accidents and traffic congestion. For drivers’ safety, comfort and convenience, advanced driver assistance systems (ADAS) are presented. The main problem discussed in this paper is the development of an autonomous lane change system. The system can be extended applied in intelligent vehicles in future. It solves two crucial issues – trajectory planning and trajectory tracking. Polynomial method was adopted for describing the trajectory planning issue. Movement of a host vehicle was abstracted into time functions. Moreover, collision detection was mapped into a parameter space by adopting infinite dynamic circles. The second issue was described by backstepping principle. According to the Lyapunov function, a tracking controller with global convergence property was verified. Both the simulations and the experimental results demonstrate the feasibility and effectiveness of the designed method for autonomous lane change.
Conference Paper
Computational intelligence competitions have recently gained a lot of interest. These contests motivate and encourage researchers to participate on them, and to apply their work areas to specific games. During the last two years, one of the most popular competitions held on computational intelligence in games conferences is the car racing competition. This competition combines the fun of driving to win and the challenge of obtaining autonomous driving, which is known as a very difficult problem and faced by a lot of researches from different perspectives. For this competition, we have developed a controller with fuzzy rules and fuzzy sets for input and output, which were evolved using a genetic algorithm in order to optimise lap times, damage taken and out of track time. The design of this controller is explained in detail in this article, as well as the results obtained at the end of the contest.
Article
In this paper, we proposed a B-Snake based lane detection and tracking algorithm without any cameras' parameters. Compared with other lane models, the B-Snake based lane model is able to describe a wider range of lane structures since B-Spline can form any arbitrary shape by a set of control points. The problems of detecting both sides of lane markings (or boundaries) have been merged here as the problem of detecting the mid-line of the lane, by using the knowledge of the perspective parallel lines. Furthermore, a robust algorithm, called CHEVP, is presented for providing a good initial position for the B-Snake. Also, a minimum error method by Minimum Mean Square Error (MMSE) is proposed to determine the control points of the B-Snake model by the overall image forces on two sides of lane. Experimental results show that the proposed method is robust against noise, shadows, and illumination variations in the captured road images. It is also applicable to the marked and the unmarked roads, as well as the dash and the solid paint line roads.