Content uploaded by Xiaotian Yang

Author content

All content in this area was uploaded by Xiaotian Yang on Oct 30, 2017

Content may be subject to copyright.

Grid Based 2D Navigation by a Decentralized Robot System with Collison

Avoidance

Xiaotian Yang1

1. School of Electrical Engineering and Telecommunications, the University of New South Wales, Sydney 2052, Australia

E-mail: xiaotian.yang@unsw.edu.au

Abstract: This paper presents a collision-free decentralized random algorithm for robots to search an unknown 2D area with

obstacles. Assumptions in this paper are based on real robots instead of particles so collisions between robots are considered.

Robots move along edges of a grid and randomly choose the next steps in sequence based on local sensing, communication, and

the repulsive force method. A rigorous mathematical proof of convergence with probability 1 is given. For a complete search of

the area, an equilateral triangular grid should be used and the algorithm is compared with others in the simulation.

Key Words: Grid Selection, Robot Team, Search, Decentralized Algorithm

1 Introduction

Search and rescue is an important research field in

robotics. If the area is large and the efficiency is important, a

robot team should be used instead of one robot. In the search,

robots move around to dynamically cover the area until each

point is detected. The applications of multiple robots can be

found in fire detection [1], rescue [2].

For a team of robots, both centralized and decentralized

methods can be used for communication and control.

Although decentralized solutions are more challenging, they

provide robustness, flexibility, reliability and scalability [3]

because robots are dynamically decoupled which enables

robots to work independently sometimes. Some simple local

coordination and control laws had been found in animal

aggregation behaviors, such as [4]. Similarly, robots could

also use limited communication and computation abilities to

deal with local information, which saves time, money and

energy and is more applicable than centralized algorithms. In

situations with limited communication between robots, the

necessary information can be estimated using methods of

Kalman state estimation, see e.g. [5, 6]. In the proposed

algorithm, temporary local networks are employed as in

[7-9].

To simplify the algorithm, the topological map [10] is

used to represent selected information of the area instead of

the geometric map [11, 12] which describes all details. The

equilateral triangular grid was chosen by [7-9, 13, 14] to

employ the least vertices to cover an area. In their algorithm,

robots move between vertices along edges of the grid. Thus,

the map only includes the coordinates and visitation states of

vertices. However, the equilateral triangular grid does not

always the least vertices under different conditions. This

paper chooses it because it can provide a complete search of

the area.

In decentralize search algorithms, some publications using

grids had rigorous proofs of the convergence of their

algorithms [7, 8, 13] but they may not prove 100% coverage.

Although [9] proved 100% blanket coverage, it required

robots to exceed the boundaries, which limits the range of

*This work was supported by the Australian Research Council.

application. Even [7] used a grid inside the boundaries, the

routes of the robots still exceeded the boundaries in its

simulations. [7, 9, 13] only proved that robots can go through

every vertex of the grid but their authors directly thought that

proof is equal to the proof of 100% coverage. Actually, part

of the area is not detected which was discussed in [8].

However, [8] only considered the area in passages without

considering the area near boundaries. This paper considers

both. The algorithm in [12] did not use a grid, it applied Lévy

distribution to generate step length and normal distribution

to generate rotation angle so robots can move freely to detect

every point. This paper not only provides a rigorous proof of

convergence of the algorithm but also considers relations

between ranges, the requirement about passages and the

curvature of boundaries to ensure a complete search.

Collision avoidance is an essential problem in search.

Solutions for a single robot can be found in [15-18] and a

survey for the solution in multiple robots can be seen in [19].

However, some previous papers using grid pattern [7, 9, 13,

20] allowed collisions between robots to happen by reducing

robots to particles. This simplified the algorithm and

decreased the search time as robots can make choices

simultaneously, however, it is unrealizable. For collisions

with boundaries, [7, 9, 13, 20] used sensed and shared local

information to avoid going to the blocked vertices. In [12],

robots had to use the repulsive force of the artificial potential

field algorithm to avoid collisions as they cannot

communicate to each other. The artificial potential field

generates a gradient field between robots, targets, and

obstacles to direct the movement of robots based on [21].

The repulsive force in [12] was caused by neighbor robots,

boundaries and obstacles which drove robots to go downhill,

namely, moving away from them. The algorithm in this paper

