# A Multiagent Architecture for Mobile Robot Navigation Using Hierarchical Fuzzy and Sliding Mode Controllers

Authors: Dorra Ayedi; Maïssa Boujelben; Chokri Rekik
Journal: Mathematical Problems in Engineering
 (2018)

---

## Abstract

The challenge of this work is to implement an algorithm which enables the robot to achieve independent activities in the purpose of achieving a common goal, which consists in autonomous navigation in a partially unknown environment. The use of multiagent system is convenient for such a problem. Hence, we have designed a structure composed of four agents dedicated to perception, navigation, static, and dynamic obstacle avoidance. Those agents interact through a coordination system.


---

## Body

## 1. Introduction

In recent years, multiagent system becomes a very well-known field used in many applications such as E-commerce, E-health applications, network intrusion detection systems, telematic and transport systems [1], and robotic system [2, 3], which is the topic of this paper.Indeed, several researchers have used multiagent system in the development of robotic system [4]. Multiagent system is very useful in the case of multirobots which execute different tasks, which should be coordinated with each other [5].Furthermore, such architecture can be used in the case of a single robot. According to the principle of the multiagent system, which consists in a number of agents coordinated and dedicated to achieve common objectives, each robot activity is considered as an agent. Those agents are interacting with each other through a specific system of coordination.The interest in the multiagent system has increased, since it has several properties compared to other architectures [6]. Among those properties, we mention decentralized control, which permits the continuity of the system even when some parts fail, coordinability, predictability, and adaptability [2, 3].Therefore, the structure of multiagent system may be established as a first step. Then, the activity of each agent is defined. Finally, a coordination system between agents is presented. Those steps are applied to implement the multiagent system on an intelligent wheelchair in [7]. Five agents were designed by Busquets et al. for robot navigation [8]. Innocenti et al. have proposed in [2] a multiagent structure containing four agents, combined with each other in order to obtain the desired goal. Boujelben et al. have simplified this architecture and reduced the number of agents to three, dedicated to perception, navigation, and obstacle avoidance [3].Among the agents defined in the case of robotic field, we cite navigation agent and obstacle avoidance agent. In the literature, the design of controllers for mobile robot navigation is based on two basic approaches: the reactive and the deliberative approach [9].The deliberative method is applied when the situation needs a previous knowledge of the environment [10]. Path planning is the principle of this approach. Researchers have developed methods of control based on deliberative approach such as PID control [11] and sliding mode [12].For an unknown environment, the deliberative approach is not sufficient. Therefore, the reactive method is required, which is based on sensor’s measurements and does not require information about the environment [9]. In the literature, neural network [13], potential field [14], and fuzzy logic system [15] are the most popular developed methods.In this work, we have treated the problem of an environment containing both static and dynamic obstacles. Our mobile robot should find a safe path to reach the desired target. For that purpose, we have proposed to apply the multiagent system to control the robot. Our suggested structure contains four agents:(i)
Perception agent, which obtains the necessary information measured by the sensors of the robot and affords them to the system(ii)
Navigation agent, responsible for guiding the robot to the target(iii)
Static obstacle avoidance, which keeps the robot away from static obstacles(iv)
Dynamic obstacle avoidance, which keeps the robot away from dynamic obstaclesThose agents are related through a cooperative system which allows them to achieve common goals.Here, the navigation agent uses a simple fuzzy controller. Indeed, Chia-Feng Juang has tested the efficiency of fuzzy logic system in the field of robot navigation [16], comparing the performance of this method, while introducing some optimization approaches. In this work, fuzzy logic system was implemented in the navigation agent for its high robustness and good performances, without applying optimization methods.For the static obstacle avoidance agents, a deliberative method is applied, since the position of obstacles is known. Sliding mode is chosen to be implemented on this agent thanks to its fast response and its robustness against variations. For the dynamic obstacles, the position of obstacles is unknown and unexpected. The deliberative approach is not sufficient, due to the complicated computation of the following path in the presence of dynamic obstacle. Fuzzy logic system is applied, since it is considered as a reactive method.However, a large number of inputs are obtained in the case of applying the standard fuzzy logic system, due to the high quantity of information given by all robot’s sensors. To simplify the problem, we have proposed to use the hierarchical fuzzy system which consists in dividing the fuzzy system into subsystems [15].This paper is organized as follows. In Section2, the model of the used robot is presented. Section 3 introduces the adopted multiagent architecture, detailing the role of each agent. Coordination between agents is mentioned in Section 4. Finally, Section 5 presents the simulation results to test the validity of this work.


