Mobile Robot Navigation Using A Behavioural Strategy
Mobile Robot Navigation Using A Behavioural Strategy
P. Nattharith
School of Mechanical and Systems Engineering
Newcastle University
Abstract
This paper addresses the issue of mobile robot navigation in an indoor
environment. In the system, an obstacle is defined as any object which
prevents the mobile robot from achieving its goal. The robot needs to
detect and avoid these objects and make its way to the desired location.
Hence the robots behavioural ability in avoiding obstacles becomes a
major issue, along with its ability to plan a path to its goal. The collision
avoidance behaviour is a strategy which the mobile robot will adopt to
prevent it from hitting obstacles as well as maintaining its track to its goal.
In the proposed work, a hybrid architecture is adopted. It combines two
components: a deliberative architecture and a reactive architecture which
is based upon the motor schema. Several perceptual and motor schemas
are employed in order to facilitate both the aspects of global and local
navigation. The deliberative planning creates the safe path using a
wavefront algorithm. It is then passed to the reactive module in terms of a
series of waypoints. These are treated as immediate subgoals and are used
to form behaviours leading the mobile robot to achieve its goal without
experiencing any collision within an optimum travel distance and
reasonable amount of time. High level processing of the data will be
undertaken as part of the overall behavioural and path planning strategies,
which will require significant consideration and design in order to
implement them as part of a Player/Stage architecture.
Key words: Mobile robot navigation, Mobile robot architectures,
Player/Stage architecture, Wavefront algorithm, Motor schema.
1. Introduction
Autonomous navigation requires an intelligent control system including a deliberative
architecture for global path planning and a reactive architecture for local real-time
obstacle avoidance. Global techniques require a complete model of the robots
environment in order to create a safe path from its starting point to its goal. However it is
not appropriate for a dynamically varying environment. On the other hand, local methods
place more emphasize on real-time obstacle avoidance than creating an optimal solution.
A combination of these two systems has been able to improve the overall robots
performance and results in a type of hybrid architecture, which includes high level path
planning, combined with low level obstacle avoidance.
In this paper, path planning and navigation of a mobile robot moving around a simulated
environment are described. The following sections provide a brief description of the path
planning and navigation issues for mobile robots, and detail the mobile robot
architectures and Player/Stage architecture. The further sections describe the design of a
behaviour based hybrid architecture that is adopted, followed by some results of how a
simulated mobile robot plans the path and navigates around its environment. The system
utilizes a path planner containing a wavefront algorithm combined with the potential field
method [1, 2] for the obstacle avoidance, as well as odometry system which is used to
maintain all possible robot positions. The path planner ensures that the robot maintains a
safe distance from the obstacles, while finding an optimal path from each position to the
next. Simulated experiments reveal that this system can safely and effectively navigate
the mobile robot around a designated environment.
2. Mobile Robot Navigation
Path planning and navigation are the key research issues in mobile robotics. Path
planning and navigation algorithms comprise two categories, namely global navigation
and local navigation. The global navigation problem deals with the navigation on a larger
scale in which the robot can not observe its goal from its initial position. In most cases,
the robot uses a pre-specified map to plan its path as well as to determine its location in
the environment. This solution allows the robot to achieve its distant goals which are
specified according to the global map. The local navigation problem, on the other hand,
deals with the navigation over short distances or from point to point, where the main
focus is one of obstacle avoidance. Local navigation allows the robot to move in its
environment and to reach local goals without collisions.
2.1 Global Path Planning using Wavefront Algorithm
The wavefront algorithm involves the breadth first search technique, searching along the
horizontal plane of the graph, beginning at the start point propagating out until it reaches
the goal point. A grid of squares is created from the map using an appropriate size of
square. Each square is initialized to a numerical value of 0. Squares known to contain a
physical object or part of an object are assigned a numerical value of 1. The goal point is
then identified and allocated a value of 2. To create the wavefront values, any squares
which surround the goal point are given a higher number depending on how close they
are to the goal point. A value of 3 is assigned to the squares adjacent to the goal point,
with the value of 4 assigned to the squares adjacent to those squares having a value of 3,
and so on. Once the start point is assigned a numerical value, the algorithm then proceeds
to select the lowest value square nearest the start point. It is marked as a waypoint. Then
the algorithm moves to the selected square and selects the nearest square having the
lowest value. It is also marked as the waypoint. The sequence is repeated until the goal
point is reached. This creates the safe path, in terms of a series of waypoints, from the
start point to the goal point. However, some waypoints can be eliminated if the path from
the previous waypoint to the next waypoint does not cross through the obstacle.
Therefore, the algorithm can iteratively eliminate some waypoints and it is repeated until
Subsumption architecture, introduced by Brooks [4], is the best known system for
behaviour based architecture. It is built up from layers of interacting finite-state
machines, connecting sensors to actuators directly. These layers are called behaviours.
Subsumption has an arbitration mechanism that enables higher level behaviours to
override signals from lower level behaviours. Another popular example of behaviour base
architectures is Arkins motor schema [5]. It generates response vectors based on the
outputs of the perceptual schemas. Motor schema has a fusion mechanism which is used
to combine the generated response vectors in a manner similar to a potential field method
[1, 2]. Figure 4 displays two popular examples of behaviour based architecture.
4. Player/Stage Architecture
Play is an open-source software tool for robot and sensor applications. It is a network
oriented device server [6]. The Player server is a distributed device server that provides
clients with network-oriented programming interfaces to access the robots actuators and
sensors, and includes a collection of device drivers for many popular robot hardware
devices. Client programs use proxy objects, defined in a Player client library, to write and
read data to and from the desired devices. Player employs a one-to-many client/server
style architecture where one server serves all clients of a robots devices. Accompanying
Player is the robot simulator Stage, which allows programmers to control virtual robots
navigating inside a virtual environment. Stage simulates a population of mobile robots,
sensors and objects in a two-dimensional bitmapped environment. It is designed to
support research in autonomous systems. Stage is most commonly used as a Player plugin module, providing populations of virtual devices for Player. Users write robot
controllers and sensor algorithms as clients to the Player server. Player clients which are
developed using Stage will work with little or no modification with the real robots and
vice versa. Thus Stage allows rapid prototyping of controllers destined for real robots. It
also allows experiments with realistic robot devices. Various sensors and actuators are
provided, including sonar, scanning laser rangefinders, vision, and odometry.
Player/Stage was developed primarily under Linux; however, it also runs on other UNIX
variants such as Solaris and FreeBSD that support TCP socket mechanisms and under
Windows with Cygwin [7]. The client programs can be implemented in any language
such as C, C++, TCL, Java and Python.
5. Behaviour Based Hybrid Architecture
The majority of behaviour based architectures reported in the past can be generally
categorized into two main groups depending on their behaviour action-selection
mechanism. The behaviour arbitration mechanism [4] handles one behaviour at a time,
while the command fusion mechanism [2, 3] handles multiple behaviours at a time. The
arbitration mechanisms are suitable for competitive behaviours, while the command
fusion techniques are appropriate for cooperative behaviours [8]. Two main problems
observed with the behaviour arbitration are instability [9] and starvation [10]. Instability
arises when the control of the robot alternates between two behaviours and starvation
occurs when the behaviour does not gain control of the robot for a long time. The
vector, also called the attractive force ( Ft ). The robots visitation at each waypoint ends
when it gets within the so called distance tolerance ( d t ), e.g. 1 m of the waypoint.
However, this condition is not used for the final waypoint, i.e. the goal, where the robots
task is completed when the distance tolerance is reduced to 0.5 m of the goal. The
attractive force is given by [1];
Ft =
xt x0 y t y 0
x+
y
d (t )
d (t )
(1)
the robot away from any detected obstacles (see Figure 2). This output vector ( Fr ) is a
unit vector directed to the sum of the repulsive forces generated by each obstacle point
( x i , y j ). Each repulsive force ( F ) is inversely proportional to the square of the distance
between the obstacle and the robot such that;
1 xi x 0 y j y 0
x+
if d (i, j ) d 0
(2)
if d (i, j ) > d 0
(3)
i, j
Fr =
Fr
Fr
(4)
R=
i Fi
i =1
(5)
i =1
where i
Fi
The objective of the behaviour coordination module is also to generate the appropriate
values for a set of behaviour coefficients, [ i ] , to satisfy each motor schema.
Translator module receives the resultant vector from the behaviour coordination module
and produces the actual control commands. Two control variables completely define the
output behaviour of the robot; the translation velocity command ( v ), and the steering rate
command ( ) where [12];
= k [ () ]
where k
(6)
The () is a specially defined operator for two operands [12] which provides the shortest
rotational difference between and . Therefore, is always in the range of
180 < c < 180 .
6. Modelling and Simulation using Player/Stage Architecture
In order to estimate the capability of the proposed work for expressing useful tasks,
several algorithms have been evaluated. The Player/Stage simulator [6] was used to
conduct the experiments to confirm that the robot can successfully plan the path, wander
around its environment, visit each waypoint and finally reach its goal without collisions.
6.1. Experimental Results of Path Planning Algorithm
Although the Player/Stage simulator includes a planner proxy, called a wavefront driver,
it can not be executed on a physical mobile robot unless the robots localization system is
established in the laboratory. At this time the mobile robot currently only uses its
odometry system for localization which is not accepted as an input by the planner proxy.
All experiments, using the planner proxy, were conducted with the ideal localization on
the Player/Stage simulator. Therefore, the planning algorithm was developed for that
reason for using on the Player/Stage simulator as well as for further implementation on
the physical mobile robot.
The purpose of the experiment is to create the safe path from the robots current position
to its goal. The experiment revealed that the path planning algorithm works for any given
reachable goal location. If the algorithm is given an unreachable goal location, it will
state this fact and be able to recognize this unreachable goal. The goal could be
unreachable because it is inside the obstacles or it is behind the wall, with no access. The
algorithm was tested for a range of different goal positions and that it could plan the path
to each reachable goal in the laboratory. Table 1 shows the outputs of the path planning
algorithm, in terms of a series of waypoints, from the different start positions to the
different goal positions. The x,y coordinates of the Docking area, Room1, Room2, and
Room 3, as shown in Figure 6, are (0, 0), (3, 5), (12, 5), and (6, -6), respectively. The
prohibited areas are also shown in Figure 6, where
and
represent the prohibited
area A and B. The results also revealed that the waypoints did not occur in any prohibited
areas on the map as shown in Table 2. Figure 6 displays the outputs of the path planning
algorithm, with a series of waypoints from the different start positions to the different
goal positions.
Start
Goal
Dock
Dock
Dock
Room 1
Room 1
Room 1
Room 2
Room 2
Room 2
Room 3
Room 3
Room 3
Room 1
Room 2
Room 3
Dock
Room 2
Room 3
Dock
Room 1
Room 3
Dock
Room 1
Room 2
No. of
waypoints
Waypoints
2
4
3
2
6
5
4
5
6
3
4
6
Table 1. Outputs of the path planning algorithm from the different start positions to the
different goal positions.
Start
Dock
Dock
Goal
Area A
Area B
No. of
waypoints
Waypoints
0
0
Path is unreachable.
Path is unreachable.
Table 2. Outputs of the path planning algorithm in cases of the unreachable goals.
No claims about the optimality of the wavefront algorithm are made at this point,
however, the experiments have shown that the algorithm plans acceptable path plans for
the particular environment.
Descriptions
Docking Area: (0,0)
Room 1: (3, 5) for Figure 7
Room 2: (12, 5) for Figure 9
Room 3: (6, -6) for Figure 8
= 0.0
t = 1.0
r = 2.5
v = 0.0 m/s
v = 0.5 m/s
d0 = 2.0 m
dt = 1.0 m
for reaching waypoint
dt = 0.5 m
for reaching goal
References
1. Siegwart, R. and I.R. Nourbakhsh, Introduction to Autonomous Mobile Robots. 2004.
2. Khatib, O., Real-Time Obstacle Avoidance for Manipulators and Mobile Robots. The
International Journal of Robotics Research, 1986. 5(1): p. 90-98.
3. Arkin, R.C., Motor Schema-Based Mobile Robot Navigation. The International
Journal of Robotics Research, 1989: p. 92-112.
4. Brooks, R.A., A Robust Layered Control System for a Mobile Robot. IEEE Journal of
Robotics and Automation, 1986. RA-2(1): p. 14-23.
5. Arkin, R.C., Motor schema based navigation for a mobile: An approach to
programming by behavior. Proceedings IEEE International Conference on Robotics
and Automation, 1987. 4: p. 246-271.
6. Gerkey, B.P., et al., Most Valuable Player: A Robot Device Server for Distributed
Control. Proceedings of the IEEE/RSJ Intl. Conf. on Intelligent Robots and Systems
(IROS), 2001: p. 1226-1231.
7. Collett, T.H.J., B.A. MacDonald, and B. Gerkey, Player 2.0: Toward a Practical
Robot Programming Framework. Proceedings of the Australasian Conference on
Robotics and Automation (ACRA 2005), 2005.
8. Arkin, R.C., Behavior-Based Robotics. 1 ed. Bradford Book. 1998: MIT Press. 491.
9. Egerstedt, M., Behavior Based Robotics using Hybrid Automata. Proceedings of the
Third International Workshop on Hybrid systems: Computation and Control, 2000: p.
103-116.
10. Sahota, M.K., Action Selection for Robots in Dynamic Environments through Interbehaviour Bidding. Proceedings of the Third International Conference on Simulation
of Adaptive Behavior, 1994: p. 138-142.
11. Taliansky, A. and N. Shimkin, Behavior-Based Navigation for an indoor Mobile
Robot. 21st IEEE Convention of the Electrical and Electronic Engineers in Israel,
2000: p. 281-284.
12. Borenstein, J. and Y. Koren, Real-time Obstacle Avoidance for Fast Mobile Robots.
1989 IEEE. Reprinted, with permission, from IEEE Transactions on Systems, Man,
and Cybernetics, 1989. 19(5): p. 1179-1187.
13. Mataric, M.J., The Robotics Primer. 2007.
61
60
59
58
57
56
55
54
53
52
51
50
49
48
47
46
45
44
43
42
41
40
39
38
37
36
37
38
39
40
41
62
61
60
59
58
57
56
55
54
53
52
48
47
46
45
44
43
42
41
37
36
35
36
37
38
39
40
63
62
61
60
59
58
57
56
55
54
53
49
48
47
46
45
44
43
42
36
35
34
35
36
37
38
39
64
63
62
61
60
59
58
57
56
55
54
50
49
48
47
46
45
44
43
35
34
33
34
35
36
37
38
65
64
63
62
61
60
59
58
57
56
55
51
50
49
48
47
46
45
44
34
33
32
33
0
34
35
36
37
66
65
64
63
62
61
60
59
58
57
56
52
51
50
49
48
47
46
45
33
32
31
32
0
33
34
35
36
67
66
65
64
63
53
52
51
50
49
48
47
46
32
31
30
31
0
32
33
34
35
36
37
38
39
40
41
68
54
53
52
51
50
49
48
47
31
30
29
30
0
31
32
33
34
35
36
37
38
39
41
69
64
63
62
61
60
59
58
57
56
55
64
55
54
53
52
51
50
49
48
30
29
28
29
0
30
31
32
33
34
35
36
37
38
39
70
63
62
61
60
59
58
57
56
55
54
63
56
55
54
53
29
28
27
28
0
29
30
31
32
33
34
35
36
37
38
71
62
61
60
59
58
57
56
55
54
53
62
57
56
55
54
28
27
26
27
0
28
29
30
31
32
33
34
35
36
37
72
61
60
59
58
57
56
55
54
53
52
61
58
57
56
55
27
26
25
26
0
27
28
29
30
31
32
33
34
35
36
73
60
59
58
57
56
55
54
53
52
51
60
59
58
57
56
26
25
24
25
0
26
27
28
29
30
31
32
33
34
35
74
59
58
57
56
55
54
53
52
51
50
28
27
26
25
24
23
24
0
25
26
27
28
29
30
31
32
33
34
75
58
57
56
55
54
53
52
51
50
49
27
26
25
24
23
22
76
57
56
55
54
53
52
51
50
49
48
26
25
24
23
22
21
19
18
17
16
15
14
13
12
11
12
77
56
55
54
53
52
51
50
49
48
47
25
24
23
22
21
20
18
17
16
15
14
13
12
11
10
11
78
55
54
53
52
51
50
49
48
47
46
24
23
22
21
20
19
17
16
15
14
13
12
11
10
10
79
54
53
52
51
50
49
48
47
46
45
44
43
42
41
40
39
38
23
22
21
20
19
18
16
15
14
13
12
11
10
80
53
52
51
50
49
48
47
46
45
44
43
42
41
40
39
38
37
22
21
20
19
18
17
16
15
14
13
12
11
10
81
52
51
50
49
48
47
46
45
44
43
42
41
40
39
38
37
36
23
22
21
20
19
18
17
16
15
10
82
41
40
39
38
37
36
35
24
23
22
21
20
19
18
17
16
83
50
49
48
47
46
45
44
43
42
40
39
38
37
36
35
34
25
24
23
22
21
20
84
49
48
47
46
45
44
43
42
41
39
38
37
36
35
34
33
26
25
24
23
22
21
11
10
85
48
47
46
45
44
43
42
41
40
38
37
36
35
34
33
32
31
30
27
26
25
24
23
22
10
86
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
12
11
10
Start Cell
Robot Path
Goal Cell
Deliberative Module
Target (x, y, )
Planner
Map
a series of waypoints
status
Intermediate Layer
next waypoint
Odometry
go_to_waypoint
Sonar
avoid_obstacle
Reactive Module
output
vector
vector
vector
[]
Translator
speed,turnrate
Room 2
Room11
Room
Room
Room22
Room
Room11
Goal
Goal
DockingArea
Area
Docking
DockingArea
Area
Docking
waypoint 3
waypoint
waypoint22
waypoint 1
Robot
Robot
Room 33
Room
Room 33
Room