adds the repulsive force on the algorithm of [8]. The force is

generated by nearby robots to disperse robots so they have

less repeated area of search. The algorithm considers the

volume of the robot and all kinds of collisions are avoided.

This paper presents a grid based decentralized random

algorithm for searching targets in an unknown 2D area by

multiple robots with no collision. The algorithm is improved

from [8] and considers the realistic constraints. Robots have

limited sensing and communication ranges and move

Proceedings of the 36th Chinese Control Conference

Jul

y

26-28, 2017, Dalian, China

8473

between vertices. When 100% search is required, an

equilateral triangular grid is used and the algorithm is

compared with others in simulations.

The remainder of the paper is organized as follows.

Section 2 states the problem. Section 3 discusses the

selection of the grid followed by the proposed algorithm in

section 4. The proposed algorithm is compared with others

for a complete search in section 5 and section 6 draws a

conclusion.

2 Problem Formulation

Assumption 2.1: The search area AؿԹ2 is a bounded,

connected and Lebesgue measurable set. There are a limited

number of arbitrary obstacles O1, O2, . . ., Ol and obstacles Oi

are non-overlapping, closed bounded and linearly connected

sets for any i>0. They are both static and unknown to the

robots.

Definition 2.1: Let O:=Oi for all i>0, then introduce ܣ݀:=

ܣ\ܱ as the area that needs to be detected.

There are m robots labeled as rob1 to robm to search static

targets T1 to Tn. Let T be the set of target coordinates and Tki

represents the targets set known by robi. Then |T| represents

the number of targets and |Tki| represents the number of

targets known by robi. There are two modes for searching

targets. If |T| is known, it is called situation 1, otherwise, it is

called situation 2.

Assumption 2.2: The initial condition is that all robots use

the same grid and the same coordinate system and they are

allocated at different vertices along the border of the area.

This assumption is achieved in [7, 9, 13] with impractical

infinite time and collisions. If it is only roughly reached in a

short time, the range for sensing and communication should

be designed large enough to ignore errors between

coordinate systems. In simulation, robots are manually set at

vertices of a grid to achieve this assumption without

collisions.

Assumption 2.3: All the sensors and communication

equipment in this algorithm have circular ranges.

The proposed algorithm uses a grid pattern. In each step, a

robot moves straightly from one vertex vi of the grid to one of

the nearest neighbor vertices vj thus the moved distance is the

side length a of the basic grid shape. Let the swing radius of

robots be rrob. Then the safety radius rsafe including all errors

should be larger than rrob. Therefore, to avoid collisions with

obstacles and borders in moving, the sensing range for

obstacles, rso, should satisfy the following assumption.

Assumption 2.4: rso≥a+rsafe.

Robots within rso of robi are called sensing neighbors of

robi. Then the set of sensing neighbors of robi at discrete

time kis described by ܰݏ,݅(݇). A neighbor in the set is

denoted as ns,i,j(k). |ܰݏ,݅(݇)| denotes the number of elements in

ܰݏ,݅(݇). Let the set which includes all the accessible vertices

be Va. In ܰݏ,݅(݇), let the set of visited vertices of robi be

ܸݒ,݅(݇) and the set of unvisited vertices of robi be ܸݑ,݅(݇).

|ܸݒ,݅(݇)| and |ܸݑ,݅(݇)| denote the number of elements in the two

sets respectively. Then let the choice from ܸݒ,݅(݇) be cv and

the choice from ܸݑ,݅(݇) be cu.

To avoid collisions caused by having the same choice by

different robots, robots need to make choice in sequence and

inform their choices to robots which are one vertex away and

two vertices away. Considering errors, communication range

rc satisfies:

Assumption 2.5: rc≥2*a+rsafe-rrob.

Based on assumptions above, a≤min(rso-rsafe, (rc-

rsafe+rrob)/2). Robots within rc of robi are called

communication neighbors of robi and ܰܿ,݅(݇) is used to

denotes those neighbors at time k. Then |ܰܿ,݅(݇)| denotes the

number of elements in ܰܿ,݅(݇). Robots build a wireless

ad-hoc network to communicate with communication

neighbors equally. The networks are temporary so it will be

rebuilt after robots arrive at their chosen vertices. In the test

with robots, ad-hoc mode of Wi-Fi communication will be

used in the local area of the robot and TCP socket are