## 2. Modeling of the Mobile Robot

The platform used in this work is a Khepera II robot. This mobile robot is convenient for our experiments, due to its equipment consisting on two independent wheels and eight sensors attached to its contour which ensure a best detection to the obstacles, as it is shown in Figure1 [17].Figure 1
The schematic model of the Khepera II robot.The linear right and left wheels velocitiesVR and VL as well as the angle α between the robot direction and the x-axis are responsible for guiding the robot, using the following kinematic model:(1)x˙=VR+VL2cos⁡α,y˙=VR+VL2sin⁡α,α˙=VR-VLL,where L is the distance between the right and the left wheels.The adopted strategy is to control the robot to a final destination in an environment containing both static and dynamic obstacles using the multiagent system.


## 3. Multiagent Architecture Model

The basic structure of the multiagent model is presented in Figure2.Figure 2
The multiagent system architecture.It is composed of four agents which interact with each other through a cooperative system. This system of coordination will be detailed in Section5.The information provided by the sensor’s measurements is collected in the perception agent. According to those data, one of the three other agents (robot navigation, static obstacle avoidance, and dynamic obstacle avoidance) is chosen to control the robot. If the environment is safe, the robot navigation agent is activated, which is responsible for guiding the robot from an initial position to a final target. If an obstacle is located on the path of the robot, one of the obstacle avoidance agents is activated. Those two agents are in charge of moving away from obstacles, one of them applying a reactive method and the second using a deliberative approach [18]. The choice between those two agents depends on type of obstacle faced (static, dynamic).


### 3.1. Navigation Agent

The role of the navigation agent, based on fuzzy logic control, is to bring the robot to a final target when the environment is supposed to be free from obstacles [3]. This task is achieved by calculating the distance d separating the robot center from the goal and the angle φ which separates the distance to the target and the robot orientation (see Figure 3), then giving them as inputs to a fuzzy logic controller [19]. This controller is responsible for the function of navigation.Figure 3
Representation of the parametersd and φ.The distanced and the angle φ are calculated using those following expressions:(2)d=xT-x2+yT-y2,(3)φ=θT-αRwith(4)θT=arctan⁡yT-yxT-x.Fuzzy logic system is a well-known technique recommended for robust controller’s conception [20]. Its advantage consists in considering the variation field of input variables, unlike Boolean logic in which the values of the variables are 0 or 1 [3, 21].Figures4 and 5 show the fuzzy partition of the input variables d and φ. The distance d varies in the range [0,700] mm, whereas the interval of the angle φ is defined between -π/2 and π/2. Five membership functions are used for the distance, and seven memberships functions are considered for the angle. Therefore, 35 rules are obtained. More details and inference tables are provided in [15, 21].Figure 4
Membership functions ford (in mm).Figure 5
Membership functions forφ (in rad).An example of a fuzzy rule which represents a link between fuzzy inputs variables (d and φ) and fuzzy outputs variables (VL and VR) is expressed as follows.Ifd is Ai and φ is Bi, then VR=yi and VL=zi, where αi and βi are the level activation of the rule i.Therefore, the expressions of the output variables are(5)VR=∑i=1rαiyi∑j=1rαj,VL=∑i=1rβizi∑j=1rβj.


### 3.2. Static Obstacle Avoiding Agent

Now, we study the case of the existence of a static obstacle in the path of the robot. To avoid it, a deliberative approach is applied, which consists in defining a trajectory that the robot should follow [22, 23]. The proposed approach is based on following a specific trajectory generated by limit cycle equations applying the sliding mode control [22]. Some details about the limit cycle trajectory and the sliding mode control are presented in the following subsections.


#### 3.2.1. Limit Cycle Trajectory

