# A Neuro-Fuzzy Controller for Collaborative Applications in Robotics Using LabVIEW

Authors: Hiram E. Ponce; Dejanira Araiza; Pedro Ponce
Journal: Applied Computational Intelligence and Soft Computing
 (2009)

---

## Abstract

A neuro-fuzzy controller was designed and
implemented using LabVIEW over a mobile robotic platform.
The controller is based on fuzzy clusters, neural networks, and
search techniques. Also, wireless communication with Bluetooth
protocol was used to communicate the robot with the controller
running in LabVIEW, allowing a simple collaborative task that
consisted in pick and place objects, through knowing the
position of the robot and measuring the distance to the objects.
The neuro-fuzzy controller was split in two parts: the position
controller and the evasion controller against collisions.


---

## Body

## 1. Introduction

Many problems that  affect society can be solved using software and hardware that includes powerful tools from artificial intelligence. For example, determining the amount of money necessary in a specific bank according to the demand, having a database to know the most common sicknesses in Mexican children to have enough medicine and institutions to provide health care assistance, making decisions in small businesses, all this means the possibility to use technological resources to reach development and improvement of life’s quality among people in different countries [1].For all the mentioned above, the generation of generic and global tools to develop algorithms and programs is a challenging area that deserves the attention of the academic community, as more trained professionals are needed in order to develop and use the tools to improve situations and to solve problems. This project is focused in using modern tools like fuzzy control, neural networks, computational search, wireless communication, and others, to generate material and ideas for implementing solutions. The results of it can be extrapolated beyond the task that was selected to develop the collaborative work, but can be done in any other field as examples described in [2, 3].The main objective of this project includes implementing a collaborative task in a group of microrobots, implicating autonomous navigation in a determined area, through the use and development of algorithms. In order to achieve this, the work was divided in three goals: designing and implementing a neuro-fuzzy controller based on previous works [4, 5] to get the autonomous navigation inside a determined area and implementing the collaborative work.Additionally, some specific objectives were stated: using LabVIEW [6] to design and implement the algorithms to evaluate their use, designing a collaborative task for the micro robots used in the project, and generating a new structural design, cheap and flexible, for future projects.The first steps in the project implicated research about the theory that sustains this work, mainly about fuzzy controllers, neural networks, fuzzy clusters, and search techniques. Subsequently, the efforts were focused in designing the neuro-fuzzy controller [7], including a model of the system to validate the controller, and making the proper adjustments to the physical structure of the robots. Finally, implementation of intercommunication was achieved using Bluetooth technology, and the collaborative task was designed, followed by several tests and measurements to validate the work.


## 2. Prototype Description

Robots used in this project contemplate a15×15 cm design, with a plastic base, two differential modified servomotors, a simple wheel for support, and different boards including a microprocessor Basic Stamp 2, three Ping ultrasonic range sensors for navigation place them one in front and the other two at left and right sides, and an Embedded Bluetooth Transreceiver for wireless communication, on each robot. This system also includes a magnet for the collaborative task.In order to control the avoidance of obstacles and the movement of the robot, a neuro-fuzzy controller was implemented to run over the LabVIEW platform [6], in communication with the robots through Bluetooth protocol, using a Belkin USB-Bluetooth adapter.


## 3. Neuro-Fuzzy Controller

A neuro-fuzzy controller is used in robots in order to obtain the desired movements on them, that is, reaching a final position getting from an initial position. Figure1 is a block diagram of the neuro-fuzzy controller proposed. It is based on trigonometric series [4] and an interface to communicate the robot with the processing system. In fact, a collaborative work has to be in a real-time-based processing. Then, trigonometric artificial neural networks [4] are implemented because their training phase only requires one epoch. In addition, this controller allows obstacles avoidance and adaptation of parameters according to interactions between the robot and its environment.Figure 1
Proposed neuro-fuzzy controller [4].The robot is a MIMO system in which we have to control the rotation of the two wheels via two digital pulses coming from the microcontroller. So, it can be divided in two neuro-fuzzy controllers to simplify the designing of the fuzzy controller part: one that avoids collision against obstacles, and one to control the position through the motion in the servos, considering a position as the set point.


### 3.1. Neural Networks

