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.

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 obstacles

Those 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 Section 2, 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 Figure 1 [17].

The linear right and left wheels velocities and as well as the angle between the robot direction and the -axis are responsible for guiding the robot, using the following kinematic model:where 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 Figure 2.

It is composed of four agents which interact with each other through a cooperative system. This system of coordination will be detailed in Section 5.

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 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.

The distance and the angle are calculated using those following expressions:with

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].

Figures 4 and 5 show the fuzzy partition of the input variables and . The distance varies in the range  mm, whereas the interval of the angle is defined between and . 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].

An example of a fuzzy rule which represents a link between fuzzy inputs variables ( and ) and fuzzy outputs variables ( and ) is expressed as follows.

If is and is , then and , where and are the level activation of the rule .

Therefore, the expressions of the output variables are

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 (see Figure 6), where

(i) is the distance between the robot center and the target,(ii) is the distance between the robot center and the static obstacle,(iii)is robot’s radius,(iv)is 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 of the robot enabling it to track the convergence cycle defined previously [22]:where 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 , the rotational direction is clockwise. If , this direction is counterclockwise. Figure 7 shows both cases with different initial conditions.

In the purpose of determining the appropriate direction, a new reference frame is defined centered on the obstacle, as it is presented in Figure 8.

Applying this reference, the new coordinates of the robot are obtained [24]. Then the sign of determines the motion direction (clockwise if 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 by along which the sliding motion occurs [12, 26].

To illustrate the principle of the sliding mode control, we consider Figure 9, where the tracking error between the reference portion and the current position of the robot is represented and expressed by

By deriving this system of equations, we obtain

The error portion must converge to , which means that converges to . To achieve this purpose, the adequate linear and angular velocities and 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 . As a consequence, the Lyapunov equation is chosen as

By deriving , we obtainwhere is the switching function condition.

is always positive. Therefore, the global reaching condition given as is always satisfied [22]. Then we define the vector of sliding surfaces as

If we force to converge to , consequently and , which leads to .

To reduce the problem of chattering [12], we replace the switching function by a saturation function defined as [27]

By substituting with , we obtain The obtained control law iswith and .

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 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.

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 distance and the angle to an controller, which gives as inputs the left and right wheels velocities and , and an index denoted by . This index indicates the degree of collision between the obstacle and the robot [21, 28]. This degree is expressed as follows:

The expressions of and are given as

where is the consequence of the rule and is the activation level of the rule.

Now the controllers are regrouped into three groups as the eight sensors of the Khepera II robot (see Figure 11). This decomposition is made in order to detect the obstacles existing on the right, left, and back sides.

The controllers related to each group of sensors are associated with a fuzzy controller. Therefore, we obtain three controllers which give the indexes , , and . Those new indexes indicate the collision degree between the robot and the obstacle existing on the left, the right, and back sides, respectively.

Finally, , , and are associated with a last fuzzy controller. The outputs of this controller are and . Unlike the previous indexes, those two last indicators give information about the absence of obstacle around the robot. and are expressed as follows:

The inference tables of all the indexes mentioned previously are given in [3, 28].

At least, the velocities expressions are written aswith

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 function presented in Figure 12.

This function is drawn according to the system defined as below: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 ( is maximal). When the distance varies between 100 and 50 mm, the utility function decreases linearly with . When the distance becomes more than 500 mm, the value of is minimal, which means that the navigation agent becomes disabled.

The utility function related to the static and dynamic obstacle avoidance agents, respectively, and is combination between the distances which separate the robot from the static and dynamic obstacles, respectively, and and the orientation of the robot with respect to the static and dynamic obstacles, respectively, and . They are defined asbeing

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 than , which is the radius of the convergence circle calculated previously (see Figures 13 and 14).

On the other hand, and are represented by the same function :

This utility function is illustrated in Figure 15.

is the line slope, and 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 Figures 16 and 17). In both configurations, the robot starts from the initial position with two different initial directions ( and ) and reaches the goal . 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).

Now, we treat the case of environments containing both static and dynamic obstacles.

In Figure 18, 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 to the left.

Figures 19 and 20 deal with the problem of cluttered environment. In Figure 19, the dynamic obstacle moves vertically from the point to the down. The configuration shows that the system can be adaptable to any change of the obstacle’s position or number.

Figure 20 presents the case of highly complicated environments with several static and dynamic obstacles with different trajectories. The first dynamic obstacle starts from the position , and the second obstacle moves from the point . 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 Figures 21, 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 , which means that the robot can move away perfectly from the dynamic obstacles.

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.

Conflicts of Interest

The authors declare that there are no conflicts of interest regarding the publication of this paper.