employed to exchange data.

Definition 2.2: The chosen position of robi at time k+1 is

pi(k+1). At time k, the average position of choices made by

robots which chose earlier and positions of communication

neighbors which have not chosen yet is pi,ave(k). Then

,()uiavekcp

d

refers to the set of distances from pi,ave(k) to

unvisited vertices and

,()viavekcp

d

is the set of distances from

pi,ave(k) to visited vertices. The maximum values in this two

sets are represented as

,()

max( )

uiavekcp

d

and

v, ()

max( )

iavekcp

d

separately. The corresponding numbers of vertices which

result to the maximum distance are |ܸumax,i(݇)| and |ܸvmax,i(݇)|.

The first aim of the paper is to design a collision-free

decentralized algorithm for robots to search an unknown

area with obstacles. Secondly, the grid for a complete search

needs to be found with certain assumptions. The potential

applications are the search tasks in large unknown 2D areas

without global information, such as the seabed, caves,

tunnels and planets.

3 Grid for the Complete Search

There are mainly two kinds of requirements for selecting

the grid. One is to completely search the area and the other is

to detect all vertices of the area, e.g. [7, 13, 22]. This paper

discussed the complete search only which requires the robots

to dynamically cover the whole area.

To simplify the algorithm further, all vertices need to be

similar or equal. Therefore, three regular tessellation

patterns, namely, the equilateral triangle (T), the square (S)

and the regular hexagon (H) are considered as seen in Fig. 1.

However, for the complete search, only T grid is available

with assumptions below:

Fig. 1: Three regular tessellation patterns

Assumption 3.1.1: rst≥a+rsafe.

This assumption guarantees that robots can detect

inaccessible vertices. For example, in Fig. 2, black circles

have a radius of a+rsafe and the red line is the boundary so v4

is within rsafe of the boundary and cannot be visited. But area

D near v4 can be detected by robots at v1, v2 and v3.

8474

Assumption 3.1.2: The curvature of the concave part of

the search area should be smaller than or equal to 1/ݎݏt.

Without assumption 3.1.2, some parts of the area are not

able to be detected. For example, in Fig. 2, sections A, B, and

C have curvatures greater than 1/ݎݏ. But the slashed section

A cannot be detected or reached although section B and C

can be detected luckily. The reason that the S grid and the H

grid are not used is that there are no such limitations to

guarantee a complete coverage. The setting of the curvature

is useless in those two grid patterns.

Fig. 2: Curvature example for triangle pattern

Assumption 3.1.3: All passages between obstacles or

between the obstacles and boundaries have a width

Wpass≥a+2*rsafe.

This assumption guarantees that there is always at least

one accessible route in the passage. If the passage is not large

enough as in Fig. 3, robots at va will not arrive at vb as robot

can only move a in a step but vertices vc, vd, ve and vf are

inaccessible, leaving a section in between undetectable.

Fig. 3: Narrow passages

4 Procedure and Algorithm

The procedure of the algorithm is in Fig. 4 which is the

same as [8] but the core of the algorithm, namely, how to

choose the next step is improved and discussed in detail. The

description of each step starts with situation 1. Situation 2

will only be mentioned when the operation is different or

when there are extra tasks to do.

Fig. 4: Flow chart of the progress

4.1 Steps before Making Choices

Initially, robots sense their local sections. In situation 1, if

robi finds any target, it will broadcast the position of the

target and go to step 7. Otherwise, it will go to step 2. For

situation 2, robots only need to go to step 7 regardless of the

sensing results.

In step 2, if an object is judged as an obstacle for robi

blocking the way to the neighbor ns,i,j(k), ns,i,j(k) will be

removed from ܰݏ,݅(݇). For situation 2, the vertex will also be

recorded as visited. When no objects are sensed, robi will

wait for the same amount of processing time for

synchronization.

In step 3, robots exchange explored maps and failure

information to communication neighbors to build up ܰs,i(݇),

ܰܿ,݅(݇) and ܸݒ,݅(݇). If |ܰܿ,݅(݇)|=0, it needs to wait for others to

synchronize all robots. For situation 2, the visitation states

will also be communicated.

In the 4th step, the order of choice is set. For robi at pi(k)

and its neighbor robj at pj(k), if pjx>pix|(pjy>piy&pjx≥pix), robj

