1. Introduction
Nowadays, robots are an inseparable part of our life. Robots with movement ability impose themselves through many applications, including medical facilities, hospitality, entertainment, package delivery, space, and military. Recently, mobile robots have been a controlling contributor to human development and one of the fastest growth fields of scientific research. They have displayed their abilities in helping and substituting humans in many applications with high efficiency [
1].
The obstacle avoidance is an important feature in mobile robots that enables them to reach their destination point collision free. This necessitates providing them with a decision-making capability for planning their path autonomously and reacting to the hazards that may hinder their movements. However, this is no longer easily achieved by using classical control approaches without prior information available about the environment and using intelligent control [
1]. Furthermore, some of the intelligent control methods cannot handle the high level of uncertainties of sensors, actuators, and environment [
2].
For achieving autonomous obstacle avoidance, numerous control strategies have been developed, among which is the Type-2 fuzzy logic control. Fuzzy logic control is considered the most vastly used technique for designing controllers that manage suitable performance in many real-world applications [
3]. For example, it was used to design a controller capable of introducing a safe Robotino
® and tracking its predefined target, as in Ref. [
4]. A fuzzy logic controller with 153 fuzzy rules was utilized for controlling the Robotino
® path-tracking issue, while another fuzzy logic controller with 27 fuzzy rules was applied for the Robotino
® obstacle-avoidance feature, using the Sugeno fuzzy algorithm. Many real-time experiments reflected good abilities of the proposed controllers. Moreover, an autonomous mobile robot was designed and implemented by using a fuzzy logic controller, along with an ultrasonic sensor, in Ref. [
5]. The results proved the effectiveness of the algorithm when taking the settling time and the overshoot as a performance index.
A Type-2 fuzzy system was used to design a robust controller, using C# language [
6]. The simulation of obstacle avoidance has been performed, showing that the algorithm has the shortest path among other algorithms. Santiago and C. Chiu [
7] applied an interval Type-2 fuzzy logic controller, along with a PID controller, for autonomous obstacle avoidance and wall following, using eight sonar sensors, in the presence of environmental uncertainties. The results proved the robustness of the proposed approach in an unknown environment and following the wall with good stability. A comparison between the Type-1 fuzzy logic controller and Type-2 fuzzy logic controller in mobile robot obstacle avoidance, using 12 infrared sensors, was presented by Ref. [
8]. The experimental simulation results showed that both types of the fuzzy controllers behave similarly in most cases, but in the case of increasing uncertainties, the Type-2 fuzzy logic controller gives a better performance in terms of rapidity and precision.
A Type-2 fuzzy logic controller as a high-level mobile robot controller was also applied in Ref. [
9]. In addition to orientation angle measurements, three sensors (i.e., left, front, and right) have been used as input to the controller. They help to determine the response action taken for linear and angular output velocities for tracking and positioning of the mobile robot in an unknown environment. The results proved smooth performance and decision-making on the correct acceleration and braking when considering the direction change of the target. Type-2 fuzzy logic controller and optical flow approach were also utilized for visual obstacle avoidance based on video acquisition and an image-processing algorithm to extract fruitful information about the environment from a robot’s camera [
10]. The simulation results have shown a good capability for the Type-2 fuzzy logic controller in obstacle avoidance. A Type-1 fuzzy logic and interval Type-2 fuzzy logic controllers were designed and implemented for a swarm robot system in Ref. [
11]. Each of the mobile robots contained one compass sensor, three distance sensors, and one X-Bee communication module. The experimental simulation results have shown that the complex problem modeling Type-2 fuzzy logic has better performance than Type-1 fuzzy logic. Hierarchical fuzzy controllers based on Type-2 Fuzzy Logic System for mobile robot in a partially known environment with eight sensors were presented by Ref. [
12]. A sliding mode was used to make the mobile robot chase the dynamic target and avoid obstacles simultaneously. The simulation results have proved the robustness of the performance of the Type-2 fuzzy logic controller.
A fuzzy-logic-based obstacle avoidance technique was used in Ref. [
13]. This system could be controlled remotely and switched to avoid obstacles in an indoor environment. The omnidirectional wheel was adapted in the power system to perform translating and spinning movements for avoiding obstacles fast and flexibly in paths. The experiments proved the good performance of the proposed system in service environments. In Ref. [
14], a fuzzy logic rules set was used to calculate the position of the robot concerning the road lane center during the movement. The Haar-cascade-classifier-based machine-learning technique has been utilized to detect different types of obstacles facing the robot in its path from source to destination. The simulation results of many experimentation scenarios have revealed effective performance of the proposed approach.
A Mamdani fuzzy reasoning system was used in Ref. [
15] for designing a controller that was capable of reducing the amount of time spent on the programming of the controller. Twenty-five rules are used to cover a robot’s possible interactions with various obstacles. The results of the MATLAB/Simulink simulation tools have verified the algorithms with real-time constraints and demonstrated the superior performance of the proposed controller with high adaptability to the environment and a sufficient level of accuracy. A system using fuzzy logic was proposed in Ref. [
16] for detecting and avoiding different types of obstacles. Data coming from a ZED stereo camera were mainly exploited for making decisions based on fuzzy predicates. The simulated environment has proved that the proposed technique is robust.
The review of the literature reveals the available control techniques used for avoiding obstacles avoidance. The present study contributes to the existing literature through building a simple control algorithm that can guide Robotino® safely and collision free to its predefined destination point.
The article is organized as follows:
Section 2 presents the materials and methods.
Section 3 presents the results of the simulation. The conclusion of the study is presented in
Section 4.
2. Materials and Methods
The backbone of this research is to apply Type-2 fuzzy logic controller on mobile robot; thus, this section concentrates on giving a detailed idea about these main parts, as shown below:
2.1. Mobile Robot System Description
Robotino
®, shown in
Figure 1, is a mobile robot made by Festo company with its omnidirectional drive, interfaces, learning system for training, sensors, and a platform for research and development [
4].
Robotino
® has a high-performance controller that provides an intelligence system to use, numerous sensors, and an omnidirectional drive that consists of three independent wheels arranged at angles of 120°. All of these components are separately controllable, thus enabling the Robotino
® to travel freely in all directions. Furthermore, it has an open electrical interface to easily install any additional sensors or actuators [
17].
2.1.1. Unit Drive
Three individual omnidirectional-drive units are attached at an angle of 120° to drive the Robotino
®. Each of the three drive units, as shown in the
Figure 2, consists of the following elements: DC motor with nominal speed of 3600 rpm and nominal current of 0.9 A, all-way roller that has the capability of traveling in any desired direction, gear unit with a gear ratio of 16:1, toothed belt with gear wheels, and incremental encoder.
The interaction of the three drive units with the multidirectional wheel gives possibilities to produce orientation of motion. This gives the advantage of roam-free traveling in any direction, without the demand for tuning with different speed-control methods of the motor. The three D.C. motors are used with their speed measurements collected by three shaft encoders mounted on each motor, while their speed control is made by their low-level individual PID controller used for this purpose [
18].
2.1.2. Infrared (IR) Distance Sensors
Three infrared distance sensors are integrated around the circumference of the chassis of Robotino
® for anti-collision purposes and detecting targets at an angle of 40° between each other. These sensors have the ability to measure an object’s relative distance of (4 to 30) cm [
19]. Each of the infrared distance sensors includes connection to one analog output signal and consists of an emitter and receiver. The infrared distance sensor works on the principle of the reflected light waves with power supply.
Figure 3 shows the output distance characteristics of the infrared sensor.
2.1.3. Odometry Mechanism
The odometry means the use of data from motion sensors to estimate (not determine) any change in position relative to starting point over time. The odometry gives the possibility of obtaining the actual position (X, Y) of the Robotino® with its orientation (θ) by integrating the linear velocity and angular velocity (Vx and Vy, respectively).
2.2. Type-2 Fuzzy Logic Controller Design for Robotino® Guiding
Far away from the details of the Type-2 fuzzy logic system design, the main design issues are highlighted in this section. A Type-2 fuzzy logic controller was designed by obtaining a comprehensive knowledge about the Robotino® dynamic system and its ability to accept a high-level algorithm to make the Robotino® reach its predefined path safely.
2.2.1. Type-2 Fuzzy Logic System
The typical architecture of a Type-2 fuzzy logic controller is similar to that of a Type-1 fuzzy logic controller, but with an extra step, which is called type reducer, as shown in
Figure 4. It contains five components: a fuzzifier, a fuzzy rule base, an inference engine, a type-reducer, and a defuzzifier [
20].
The main functions of each block of
Figure 4 can be explained as follows:
Fuzzifier: It converts crisp inputs into Type-2 fuzzy sets.
Fuzzy rule base: The rules in a Type-2 fuzzy logic stay the same as in a Type-1 fuzzy logic, but antecedents and consequents are performed by Type-2 fuzzy sets.
Fuzzy inference engine: It assigns membership functions by using the rules in the rule base and operators such as union and intersection fuzzy operation to drive the output.
Type-reducer: The Type-2 fuzzy outputs of the inference engine are transformed into Type-1 fuzzy sets. To obtain the scalar crisp control action, one must apply the defuzzification process based on one-dimensional fuzzy control action vector. Thus, the type-reducer brings this vector out of the two dimensions, using the following equations:
where
are the output of Type-2 upper and lower fuzzy sets, respectively;
are a singleton value replacing the output firing set by defined interval;
and
are crisp values representing the center of gravity (the consequent Type-1 fuzzy set); z
p is the area of the upper and lower membership functions; and A is the average of Y
left and Y
right of the reduced set [
12].
Defuzzification calculates the average to obtain the defuzzied value in a crisp manner by using the center of gravity.
Type-2 fuzzy logic systems are able to model levels of uncertainty that fuzzy logic Type-1 cannot.
2.2.2. Robotino® Guiding Type-2 Fuzzy Controller
The system block diagram is demonstrated in
Figure 5. At the beginning, Robotino
® is given a destination point coordinate to reach. The instant Robotino
® position and orientation are obtained from different sensors and compared with the desired values. The sensors’ different readings are used to adjust the parameters of the Type-2 fuzzy logic to bring out the required distance and orientation that should be followed to meet the predefined goal.
Figure 5.
System Block Diagram for Robotino® Guiding Using Type-2 Fuzzy Control. Xd, Yd, and θd are the desired values in X and Y coordinates’ position and orientation, respectively. Xa, Ya, and are the actual values in X and Y coordinates’ position and orientation, respectively. Xe, Ye, and are the errors and are calculated by taking the difference between the desired and the actual coordinates, using a comparator, as shown below:
Figure 5.
System Block Diagram for Robotino® Guiding Using Type-2 Fuzzy Control. Xd, Yd, and θd are the desired values in X and Y coordinates’ position and orientation, respectively. Xa, Ya, and are the actual values in X and Y coordinates’ position and orientation, respectively. Xe, Ye, and are the errors and are calculated by taking the difference between the desired and the actual coordinates, using a comparator, as shown below:
where R is the needed path resultant distance that is calculated in Equation (8).
Both the resultant instant distance (R) and orientation error () are the input variables for the Type-2 fuzzy logic controller.
The Type-2 fuzzy logic controller block has three main processing parts:
Fuzzification Process
Since nobody can determine the completeness of the fuzzy rules which are related to specific applications, a set of 63 fuzzy production rules were used. This is based on the design requirements (i.e., these rules can be extended according to more requirements’ design).
After many trials to obtain the best fuzzy set and its intervals for (R) and (
) based on their possible variation, two fuzzifiers were obtained. The R fuzzifier has five Type-2 fuzzy sets spread over a universe of discourse of (0–7) m, with an interval for [0.8,0.25], which represents the footprint of uncertainty for both the (R) and (
), as shown in
Figure 6 and
Figure 7, respectively.
The five fuzzy Type-2 fuzzy sets have indicative linguistics that are named as follows: off (O), too near (TN), very near (VN), near (N), far (F) very far (VF), and too far (TF). Moreover,
has a universe of discourse of (−180°, 180°), as shown in
Figure 7.
The nine fuzzy Type-2 fuzzy sets have indicative linguistics: too negative (TN), very negative (VN), medium negative (MN), negative small (NS), zero (Z), small positive (SP), medium positive (MP), very positive (VP), and too positive (TP).
Fuzzy Production Rules
A fuzzy production rule has the following form:
IF R is TN AND is PS THEN Vx is OFF, is SP.
That is:
If the resultant R is too near and the error is positive small, then the linear velocity in the
x-axis is off and the angular velocity is small positive. So, based on fuzzification, the process of inputting 63 fuzzy production rules was extracted, as listed in
Table 1:
The Output Processing
In this paper, the center-of-sets-type reduction method is used to compute Yleft and Yright based on the Karnik–Mendel algorithm (KMA) by applying Equations (1) and (2). Then the defuzzification process is implemented by using the average of Yleft and Yright as in Equation (3).
As was described in
Section 2, the output crisp value is obtained by using the Sugano action. Thus, for the linear velocity in the
x-axis, Vx has three set of actions, “OFF (O), Slow (SL) and Fast (F)”, which are related to speed (0 mm/s, 250 mm/s, and 350 mm/s, respectively), as shown in
Figure 8. They were chosen to guarantee enough time to take an action to avoid any detected obstacle, besides maintaining the smooth movement of the Robotino
®.
The fuzzy action of the angular velocity is presented in
Figure 8. It has five TSK actions: negative (N), small negative (SN), zero (O), small positive (SP), and positive (P). They are related to (−18 mm/s, −8 mm/s, 0 mm/s, 8 mm/s, and 18mm/s), respectively, as shown in
Figure 9. They were chosen to guarantee that Robotino
® rotates toward the needed orientation.
2.3. Type-2 Fuzzy Logic Controller Design for Obstacle Avoidance
It is necessary to include obstacle-avoidance capability to ensure that the robot reaches the predefined path safely. Using the available sensor measurements mounted on the Robotino® (right, left, and front) with 40° between each apart, with a range of (4–40) cm. If an obstacle exists at the center, it is recommended that Robotino® moves left, based on the pre-programmed algorithm. Knowing that, a scale conversion of (1 v = 12 cm) is used:
If output voltage from infrared sensor ≥ 1 V,
Then analog voltage value is set to (1);
Otherwise, set it to (0).
The input twenty-seven fuzzy production rules are extracted as listed in
Table 2.
As mentioned above, the center-of-sets type reduction method is used to compute Yleft and Yright based on the Karnik–Mendel algorithm (KMA). Then the defuzzification process is implemented by using the average of Yleft and Yright, as mentioned in Equations (6) and (7).
A Type-2 fuzzy logic control for avoiding obstacles was added. This controller receives readings from the three IR sensors detecting any possible obstacle existence, along with its distance. The fuzzy set is shown in
Figure 10 below:
As described in
Section 2, the output crisp value is obtained using Sugano action. Thus, for the linear velocity in Y coordinate Vy, two sets of action “Left (L) and Right(R)” are related to speed (−250 mm/s and 300 mm/s), respectively, as shown in
Figure 11, through many trails at different velocity chosen values:
2.4. The Overall System Block Diagram
The objective of this research was to design and implement a control algorithm that would enable Robotino
® to safely reach its predefined goal, collision free. To achieve the objective, the designed control algorithm was split into two main parts. The guiding mechanism that is responsible for driving Robotino
® toward its destination and the obstacle-avoidance mechanism that makes Robotino
® move collision free. The overall system block diagram shown in
Figure 12 unifies these parts.
2.5. MATLAB Interface Block
The available Robotino
® was designed to use MATLAB 2021b version, with the toolbox related to the Robotino
® for making use of the interface block elements, as illustrated in
Figure 13. The communication block is responsible for setting up wireless communication with Robotino
® via a suitable IP address. The constant block is specifically used for choosing the desired coordinates (Xd, Yd). The analog displays show the actual coordinates and orientation, as well. The subsystem block, named the MATLAB interface block, is explained in detail in
Figure 14; it consists of a subsystem for three infrared-distance-measured signals.
The IP block is utilized for limiting the three infrared-distance-measured voltage values and two subsystems for Robotino
® Guiding Type-2 fuzzy logic controller and obstacle avoidance Type-2 fuzzy logic controller, as shown below, in
Figure 15 and
Figure 16, respectively.
Figure 15 represents the Odometry block, which is responsible for sending the calculated odometric information to Robotino
® motors. Two subsystem blocks are used: one for the calculation of the resultant (R) and another one for the orientation (θ) calculation. A Multiplexer is used for selecting input–output crisp variables, the
x-axis linear velocity is Vx, and the angular velocity (
) is used for the Type-2 fuzzy logic controller. The omni-drive object corresponds to the Robotino
® omni-drive unit to calculate motors’ speeds in rpm. Finally, a subsystem block consists of the three motors’ actuating signals.
Figure 16 explains the obstacle-avoidance Type-2 fuzzy logic controller which receives its 3-sensor reading voltages and produces an action of
y-axis linear velocity to Robotino
®.
2.6. The Control Algorithm Flowchart
The procedural algorithmic flowchart is explained in
Figure 17.
3. Results
One of the challenges is moving the Robotino
® safely. Thus, multiple obstacles were put into consideration to test the Type-2 fuzzy logic controller’s ability for handling this challenge. It needs more time and energy to avoid an obstacle to keep moving toward its destination point. Thus, IR sensors have the ability to detect such an obstacle distance enough to avoid it completely.
Figure 18 shows the behavior of the Robotino
® when reaching its predefined destination, avoiding such obstacles and following certain steps of movement taken based on two Type-2 fuzzy controllers.
The implemented procedure is as below:
Step 1: Robotino® determines the starting point coordinates (0, 0, 0); in this case, there is no need to change its orientation.
Step 2: Robotino® starts to move forward at X-direction, with no change in Y-direction.
Step 3: Robotino® IR sensor detects an obstacle less than 40 cm. Thus, an action is taken to move it to the left, as planned before for priority, i.e., change in Y direction only.
Step 4: When no obstacle is detected, Robotino® corrects its rotational angle to move toward the destination from its instant position.
Step 5: Algorithm modifies Robotino’s
® position in the same manner as in Step 3 and Step 4, until it reaches its target with almost zero steady-state error, with a time response as shown in
Figure 19, where a 3602-Sample was acquired by using a period of 36 s; therefore, the sampling time was 10 ms.
The infrared sensor readings are shown in
Figure 20, whereas the D.C. motors’ current consumption is demonstrated in
Figure 21. The motors’ linear velocities, which clearly reflect the response of Robotino
® to avoid U-shape obstacles, are shown in
Figure 22. This indicates that all motors work to guide Robotino
® to the right direction to avoid collision.
The current of motor No. 2 is almost zero since Robotino® is moving forward; then motors No. 1 and No. 3 worked.
All motor currents are indicated with a value of about 1.5 amps at the 10th and the 28th second, and this is related to the action taken in Step 3, as described before.
At the end of the period, all motors were stopped, and zero current values were recorded.
Moreover, many case studies are tested, and some of them are described as below:
3.1. Dynamic Obstacles Scenario
It is proposed that a multi-position dynamic obstacle moves closely toward Robotino
® in its path at destination (0 cm, 400 cm). The rules in the control algorithm related to the 3-IR readings that are explained in
Table 2 were executed effectively, as shown in
Figure 23.
Time response is taken to confirm the effectiveness of the proposed control algorithm in the sense of position control. Real readings were collected by the aid of the available Robotino
® facilities. This brought out the time responses shown in
Figure 24 and
Figure 25. These responses show how Robotino
® behaved to avoid the dynamic obstacle, in addition to reaching its predefined target (0, 400 cm), with somehow negligible steady-state errors in both Y and X coordinates, as shown in
Table 3 below:
The steady-state error performance index shows the accurate obtained position based on the acceptable tolerance of (5%). Note that the target of the controller is used to help Robotino® reach its predefined destination effectively, regardless of the time taken.
3.2. Comparison Study
A research study presented in Ref. [
19] was taken as a comparative study to measure the capabilities of the proposed Type-2 fuzzy logic controllers for the following reasons:
The same model of the Robotino
® was used. A fuzzy logic controller of 153 fuzzy rules was implemented to control the Robotino
® path trajectory, while 63 fuzzy production rules were used for the same purpose in this research. The common environment was easy to be implemented, as used in Ref. [
19], for accurate environmental comparison. A real-time experiment was achieved with the exact operating conditions as in Reference [
19] to reach the desired goal of (3500 mm, 1500 mm), using the underlying Type-2 fuzzy logic controllers. A smooth response was obtained by employing a Type-2 fuzzy logic controller; a time delay of (1257 ms) took place by using the proposed Type-2 fuzzy logic controller with a robust response. Meanwhile, (2280 ms) was taken when using the Type-1 fuzzy logic controller with a slightly slow response. Anyway, the two responses reached the desired destination, with zero steady-state errors, as shown in
Figure 26 and
Figure 27.
The simulation results proved the robust manner of the Type-2 fuzzy logic controllers over the Type-1 fuzzy logic controller when the same operating conditions were used regarding the obstacle-avoidance case.
4. Conclusions
A Type-2 fuzzy logic controller algorithm was proposed to detect and avoid static or dynamic obstacles, using three infrared sensors. The required data for the algorithm from the three sensors are analog voltages which reflect the distance of the obstacle in cm, with a scale of (1 V = 12 cm). The sensors’ readings were fed to the obstacle-avoidance Type-2 fuzzy logic controller as crisp voltage inputs that were fuzzified into three fuzzy sets each. Its action based on the TSK Type-2 fuzzy algorithm was used to control the linear Robotino® velocity at the y-direction.
A Type-2 Fuzzy logic controller with 63 fuzzy rules was designed to control Robotino® guiding. It received two inputs: the resultant distance and orientation errors. So, when they were appropriately controlled, Robotino® moved toward its predefined path in a controllable manner. The fuzzy actions based on the TSK Type-2 fuzzy algorithm were used to control the linear velocity along the x-direction, along with the angular velocity.
An overall controller design which is capable of avoiding both static and dynamic obstacles was implemented effectively. The effectiveness of the Type-2 fuzzy controller was tested successfully by using many scenarios in real-time experiments by extracting meaningful information to represent the results to help in the evaluation of the proposed Type-2 fuzzy controller responses.
The designed Type-2 fuzzy logic controller was used in this research as a high-level controller, which showed a high degree of performance in the sense of both speed and steady-state error for both static and dynamic obstacle avoidance, as the experimental result proved. The resultant hardware system is also flexible, with a good dynamic response, which resulted in good accuracy.
There are some suggestions for promising future research using laser sensors. So, Robotino® can detect small near obstacles that an infrared sensor cannot because of its features. Moreover, other control strategies could be introduced, such as Neuro-Type-2 fuzzy controllers. This will help to decide which controller is fit to control Robotino® in both Robotino® guiding and obstacle-avoidance cases, compared with the designed Type-2 fuzzy logic controller responses. It is also worth it to apply the Mamdani Type-2 fuzzy logic algorithm and compare its results with those of the TSK Type-2 fuzzy algorithm applied in this research The Global Position System (GPS) concept could be introduced for guiding an outdoor mobile robot. A time-of-light camera can be added to create an accurate top-view map.