First of all, we define a convergence circle around each static obstacle. According to previous works [22, 24], this circle corresponds to a dangerous zone. Its radius is defined as Rc=Rr+Ros+δ (see Figure 6), whereFigure 6
The convergence circle.(i)
d is the distance between the robot center and the target,
(ii)
d
o
s is the distance between the robot center and the static obstacle,
(iii)
R
ris robot’s radius,
(iv)
R
o
sis static obstacle’s radius,
(v)
δ is a safety margin for collision avoidance.Now we consider the following differential equation, which defines the limit cycle trajectory of the robot [25]. This system of equation permits us to obtain the position (xr,yr) of the robot enabling it to track the convergence cycle defined previously [22]:(6)xr˙=ayr+xrRc2-xr2-yr2,yr˙=-axr+yrRc2-xr2-yr2,where a is a scalar which specifies the orbital path direction (clockwise or counterclockwise), according to the position of the robot with respect to the obstacle. If a=1, the rotational direction is clockwise. If a=-1, this direction is counterclockwise. Figure 7 shows both cases with different initial conditions.Figure 7
The shape of the limit cycles, (a) clockwise and (b) counterclockwise.
(a)
(b)In the purpose of determining the appropriate direction, a new reference frame is definedS=(C,Xo,Yo) centered on the obstacle, as it is presented in Figure 8.Figure 8
The new reference frameS=(C,Xo,Yo).Applying this reference, the new coordinates of the robot are obtained(xor,yor) [24]. Then the sign of yor determines the motion direction (clockwise if yor>0 and counterclockwise otherwise).


#### 3.2.2. Sliding Mode Control

Once the reference trajectory has been determined, the approach proposed for tracking this path is the sliding mode control. This method ensures fast response, robustness, and good results in tracking the desired trajectory [26].This method is based on choosing the appropriate sliding surface denoted bys along which the sliding motion occurs [12, 26].To illustrate the principle of the sliding mode control, we consider Figure9, where the tracking error pe=(xe,ye,αe)T between the reference portion pr=(xr,yr,αr)T and the current position p=(x,y,α)T of the robot is represented and expressed by(7)xeyeαe=cos⁡αsin⁡α0-sin⁡αcos⁡α0001×xr-xyr-yαr-α.Figure 9
Tracking error.By deriving this system of equations, we obtain(8)xe˙ye˙αe˙=yew-v+vrcos⁡αe-xew+vrsin⁡αewr-w.The error portionpe must converge to 0, which means that p converges to pr. To achieve this purpose, the adequate linear and angular velocities v and w should be found.The design of the switching function is a hard task due to the robot model which is a multiple-input nonlinear system [22]. Lee et al. have proposed in [12] to consider xe=0. As a consequence, the Lyapunov equation is chosen as(9)V=12ye2.By derivingV, we obtain(10)V˙=yeye˙=ye-xew+vrsin⁡αe=-xeyew-vryesin⁡arctan⁡vrye,where αe=-arctan⁡(vrye) is the switching function condition.α
e is always positive. Therefore, the global reaching condition given as V˙≤0 is always satisfied [22]. Then we define the vector of sliding surfaces as(11)s=s1s2=xeαe+arctan⁡vrye.If we forces to converge to 0, consequently xe→0 and αe→-arctan⁡(vrye), which leads to ye→0.To reduce the problem of chattering [12], we replace the switching function by a saturation function defined as [27](12)s˙=-ksat⁡s.By substitutingarctan⁡(vtye) with γ, we obtain(13)s˙=s1˙s2˙=-k1sat⁡s1-k2sat⁡s2xe˙αe˙+∂γ∂vrvr˙+∂γ∂yeye˙=yew-v+vrcos⁡αewr-w+∂γ∂vrvr˙+∂γ∂ye-xew+vrsin⁡αe. The obtained control law is(14)vw=yew+vrcos⁡αe+k1sat⁡s1wr+∂γ∂vrvr˙+∂γ∂yevrsin⁡αe+k2sat⁡s2with ∂γ/∂vr=ye/1+(vrye)2 and ∂γ/∂ye=vr/1+(vrye)2.


### 3.3. Dynamic Obstacle Avoiding Agent