will have the higher priority in choosing the next vertex.

4.2 Random Choice with the Repulsive Force

In this step, robi firstly waits for others with higher priority

to choose. In its turn, if |ܰܿ,݅(݇)|=0. The random

decentralized algorithm in [8] is used:

,,

,, ,

,

(1)

with prob. 1/ ( ) , if ( ) 0

with prob. 1/ ( ) , if ( ( ) 0) &( ( ) 0)

() if () 0

i

uuiui

vviuivi

isi

pk

cVkVk

cVkVkVk

pk N k

z

°

° z

®

°

°

¯

(1)

It means that when there are unvisited sensing neighbors,

robi will choose one from them randomly. If there are only

visited sensing neighbors left, robi will randomly choose a

visited one. If there are no unblocked vacant sensing

neighbors, robi will stay at its current position pi(k).

When |ܰܿ,݅(݇)|≠0, the repulsive force caused by other

robots is used which is the novel part of the algorithm as

shown in algorithm (2):

,

,,

,

(1)

with prob. 1/ ( ) , if ( ) 0

with prob. 1/ ( ) , if ( ( ) 0) &( ( ) 0)

() if () 0

i

uumax,iui

vvmax,iuivi

isi

pk

cVkVk

cVkVkVk

pk N k

z

°

° z

®

°

°

¯

(2)

In this control law, unvisited vertices still have higher

priorities than visited vertices as in (1). robi calculates pi,ave(k)

8475

first to determine

,()uiavekcp

d

or

,()viavekcp

d

. Then it randomly

chooses one vertex which results to the corresponding

,()

max( )

uiavekcp

d

or

,()

max( )

viavekcp

d

. Thus, robots can move

away from others. If there are many unvisited vertices around

robi and its communication neighbors at time k, robots may

have more choices at time k+1 when they use (2) instead of

(1). If robots are in a visited part of an area, they will try to

leave current section in various directions to find unvisited

area earlier. These two algorithms ensure that all the

accessible vertices in Ad are visited. The algorithm with

deterministic choices should have the same average time as

random choices. It needs to use the first available choice as

there may not be the second one. But robots will search the

area in a certain direction at the beginning based on the

definition of the first choice instead of searching each

direction equally.

After making the choice, robi adds it to its map and sends

it to robots in ܰܿ,݅(݇) and the receivers will update their maps.

Those choose later will adjust ܰs,j(݇) and the information

about obstacles if needed. For situation 2, the visitation

states in robots in ܰܿ,݅(݇) should also be updated.

In this step, waiting for others leads to the result that

failure of robi will affect its neighbors. The scheme to detect

failure can be seen in [8] which makes the system robust.

4.3 Steps after Making Choices

All robots move in the same pattern simultaneously. robi

rotates to face to the chosen vertex and then moves straightly

along the edge of the grid. Robots apply the trapezoidal

velocity profiles based on a and speed and acceleration

limits.

In step 7, for situation 1, robi goes to step 8 after it has

found all targets. So,

݅(݇+1)=݅(݇) if |Tki|=|ܶ| (3)

For situation 2, robi will move to the stop procedure when

there is no undetected vertex in its map. Namely,

݅(݇+1)=݅(݇) if ݒ݅אVa, |ܸݑ,݅(݇)|=0 (4)

In step 8, robi broadcasts the position of targets and a stop

signal to inform all other robots and the human controller to

stop the search.

Theorem 4.1: Suppose all assumptions hold and the

proposed algorithm, namely, the rules (1) and (2) with

related judgment strategy (3) or (4), are used. Then for any

number of robots, there exists a time ݇0>0 such that all

targets or all vertices are detected with probability 1.

Proof: Algorithms (1) and (2) with judgment strategy (3)

or (4) form an absorbing Markov chain including transient

states and absorbing states. The transient states include all

the accessible vertices of the grid where robots visit but do

not stop forever. Absorbing states are the vertices where the

robots stop at step 8. Per the algorithm, robots start at

transient states. In each loop, robots go to the unvisited

sensing neighbor vertices if there are any. If all sensing

neighbors are visited, robots will randomly choose

accessible sensing neighbors. For (3), the number of

transient states will decrease to zero when every robot has

found all targets. For (4), absorbing states are reached until

all vertices are detected. Based on the assumption for Wpass,

absorbing states can be achieved by robots from any initial

