Content uploaded by Tufan Kumbasar
Author content
All content in this area was uploaded by Tufan Kumbasar on Apr 23, 2019
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.