In the following section, we consider that the robot faces on his path dynamic obstacles. For its safety, the robot must know at every instance the position of the obstacle to avoid it [15]. The idea is to calculate at each moment the distance d expressed in (2). If this distance is lower than 50 mm, we apply the hierarchical fuzzy system as a reactive approach for obstacle avoidance.We have chosen to work with the hierarchical fuzzy system rather than the standard fuzzy system due to the huge number of rules obtained if we apply one fuzzy controller [17, 21]. The principle of this method consists in decomposing the fuzzy system into subsystems having lower size and related to each other in a hierarchical way. This structure is presented in Figure 10.Figure 10
Block diagram of the hierarchical fuzzy system.According to this block diagram, each controller from the first layer is related to a sensor of the Khepera II robot. This sensor is required to send the distancedi and the angle φi(i=1,…,8) to an ith controller, which gives as inputs the left and right wheels velocities VLi and VRi, and an index denoted by I0i. This index indicates the degree of collision between the obstacle and the robot [21, 28]. This degree is expressed as follows:(15)I0i=∑j=135μjdi,φiIj∑j=k35μkdi,φi.The expressions ofVLi and VRi are given as(16)VRi=∑j=1rμjdi,φiyj∑k=1rμkdi,φi,VLi=∑j=1rμjdi,φizj∑k=1rμkdi,φi,whereIj is the consequence of the jth rule and μj is the activation level of the jth rule.Now the controllers are regrouped into three groups as the eight sensors of the Khepera II robot (see Figure11). This decomposition is made in order to detect the obstacles existing on the right, left, and back sides.Figure 11
Position of the eight sensors of the robot.The controllers related to each group of sensors are associated with a fuzzy controller. Therefore, we obtain three controllers which give the indexesIleft, Iright, and Iback. Those new indexes indicate the collision degree between the robot and the obstacle existing on the left, the right, and back sides, respectively.Finally,Ileft, Iright, and Iback are associated with a last fuzzy controller. The outputs of this controller are ItR and ItL. Unlike the previous indexes, those two last indicators give information about the absence of obstacle around the robot. ItR and ItL are expressed as follows:(17)ItR=∑j=13∑i=13μijIijR∑l=13∑k=13μkl,ItL=∑j=13∑i=13μijIijL∑l=13∑k=13μkl.The inference tables of all the indexes mentioned previously are given in [3, 28].At least, the velocities expressions are written as(18)VR=ItRVtR+∑i=1nI0iVLi,VL=ItLVtL+∑i=1nI0iVRiwith(19)VRi=∑j=1rμjdi,φiyj∑k=1rμkdi,φi,VLi=∑j=1rμjdi,φizj∑k=1rμkdi,φi,VtR=∑j=1rμjd,φyj∑k=1rμkd,φ,VtL=∑j=1rμjd,φzj∑k=1rμkd,φ.


## 3.1. Navigation Agent

The role of the navigation agent, based on fuzzy logic control, is to bring the robot to a final target when the environment is supposed to be free from obstacles [3]. This task is achieved by calculating the distance d separating the robot center from the goal and the angle φ which separates the distance to the target and the robot orientation (see Figure 3), then giving them as inputs to a fuzzy logic controller [19]. This controller is responsible for the function of navigation.Figure 3
Representation of the parametersd and φ.The distanced and the angle φ are calculated using those following expressions:(2)d=xT-x2+yT-y2,(3)φ=θT-αRwith(4)θT=arctan⁡yT-yxT-x.Fuzzy logic system is a well-known technique recommended for robust controller’s conception [20]. Its advantage consists in considering the variation field of input variables, unlike Boolean logic in which the values of the variables are 0 or 1 [3, 21].Figures4 and 5 show the fuzzy partition of the input variables d and φ. The distance d varies in the range [0,700] mm, whereas the interval of the angle φ is defined between -π/2 and π/2. Five membership functions are used for the distance, and seven memberships functions are considered for the angle. Therefore, 35 rules are obtained. More details and inference tables are provided in [15, 21].Figure 4
Membership functions ford (in mm).Figure 5
Membership functions forφ (in rad).An example of a fuzzy rule which represents a link between fuzzy inputs variables (d and φ) and fuzzy outputs variables (VL and VR) is expressed as follows.Ifd is Ai and φ is Bi, then VR=yi and VL=zi, where αi and βi are the level activation of the rule i.Therefore, the expressions of the output variables are(5)VR=∑i=1rαiyi∑j=1rαj,VL=∑i=1rβizi∑j=1rβj.


## 3.2. Static Obstacle Avoiding Agent

Now, we study the case of the existence of a static obstacle in the path of the robot. To avoid it, a deliberative approach is applied, which consists in defining a trajectory that the robot should follow [22, 23]. The proposed approach is based on following a specific trajectory generated by limit cycle equations applying the sliding mode control [22]. Some details about the limit cycle trajectory and the sliding mode control are presented in the following subsections.