Based on the definition of a fuzzy controller and its parts, and referring to Sugeno approach in the inference mechanism [8], neural networks can be applied to the clusters obtained through the Fuzzy Cluster Means (FCM) method. Fuzzy inferences of the form if_then, and a neural network in the output, can be expressed like(1)Ri:ifx1isBi1,…,xnisBinthenyi=gi(*),
where, yi=gi can be a group of trigonometric functions [4], considering that Fourier series can be used to model the input in a neural network, and this method is useful to obtain the coefficients of the weights [9].Considering a Fourier series defined with (2) and similarities which describes neural networks as (3) it makes evident the possibility of its description, where, coefficients of (2) are the Fourier Coefficients:
(2)f(x)=12a0+∑n=1∞(ancos(nωx)+bnsin(nωx)),ω=πl,(3)Y=f(∑i=0nXiωi).The topology includes two layers of neurons, the first composed by neurons with a trigonometric activation function and a weight that depends directly on the frequency. The second layer adds the trigonometric functions, multiplied by their respective weights plus a constant, as Figure2 shows [9]. The coefficients or weights in the neural network can be calculated considering if the signal is even or odd. A minimum squares method is used to find the coefficients analytically, through (4) converted in a matrix [9]: (4)∑i=1mωig(b0,b1,…,bp;xi)sin(jωx)=∑i=1mωiyisin(jωx)forj≠0.Figure 2
Topology of a trigonometric artificial neural network [9].


### 3.2. Fuzzy Cluster Means

In the inputs, it has been proved that better results are obtained using the method called Fuzzy Cluster Means to adapt and tune membership functions according to the environment surrounding a robot. This method allows the minimization of the distance between the elements of each cluster and the maximization of the distances that separate the centroids in the clusters. This can be defined by the objective function in (5).Neural networks based on trigonometric series can be applied after obtaining the clusters, to soften the shapes of the membership functions, and to approach them to trigonometric series [4]: (5)J=12∑x=1N∑i=1cμx,imd2(zx,vi),
where μx,i is the membership value of the element x={1,2,…,N} in the fuzzy cluster i={1,2,…,c}; vi is the centroid in each cluster; zx, with x={1,2,…,N}, is the group of data; m is the fuzzyfication value; d2(zx,vi) is the Euclidian distance between zx and vi; N is the number of samples in data; c is the number of clusters [10].


### 3.3. Tabu Search Method

The Tabu search method is a heuristic way to find a best solution combining several strategies: descendent method, long and short terms memory, and diversification strategies. As the search is happening, some of all the possible solutions are named as “taboo” and included in a list through the memories, during a defined number of iterations. These solutions will not be visited in some points of the search; meanwhile better solutions are found to replace an initial proposed solution [11].An algorithm to find a better set of fuzzy rules than the proposed ones was developed and programmed, and it is included in Figure3.Figure 3
Tabu search algorithm.


### 3.4. Design of Each Controller

The procedure of designing is described in Figures4 and 5, for both the position controller and the evasion one.Figure 4
Design of the position controller.Figure 5
Design of the evasion controller.The final neuro-fuzzy controller can be explained as following.(i)
Two neuro-fuzzy controllers run parallel: one for avoiding obstacles and one for correcting the position of robots.(ii)
Each neuro-fuzzy controller has the structure of Figure1, in which inputs are fuzzified by memberships obtained from a fuzzy clustering determined by the environment and trigonometric neural networks. Then, a set of optimal rules obtained by the Tabu search method are evaluated in order to obtain a desired fuzzy output. Finally, outputs are computed by trigonometric neural networks. As seen, membership functions and rules are changing depending on the environment, given to robots the characteristic of adaptation.(iii)
Avoidance obstacles neuro-fuzzy controller uses the left, right, and center measured distances between the robot and the nearest obstacle. Outputs are the pulses for correcting the position of the robot generated by some obstacle.(iv)
Position neuro-fuzzy controller uses the final position as inputs and outputs are the pulses for correcting the position of the robot.(v)
Avoidance obstacle controller has the highest priority.


## 3.1. Neural Networks

