**4.2 The kinematic model**

In this study, the mobile robot is a system, which is subject to non holonomic constraints. Its position in the environment is represented by P=(x,y,θ), where (x, y) is the position of the robot in the reference coordinate system XOY, and the heading direction θ is taken counter clockwise from the positive direction of X-axis (see figure 2). X'O'Y' is the reference coordinate according to the robot system. It allows the robot to locate the objects in the environment.

The robot is composed of two wheels (left and right). The velocity, acceleration and orientation angle of the robot is assured by the fuzzy controllers.

Fig. 2. Robot's kinematic model.

#### **4.3 The fuzzy controller**

150 Serial and Parallel Robot Manipulators – Kinematics, Dynamics, Control and Optimization

One of the ultimate goals of robotics is to realise autonomous robots that are able to organise their own internal structure and to achieve their goals through interactions with dynamically changing environments. The robot should take decisions on-line using only sensors providing limited information (without prior information about the position of

Our main objective is to make the robot able to predict the nature and the velocity of obstacles (static or moving) in order to minimise conflict situations, to avoid collision and to achieve a specific goal. At this stage, we use a perception model composed of eight ultrasonic sensors. We choose this type of sensors because it has some attractive properties, e.g. cheapness, reliability and soon, which makes it widely used in mobile robots. This type

According to this model of perception, we divide the robot's space into three subspaces controlled by three groups of sensors (see figure 1). The subspaces are: (1) the front area "F" controlled by the first group composed of sensors number 1,2,7,8, (2) the left area "L" controlled by the second group composed of sensors number 3, 4, and (3) the right area "R"

In this study, the mobile robot is a system, which is subject to non holonomic constraints. Its position in the environment is represented by P=(x,y,θ), where (x, y) is the position of the robot in the reference coordinate system XOY, and the heading direction θ is taken counter clockwise from the positive direction of X-axis (see figure 2). X'O'Y' is the reference coordinate according to the robot system. It allows the robot to locate the objects in the

The robot is composed of two wheels (left and right). The velocity, acceleration and

orientation angle of the robot is assured by the fuzzy controllers.

obstacles and their trajectories) when it navigates autonomously in dynamic spaces.

**4.1 The perception model** 

of sensor calculates the distance between the robots.

Fig. 1. The Robot's perception areas.

**4.2 The kinematic model** 

environment.

controlled by the third group composed of sensors number 5, 6.

A Fuzzy Controller (FC) is a control system, whose input is the output of the process to be controlled (sensory data, internal state). Its outputs are commands for the actuators of the process. The ranges of the input and output parameters/variables are represented by membership functions and fuzzy sets. In addition, the interactions between input and output variables/parameters are represented by fuzzy rules. In a nutshell, system input parameters and variables are encoded into fuzzy representations using well defined "If/Then" rules which are converted into their mathematical equivalents. These rules would then determine actions to be taken based on Implication Operators such as Zadeh Min/Max (Zadeh, 1973), or Mamdani Min (Mamdani, 1974). The fuzzified data is then put through a defuzzification process via Center of Gravity, Center of Sum or Mean of Maxima methods to obtain actual commands for the actuators of the process.

In our work, we use the Mamdani fuzzy inference methodology in order to provide the adequate way of modelling the relevance of the controller. For the defuzzification process we choose the Center of Gravity method by applying the formula 1. The crisp value U\* is the geometrical center of the output fuzzy value µ(y), where µ(y) is the union of all the contributions of rules whose Degree Of Freedom (DOF) is more than zero, y is the universe of discourse and b is the number of samples.

$$\mathbf{U}^\* = \frac{\sum\_{\mathbf{i}=\mathbf{a}}^{\mathbf{b}} \mu(\mathbf{y}) \times \mathbf{y}}{\sum\_{\mathbf{i}=\mathbf{a}}^{\mathbf{b}} \mu(\mathbf{y})} \tag{1}$$

#### **4.4 The principle of the behaviour controller based on Fuzzy Logic**

The use of fuzzy logic in the design of autonomous navigation behaviours is nowadays quite popular in robotic. The set of behaviours that are being implemented can include, for example, the following of walls, corridors or the avoidance of obstacles. However, usually the existing fuzzy logic methods use only the distance between the robot and the obstacle in order to avoid conflicts and so deal with static environments.

We propose a fuzzy model for the navigation in dynamic and uncertain environments based on"the nature" and "the velocity" of obstacles. For example, if there is an obstacle in front of the robot, it is more logical to reason about its velocity. In fact, the distance between the robot and the obstacle allows it to immediately change the trajectory without taking into account the obstacle nature (mobile or static) and whether the obstacle is going in the same

A Reactive Anticipation for Autonomous Robot Navigation 153

considered as a mobile one. In this situation, the robot can expect that the trajectory will be free after a period of time and then it does not need to change its direction. If the DTC is negative, then obstacle is mobile and it is going towards the robot. In this case, the robot should minimise its velocity in order to avoid conflict with this obstacle, and then decide to change the direction completely if it is possible (moves to another subspace, which is safe), or wait until this mobile object moves away (the current subspace will be free), if there is no

 DTC=TCN-TCR (3) The advantage of this information is that it allows the robot not only to avoid collision and local minimum at real time with obstacles around it, but also to anticipate their natures and

We present in figure 4 the FLC of angular velocity. We describe four linguistic variables that are: the DTCL, DTCF, DTCR, and TO. These variables represent respectively: the difference time collision on the left, the difference time collision in the front, the difference time collision on the right and the current target orientation between the robot and the goal. Each

DTC have two membership functions: Fixed Obstacle and Moving Obstacle. The DTCL is used to control the left area. We present in algorithm 1 the reasoning process of the robot that is used to predict the nature of the nearest obstacle in this area. Thus, if the DTCL is

Algorithm 1. The robot's behaviour is based on the prediction of the nature of the obstacles

smaller or equal to Δ (the time interval between two successive perceptions) it means that the obstacle is static; else it is considered as mobile. We can obtain the value of this variable from the formula 4. The same reasoning process is applied to the right area based on the DTCR that can be obtained from the formula 5. The value of DTCF variable can be obtained from the formula 6. Algorithm 2 describes the reasoning mechanism of the robot that is used to predict the nature of the nearest obstacle in the front area. For example, if the DTCF is equal to zero, this means that the obstacle is static. Therefore, the robot should change its trajectory immediately in order to avoid collision. Otherwise, if the DTCF is equal to infinity, this means that the space is free. In order to move toward a specific goal, the robot

their positions in the future so as to predict conflict situations.

Fig. 4. Fuzzy controller of heading angular

1: **if** (DTCi) ≤ the time interval Δ then

2: The obstacle is static

4: The obstacle is mobile

5: Free space

in left and right areas

3: **else**

6: **end if**

other free subspace.

direction of the robot or not. In contrast, the velocity allows the robot to predict if there is conflict in the future. In the reminder of this section, we present robot behaviour modules implemented as fuzzy logic controllers. Each behaviour module receives data input that describes the situation and produces an output to be addressed to the actuators. Our fuzzy architecture is composed of two fuzzy controllers. The first controller is in charge of determining the angular velocity of the two wheels. This controller allows the robot to change its angular orientation based on the prediction of the nature of the obstacle, in order to avoid conflict and to move closer to its target. The second controller uses the velocity of the obstacle. It is in charge of determining whether the robot's speed should be increased (accelerate its speed if there is a free space) or decreased (minimise its speed if there is an obstacle in its trajectory).