positions, namely with probability 1. This completes the

proof of Theorem 4.1.

5 Simulation for a Complete Search Using

Different Algorithms

The complete search task is simulated in Matlab for

situation 1 and compared with others. In simulations, there

are nine targets evenly separated in area A searched by one to

thirteen robots starting near the boundary of the area (see Fig.

5). The compared algorithms are Lévy flight with potential

field algorithm (LFP) in [12], random choices with unvisited

vertices first (RU) in [7], algorithms (1) & (3) in [8] and

algorithms (1), (2) & (3) in this paper. RU did not consider

collisions between robots. So, an additional move time is

added for each collision which may be insufficient when

there are consecutive collisions.

Parameters in simulations are designed based on the

datasheet of Pioneer 3-DX robots (Table 1) and assumptions

in this paper. Row P, R and S are the parameters’ names,

parameters in robots and parameters in simulations

respectively. The underlined items are known values and

others are calculated according to the assumptions. Robots

use sonars to detect obstacles and boundaries, use a laser to

detect targets and have Wi-Fi communication. Specifically,

move time is roughly estimated as 4.5s for a translation and

1.25s for a rotation. In the simulation, a is set to be 1. The

values of rrob, rsafe and tmove from the robot are used. Then

other values are calculated based on assumptions. Note that

equality conditions of the inequalities are used in all

calculations.

Table 1: Parameters of robots and simulation

P

rrob

rsafe

rso

rst

a

rc

vmax

tmove

Wpass

R

0.26

m

0.31

m

5m

32

m

4.6

9m

91.

4m

1.5

m/s

5.7

5s

5.31

m

S

0.26

0.31

1.3

1

1.3

1

1

2.0

5

0.32

/s

5.7

5s

1.62

Fig. 5 demonstrates the routes for three robots using the

proposed algorithm with arrows to point to the moving

directions. Fig. 6 shows the detail of the blue route. From the

recorded route of each robot, no collisions are found and

each target is within rst of at least one visited vertex.

Fig. 5: The routes for three robots

8476

Fig. 6: The routes for the robot label by a blue square

Fig. 7 shows the average search time of 500 simulations

for the four algorithms. In the search time, generally,

LFP>RU>(1)&(3)>(1), (2)&(3). So, the proposed algorithm

(1), (2) & (3) is the best. However, for 9-13 robots, RU>LFP

because, for RU, the decrease of the number of algorithm

loops is slower than the increase in the number of collisions.

For all methods, when the number of robot increases, the

search time decreases sharply at the beginning and slowly

later. It can be predicted that, for the proposed algorithm, if a

large number of robots are used, the total time may start to be

stable and may even be followed by a gentle rise as the

increased algorithm time in step 5 occupies a larger

proportion in total time but the decrease of loops are quite

slow.

Fig. 7: Time for four algorithms with 9 targets.

In this algorithm, the number of robots is flexible and the

algorithm is scalable and robust. The suitable range of robots

could be estimated by simulations in a general area if a rough

size of the area is given. The optimal number of robots

should be decided based on the balance of the decreased time

and the increased cost of robots.

6 Conclusion

This paper proposed a random decentralized collision-free

search algorithm for multiple robots in a static unknown 2D

area with obstacles. Under certain assumptions for the area

and parameters based on realistic constraints, robots move

via a equilateral triangular grid from one vertex to a nearby

vertex in each step simultaneously using the proved

algorithm. Robots choose future steps in sequence in each

step with no collisions even if some robots are broken. The

proposed algorithm is the best comparing to three other

algorithms. Conclusively, the algorithm is scalable, robust,

reliable and effective. In the future work, a fast way to escape

a visited area will be discussed and tests on Pioneer 3-DX

robots will be done.

References

[1] A. Marjovi, J. G. Nunes, L. Marques, and A. De Almeida,

"Multi-robot exploration and fire searching," in IEEE/RSJ

International Conference on Intelligent Robots and Systems.,

2009, pp. 1929-1934.

[2] A. Matos, A. Martins, A. Dias, B. Ferreira, J. M. Almeida, H.

Ferreira, et al., "Multiple robot operations for maritime

search and rescue in euRathlon 2015 competition," in

OCEANS 2016 - Shanghai, 2016, pp. 1-7.

