T E C H N I Q U E S T O
O P T I M I Z E A N F P G A
E M B E D D E D C O N T R O L L E R
F O R R O B O T N A V I G A T I O N
i. baturone
1, a. gersnoviez
2and a. barriga
1contents
1 Introduction 4
2 The first design of the FPGA controller 5
2.1 The navigation algorithm . . . 5
2.2 Very close obstacles . . . 7
2.3 Close obstacles . . . 8
2.4 Obstacle avoidance . . . 9
2.5 Navigation toward the goal . . . 9
3 Optimizing the design with neuro-fuzzy techniques 10 3.1 Very close obstacles . . . 10
3.2 Close obstacles . . . 11
3.3 Obstacle avoidance . . . 12
3.4 Navigation toward the goal . . . 13
4 Results and discussion 15 4.1 Simulation and experimental results . . . 15
4.2 Implementation results . . . 17
4.3 Discussion . . . 19
5 Conclusions 20
list of figures
Figure1 The navigation problem . . . 6Figure2 Area of unavoidable obstacles . . . 6
Figure3 (a) Area of close obstacles. (b) Transformation be-tween coordinate systems(xr,yr)and(xR,yR). . . . 8
Figure4 (a) Minimum-length paths of car-like robots. (b) Re-lation between the angleαand the robot position. . . 8
Figure5 (a) Structure of the fuzzy classifier for very close ob-stacles. (b) The gray area is the area ofvery close ob-stacles according to (4). (c) Result provided by the fuzzy classifier. . . 11
List of Tables 2
Figure6 (a) Hierarchical system to classify obstacles as close
or not. (b) Maximum value ofh,hmax, of obstacles
considering ascloseaccording to (5)-(7). (c)
Approxi-mation ofhmaxprovided by the fuzzy classifier. . . . 11
Figure7 Input-output behavior of the rule base Distance in
Figure6a. . . 12
Figure8 (a) Curvature to avoid obstacles according to (9). (b) 25rules extracted by Wang-Mendel algorithm with a
regular5x5grid. (c) The 5x5 grid is adjusted to the
data by supervised learning. . . 12
Figure9 (a) The25rules are simplified to20rules by merging
membership functions in ϕM. (b) The 20 rules are
simplified to5rules by applying Fuzzy Tabular
Sim-plification method [37]. (c) Approximation of |γ| to
avoid obstacles provided by the5-rule fuzzy system. 13
Figure10 (a) Fuzzy system to navigate without obstacles. (b)
Angle α according to (10)-(11). (c) Result provided
by the fuzzy system. . . 14
Figure11 Simulation results of navigation with and without
obstacles, provided by initial and neuro-fuzzy (op-timized) controllers (axis units are in meters). . . 15
Figure12 Simulation results of navigation with an emergent
moving obstacle. . . 16
Figure13 Experimental results of navigation with and without
obstacles obtained with the neuro-fuzzy controller (axis units are in meters). . . 16
Figure14 Evolution of reference curvature (Ref) provided by
the neuro-fuzzy controller and actual curvature (Real) of the robot. . . 17
Figure15 Experimental results of navigation with moving
ob-stacles. . . 17
list of tables
Table1 Rules in the rule baseInterpolationof Figure10. . . 14
Table2 Number of clock cycles required by the initial and
opti-mized (neuro-fuzzy) embedded controllers. . . 18
Table3 Computation time (in seconds) of embedded controllers
us-ing50MHz of working frequency. . . 18
Table4 Comparison of the neuro-fuzzy proposal with neural
net-works based on radial basis functions (RBF NNs). . . 20
abstract
This paper describes how low-cost embedded controllers for robot naviga-tion can be obtained by using a small number ofif-thenrules (exploiting the connection in cascade of rule bases) that apply Takagi-Sugeno fuzzy infer-ence method and employ fuzzy sets represented by normalized triangular functions. The rules comprise heuristic and fuzzy knowledge together with numerical data obtained from a geometric analysis of the control problem
that considers the kinematic and dynamic constraints of the robot. Numer-ical data allow tuning the fuzzy symbols used in the rules to optimize the controller performance. From the implementation point of view, very few computational and memory resources are required: standard logical, addi-tion, and multiplication operations and a few data that can be represented by integer values. This is illustrated with the design of a controller for the safe navigation of an autonomous car-like robot among possible obstacles to-wards a goal configuration. Implementation results of an FPGA embedded system based on a general-purpose soft processor confirm that percentage reduction in clock cycles is drastic thanks to applying the proposed neuro-fuzzy techniques. Simulation and experimental results obtained with the robot confirm the efficiency of the controller designed. Design methodol-ogy has been supported by the CAD tools of the environment Xfuzzy3and
by the Embedded System Tools from Xilinx.
*1Dept. de Electrónica y Electromagnetismo, Univ. of Seville, and the Instituto de Microelectrónica de
Sevilla (IMSE-CNM-CSIC), Seville (Spain)
1 2Dept. de Arquitectura de Computadores, Electrónica y Tecnología Electrónica, Univ. of Cordoba,
introduction 4
1
introduction
Fuzzy rule-based systems have been successfully used in many control ap-plications thanks to their capability to deal with the heuristic knowledge of an expert that is expressed linguistically [1]-[4]. Linguistic if-then rules
in-cluding imprecise and maybe ambiguous terms are translated rather easily into if-then rules including fuzzy sets. The capability of fuzzy systems to manage linguistic information facilitates not only the development of con-trollers but also their debugging and maintenance. Due to the great use of fuzzy systems in control engineering, different types of implementations for these systems have been proposed in the literature [5]. These approaches
range from software implementations to hardware realizations by ASICs (Application Specific Integrated Circuits) or FPGAs (Field Programmable Gate Arrays).
The development of complex systems for industrial control applications demands high speed, low power and area consumption, and low cost. The solution to satisfy these requirements is the implementation as embedded systems [6]. Implementation on ASICs satisfies these requirements, but due
to the high initial engineering cost, ASICs are adequate when they are man-ufactured in high quantity. A good alternative is the implementation on FPGAs. An FPGA can be fully programmable to generate a specific hard-ware that matches the requirements of the user. The great advantages of these devices compared to ASICs are its flexibility, a shorter time-to-market and a lower cost if the number of fabricated devices is small. Modern FPGA families include a high number of specific resources and provide powerful and friendly CAD tools that allow the development of complex embedded systems [7]-[19]. FPGA manufacturers also allow the implementation of
effi-cient32-bit RISC processors, such as the MicroBlaze system from Xilinx and
the Nios processor from Altera.
The continuous evolution of programmable devices has increased the use of FPGAs as platforms for the development of fuzzy systems [12]-[19]. Some
of these FPGA implementations of fuzzy controllers are used to control au-tonomous mobile robots [16]-[19]. Current research in robotics concerns
with multi-robot heterogeneous scenarios to execute missions that require safe and reliable cooperation. This means that autonomous robots not only have to navigate safely in real time (low processing time), but also communi-cate with other robots and participate into collaborative tasks during maybe long time (low power consumption), this is carried out on hardware plat-forms of maybe limited resources (let us think, for example, in micro-robots or unmanned aerial vehicles with low payload) [20].
This paper describes the use of neuro-fuzzy techniques to optimize the design of an embedded controller for the safe navigation of a car-like au-tonomous robot among possible obstacles towards a goal destination. The main objective of the proposed approach is to achieve efficient embedded implementations in terms of memory resources and operation speed. In or-der to reduce implementation costs, the controller contains several modules that, in turn, are composed of simple rule bases connected in cascade; the rules employ normalized triangular membership functions to represent the antecedents; and the inference mechanism employed is Takagi-Sugeno [21].
Many authors exploit the numerical data obtained from trajectories pro-vided by an expert to apply neural-like learning to fuzzy controllers [3]-[4].
However, these trajectories do not usually correspond to the shortest paths. In the proposal herein, numerical data employed correspond to paths of
near minimum length obtained from a geometric analysis of the problem (which considers the nonholonomic constraints of the robot). The use of nu-merical data to design controllers that meet nonholonomic constraints has been also exploited in other works, such as [22]-[25]. In particular,
numeri-cal data associated to the shortest paths affordable for a car-like robot have been employed in [25] to solve a parking problem without obstacles. A
sim-ilar approach is applied herein to a more complex problem. The data help in generating navigation paths of near minimum lengths when no obstacles are detected and, in presence of obstacles, minimum deviation from these paths. A novelty and advantage of the approach described herein is that automatic learning maintains the linguistic meaning of the fuzzy rules and optimizes the implementation into embedded systems. Interpretable if-then rules are very interesting to facilitate human-robot communication [26].
The paper is organized as follows. Section 2 describes the navigation
problem of a car-like autonomous robot. Its subsections summarize the kinematic and dynamic considerations to obtain a controller that generates paths of near minimum length. Section3describes how to use this controller
as a reference to generate the numerical learning data to adjust the symbols of a fuzzy controller with the objective of obtaining a much more efficient implementation. The design methodology of the proposed neuro-fuzzy so-lution is aided by the description, identification, verification, and learning CAD tools of Xfuzzy 3(an environment to design neuro-fuzzy controllers
available at [27]). Section 4 evaluates the behavior of the designed
neuro-fuzzy controller with simulation and experimental results obtained with a car-like robot designed and built at the Escuela Superior de Ingenieros, Uni-versity of Seville, Spain. Implementation results of both the reference and the neuro-fuzzy controllers into an embedded system based on MicroBlaze on a Virtex FPGA from Xilinx are compared and evaluated in Section4. The
superiority of hierarchical Takagi-Sugeno fuzzy inference systems to other approximator systems, such as radial basis function (RBF) neural networks, is also illustrated in Section4. Finally, Section5gives the conclusions.
2
the first design of the fpga controller
The configuration of a car-like robot can be given by the position of the back wheels axle midpoint with regards to a global coordinate system, (x,y); its orientation, φ; the curvature defined by the front wheels, γ; and its speed, v. The navigation problem consists of generating a collision-free trajectory from an initial configuration (x,y,φ,v,γ) to a goal one, which is (0,0,180◦,0,0) in the global coordinate system that have been selected herein (Figure1). In the first stage of the controller design, a mathematical
description of the collision-free navigation problem is performed to obtain a controller that generates paths of near minimum length. A direct imple-mentation of this controller on an embedded system based on MicroBlaze is developed for its later comparison with the neuro-fuzzy solution.
2.1 The navigation algorithm
A basic task to be performed by an autonomous robot is to navigate safely among possible obstacles towards a goal destination. Navigation problems are usually solved in two steps. Firstly, a reference trajectory is provided by a path planner, and, secondly, a path-tracking controller tries to keep
the first design of the fpga controller 6
Figure 1:The navigation problem
laser d h j +2m yr xr 1 |g max | 1 |g max |
Figure 2:Area of unavoidable obstacles
the robot as close as possible to the reference trajectory. A large number of methods for solving the path planning problem have been reported in the literature (such as roadmap, cell decomposition and potential field meth-ods) [28]. Global path planners offer the advantage of generating reference
paths that optimize particular criterion (e.g. minimum time, minimum en-ergy, and shortest length), since they employ global information about the environment. Their main disadvantage is that they usually apply compu-tationally costly algorithms and, hence, they cannot accommodate rapid changes in the environment. In the other side, reactive planners execute simple behaviors in direct response to sensory information. Since they deal with local instead of global information, reactive methods are widely used for implementing real-time navigation through partially unknown and dy-namic environments.
Another issue is that global path planners usually provide reference paths made up of directly connected straight lines that could not be easily fol-lowed by car-like robots, which always should connect straight lines by arcs of circle.
The controller designed herein addresses a twofold objective: it is reactive to cope with dynamically changing environment in real time and acts as a path-tracking controller that keeps the robot as close as possible to a car-like feasible reference path.
In the typical decomposition of a mobile robot control system into func-tional modules (sensors, perception, modeling, planning, task execution, motor control and actuators) [29], the module designed herein would be
in charge of reactive obstacle avoidance and path-tracking tasks. It can be combined with a global path planner in charge of modeling and planning in order to optimize global criterion (taking into account the overall obsta-cles spatial configuration and characteristics of the whole space where the robot can move). A review of such hybrid architectures that combine global (deliberative) with local (reactive) modules can be seen in [30]. For example,
a global fuzzy behavior control is proposed in [17] to integrate several local
modules. However, this is out of the scope of this paper, which will focus on the design of the reactive obstacle avoidance and path-tracking module.
No model about the environment is used nor constructed by the designed reactive controller but only the information provided by the robot sensors. In particular, the sensor considered is a 2-D laser placed at the robot front
part. The laser performs a scan of up to 180 degrees of the space in the
front of the robot and identifies the points of possible obstacles by their distance, h, and sweeping angle, ϕ (Figure1). Of course, the robot could
drive backward in a safe way by making use of sensors placed at the robot back part that scan the space in the back of the robot. However, for the sake of clarity, the robot is considered herein to drive always forward or to stop.
The coarse structure of the reactive controller is obtained from heuristic knowledge expressed linguistically, as follows:
1. If there is an obstaclevery closeto the robot, the robot should stop to
avoid collision1
.
2. If there is an obstaclecloseto the robot, a maneuver to avoid it should
be carried out, as follows2
:
a) If the obstacle ison the right (left)thenturn to the left (right). b) If the obstacle isin front ofthe robot then:
• Turn to the same side as in the previous control cycle (pro-vided the obstacle was already detected).
• If this is the first time the obstacle is detected, apply the turn-ing sign as no obstacle is detected.
3. If the obstacles arefarfrom the robot, there is no need to avoid them
(by the moment) and the robot should navigate towards the goal con-figuration by theshortestpath.
Several symbolic concepts appear in these rules (depicted in italic fonts) that need specification. They might be defined by membership functions based on heuristics as well as trial and error approach. Doing that, the paths obtained will not be as good as they could be. Our proposal is to consider the dynamic and kinematic constraints of the robot so as to optimally define the symbolic concepts. In particular, the car-like nonholonomic constraints make that the movement direction must always be tangent to the trajectory and the turning radius is mechanically limited to a minimum value, which is equivalent to say that the robot curvature is upper bounded. In the ab-sence of obstacles, the shortest paths for a car-like robot consist of a finite sequence of two elementary components: arcs of circle (with minimum turn-ing radius) and straight line segments [31]-[32]. In an environment cluttered
by obstacles, it is proven in [33] that shortest paths consist only of arcs of a
circle of minimum turning radius, line segments, and pieces of boundaries. Hence, an obstacle will bevery closeif the radius of the arc of circle to avoid it should be smaller than the minimum. An obstacle will becloseand should be avoided if it will be inside the area that will be swept by the robot when it travels along its path. In other case, the obstacle isfarand the controller has to provide the shortest path made of a finite sequence of arcs of circle with minimum turning radius and straight line segments (as illustrated in Figure1). This is analyzed more in detail in the following.
2.2 Very close obstacles
Let us consider a coordinate system (xr,yr)attached to the robot, whose
origin is placed at the back wheels axle midpoint (Figure2). The coordinates
on an obstacle referred to that system are the following:
xro=d+h·sinϕ yro= −h·cosϕ (1)
whered is the distance of the laser to the back wheel axle (1.65m in the
robot considered in the experiments).
1 If the robot would be provided with sensors in its rear, this would not be the final action and
the robot would drive backward, as commented above.
2 In case this local module is combined with a global controller, the turning sign of the maneuver
the first design of the fpga controller 8 yr xr |g| 1 +2 |g| 1 -2 2g 2g sin(2g) g g 1 - cos(2g) g yr xr 1 (a) (b)
Figure 3:(a) Area ofcloseobstacles. (b) Transformation between
coor-dinate systems (xr,yr) and
(xR,yR). a Path 1 Path 2 x x’ y y’ a a R (a) (b)
Figure 4:(a) Minimum-length paths of
car-like robots. (b) Relation
between the angle α and the
robot position.
Taking into account that the robot considered in our analysis has a width of1m and the maximum speed considered is1m/s,2m at both sides of the
robot should be free of obstacles for safety purposes. An obstacle will be
very closeand, hence, unavoidable, if it enters the forbidden area (shadowed
area in Figure2). Let us consider an obstacle placed on the right of the robot
(ϕ∈[0◦,90◦]), as shown in Figure2. It will bevery close if the robot cannot
avoid it by turning to the left with an arc of circle with minimum turning radius (R=1/|γmax|), leaving2m of free space:
x2ro+ yro− 1 |γmax| 2 < 1 |γmax|+2 2 if ϕ∈[0◦,90◦] (2)
Similarly, if the obstacle is placed on the left of the robot (ϕ∈[90◦,180◦]), it will bevery closeif the robot cannot avoid it by turning to the right:
x2ro+ yro+ 1 |γmax| 2 < 1 |γmax|+2 2 if ϕ∈[90◦,180◦] (3)
Grouping equations (2) and (3), and substitutingxroandyroby equation
(1), the area ofvery closeor unavoidable obstacles is defined by: (d+h·|sinϕ|)2+ h·|cosϕ|+ 1 |γmax| 2 < 1 |γmax|+2 2 (4)
Equation (4) has been selected to describevery closeobstacles, since it uses
the variableshandϕprovided directly by the laser. Hence, no processing of laser data is required.
2.3 Close obstacles
An obstacle will becloseif it will be inside the safety area that will be swept by the robot when it travels along its path. Taking into account the current robot curvature, γ, a first condition for an obstacle to be close is to be less than2m on the right or on the left along the arc of circle to be described by
the robot (Figure3a), as follows:
1 |γ|−2 2 < x2ro+ yro+ 1 |γ| 2 < 1 |γ|+2 2 (5)
The safety area should also contain 2m ahead in the driving direction.
driving direction and rotated an angle of2γwith respect to the coordinate system (xr,yr), as illustrated in Figure 3b. The coordinates of an obstacle
referred to this system are the following:
xRo=
xro−sinγ2γcos2γ−yro+1−cosγ2γsin2γ yRo=xro−sinγ2γ sin2γ+yro+1−cosγ2γ cos2γ ( 6)
A second condition for an obstacle to be closeand, hence, to be avoided is that it becomes a very close obstacle in the future (dark shadowed area in Figure 3a). This condition is easier to be expressed in the coordinate
system (xR,yR). Similarly to equations (2) and (3), it will be very close if
their position with regards to the displaced and rotated coordinate system verifies that: x2Ro+ yRo+ 1 |γmax| 2 < 1 |γmax|+2 2 (7)
Finally, the third condition for aclose obstacle is that, currently, it is not
very closeand, hence, it does not verify equation (4).
2.4 Obstacle avoidance
The minimum magnitude of the curvature to avoid an obstacle identified as
closeis determined by the closest point of that obstacle (whose coordinates
will be named hM and ϕM herein). Taking into account that a reference
curvature is not adopted instantaneously by the robot but has a delay, a4-m
safety corridor has been considered for selecting the minimum value of the curvature. With such selection, the dynamic features of the robot considered in the experiments allow the2-m width corridor free of obstacles. Hence,
the minimum magnitude of the curvature (similarly to equation (4)) is given
by: (d+hM·|sinϕM|)2+ hM·|cosϕM|+ 1 |γ| 2 = 1 |γ|+4 2 (8)
From the formula above, the value of|γ|can be obtained as:
|γ|= 8−2hM·|cosϕM| d2+h2
M+2hM·d·|sinϕM|−16
(9)
The sign of the curvature when an obstacle is avoided is given by the second if-then rule explained in Subsection2.1(the criterion adopted is that |γ| = γ, in the case of turning to the right, and |γ| = −γ, in the case of turning to the left).
2.5 Navigation toward the goal
If there are no obstacles, the robot should navigate toward the goal (0,0,180◦,0,0)
by the shortest path. The shortest paths for a car-like vehicle consist of a fi-nite sequence of two elementary components: arcs of circle (with minimum turning radius) and straight line segments, as was proved by Dubins [31].
Analyzing the shortest paths geometrically, it can be found that there is an angle,α, which defines the orientation of the straight segment which con-tains the(x,y)point of the current robot configuration and is tangent to the arc of circle that defines the end of the path (Figure4a). Depending on the
optimizing the design with neuro-fuzzy techniques 10
difference between this angle and the current robot orientation, the robot will turn to right or left or will not turn. The value of the angleαdepends onxandyas follows (as can be seen in Figure4b):
tanα= yx−−xy00 =
x−(R−R·cosα)
y−R·sinα
with (|x|−R)2+y2>R2 (
10)
whereRis the minimum turning radius.
If the formula above is elaborated, the value of α can be obtained as follows: α= (x)·arccos R(R−|x|) +y p x2+y2−2R|x| x2+y2−2R|x|+R2 ! (11)
3
optimizing the design with neuro-fuzzy
techniques
The direct implementation of equations (1) to (11) requires trigonometric
functions (sin, cos and arccos), square root, and division. As discussed in Section 4, such equations are computationally costly for FPGA embedded
controllers (when carried out by MicroBlaze processor using software rou-tines). One solution is to accelerate by hardware the computation of such functions. Another approach to alleviate this cost is to simplify the equa-tions to compute the safety areas. The latter is the approach proposed in [34], which is a little conservative solution that constructs a polygonal
over-approximation of such areas and checks the emptiness of the constructed convex polygon with any obstacle by solving a linear programming problem. The novel approach proposed herein is to employ neuro-fuzzy techniques to simplify the computation of all the equations not only of the safety areas, and, in the case of safety areas, not providing a coarse over-approximation but a finer approximation. This is analyzed more in detail in the following.
3.1 Very close obstacles
The shadowed area in Figure5b illustrates those obstacle positions (h,ϕ)
that satisfy the nonlinear constraint (4). The proposal herein is to describe
those positions with fuzzy rules, that is, to design a fuzzy classifier with two inputs, h and ϕ , and one output that specifies if the obstacle is very
close or not adjusted to the training data provided by (4). The simplest
structure that has been found for this fuzzy classifier is the hierarchical structure shown in Figure 5a. The fuzzy rule base, named Interpolationin
the figure, is a zero-order Takagi-Sugeno system that interpolates, for each angleϕ, the minimum value ofh,hmin, that an obstacle should have to be
considered asnot very close. This rule base has been trained by the numerical data(ϕ,hmin)that verify (4) when conditionsmaller thanis substituted by
equal to. Levenberg-Marquardt algorithm (a second-order training algorithm
that does not compute the Hessian matrix [35]) has been applied with the
supervised learning tool of the Xfuzzy environment [36]. The rule base
obtained contains 5 rules whose antecedents are: ϕ is quite right, right, in
front of,left, andquite left; and whose consequents are, respectively:hminis
1.7m, 1.5m, 2.1m,1.5m, and1.7m, as shown in Figure5c. The upper part
(c) h 1.3m h 0º 2.3m j 180º 1.3m h 0º 2.3m j 180º 1 0.5 0
quite right right in front of left quite left
j 1.5m 1.7m 2.1m Interpolation j h hmin + - obstacle Interpolation j h hmin + - obstacle (b) (a)
Figure 5:(a) Structure of the fuzzy classifier forvery closeobstacles. (b) The gray
area is the area ofvery closeobstacles according to (4). (c) Result provided
by the fuzzy classifier.
(a) (b) Rotation hmax + -obstacle Distance + - h Rotation hmax + -obstacle Distance + - h Rotation hmax + -obstacle Distance + - h 1.5m 4.5m 0º 180º 0.4m -1 -0.4m -1 hmax 1.5m 4.5m 0º 180º 0.4m -1 -0.4m -1 hmax (c)
Figure 6:(a) Hierarchical system to classify obstacles ascloseor not. (b) Maximum
value ofh,hmax, of obstacles considering ascloseaccording to (5)-(7). (c)
Approximation ofhmaxprovided by the fuzzy classifier.
nonlinear area of very close obstacles by a polygonal area. The piecewise linear frontier in the upper part of the polygonal area is the output,hmin,
provided byInterpolationrule base.
3.2 Close obstacles
Let us callhmax the maximum value ofh that an obstacle can have to be
considered asclose. Depending on the angular position of the obstacle,ϕ, and the current curvature of the robot,γ, the value ofhmaxcan be obtained
from equations (5) and (7) when conditionsmaller thanis substituted byequal
to. Figure6b illustrates the nonlinear relation betweenhmax,ϕandγ. The
proposal herein is to describe such relation with fuzzy rules and design a fuzzy classifier with three inputs (h, ϕ and γ) and one output, which specifies if the obstacle iscloseor not adjusted to the nonlinear constraints (5) to (7).
The structure selected for this fuzzy classifier is the hierarchical scheme shown in Figure6a. This is very simple since it combines zero-order
Takagi-Sugeno rule bases with only one input. Looking for a good trade-off be-tween approximation and simplicity,2rules have been extracted for the rule
base Rotationand 5 ones for the rule base Distance. These rule bases have
been trained with the numerical data(ϕ,γ,hmax)illustrated in Figure 6b,
using the CAD tools of Xfuzzy. The capability of the learning tool of Xfuzzy to adjust hierarchical systems has been exploited in this case [36]. The rule
base named Rotation provides an output which is a linear function of the inputϕ. The rule base namedDistanceprovides a piecewise linear interpo-lation ofhmax, depending on the difference between the current curvature
optimizing the design with neuro-fuzzy techniques 12 g- Rotation(j) 1.4m 4.3m 1 0.5 0
quite right right in front of left 1.6m 2.0m 4.0m -1.0m -1 1.0m -1 max quite left h
Figure 7:Input-output behavior of the rule baseDistancein Figure6a.
|g| j h M M 0.0m 0.4m 2.4m 20.0m 0º 180º -1 -1 |g|0.0m -1 0.4m -1 j 2.4m 20.0m 1 0 h M M 180º 0º 0 1 j 2.4m 20.0m 1 0 h M M 180º 0º 0 1 (a) (b) (c)
Figure 8:(a) Curvature to avoid obstacles according to (9). (b)25 rules extracted
by Wang-Mendel algorithm with a regular 5x5grid. (c) The 5x5grid is
adjusted to the data by supervised learning.
difference can be understood as the angular position referred to the robot that the obstacle will have in the future. This is why the antecedents in the
5rules ofDistancerule base have been named asquite right,right,in front of,
left, andquite left. Their corresponding consequents are: hmax is1.6m,2m, 4m,2m, and1.6m, as shown in Figure7.
Figure6c illustrates how the designed fuzzy classifier approximates the
nonlinear relation betweenhmax,ϕandγwith piecewise linear relations.
3.3 Obstacle avoidance
The minimum magnitude of the curvature to avoid an obstacle is a nonlin-ear function,f, of the closest point of the obstacle (hMand ϕM), as stated
in (9). Exploiting the symmetry of the problem, it can be considered that γ = f(ϕM,hM), when turning to right and γ = f(180−ϕM,hM), when
turning to left. Figure8a shows the γvalues (when turning to right)
ver-sus ϕM and hM. The proposal herein is to approximate such nonlinear
relation with fuzzy rules, that is, to design a fuzzy approximator with two inputs, hM and ϕM, and one output that specifies the magnitude of the
curvature. In this case, a non-hierarchical system has been selected because its complexity is somewhat lower (5 instead of the9 rules extracted in the
hierarchical system) achieving a better approximation. The procedure to obtain the non-hierarchical system follows the techniques described in [37].
Firstly,5membership functions have been selected as a good initial number
to cover uniformly the universes of discourse of thehMandϕM variables,
(a) (b) (c)
very far very near near
in front of left quite left right far medium j 2.4m 20.0m 1 0 h M M 180º 0º 0 1 Rule 1 Rule 2 Rule 3 Rule 4 very far very near near
in front of left quite left right far medium j 2.4m 20.0m 1 0 h M M 180º 0º 0 1 |g| j h M M 0.0m 0.4m 2.4m 20.0m 0º 180º -1 -1
Figure 9:(a) The25 rules are simplified to20rules by merging membership
func-tions inϕM. (b) The20rules are simplified to5rules by applying Fuzzy
Tabular Simplification method [37]. (c) Approximation of|γ|to avoid
ob-stacles provided by the5-rule fuzzy system.
in Figure 8a and applying Wang-Mendel identification algorithm with the
identification tool of Xfuzzy [37], 25zero-order Takagi-Sugeno rules
(illus-trated as a matrix in Figure8b) have been obtained. Again the numerical
data(hM,ϕM,γ)have been employed to apply supervised learning to
ad-just the membership functions in the antecedents and the singleton values in the consequents of these25fuzzy rules so as to reduce the approximation
error. The result of such learning is illustrated in Figure 8c. By using the
simplification tool of Xfuzzy, two membership functions covering ϕM can
be merged, as shown in Figure8c, so that the25rules are reduced to20.
Fi-nally, by applying the Fuzzy Tabular Simplification method available in the simplification tool of Xfuzzy [37], the20rules can be reduced to5rules,4of
them describing when turning right at maximum and the other concluding no turning for the rest of situations. This is illustrated in Figure9a and b.
The obtained zero-order Takagi-Sugeno system, which decides how much turning to right (once turning to right has been decided), forces the robot to turn more as more dangerous the obstacle is for the way the robot is going to take immediately. The closer the obstacle is, the more the robot will turn to right. The fuzzy rules express the following conditions to turn right at maximum (imagine the robot is going ahead or to its right):
1. If obstacle isvery near.
2. If obstacle isnearand it is notquite on the left.
3. If obstacle is atmediumdistance and it isin front oforon the right. 4. If obstacle isfarand it ison the right.
In other cases, the robot should keep straight ahead.
Since these rules employ fuzzy concepts, theγ values provided by this system do not switch abruptly but they vary smoothly between maximum turning to right and zero, as shown in Figure9c.
3.4 Navigation toward the goal
If no obstacles are detected, the robot will turn to right or left or will not turn depending on the difference between the current robot orientation and the angleα(defined in (11) as a nonlinear function of the robot position,x
andy). The approach herein is to use a fuzzy system that approximates the value of the robot curvature, as described in [25]. A hierarchical structure
optimizing the design with neuro-fuzzy techniques 14 (a) (b) (c) -180º 180º x a y -20m 20m -2m 14m -180º 180º x a y -20m 20m -2m 14m Interpolation x a + - Smoothing y Interpolation x a + - Smoothing y
Figure 10:(a) Fuzzy system to navigate without obstacles. (b) Angleαaccording to
(10)-(11). (c) Result provided by the fuzzy system.
Table 1:Rules in the rule baseInterpolationof Figure10 IFxis ANDyis THENαis zero zero 51.3+8.2x+2.8y zero near 8.8x zero far −1.6x positive-near zero 103.3+4.9x+7.8y positive-near near 29.2+5.3x−1.5y positive-near far −9.4+0.3x+1.6y positive-far zero −51.3+8.2x−2.8y positive-far near −11.2+4.1x+1.9y positive-far far 3.7−0.7x+2.8y
with two rule bases connected in cascade, as shown in Figure10a, has been
selected. The first rule base provides approximately the value of the angleα, depending on the input variablesxandy. This module has been adjusted by using numerical data(x,y,α), obtained from (11) and from the following
equation (which achieves continuity for the rest of positions):
α= (x)·arccos 1−|x| R if (|x|−R)2+y26R2 (12)
Exploiting the symmetry of the problem,α(x,y) = −α(−x,y), the neuro-fuzzy system has been trained for positive values of x. The best system found in terms of approximation error and simplicity is a first-order Takagi-Sugeno system with9 rules. These rules are shown in Table 1, where the
fuzzy sets (zero,near, etc.) in the antecedents are represented by triangular membership functions similar to those in Figure5c and Figure7. Figure10b
shows the values ofαversusxandyaccording to (11) and (12), and Figure 10c shows the approximation provided by the rule baseInterpolation.
The best option found for the second rule baseSmoothingis a zero-order Takagi-Sugeno system with2rules, exploiting symmetry,γ(φ−α) = −γ(α− φ). These two rules are the following:
1. If(φ−α)issmall-positivethenγis0.4m−1.
4
results and discussion
4.1 Simulation and experimental results
The initial and neuro-fuzzy-based controllers have been described with the
toolxfeditof Xfuzzy3, which allows connecting fuzzy and non fuzzy rule
bases as well as arithmetic modules.
Simulations have been carried out with the tool xfsim. It simulates the controller working in a closed loop with a model of the robot that considers its kinematic and dynamic features. The robot model (which contains the models of its sensors) provides the new configuration of the robot and the new information given by the laser. This model is introduced inxfsimas a Java class.
Figure11shows several examples of how the robot is controlled to reach
the goal configuration(x,y,φ,γ,v) = (0,0,180◦,0,0)by both the initial and neuro-fuzzy controllers. Paths provided by both controllers are similar, thus confirming that approximation achieved by the neuro-fuzzy controller is adequate. An important difference between both controllers is that the neuro-fuzzy controller imposes much smoother changes in the curvature and, hence, their commands are better followed by the robot actuators. This means that the neuro-fuzzy controller performs better than the original one if the robot moves at higher speed and/or the path to perform contains more different curvatures. For example, with the obstacle distribution illus-trated in Figure 11c, it has been proven that the robot is able to avoid the
obstacles at higher speed when controlled by the neuro-fuzzy solution than by the original one.
As illustrated in Figure 11a, if no obstacles are detected, the robot goes
to the goal by a path of near minimum length because the path is made up of arcs of circles with almost minimum turning radius and straight line segments. Only the obstacles that interrupt the path the robot is going to take are avoided. They are avoided by minimum deviations from the original path, as shown in Figure11b, c and d. These figures also illustrate
that, once obstacles have been avoided, the controller recalculates the new path of near minimum length to the goal. The scenario of Figure11c is
particularly difficult to be solved with such a path of near minimum length. If the controller would not have taken into account the car-like features of the robot, either the path generated would have been of longer length or even no free path would have been found among the obstacles.
Another interesting case is considering moving obstacles. Figure12shows
the simulation case of Figure11d adding an emergent and moving obstacle.
(a)
Initial controller Optimized Controller
(b) (c) (d)
Figure 11:Simulation results of navigation with and without obstacles, provided by initial and neuro-fuzzy (optimized) controllers (axis units are in meters).
results and discussion 16
(a) (b) (c)
Figure 12:Simulation results of navigation with an emergent moving obstacle.
(a)
(b) (c) (d) (e) (f)
Figure 13:Experimental results of navigation with and without obstacles obtained with the neuro-fuzzy controller (axis units are in meters).
As can be seen in Figure 12a, the robot does not see the moving obstacle
untill it passes the wall. Figure12b shows that the robot tries to avoid the
obstacle but it is too late to perform an avoiding maneuver and thevery close
obstaclesmodule makes the robot stop. In Figure 12c, once the obstacle is
gone, the robot continues to the configuration goal.
We have verified the behavior of the designed controller with the car-like robot shown in Figure15. This robot is an electrical vehicle provided with a
set of sensors and actuators that make it capable of autonomous navigation. The inputsx,y, andφ, required by the controller are obtained by odometry from encoders and a gyroscope. The inputs h and ϕare obtained from a
2-D laser LMS 220-30106. In the control example, the electrical motors of
the robot have to receive the curvature and speed commands from the con-troller. In addition, the motor control card reads the direction and traction encoders of the engines to estimate the variablesv andγof the robot con-figuration. Safe navigation among obstacles is particularly challenging with this robot since it does not have an electrically controlled brake, but only its speed can be controlled. In our experiments, speed is simply set to zero when unavoidable obstacles are detected or goal configuration is going to be reached, otherwise speed is constant.
Figure13a-c confirms experimentally that the robot carries out paths of
near minimum length in the absence of obstacles (combination of arcs of circle of near minimum radius and straight lines). The experiment in Figure
13b is particularly challenging because the robot is very close to the goal
po-sition and has to concatenate two arcs of circle of almost minimum turning radius. A controller that does not take into account the car-like features of
0.4 Ref 0.3 0.2 0.0 0.1 -0.4 -0.3 -0.2 -0.1 -0.5 0 10 20 30 40 50 Real Curvature (m ) -1 Iteration
Figure 14:Evolution of reference curvature (Ref) provided by the neuro-fuzzy con-troller and actual curvature (Real) of the robot.
(a) (b) (c) (d)
(g)
(e) (f)
(h) (i) (j) (k) (l)
Figure 15:Experimental results of navigation with moving obstacles.
the robot would provide a longer path or even would fail in this scenario. Figure13d-e shows the minimum deviation from the original path when an
obstacle is detected. Such minimum deviation allows the robot navigating safely along narrow free spaces, as illustrated in Figure 13f. A
success-ful navigation between the obstacles shown in Figure 13f and a successful
consecution of the goal configuration is very difficult for a controller not optimized for car-like robots. It is achieved by the neuro-fuzzy controller because it provides a control action that can be tracked by the robot actua-tor. This can be seen in Figure14, which details a typical evolution of robot
curvature when avoiding an obstacle (this case corresponds to the trajectory in Figure13d).
Finally, Figure15 shows two cases of navigation with moving obstacles.
In Figures 15a-f a pedestrian walks toward the path of the robot. As can
be seen, the robot avoids the pedestrian and then it returns to the original path. In Figures15g-l a pedestrian suddenly appears in front of the robot.
Thevery close obstaclesmodule makes the robot stop, avoiding the collision
(Figure15h). Once the pedestrian walks away, the robot returns to the path
(Figures15i-l).
4.2 Implementation results
The initial controller described in Section 2 that applies three navigation
fuzzy rules whose symbols are described by equations (1) to (11) has been
executed by an embedded system based on MicroBlaze and implemented in a Virtex II-Pro FPGA from Xilinx [38]. MicroBlaze is a 32-bit RISC
Har-vard architecture soft processor core with a rich instruction set optimized for embedded applications. In the system designed, MicroBlaze processor in-cludes a floating point unit so as to carry out equations (1) to (11). A timer is
added as peripheral in order to evaluate the number of clock cycles invested by the processor in the four main modules of the control algorithm:
results and discussion 18
Table 2:Number of clock cycles required by the initial and optimized (neuro-fuzzy) embedded controllers
Controller Module1Module2Module3Module4
Initial (float) 58642 236157 65024 47145
Neuro-fuzzy (float) 2123 5370 4580 21035
Neuro-fuzzy (int) 44 67 141 142
Table 3:Computation time (in seconds) of embedded controllers using 50MHz of
working frequency
Controller Module1Module2Module3Module4
Initial (float) 1.17e-3 4.72e-3 1.30e-3 0.94e-3
Neuro-fuzzy (float) 42.46e-6 107.4e-6 91.6e-6 420.7e-6 Neuro-fuzzy (int) 0.88e-6 1.34e-6 2.82e-6 2.84e-6
closeobstacles (module3), and navigating toward the goal (module4). The
input variables considered by each module (for examplehandϕin module
1, orϕ,γandhin module2) have been swept considering their universes
of discourse (for example ϕ has been swept from 0◦ to 180◦) in order to evaluate the number of clock cycles required by all the possible situations (all possible values at their inputs). The averages of those numbers for each module are shown in the first row of Table2.
The proposed neuro-fuzzy approach allows a good trade-off between memory resources and computation time. Regarding memory, the parame-ters required to be stored are the partition values of the input universes of discourse and the consequent values, which is a small number since there is a small number of rules (28rules counting the four modules). This is much
more efficient than storing in a look-up table the possible control actions for all the possible input values. Regarding computation time, the designed neuro-fuzzy controller requires only logical, addition, and multiplication operations, while the direct implementation of the equations (1) to (11) (as
shown in Section 2) also requires more complex mathematical functions.
For any kind of processor, our proposal requires much fewer clock cycles to compute the control value, especially if the processor has low computa-tional resources. Table2supports this affirmation by showing the number
of clock cycles of the same embedded system based on MicroBlaze proces-sor designed for the initial controller. The C code corresponding to the four modules required by the neuro-fuzzy controller has been executed on the processor using float variables. The second row in Table 2 shows the
cy-cles (also the average calculated with all the possible combinations of input values) when the modules are implemented as neuro-fuzzy systems. The percentage in clock cycle reduction is higher than93% in three of the
mod-ules. In the Module 4, reduction is inferior (55.4%) mainly because one of
the rule bases of the neuro-fuzzy solution uses a first-order (instead of a zero-order) Takagi-Sugeno inference method.
A further relevant advantage of our proposal is that computation can be performed with integer variables without a significant lost of precision (Mi-croBlaze works with32bits). The third row of Table2shows that using
in-teger instead of float variables reduces clock cycles in average in two orders of magnitude (more than96%). Hence our approach can be implemented
sim-ilar comparison but in terms of computation time, considering a clock cycle of20ns (50MHz of working frequency).
4.3 Discussion
Previous work on neuro-fuzzy and fuzzy approaches implemented on FP-GAs to control autonomous car-like robots, such as [16], [17] and [19], learn
or emulate the expert knowledge of a human driver and focus on parking problems (parking without obstacles in [16] and parking in a structured
en-vironment in [17]) or focus on path tracking without obstacles [19]. Other
FPGA-based neuro-fuzzy approaches, such as [18], do not take into account
the constraints of car-like robots. The approach proposed herein is able to provide paths of smaller length for car-like robots in unstructured environ-ments with obstacles.
Previous work on neuro-fuzzy approaches that learn to provide paths of small length, such as [22], consider structured environments and are less
suitable for implementation into embedded systems, because they employ Gaussian membership functions. Others, which are more suitable for em-bedded systems, such as [24] and [25], do not avoid obstacles. The solution
proposed in [25], which is implemented in a Pentium processor working at
100MHz, takes about2ms to compute the reference curvature. The solution
proposed in [24], which is implemented in a DSP (Digital Signal
Proces-sor) working at33MHz, takes about20s for a similar computation. In the
approach proposed herein, Module4, whose task is comparable to the
so-lutions in [24] and [25], takes 2.84µs at 50MHz, which means the fastest
solution based on an embedded processor. In addition, the other modules of the controller designed herein are even faster. This provides the robot with the capability of performing more complex tasks with the same hard-ware platform or, similarly, allows using platforms with limited resources to carry out safe navigation. In case that a fast solution is not required by the application, the operation frequency can be very low and, hence, a solution of very low power consumption can be obtained.
The neuro-fuzzy tecnique proposed herein approximates the equations of a reference controller. Other approximators could have been employed, such as neural networks based on radial basis functions (RBF NNs). Table4
com-pares the number of rules and approximation error (expressed as root mean square error, RMSE) of the four modules designed herein with the number of neurons in the hidden layer of RBF NNs and their approximation error. The radial basis functions considered have been the product of isosceles tri-angles (to be similar in complexity to the triangular membership functions and the product connective considered in the neuro-fuzzy approach). The RBF NNs have been trained with the same numerical data, using also the supervised learning tool of the Xfuzzy environment. In the case of modules
1 and 3, which deal with two inputs, the RBF NNs need 30 and 16
neu-rons, respectively, to obtain the same approximation error, which means an increase in complexity of approximately6 and3.2times more, respectively.
In the case of modules2 and4, which deal with three inputs, the curse of
dimensionality, typical of RBF NNs, begins to appear. Although using150
and180neurons (in case of module2and4, respectively), which means an
increase in complexity of approximately 21.4 and 16.4 times, respectively,
the approximation errors are worse.
Further research will involve the integration of the designed local con-troller into a hybrid architecture that contains global and other local
mod-conclusions 20
Table 4:Comparison of the neuro-fuzzy proposal with neural networks based on radial basis functions (RBF NNs).
Proposal RBF NNs
Module No. rules RMSE No. hidden neurons RMSE
Module1 5 0.14 30 0.14
Module2 7 0.09 150 0.15
Module3 5 0.07 16 0.07
Module4 11 0.08 180 0.15
ules so as to cope with complex navigation problems (including driving backward) and to deal with the considerable levels of noise present in com-plex robotic systems.
5
conclusions
Neuro-fuzzy techniques have been proven very effective to optimize the design of an embedded controller for the free collision navigation of an au-tonomous car-like robot. The control algorithm can be executed rapidly or with low power consumption by even systems based on fixed-point proces-sors because the rule bases employed contain a few number of rules, the number of antecedents is low, and Takagi-Sugeno inference is applied (with antecedents represented by normalized triangular functions). Despite its simplicity, the controller action is smooth and provides paths of near min-imum length, as has been proven by simulation and experimental results. The methodology to design the neuro-fuzzy controller has been automated thanks to the CAD tools of the environment Xfuzzy3, while the FPGA
em-bedded system has been developed with the CAD tools from Xilinx.
Acknowledgements
This work was supported in part by the Spanish Ministerio de Economía y Competitividad under the Project TEC2011-24319 and by Junta de
An-dalucía under the Project P09-TEP-4479 (both with support from FEDER).
The authors would like to thank the Department ofIngeniería de Sistemas y
Automática, University of Seville, in particular to A. Ollero, J. Ferruz, and
F. Leal for advice and collaboration to carry out the experiments with the car-like robot.
references
[1] T.J. Ross, Fuzzy logic with engineering applications,3rd Edition, Wiley, 2010.
[2] H.-P. Huang, J.-L. Yan and T.-H. Cheng, Development and fuzzy
con-trol of a pipe inspection robot, IEEE Transactions on Industrial Elec-tronics57(3) (2010)1088-1095.
[3] P. Rusu, E.M. Petriu, T.E. Whalen, A. Cornell and H.J.W. Spoelder,
Behavior-based neuro-fuzzy controller for mobile robot navigation, IEEE Transactions on Instrumentation and Measurement 52(4) (2003) 1335-1340.
[4] X. Wang and S.X. Yang, A neuro-fuzzy approach to obstacle
avoid-ance for a nonholonomic mobile robot, in: Proceedings of the 2003
IEEE/ASME International Conference on Advanced Intelligent Mecha-tronics (AIM’03),20-24July2003, vol.1, pp.29-34.
[5] K. Basterretxea and I. del Campo, Electronic hardware for fuzzy
com-putation. In A. Laurent and M-J. Lesot (Eds.), Scalable fuzzy algorithms for data management and analysis: Methods and design, pp.1-30, IGI
Global,2010.
[6] A. Malinowski and H. Yu, Comparison of embedded system design for
industrial applications, IEEE Transactions on Industrial Informatics 7
(2) (2011)244-254.
[7] E. Monmasson, L. Idkhajine, M.N. Cirstea, I. Bahri, A. Tisan and M.W.
Naouar, FPGAs in industrial control applications, IEEE Transactions on Industrial Informatics7(2) (2011)224-243.
[8] J.J. Rodriguez-Andina, M.J. Moure and M.D. Valdes, Features, Design
tools and application domains of FPGAs, IEEE Transactions on Indus-trial Electronics54(4) (2007)1810-1823.
[9] D. Majoe, L. Widmer, L. Ling, J. Kao and J. Gutknecht, A reconfigurable
multi-core computing platform for robotics and e-Health applications, in: Proceedings of the 2012IEEE/ACIS11th International Conference
on Computer and Information Science (ICIS’12),30May -1June2012,
pp.451-456.
[10] M.A. Cavuslu, C. Karakuzu and F. Karakaya, Neural identification of
dynamic systems on FPGA with improved PSO learning, Applied Soft Computing12(9) (2012)2707-2718.
[11] C.-Y. Chen, R.-C. Hwang and Y.-J. Chen, A passive auto-focus camera
control system, Applied Soft Computing10(1) (2010)296-303.
[12] P. Brox, I. Baturone and S. Sánchez-Solano, Fuzzy logic-based
embed-ded system for video de-interlacing, Applied Soft Computing 14 (C)
(2014)338-346.
[13] F. Montesino-Pouzols, A. Barriga-Barros, D.R. López and S.
Sánchez-Solano, Enabling fuzzy technologies in high performance networking via an open FPGA-based development platform, Applied Soft Comput-ing12(4) (2012)1440-1450.
[14] S. Sánchez-Solano, M. Brox, E. del Toro, P. Brox and I. Baturone,
Model-based design methodology for rapid development of fuzzy controllers on FPGAs, IEEE Transactions on Industrial Informatics 9 (3) (2013) 1361-1370.
[15] R. Sepúlveda, O. Montiel, O. Castillo and P. Melin, Embedding a high
speed interval type-2 fuzzy controller for a real plant into an FPGA,
Applied Soft Computing12(3) (2012)988-998.
[16] S. Sánchez-Solano, A.J. Cabrera, I. Baturone, F.J. Moreno-Velo and M.
Brox, FPGA implementation of embedded fuzzy controllers for robotic applications, IEEE Transactions on Industrial Electronics 54 (4) (2007) 1937-1945.
References 22
[17] T.S. Li, S.-J. Chang and Y.-X. Chen, Implementation of human-like
driv-ing skills by autonomous fuzzy behavior control on an FPGA-based car-like mobile robot, IEEE Transactions on Industrial Electronics50(5)
(2003)867-880.
[18] M.N. Mahyuddin, C.Z. Wei and M.R. Arshad, Neuro-fuzzy algorithm
implemented in Altera’s FPGA for mobile robot’s obstacle avoidance mission, in: Proceedings of the2009IEEE Region10Conference
(TEN-CON’09),23-26January2009, pp.1-6.
[19] S.G. Tzafestas, K.M. Deliparaschos and G.P. Moustris, Fuzzy logic path
tracking control for autonomous non-holonomic mobile robots: Design of System on a Chip, Robotics and Autonomous Systems 58(8) (2010) 1017-1027.
[20] J. Ferruz, V.M. Vega, A. Ollero and V. Blanco, Reconfigurable control
ar-chitecture for distributed systems in the HERO autonomous helicopter, IEEE Transactions on Industrial Electronics58(12) (2011)5311-5318.
[21] T. Takagi and M. Sugeno, Fuzzy identification of systems and its
appli-cations to modeling and control, IEEE Transactions on Systems, Man, and Cybernetics15(1) (1985)116-132.
[22] K. Demirli and M. Khoshnejad, Autonomous parallel parking of a
car-like mobile robot by a neuro-fuzzy sensor-based controller, Fuzzy Sets and Systems160(19) (2009)2876-2891.
[23] N. Uchiyama, T. Hashimo, S. Sano and S. Takagi, Model-reference
con-trol approach to obstacle avoidance for a human-operated mobile robot, IEEE Transactions on Industrial Electronics56(10) (2009)3892-3896.
[24] I. Baturone, F.J. Moreno-Velo, V. Blanco and J. Ferruz, Design of
embed-ded DSP-based fuzzy controllers for autonomous mobile robots, IEEE Transactions on Industrial Electronics55(2) (2008)928-936.
[25] I. Baturone, F.J. Moreno-Velo, S. Sánchez-Solano and A. Ollero,
Auto-matic design of fuzzy controllers for car-like autonomous robots, IEEE Transactions on Fuzzy Systems12(4) (2004)447-465.
[26] K. Samsudin, F.A. Ahmad and S. Mashohor, A highly interpretable
fuzzy rule base using ordinal structure for obstacle avoidance of mobile robot, Applied Soft Computing11(2) (2011)1631-1637.
[27] Xfuzzy: Fuzzy logic design tools. Available at: http://www.imse-cnm. csic.es/Xfuzzy
[28] J.C. Latombe, Robot motion planning, Kluwer Academic Publishers, 1991.
[29] R.A. Brooks, A robust layered control system for a mobile robot, IEEE
Journal on Robotics and Automation2(1) (1986)14-23.
[30] M.J. Wooldridge, An introduction to multiagent systems, John Wiley &
Sons Ltd.,2009.
[31] L.E. Dubins, On curves of minimal length with a constraint on
aver-age curvature and with prescribed initial and terminal positions and tangents, American Journal of Mathematics79(3) (1957)497-516.
[32] J.A. Reeds and R.A. Shepp, Optimal path for a car that goes both
for-ward and backfor-ward, Pacific Journal of Mathematics145 (2) (1990)367 -393.
[33] G. Desaulniers, On shortest paths for a car-like robot maneuvering
around obstacles, Robotics and Autonomous Systems17(3) (1996)139 -148.
[34] N. Ghita and M. Kloetzer, Trajectory planning for a car-like robot by
en-vironment abstraction, Robotics and Autonomous Systems60(4) (2012) 609-619.
[35] R. Battiti, First- and second-order methods for learning: between
steep-est descent and Newton’s method, Neural Computation 4 (2) (1992) 141-166.
[36] F.J. Moreno-Velo, I. Baturone, A. Barriga and S. Sánchez-Solano,
Auto-matic tuning of complex fuzzy systems with Xfuzzy, Fuzzy Sets and Systems158(18) (2007)2026-2038.
[37] I. Baturone, F.J. Moreno-Velo and A. Gersnoviez, A CAD approach to
simplify fuzzy system description, in: Proceedings of the 2006 IEEE
International Conference on Fuzzy Systems (FUZZ-IEEE’06),16-21July 2006, pp.2392-2399.