Based on the definition of a fuzzy controller and its parts, and referring to Sugeno approach in the inference mechanism [8], neural networks can be applied to the clusters obtained through the Fuzzy Cluster Means (FCM) method. Fuzzy inferences of the form if_then, and a neural network in the output, can be expressed like(1)Ri:ifx1isBi1,…,xnisBinthenyi=gi(*),
where, yi=gi can be a group of trigonometric functions [4], considering that Fourier series can be used to model the input in a neural network, and this method is useful to obtain the coefficients of the weights [9].Considering a Fourier series defined with (2) and similarities which describes neural networks as (3) it makes evident the possibility of its description, where, coefficients of (2) are the Fourier Coefficients:
(2)f(x)=12a0+∑n=1∞(ancos(nωx)+bnsin(nωx)),ω=πl,(3)Y=f(∑i=0nXiωi).The topology includes two layers of neurons, the first composed by neurons with a trigonometric activation function and a weight that depends directly on the frequency. The second layer adds the trigonometric functions, multiplied by their respective weights plus a constant, as Figure2 shows [9]. The coefficients or weights in the neural network can be calculated considering if the signal is even or odd. A minimum squares method is used to find the coefficients analytically, through (4) converted in a matrix [9]: (4)∑i=1mωig(b0,b1,…,bp;xi)sin(jωx)=∑i=1mωiyisin(jωx)forj≠0.Figure 2
Topology of a trigonometric artificial neural network [9].


## 3.2. Fuzzy Cluster Means

In the inputs, it has been proved that better results are obtained using the method called Fuzzy Cluster Means to adapt and tune membership functions according to the environment surrounding a robot. This method allows the minimization of the distance between the elements of each cluster and the maximization of the distances that separate the centroids in the clusters. This can be defined by the objective function in (5).Neural networks based on trigonometric series can be applied after obtaining the clusters, to soften the shapes of the membership functions, and to approach them to trigonometric series [4]: (5)J=12∑x=1N∑i=1cμx,imd2(zx,vi),
where μx,i is the membership value of the element x={1,2,…,N} in the fuzzy cluster i={1,2,…,c}; vi is the centroid in each cluster; zx, with x={1,2,…,N}, is the group of data; m is the fuzzyfication value; d2(zx,vi) is the Euclidian distance between zx and vi; N is the number of samples in data; c is the number of clusters [10].


## 3.3. Tabu Search Method

The Tabu search method is a heuristic way to find a best solution combining several strategies: descendent method, long and short terms memory, and diversification strategies. As the search is happening, some of all the possible solutions are named as “taboo” and included in a list through the memories, during a defined number of iterations. These solutions will not be visited in some points of the search; meanwhile better solutions are found to replace an initial proposed solution [11].An algorithm to find a better set of fuzzy rules than the proposed ones was developed and programmed, and it is included in Figure3.Figure 3
Tabu search algorithm.


## 3.4. Design of Each Controller

The procedure of designing is described in Figures4 and 5, for both the position controller and the evasion one.Figure 4
Design of the position controller.Figure 5
Design of the evasion controller.The final neuro-fuzzy controller can be explained as following.(i)
Two neuro-fuzzy controllers run parallel: one for avoiding obstacles and one for correcting the position of robots.(ii)
Each neuro-fuzzy controller has the structure of Figure1, in which inputs are fuzzified by memberships obtained from a fuzzy clustering determined by the environment and trigonometric neural networks. Then, a set of optimal rules obtained by the Tabu search method are evaluated in order to obtain a desired fuzzy output. Finally, outputs are computed by trigonometric neural networks. As seen, membership functions and rules are changing depending on the environment, given to robots the characteristic of adaptation.(iii)
Avoidance obstacles neuro-fuzzy controller uses the left, right, and center measured distances between the robot and the nearest obstacle. Outputs are the pulses for correcting the position of the robot generated by some obstacle.(iv)
Position neuro-fuzzy controller uses the final position as inputs and outputs are the pulses for correcting the position of the robot.(v)
Avoidance obstacle controller has the highest priority.


## 4. Collaborative Task

The general idea of the collaborative task selected implies the detection and collection of small objects through the use of basic sensors–ultrasonic and infrared sensors. After localizing and collecting the objects, the robots move to deposit them in a certain place, using intercommunication between the computer and the robots to control the movements.Certain physical parameters have been stated for the collaborative task: a plane surface with2×2 m per side, 15 cm tall walls around the surface, five spherical objects with metallic incrustations, and half illuminated space. Other specific parameters are 10 cm minimum of separation between each object, with a predetermined distribution for the objects and also for the robots. This is illustrated in Figure 6.Figure 6
Fixed parameters for the collaborative task.The proposed algorithm for the scenario is shown in a schematic way in Figure7.  The initial position of each robot is called home, and it is the place where the objects will be deposited after the recollection. In particular, the algorithm was proved with two robots. Actually, scaling the number of robots is also possible with the implementation of this neuro-fuzzy controller.Figure 7
Proposed algorithm for the simple collaborative task.


