Intelligent Control and Sensor Fusion of a Mobile Robot Based Monitoring System

The monitoring of some physical variables, such as radiation, corrosion, high humidity or temperatures above 70°C, are potentially hazardous for humans. In order to reduce these risks, it is desirable to have automatic or semi-automatic monitoring systems whose hardware platforms can be designed to reach areas of difficult physical access or to monitor variables potentially dangerous to the health of the personnel who manually realize the measurements. Monitoring systems based on mobile robots in which sensors, associated electronics, and computer equipment have been integrated, offer the versatility of navigation in environments of interest with certain degree of autonomy. This mobility advantage has led some researches, in the last two decades, to focus on the development of control techniques and strategies to solve the mobile robot navigation problem in real non-structured or partially structured environments (Floreano et al., 2000), (Braünl, 2003), (Siegwart & Nourbakhsh, 2004). When using traditional approaches based on sequential tasks, some problems have come up in certain applications to achieve adequate real time responses. However, in recent years, many techniques are based on the control of navigation using genetic algorithms (Sung & Cho, 2004), fuzzy logic (Braunstingl & Sans, 1995), (Saffiotti et al., 1999), (Tunstel et al., 1997) and (Cuesta & Ollero, 2004) or the use of artificial neural networks (Sugihara et al., 2001) and (Kei et al., 2001). Fuzzy logic based navigation control schemes are particularly interesting due to their inference and approximate reasoning capabilities. However, a major disadvantage arises when these schemes require the processing of a large number of inputs and outputs, and consequently, a large number of rules, since the design becomes very complex. Nonetheless, several multistage or hierarchical control schemes have been proposed to reduce the number of fuzzy rules and the complexity of the controllers (Wang, 1996). In this work, the design, construction, and testing of a monitoring system based on a Khepera mobile robot are presented. The functions performed by the system are: (a) line following, (b) obstacle avoidance, (c) identification of test points along the path, and (d) recognition of the mark (bar code) located at each test point. For the task of navigation, a cascade fuzzy scheme is used, in which a first stage fusions the information collected by the optical sensors (fuzzy perception of the environment). This fusion process reduces the number of variables utilized by the second stage that controls the motion of the robot 32


Introduction
The monitoring of some physical variables, such as radiation, corrosion, high humidity or temperatures above 70°C, are potentially hazardous for humans. In order to reduce these risks, it is desirable to have automatic or semi-automatic monitoring systems whose hardware platforms can be designed to reach areas of difficult physical access or to monitor variables potentially dangerous to the health of the personnel who manually realize the measurements. Monitoring systems based on mobile robots in which sensors, associated electronics, and computer equipment have been integrated, offer the versatility of navigation in environments of interest with certain degree of autonomy. This mobility advantage has led some researches, in the last two decades, to focus on the development of control techniques and strategies to solve the mobile robot navigation problem in real non-structured or partially structured environments (Floreano et al., 2000), (Braünl, 2003), (Siegwart & Nourbakhsh, 2004). When using traditional approaches based on sequential tasks, some problems have come up in certain applications to achieve adequate real time responses. However, in recent years, many techniques are based on the control of navigation using genetic algorithms (Sung & Cho, 2004), fuzzy logic (Braunstingl & Sans, 1995), (Saffiotti et al., 1999), (Tunstel et al., 1997) and (Cuesta & Ollero, 2004) or the use of artificial neural networks (Sugihara et al., 2001) and (Kei et al., 2001). Fuzzy logic based navigation control schemes are particularly interesting due to their inference and approximate reasoning capabilities. However, a major disadvantage arises when these schemes require the processing of a large number of inputs and outputs, and consequently, a large number of rules, since the design becomes very complex. Nonetheless, several multistage or hierarchical control schemes have been proposed to reduce the number of fuzzy rules and the complexity of the controllers (Wang, 1996). In this work, the design, construction, and testing of a monitoring system based on a Khepera mobile robot are presented. The functions performed by the system are: (a) line following, (b) obstacle avoidance, (c) identification of test points along the path, and (d) recognition of the mark (bar code) located at each test point. For the task of navigation, a cascade fuzzy scheme is used, in which a first stage fusions the information collected by the optical sensors (fuzzy perception of the environment). This fusion process reduces the number of variables utilized by the second stage that controls the motion of the robot wheels. The navigation of the robot considers the presence of obstacles along the robot path and incorporates an algorithm based on fuzzy logic to avoid them and to return to the path. Along the trajectory, several light sources indicate the points where measurement of certain variables must be taken. The identification of these test points is carried out by means of a Kohonen neural network (Kohonen, 1996). The robot departs from the line and approaches the light source to a specified distance. Each test point has a bar code, which is identified by the processing of a one-dimensional image taken by a linear vision module. Once the measuring task at each point is completed, the data can be transferred to a PC using a radiofrequency module mounted on the robot.