### 3.2.1. Limit Cycle Trajectory

First of all, we define a convergence circle around each static obstacle. According to previous works [22, 24], this circle corresponds to a dangerous zone. Its radius is defined as Rc=Rr+Ros+δ (see Figure 6), whereFigure 6
The convergence circle.(i)
d is the distance between the robot center and the target,
(ii)
d
o
s is the distance between the robot center and the static obstacle,
(iii)
R
ris robot’s radius,
(iv)
R
o
sis static obstacle’s radius,
(v)
δ is a safety margin for collision avoidance.Now we consider the following differential equation, which defines the limit cycle trajectory of the robot [25]. This system of equation permits us to obtain the position (xr,yr) of the robot enabling it to track the convergence cycle defined previously [22]:(6)xr˙=ayr+xrRc2-xr2-yr2,yr˙=-axr+yrRc2-xr2-yr2,where a is a scalar which specifies the orbital path direction (clockwise or counterclockwise), according to the position of the robot with respect to the obstacle. If a=1, the rotational direction is clockwise. If a=-1, this direction is counterclockwise. Figure 7 shows both cases with different initial conditions.Figure 7
The shape of the limit cycles, (a) clockwise and (b) counterclockwise.
(a)
(b)In the purpose of determining the appropriate direction, a new reference frame is definedS=(C,Xo,Yo) centered on the obstacle, as it is presented in Figure 8.Figure 8
The new reference frameS=(C,Xo,Yo).Applying this reference, the new coordinates of the robot are obtained(xor,yor) [24]. Then the sign of yor determines the motion direction (clockwise if yor>0 and counterclockwise otherwise).


### 3.2.2. Sliding Mode Control

Once the reference trajectory has been determined, the approach proposed for tracking this path is the sliding mode control. This method ensures fast response, robustness, and good results in tracking the desired trajectory [26].This method is based on choosing the appropriate sliding surface denoted bys along which the sliding motion occurs [12, 26].To illustrate the principle of the sliding mode control, we consider Figure9, where the tracking error pe=(xe,ye,αe)T between the reference portion pr=(xr,yr,αr)T and the current position p=(x,y,α)T of the robot is represented and expressed by(7)xeyeαe=cos⁡αsin⁡α0-sin⁡αcos⁡α0001×xr-xyr-yαr-α.Figure 9
Tracking error.By deriving this system of equations, we obtain(8)xe˙ye˙αe˙=yew-v+vrcos⁡αe-xew+vrsin⁡αewr-w.The error portionpe must converge to 0, which means that p converges to pr. To achieve this purpose, the adequate linear and angular velocities v and w should be found.The design of the switching function is a hard task due to the robot model which is a multiple-input nonlinear system [22]. Lee et al. have proposed in [12] to consider xe=0. As a consequence, the Lyapunov equation is chosen as(9)V=12ye2.By derivingV, we obtain(10)V˙=yeye˙=ye-xew+vrsin⁡αe=-xeyew-vryesin⁡arctan⁡vrye,where αe=-arctan⁡(vrye) is the switching function condition.α
e is always positive. Therefore, the global reaching condition given as V˙≤0 is always satisfied [22]. Then we define the vector of sliding surfaces as(11)s=s1s2=xeαe+arctan⁡vrye.If we forces to converge to 0, consequently xe→0 and αe→-arctan⁡(vrye), which leads to ye→0.To reduce the problem of chattering [12], we replace the switching function by a saturation function defined as [27](12)s˙=-ksat⁡s.By substitutingarctan⁡(vtye) with γ, we obtain(13)s˙=s1˙s2˙=-k1sat⁡s1-k2sat⁡s2xe˙αe˙+∂γ∂vrvr˙+∂γ∂yeye˙=yew-v+vrcos⁡αewr-w+∂γ∂vrvr˙+∂γ∂ye-xew+vrsin⁡αe. The obtained control law is(14)vw=yew+vrcos⁡αe+k1sat⁡s1wr+∂γ∂vrvr˙+∂γ∂yevrsin⁡αe+k2sat⁡s2with ∂γ/∂vr=ye/1+(vrye)2 and ∂γ/∂ye=vr/1+(vrye)2.


## 3.2.1. Limit Cycle Trajectory