## 5. Results

### 5.1. Neuro-Fuzzy Controller

The main result is the generic neuro-fuzzy controller. It was designed based on a Sugeno approach for generic fuzzy controllers, and it was programmed on LabVIEW [6] as the frame to create a generic method that allows to create any kind of neuro-fuzzy controller only changing basic parameters like the number of membership functions. This generic controller allows the scalability on the number of robots in the collaborative task. The total controller implemented on LabVIEW is shown in Figure 8.Figure 8
Controller developed in LabVIEW (Block diagram).


### 5.2. Position Controller

With all programs ready in LabVIEW [6], several tests were made to verify the position controller error in different trajectories and also to prove the right behavior of the evasion controller using the most common obstacle cases in the proposed scenario.For the position controller, a linear desired position results in the trajectory shown in Figure9, with an error of 5.46%. On the other hand, a diagonal desired position has the trajectory of Figure 10 and an error of 6.2%.Figure 9
Trajectory for a linear desired position.Figure 10
Trajectory for a diagonal desired position.The set of fuzzy rules proposed was verified using Tabu search method, with this set of rules and other selected randomly, with the results shown in Tables1 and 2 for both cases, respectively.Table 1
Tabu method results for the proposed FAM.
InitialTabu resultLeft pulseRight pulseLeft pulseRight pulse01001005051010101050501001000100100505555550501001000000000000000000000000000100100505-5-5-5-5500101001000100100505-10-10-10-105050100100Table 2
Tabu method results for the random FAM.
InitialTabu resultLeft pulseRight pulseLeft pulseRight pulse00000000000005050505100100101010105050505010101010010500505505010000100005555505005051001001001001010101001001001001050505050


### 5.3. Mathematical Model of the Plant