The Khepera Robot
It is a mobile robot of 5.5 cm of diameter (Fig. 1). The manufacturer (K-team: www.kteam.com) developed this robot for research and didactical purposes. Algorithms for obstacle avoidance, object recognition using artificial vision, and robot arm manipulation can be designed and implemented on the robot microprocessor platform. More versatility is added to the robot with the following modules: 1. Linear vision, used for mark recognition and light source identification. 2. Analog and digital inputs and outputs which are used to add sensors and actuators to the robot system. 3. Radio communication between the robot and a PC. 4. One degree of freedom robot arm. The robot control, data processing, and communication system is based on a 32-bit, 16 MHz Motorola MC68331 microcontroller (μC). In addition, the robot includes 8 infrared (IR) sensors, heterogeneously deployed around the robot. These sensors measure the distance between the robot and the objects around it, thus providing a proximity measure. Furthermore, additional sensors and their associated electronics have been mounted on the robot ( Fig. 1.b) for measuring the temperature at prespecified points and sensing a black line on the floor which represents the main robot trajectory.

Robot Navigation
The multi-stage fuzzy navigation scheme of the robot is shown in Figure 2. In this diagram, several fuzzy systems are used to describe the surroundings around the robot, which in turn leads to the definition of the motion of each robot's motor.

Fig. 2. Multi-stage fuzzy navigation scheme
The first stage shown in Fig. 2 performs a sensory fusion of eight signals of proximity and two signals from the sensors that detect a black line drawn on the floor surface. These signals are the inputs to four fuzzy systems (LFP, RFP, BFP, and LP) that characterize the perception of the environment around the robot. The first fuzzy system, LFP (Left Fuzzy Perception), receives the signals from the proximity sensors x 1 , x 2 and x 3 . The second system, RFP (Right Fuzzy Perception), uses the signals coming from the proximity sensors x 4 , x 5 and x 6 . The third fuzzy system, BFP (Back Fuzzy Perception), processes the signals generated by the proximity sensors x 7 and x 8 . Finally, system LP (Line Perception) receives the signals from the infrared reflective sensors x 9 , x 10 , x 11 and x 12 . The first three perception systems describe approximately the surroundings of the robot (fuzzy description). The last system gives information of the line along which the robot moves. The four outputs, one per system, are used as the inputs to the following stage.

Second stage (Speed and Direction Control)
The second stage shown in Fig. 2 receives the four signals generated by the sensor fusion layer, processes the information and generates the signals that control the speed and direction of the robot's motors. The algorithm corresponding to this second stage and shown in Fig. 3 is to select one of four possible actions: Following of the line, wall following, obstacle avoidance or go to xy. If the sensor fusion layer (see tables 1-3), generates values indicating that the robot is close to an obstacle, then only the fuzzy rule base corresponding to the obstacle avoidance algorithm will be executed (  Table 4. Fuzzy rule base to perform the obstacle avoidance task If the sensor fusion layer indicates that (a) no obstacle is close to the robot and (b) the black line below the robot has been detected, then the fuzzy rule base corresponding to the line following task will be executed (table 5). When the sensor fusion indicates that (a) an obstacle is around the robot and (b) the robot is on its main trajectory (black line detected), then the wall following fuzzy rule base (table 6) is executed. Finally, if the sensor fusion indicates that no obstacle is present around the robot and that the black line has not been detected, then the robot moves forward slowly until an obstacle or the black line is detected. The results of the robot's navigation are described in more detail in section 6.

Test Point Detection
This stage, known as the detection of test points, is in charge of searching each test point along the robot main trajectory. One infrared light source is located at each test point. IR sensors around the robot measure the amount of IR light. A Kohonen type neural network (Haykin, 1999) is used to orientate and move the robot towards the light source. Using the array of six IR proximity sensors located on the front part of the robot, a computational algorithm that represents a Kohonen neural network was implanted on the robot processor. The function of this network is to detect the angular position between an infrared light source and the relative axis of the Khepera robot (Malmostrom & Munday, 1994).

Kohonen's Neural Network Characteristics
The neural network consists of an architecture of two layers. The inputs to the first layer (input layer) are the signals coming from the six photo-transistors of the proximity sensors located around the front of the robot. The second layer (competition layer) is composed of 90 neurons. Fig. 4 shows the angle detected by means of the artificial neural network algorithm implanted on the Khepera robot platform. The robot is supposed to approach the light source (test point) where the measurement of temperature has to be taken.

Training Data and Training Phase
For the training phase, a data set is obtained by placing the robot at a distance of 10 cm from a light source and then rotating the robot 180 degrees while recording both sensor vectors and associate angles. In the training phase, the network has been tuned using 1000 cycles. From one cycle to the next, the effective width of the neighborhood function is reduced from 45 to 1 neighboring neurons and the learning rate is reduced from 0.9 to 0.03. Because the output of the neural network only indicates which neuron in the competition layer has won, it is necessary to interpret appropriately this output. The function that computes the angle between the light source and transversal axis of the robot is given by:

Test Point Recognition
At a predetermined distance of the source, a linear vision camera and the corresponding processing of the linear image are used to identify the type of test point. To perform this task, the linear vision module K213 of the Khepera robot is used. Each test point has a bar code that identifies the point. The scanning of a bar code using the vision module produces a matrix of data (M) with 1x64 pixels: This matrix is then processed pixel to pixel by the equation: where i is the i-th value associated to each pixel, and i G is the resultant gradient for the ith pixel. Then, a threshold is used for each gradient value as follows: The purpose of this threshold is to reduce the noise inherently attached to the signals. The result of this processing is shown in Figure 6. The continuous black-line represents the scanning of the bar code. The values of the i G provide information of the changes between whites and blacks (bar codes) detected by the camera. This information is used to identify the type of test point.

Experimental Results
The experimental tests have been carried out using a personal computer which has the following characteristics: Pentium 4 at 3.0 GHz processor, a RAM of 512 Mbytes, and Windows as the operating system. The communication between the Khepera robot and the PC is established through a Graphical User Interface. The speed of communication through a standard RS-232 allows the monitoring of the sensors of the robot that sense temperature, proximity, intensity of ambient light, line on the floor, voltage applied to every motor and the scanning of the resultant image of a bar code. Likewise, it is possible to visualize, using a compass, the orientation of a light source with respect to the robot, computed by the Kohonen neural network.

www.intechopen.com
All the functions related to the robot navigation, IR light source identification, test point recognition (bar code reading), temperature measuring, and the graphical user interface are written in Matlab. The experimental setup is shown in Fig. 7. The mobile robot system has to navigate within its environment, following a main trajectory identified by a line painted on the floor, avoiding obstacles, searching for the test points, approaching each one of them to a certain distance, identifying each test point and measuring the temperature at each test point location. As can be seen in Fig. 7, there are three test points, M1, M2, and M3, in which IR light sources are located. Likewise, the bar codes behind the light sources can be appreciated on the setup. Relevant information associated to each bar code is stored on the PC. Finally, several obstacles were put along the main robot trajectory. The robot departs from the initial position (Home), sensing and following the black line (main trajectory) on the floor. The control of the velocity and direction of the robot's left and right motors is carried out using the fuzzy rule base associated to the fuzzy system "line following" (see table 5). As a result, the robot follows the line, correcting the velocity of the motors at each control cycle, depending on the degree of "black" and "white" detected by the line IR reflective sensors. The green arrows shown in Fig. 7 represent the robot behavior under the "line following" commands. This task, however, gets more complicated when an obstacle is encountered along the path (see point x2 in Fig. 7). At this point (obstacle present and line detected) the program jumps to the "wall following" block and executes the corresponding rule base (table 6) until the obstacle is left behind and the robot once again senses the line (see point x3). The robot behavior corresponding to the "wall following" is shown in Fig. 7 with blue arrows. While approaching test point M1, the robot detects, through its front phototransistors, the IR light source located at M1. The robot is commanded to a halt, and the system proceeds, using the ANN, to compute the orientation of the light source with respect to the transversal axis of the robot. Next, the robot approaches (see "Go to xy" block in Fig. 3) this source without the supervision of the motor velocity fuzzy controllers since these are disabled once the ANN initiates its operation. This approach is shown in Fig. 7 with yellow arrows. Once the angle between the robot and the light source is within ±5°, the Khepera linear vision module starts the scanning of the bar code located behind the light source. The dimensions of the width, spacing and number of bars are such that an adequate vision scope of the linear vision module is obtained at a distance of 10 cm. The linear image processing is performed as described in section 5. Once the bar code is identified to correspond to a valid test point, the control program sends the command to take the reading of temperature at M1. Subsequently, the robot returns to the main trajectory (black line on the floor) executing the commands of the functional block "Go to xy" (see Fig. 3). The robot reassumes the following of the main path searching for more test points. The above described sequence is repeated for the other test points (M2 and M3). If at some point the robot does not sense back the main path, as at point x8 in Fig. 7, the program instructs the robot to execute a line searching routine. During this search, the obstacle avoidance block prevents any collision, thus preserving the physical integrity of the robot. This behavior is shown in Fig. 7 with the red arrows. The number of test points is a known parameter. Thus, once the robot has reached the last one, the robot takes the road back until it reads the bar code corresponding to the initial position (Home), time at which the system stops completely.

Conclusions
The use of a sensor fusion layer, which processes the data in a fuzzy manner, reduces the amount of information to be processed by the stage that controls the speed and direction of the robot. Matlab has been used to implement the control scheme on the PC. The signals (commands and measurements) to and from the robot are transmitted through radiofrequency modules mounted on both the PC and the Khepera robot. The processing is fast enough, preventing delays that could damage the robot. In addition, the fusion sensor layer reduces the disturbances caused by the noise, mainly originated by the light sources, thus giving certain degree of robustness to the system: the robot moves smoothly. On the other hand, the response of the neural network is very close to the ideal one. In fact, part of the error comes from the non homogeneous disposition of the sensors. Nevertheless, there offers a resolution of ±2 degrees, with an execution time of 10 ms, which is ideal for applications that require real time processing. At this moment, only temperature is being measured by the prototype. The temperature measured value is sent to the PC using a radiofrequency module.