First of all, we define a convergence circle around each static obstacle. According to previous works [22, 24], this circle corresponds to a dangerous zone. Its radius is defined as Rc=Rr+Ros+δ (see Figure 6), whereFigure 6
The convergence circle.(i)
d is the distance between the robot center and the target,
(ii)
d
o
s is the distance between the robot center and the static obstacle,
(iii)
R
ris robot’s radius,
(iv)
R
o
sis static obstacle’s radius,
(v)
δ is a safety margin for collision avoidance.Now we consider the following differential equation, which defines the limit cycle trajectory of the robot [25]. This system of equation permits us to obtain the position (xr,yr) of the robot enabling it to track the convergence cycle defined previously [22]:(6)xr˙=ayr+xrRc2-xr2-yr2,yr˙=-axr+yrRc2-xr2-yr2,where a is a scalar which specifies the orbital path direction (clockwise or counterclockwise), according to the position of the robot with respect to the obstacle. If a=1, the rotational direction is clockwise. If a=-1, this direction is counterclockwise. Figure 7 shows both cases with different initial conditions.Figure 7
The shape of the limit cycles, (a) clockwise and (b) counterclockwise.
(a)
(b)In the purpose of determining the appropriate direction, a new reference frame is definedS=(C,Xo,Yo) centered on the obstacle, as it is presented in Figure 8.Figure 8
The new reference frameS=(C,Xo,Yo).Applying this reference, the new coordinates of the robot are obtained(xor,yor) [24]. Then the sign of yor determines the motion direction (clockwise if yor>0 and counterclockwise otherwise).


## 3.2.2. Sliding Mode Control

Once the reference trajectory has been determined, the approach proposed for tracking this path is the sliding mode control. This method ensures fast response, robustness, and good results in tracking the desired trajectory [26].This method is based on choosing the appropriate sliding surface denoted bys along which the sliding motion occurs [12, 26].To illustrate the principle of the sliding mode control, we consider Figure9, where the tracking error pe=(xe,ye,αe)T between the reference portion pr=(xr,yr,αr)T and the current position p=(x,y,α)T of the robot is represented and expressed by(7)xeyeαe=cos⁡αsin⁡α0-sin⁡αcos⁡α0001×xr-xyr-yαr-α.Figure 9
Tracking error.By deriving this system of equations, we obtain(8)xe˙ye˙αe˙=yew-v+vrcos⁡αe-xew+vrsin⁡αewr-w.The error portionpe must converge to 0, which means that p converges to pr. To achieve this purpose, the adequate linear and angular velocities v and w should be found.The design of the switching function is a hard task due to the robot model which is a multiple-input nonlinear system [22]. Lee et al. have proposed in [12] to consider xe=0. As a consequence, the Lyapunov equation is chosen as(9)V=12ye2.By derivingV, we obtain(10)V˙=yeye˙=ye-xew+vrsin⁡αe=-xeyew-vryesin⁡arctan⁡vrye,where αe=-arctan⁡(vrye) is the switching function condition.α
e is always positive. Therefore, the global reaching condition given as V˙≤0 is always satisfied [22]. Then we define the vector of sliding surfaces as(11)s=s1s2=xeαe+arctan⁡vrye.If we forces to converge to 0, consequently xe→0 and αe→-arctan⁡(vrye), which leads to ye→0.To reduce the problem of chattering [12], we replace the switching function by a saturation function defined as [27](12)s˙=-ksat⁡s.By substitutingarctan⁡(vtye) with γ, we obtain(13)s˙=s1˙s2˙=-k1sat⁡s1-k2sat⁡s2xe˙αe˙+∂γ∂vrvr˙+∂γ∂yeye˙=yew-v+vrcos⁡αewr-w+∂γ∂vrvr˙+∂γ∂ye-xew+vrsin⁡αe. The obtained control law is(14)vw=yew+vrcos⁡αe+k1sat⁡s1wr+∂γ∂vrvr˙+∂γ∂yevrsin⁡αe+k2sat⁡s2with ∂γ/∂vr=ye/1+(vrye)2 and ∂γ/∂ye=vr/1+(vrye)2.


## 3.3. Dynamic Obstacle Avoiding Agent