In order to finish the design and adjustment of the position control, a mathematical model from the navigation behavior was needed. For this, the servomotors were characterized first, and then a model that predicts the position according to the real motion of the servos was developed.This model describes the relation between the pulses applied to the servos and the displacement considering the direction of the turn. Characterization of servomotors was done. The result of the measures is shown in Figure11, and this can be expressed as(6)(6)θ=11.927p+9.220.Figure 11
Measurement of angles in the servomotor.Define the input variableu=[u1u2]Tas the vector of machine times that are needed to move the wheels, and the output variable y=[y1y2y3]Tas the position vector in the 2D navigation plane, with direction angle extension respecting from a coordinated plane M in ℜ2 defined in the initial states.In general, the action of the plan can be divided in two main blocks: the angular displacement model and the placement in theM plane, as Figure 12 shows.Figure 12
Block diagram of the model.Figure 13
Angular displacement model alter applying a groupu of pulses to the wheels. Point  GM represents the point of interest in the robot, and plane R is defined from it. (a) Plane R before the pulse input, (b) plane R after the movement produced by the pulses.The angular displacement model considers an input variableu=[u1u2]T, which contains the information about the activation time in the rotation of each wheel, u1 is the activation time in the left wheel, and u2 represents the activation time in the right wheel. The output variable yd=θR in this block is the relative angular displacement of plane R in ℜ2, with its center in the origin GM, mapped referring to the robot itself. This block determines the relative angular displacement according to the previous location and the new position after the movement (Figure 11).A series of criteria was determined to delimitate the angular displacement model. (a) The robot can move forward or backward and the vectoru has its elements with the same value. (b) The robot can turn to the left, and u1=0,u2≠0. (c) The robot can turn to the right, and u1≠0,u2=0. (d) The robot can remain static and the vector u has 0 values. (e) A movement forward takes place if the vector is positive. (f) A movement backward takes place if the vector is negative.The absolute displacement depends on the actual position in planeM; so a point GM is defined as the origin of Euclidian plane R (Figure 14). Point GM has the direction value measured in plane M. Mathematically, GM is a position vector (7):(7)GM=[xGyGαR]T.Figure 14
Relation between planeM and plane R, both in ℜ2.The transformation between planeR and plane M is done using homogeneous matrices [12, 13], where the mapping φ:R→M starts with (8):(8)φ′=Tβ′,
where(9)T=[cosαR-sinαRxGsinαRcosαRyG001],β′=[01].The coordinates inφ correspond to the new position in plane M. The new angle of direction is (10):
(10)αRk+1={αRk,u1=u2,αRk+θR,u1=0,u2≠0,αRk-θR,u1≠0,u2=0.The output vector is defined asy=[y1y2y3]T, where the  values of its element imply (11):
(11)y=[φαRk+1].Twenty observations were taken to validate the proposed model.


### 5.4. Evasion Controller

Four different cases were tested to verify the evasion against obstacles, which are shown in Figure15 together with the trajectory followed by the robot on each case. The  evaluation of this controllerisacceptable.Figure 15
Different cases for the evasion controller evaluation.


### 5.5. Wireless Communication

In order to send and receive the numerical data from the microcontroller to the computer and back, a basic protocol was designed. This protocol sent characters such as “go” or “hi” as the control signal, and then the respective digits of the correction signal or the feedback.To establish and implement the communication through Bluetooth, a routine was designed based on predetermined blocks including exploration to find the device, sending, and receiving.


### 5.6. Designing a New Robot

Searching for a more flexible and less expensive platform, a new structure was designed and implemented as shown in Figure16, using plastics and polymers to substitute aluminum and other heavier materials. The saving was of 16% in costs and 10% in weight.Figure 16
Implementation of the new structural design.


### 5.7. Collaborative Task

Several experiments were made to observe the performance of the proposed system during the collaborative task, and the results of the trajectories followed by the robots are shown in Figure17, according to the algorithm proposed previously. The total time was 17 minutes and 20 seconds. According to the results, time might be enhanced by proving other communication protocols and removing the master station. In that way, robots have to have a better microcontroller that allows programming the entire  neuro-fuzzy controller inanyone. On the other hand, Figure 18 shows how a robot is catching an object with the magneto at the front part in this collaborative task. However, the neuro-fuzzy controller has its main characteristic that can be used in other tasks different from that one, because of its inherent adaptation to the environment.Figure 17
Trajectories followed by the two robots during the collaborative task.Figure 18
A robot taking an object with the magneto.


## 5.1. Neuro-Fuzzy Controller

The main result is the generic neuro-fuzzy controller. It was designed based on a Sugeno approach for generic fuzzy controllers, and it was programmed on LabVIEW [6] as the frame to create a generic method that allows to create any kind of neuro-fuzzy controller only changing basic parameters like the number of membership functions. This generic controller allows the scalability on the number of robots in the collaborative task. The total controller implemented on LabVIEW is shown in Figure 8.Figure 8
Controller developed in LabVIEW (Block diagram).


## 5.2. Position Controller

With all programs ready in LabVIEW [6], several tests were made to verify the position controller error in different trajectories and also to prove the right behavior of the evasion controller using the most common obstacle cases in the proposed scenario.For the position controller, a linear desired position results in the trajectory shown in Figure9, with an error of 5.46%. On the other hand, a diagonal desired position has the trajectory of Figure 10 and an error of 6.2%.Figure 9
Trajectory for a linear desired position.Figure 10
Trajectory for a diagonal desired position.The set of fuzzy rules proposed was verified using Tabu search method, with this set of rules and other selected randomly, with the results shown in Tables1 and 2 for both cases, respectively.Table 1
Tabu method results for the proposed FAM.
InitialTabu resultLeft pulseRight pulseLeft pulseRight pulse01001005051010101050501001000100100505555550501001000000000000000000000000000100100505-5-5-5-5500101001000100100505-10-10-10-105050100100Table 2
Tabu method results for the random FAM.
InitialTabu resultLeft pulseRight pulseLeft pulseRight pulse00000000000005050505100100101010105050505010101010010500505505010000100005555505005051001001001001010101001001001001050505050


## 5.3. Mathematical Model of the Plant

In order to finish the design and adjustment of the position control, a mathematical model from the navigation behavior was needed. For this, the servomotors were characterized first, and then a model that predicts the position according to the real motion of the servos was developed.This model describes the relation between the pulses applied to the servos and the displacement considering the direction of the turn. Characterization of servomotors was done. The result of the measures is shown in Figure11, and this can be expressed as(6)(6)θ=11.927p+9.220.Figure 11
Measurement of angles in the servomotor.Define the input variableu=[u1u2]Tas the vector of machine times that are needed to move the wheels, and the output variable y=[y1y2y3]Tas the position vector in the 2D navigation plane, with direction angle extension respecting from a coordinated plane M in ℜ2 defined in the initial states.In general, the action of the plan can be divided in two main blocks: the angular displacement model and the placement in theM plane, as Figure 12 shows.Figure 12
Block diagram of the model.Figure 13
Angular displacement model alter applying a groupu of pulses to the wheels. Point  GM represents the point of interest in the robot, and plane R is defined from it. (a) Plane R before the pulse input, (b) plane R after the movement produced by the pulses.The angular displacement model considers an input variableu=[u1u2]T, which contains the information about the activation time in the rotation of each wheel, u1 is the activation time in the left wheel, and u2 represents the activation time in the right wheel. The output variable yd=θR in this block is the relative angular displacement of plane R in ℜ2, with its center in the origin GM, mapped referring to the robot itself. This block determines the relative angular displacement according to the previous location and the new position after the movement (Figure 11).A series of criteria was determined to delimitate the angular displacement model. (a) The robot can move forward or backward and the vectoru has its elements with the same value. (b) The robot can turn to the left, and u1=0,u2≠0. (c) The robot can turn to the right, and u1≠0,u2=0. (d) The robot can remain static and the vector u has 0 values. (e) A movement forward takes place if the vector is positive. (f) A movement backward takes place if the vector is negative.The absolute displacement depends on the actual position in planeM; so a point GM is defined as the origin of Euclidian plane R (Figure 14). Point GM has the direction value measured in plane M. Mathematically, GM is a position vector (7):(7)GM=[xGyGαR]T.Figure 14
Relation between planeM and plane R, both in ℜ2.The transformation between planeR and plane M is done using homogeneous matrices [12, 13], where the mapping φ:R→M starts with (8):(8)φ′=Tβ′,
where(9)T=[cosαR-sinαRxGsinαRcosαRyG001],β′=[01].The coordinates inφ correspond to the new position in plane M. The new angle of direction is (10):
(10)αRk+1={αRk,u1=u2,αRk+θR,u1=0,u2≠0,αRk-θR,u1≠0,u2=0.The output vector is defined asy=[y1y2y3]T, where the  values of its element imply (11):
(11)y=[φαRk+1].Twenty observations were taken to validate the proposed model.


## 5.4. Evasion Controller

Four different cases were tested to verify the evasion against obstacles, which are shown in Figure15 together with the trajectory followed by the robot on each case. The  evaluation of this controllerisacceptable.Figure 15
Different cases for the evasion controller evaluation.


## 5.5. Wireless Communication

In order to send and receive the numerical data from the microcontroller to the computer and back, a basic protocol was designed. This protocol sent characters such as “go” or “hi” as the control signal, and then the respective digits of the correction signal or the feedback.To establish and implement the communication through Bluetooth, a routine was designed based on predetermined blocks including exploration to find the device, sending, and receiving.


## 5.6. Designing a New Robot

Searching for a more flexible and less expensive platform, a new structure was designed and implemented as shown in Figure16, using plastics and polymers to substitute aluminum and other heavier materials. The saving was of 16% in costs and 10% in weight.Figure 16
Implementation of the new structural design.


## 5.7. Collaborative Task

Several experiments were made to observe the performance of the proposed system during the collaborative task, and the results of the trajectories followed by the robots are shown in Figure17, according to the algorithm proposed previously. The total time was 17 minutes and 20 seconds. According to the results, time might be enhanced by proving other communication protocols and removing the master station. In that way, robots have to have a better microcontroller that allows programming the entire  neuro-fuzzy controller inanyone. On the other hand, Figure 18 shows how a robot is catching an object with the magneto at the front part in this collaborative task. However, the neuro-fuzzy controller has its main characteristic that can be used in other tasks different from that one, because of its inherent adaptation to the environment.Figure 17
Trajectories followed by the two robots during the collaborative task.Figure 18
A robot taking an object with the magneto.


## 6. Conclusions

A neural fuzzy-controller topology was proposed to control the autonomous navigation of a robot, and it was implemented in LabVIEW [6] to be tested in a collaborative task. The controller acts as expected, collecting the objects and evading obstacles. The proposed blocks of algorithms allowed adjusting parameters as many times as it was necessary, and the whole methodology gave a possibility to extrapolate the results to other situations and tasks. The final prototype of the generic neuro-fuzzy controller was programming on LabVIEW, and it can be extended to other situations [2, 3].



---

*Source: 657095-2009-09-13.xml*