[3] Q. Zhu, A. Liang, and H. Guan, "A PSO-inspired multi-robot

search algorithm independent of global information," in IEEE

Symposium on Swarm Intelligence, 2011, pp. 1-7.

[4] E. Shaw, "The development of schooling in fishes. II,"

Physiological Zoology, pp. 263-272, 1961.

[5] A. V. Savkin, "Analysis and synthesis of networked control

systems: Topological entropy, observability, robustness and

optimal control," Automatica, vol. 42, pp. 51-62, 2006.

[6] V. Malyavej and A. V. Savkin, "The problem of optimal

robust Kalman state estimation via limited capacity digital

communication channels," Systems & Control Letters, vol. 54,

pp. 283-292, 2005.

[7] A. Baranzadeh, "A Decentralized Control Algorithm for

Target Search by a Multi-Robot Team," in Australasian

Conference on Robotics and Automation, University of New

South Wales, Sydney Australia, 2013.

[8] X. Yang, "A decentralized algorithm for collision free

navigation of multiple robots in search tasks," in 2016 35th

Chinese Control Conference (CCC), 2016, pp. 8096-8101.

[9] A. V. Savkin, F. Javed, and A. S. Matveev, "Optimal

distributed blanket coverage self-deployment of mobile

wireless sensor networks," IEEE Communications Letters,

vol. 16, pp. 949-951, 2012.

[10] D. Marinakis and G. Dudek, "Pure Topological Mapping in

Mobile Robotics," IEEE Transactions on Robotics, vol. 26,

pp. 1051-1064, 2010.

[11] T.-D. Vu, J. Burlet, and O. Aycard, "Grid-based localization

and local mapping with moving object detection and

tracking," Information Fusion, vol. 12, pp. 58-69, 2011.

[12] D. K. Sutantyo, S. Kernbach, P. Levi, and V. A.

Nepomnyashchikh, "Multi-robot searching algorithm using

lévy flight and artificial potential field," in Safety Security

and Rescue Robotics (SSRR), 2010 IEEE International

Workshop on, 2010, pp. 1-6.

[13] V. Nazarzehi and A. Baranzadeh, "A decentralized

grid-based random search algorithm for locating targets in

three dimensional environments by a mobile robotic

network," in Australasian Conference on Robotics and

Automation. ACRA2015, 2015.

[14] T. M. Cheng and A. V. Savkin, "Decentralized control of

mobile sensor networks for asymptotically optimal blanket

8477

coverage between two boundaries," IEEE Transactions on

Industrial Informatics, vol. 9, pp. 365-376, 2013.

[15] A. S. Matveev, H. Teimoori, and A. V. Savkin, "A method for

guidance and control of an autonomous vehicle in problems

of border patrolling and obstacle avoidance," Automatica, vol.

47, pp. 515-524, 2011.

[16] A. S. Matveev, C. Wang, and A. V. Savkin, "Real-time

navigation of mobile robots in problems of border patrolling

and avoiding collisions with moving and deforming

obstacles," Robotics and Autonomous Systems, vol. 60, pp.

769-788, 2012.

[17] A. V. Savkin and C. Wang, "A simple biologically inspired

algorithm for collision-free navigation of a unicycle-like

robot in dynamic environments with moving obstacles,"

Robotica, vol. 31, pp. 993-1001, 2013.

[18] A. V. Savkin and C. Wang, "Seeking a path through the

crowd: Robot navigation in unknown dynamic environments

with moving obstacles based on an integrated environment

representation," Robotics and Autonomous Systems, vol. 62,

pp. 1568-1580, 2014.

[19] M. Hoy, A. S. Matveev, and A. V. Savkin, "Algorithms for

collision-free navigation of mobile robots in complex

cluttered environments: a survey," Robotica, vol. 33, pp.

463-497, 2015.

[20] A. Baranzadeh, "Decentralized Autonomous Navigation

Strategies for Multi-Robot Search and Rescue," arXiv

preprint arXiv:1605.04368, 2016.

[21] R. Siegwart, I. R. Nourbakhsh, and D. Scaramuzza,

Introduction to autonomous mobile robots: MIT press, 2011.

[22] S. Alam and Z. J. Haas, "Coverage and connectivity in

three-dimensional underwater sensor networks," Wireless

Communications and Mobile Computing, vol. 8, pp.

995-1009, 2008.

8478