In the following section, we consider that the robot faces on his path dynamic obstacles. For its safety, the robot must know at every instance the position of the obstacle to avoid it [15]. The idea is to calculate at each moment the distance d expressed in (2). If this distance is lower than 50 mm, we apply the hierarchical fuzzy system as a reactive approach for obstacle avoidance.We have chosen to work with the hierarchical fuzzy system rather than the standard fuzzy system due to the huge number of rules obtained if we apply one fuzzy controller [17, 21]. The principle of this method consists in decomposing the fuzzy system into subsystems having lower size and related to each other in a hierarchical way. This structure is presented in Figure 10.Figure 10
Block diagram of the hierarchical fuzzy system.According to this block diagram, each controller from the first layer is related to a sensor of the Khepera II robot. This sensor is required to send the distancedi and the angle φi(i=1,…,8) to an ith controller, which gives as inputs the left and right wheels velocities VLi and VRi, and an index denoted by I0i. This index indicates the degree of collision between the obstacle and the robot [21, 28]. This degree is expressed as follows:(15)I0i=∑j=135μjdi,φiIj∑j=k35μkdi,φi.The expressions ofVLi and VRi are given as(16)VRi=∑j=1rμjdi,φiyj∑k=1rμkdi,φi,VLi=∑j=1rμjdi,φizj∑k=1rμkdi,φi,whereIj is the consequence of the jth rule and μj is the activation level of the jth rule.Now the controllers are regrouped into three groups as the eight sensors of the Khepera II robot (see Figure11). This decomposition is made in order to detect the obstacles existing on the right, left, and back sides.Figure 11
Position of the eight sensors of the robot.The controllers related to each group of sensors are associated with a fuzzy controller. Therefore, we obtain three controllers which give the indexesIleft, Iright, and Iback. Those new indexes indicate the collision degree between the robot and the obstacle existing on the left, the right, and back sides, respectively.Finally,Ileft, Iright, and Iback are associated with a last fuzzy controller. The outputs of this controller are ItR and ItL. Unlike the previous indexes, those two last indicators give information about the absence of obstacle around the robot. ItR and ItL are expressed as follows:(17)ItR=∑j=13∑i=13μijIijR∑l=13∑k=13μkl,ItL=∑j=13∑i=13μijIijL∑l=13∑k=13μkl.The inference tables of all the indexes mentioned previously are given in [3, 28].At least, the velocities expressions are written as(18)VR=ItRVtR+∑i=1nI0iVLi,VL=ItLVtL+∑i=1nI0iVRiwith(19)VRi=∑j=1rμjdi,φiyj∑k=1rμkdi,φi,VLi=∑j=1rμjdi,φizj∑k=1rμkdi,φi,VtR=∑j=1rμjd,φyj∑k=1rμkd,φ,VtL=∑j=1rμjd,φzj∑k=1rμkd,φ.


## 4. Cooperative System between Agents: Utility Function

On this section, the cooperative control system is detailed. In fact, the coordination between the agents is necessary to avoid contradictory actions [2].For this purpose, the utility function is proposed [2, 3]. The idea consists in giving each agent an utility function. According to the value obtained from this function, which varies between 0 and 1, the choice of the agent which controls the robot is made.We begin by introducing the navigation utility functionUn presented in Figure 12.Figure 12
The utility function of the navigation agent.This function is drawn according to the system defined as below:(20)Un=1ifd≤100α∗d+βif100<d<5000.2ifd≥500,where α is the line slope and β is the ordinate at the origin.The numerical values of this system are chosen so that the robot adopts the navigation agent when the distance from the target is less than 100 mm (Un is maximal). When the distance varies between 100 and 50 mm, the utility function decreases linearly with d. When the distance becomes more than 500 mm, the value of Un is minimal, which means that the navigation agent becomes disabled.The utility function related to the static and dynamic obstacle avoidance agents, respectively,Usoa and Udoa is combination between the distances which separate the robot from the static and dynamic obstacles, respectively, dso and ddo and the orientation of the robot with respect to the static and dynamic obstacles, respectively, φso and φdo. They are defined as(21)Usoa=Udso×Uφso,Udoa=Uddo×Uφdobeing(22)Udso=1ifdso≤Rcα1∗dso+β1ifRc<dso<1000.2ifdso≥100,Uddo=1ifddo≤50α2∗ddo+β2if50<ddo<1000.2ifddo≥100.The same principle of the navigation agent is adopted here. For the dynamic obstacle, the robot enters to the dangerous zone when the distance from the obstacle is less than 50 mm. While for the static obstacle, the dangerous zone is defined as the convergence circle, which means that the robot should move far away when the distance from the obstacle is less thanRc, which is the radius of the convergence circle calculated previously (see Figures 13 and 14).Figure 13
The utility function related to the distance of the static obstacle avoidance agent.Figure 14
The utility function related to the distance of dynamic obstacle avoidance agent.On the other hand,φso and φdo are represented by the same function Uφo:(23)Uφo=α3∗φo+β3if-π2≤φo≤-π61if-π6≤φo≤π6-α4∗φo+β4ifπ6≤φo≤π2.This utility function is illustrated in Figure15.Figure 15
The utility function related to the angle of the dynamic obstacle avoidance agent.α
i
(
i
=
1
,
…
,
4
) is the line slope, and βi is the ordinate at the origin.Once the values of the utility functions are obtained, a negotiation is made to choose which agent the robot selects. Actually several ways of action selection exist [29]. Here, the actual agent sends its value to the agent in conflict. The one having the higher value is the one who controls the robot.


## 5. Simulation Results

This section is dedicated to test the efficiency of the proposed method. So different configurations were tested. We begin with the simple one. We consider an environment containing a static obstacle, and we must prove that the robot must go around the obstacle in the case of clockwise or counterclockwise motion direction. For that purpose, we have proposed two configurations (see Figures16 and 17). In both configurations, the robot starts from the initial position (X,Y)=(0,0) with two different initial directions (α=π/2 and α=0) and reaches the goal (Xt,Yt)=(300,300). The robot is able to avoid the static obstacle applying the sliding mode approach to track the cycle limit trajectory regardless of the robot motion direction (clockwise or counterclockwise).Figure 16
Simulation results with one static obstacle(α=π/2).Figure 17
Simulation results with one static obstacle(α=0).Now, we treat the case of environments containing both static and dynamic obstacles.In Figure18, the coordination between the agents is verified in en environment containing a static obstacle and a dynamic obstacle which moves horizontally from an initial position (Xdo,Ydo)=(200,100) to the left.Figure 18
Simulation results for one dynamic obstacle and one static obstacle.Figures19 and 20 deal with the problem of cluttered environment. In Figure 19, the dynamic obstacle moves vertically from the point (Xdo,Ydo)=(75,225) to the down. The configuration shows that the system can be adaptable to any change of the obstacle’s position or number.Figure 19
Simulation results in a cluttered environment.Figure 20
Simulation results in a cluttered environment.Figure20 presents the case of highly complicated environments with several static and dynamic obstacles with different trajectories. The first dynamic obstacle starts from the position (Xdo1,Ydo1)=(300,50), and the second obstacle moves from the point (Xdo1,Ydo1)=(50,500). The robot detects any static obstacle that comes on its way and avoids it by tracking its convergence circle. For the dynamic obstacles, the robot is able to avoid them and reach the target, generating a smooth trajectory.According to Figures21, 22, and 23, there is no collision between the robot and the dynamic obstacle in the three previous simulations. The coordinates of the robot and the dynamic obstacles are not equal at the same time collision t, which means that the robot can move away perfectly from the dynamic obstacles.Figure 21
Coordinates of the robot and the dynamic obstacle according to time in the case of a horizontal mobile obstacle trajectory.Figure 22
Coordinates of the robot and the dynamic obstacle according to time in the case of a vertical mobile obstacle trajectory.Figure 23
Coordinates of the robot and the dynamic obstacles according to time in the case of two different mobile obstacles trajectories.The simulations presented in this section illustrate the efficiency of the proposed method and the ability of the robot to transit properly from an agent to another using the suggested utility functions and to reach the final destination safely.


## 6. Conclusion

On this work, a multiagent system is implemented for autonomous navigation of mobile robot in an environment containing static and dynamic obstacles. According to the data sent to the perception agent, a coordination system based on utility function is applied. Therefore, the suitable agent is chosen: navigation agent based on simple fuzzy system and dedicated to bring the robot to the target, static obstacle avoidance responsible for leading the robot away from static obstacles tracking an orbital trajectory with the sliding mode control, and dynamic obstacle avoidance which has a role in avoiding dynamic obstacles applying hierarchical fuzzy system. Some tests are made and presented to test the validity of the proposed method.



---

*Source: 9315925-2018-02-13.xml*