Download as pdf or txt
Download as pdf or txt
You are on page 1of 43

Registration Number:..

/2014

Peoples Democratic Republic of Algeria
Ministry of Higher Education and Scientific Research
University MHamed BOUGARA Boumerdes

Institute of Electrical and Electronic Engineering
Department of Electronics

Project Report Presented in Partial Fulfilment of
the Requirements of the Degree of
LICENCE
In Electrical and Electronic Engineering
Title:



Presented By:
- Idir MAHROUCHE
- Hicham SADOUN
- Khoudir ZIANE

Supervisor:
D
r
HACHOUR
Roadmap Methods for Mobile Robot
Path Planning




Dedication
To our beloved parents,
To our supervisor D
r
HACHOUR
To our families
To our friends,
To all who know us, encourage us, and all who were behind
our career









Acknowledgments
First of all, thanks to God who helped us to accomplish
this project.
We are profoundly grateful to our supervisor,
D
r
HACHOUR, who did not save efforts to help, to advise,
and to guide us throughout the project. We are highly indebted
to the source of ideas, enthusiasm, and support. We should
acknowledge that without her priceless help, this work would
never be accomplished.
We should never forget to address our sincere thanks to
all those who have been our teachers throughout our entire
curriculum.







Abstract
Obstacle avoidance in mobile robotics has been one of the major talks among researchers,
getting a robot from point A to point B without colliding with existing obstacles in its work
space can be achieved using different approaches. This present report emphasizes on the
different possible algorithms capable of achieving the above objective starting by giving a
general view on robotics including robots definition, types of robots. This document also
describes the motion planning problem and lists various solutions giving emphasis to roadmap
methods including Voronoi diagram and visibility graph. The latter methods can be implemented
using diverse algorithms, known as sampling-based algorithms (both single and multiple query
searches), which are all provided in the literature, some of them know as rapidly exploring dense
trees and probabilistic roadmaps.



Contents
General Introduction ..................................................................................................................................... 6
CHAPTER ONE: INTRODUCTION TO ROBOTICS ................................................................................ 7
Introduction ............................................................................................................................................... 8
1.1. Basic definitions ........................................................................................................................ 8
1.1.1. Definition of robotics ............................................................................................................ 8
1.1.2. Definition of a robot .............................................................................................................. 9
1.2. Classification of robots ................................................................................................................. 9
1.2.1. Types of robots by size: ........................................................................................................ 9
1.2.2. Types of robots by application: ........................................................................................... 10
1.2.3. Types of robots by function: ............................................................................................... 10
1.2.3.1. Manipulators : robotic arms and hands ........................................................................... 10
1.2.3.2. Motion generators ........................................................................................................... 10
1.2.3.3. Locomotors : legged and wheeled robots ........................................................................ 10
1.3. Components of a robot ................................................................................................................ 12
1.3.1. Power source ....................................................................................................................... 12
1.3.2. Actuation ............................................................................................................................. 13
1.3.3. Sensing ................................................................................................................................ 13
1.3.4. Manipulators ....................................................................................................................... 13
1.3.5. Locomotion ......................................................................................................................... 13
1.4. Sensors used in mobile robots ..................................................................................................... 14
Conclusion .............................................................................................................................................. 16
CHAPTER TWO: ROBOT MOTION PLANNING & ALGORITHMS ................................................... 17
Introduction ............................................................................................................................................. 18
2.1. Basic definitions .......................................................................................................................... 18
2.1.1. Motion planning ............................................................................................................... 18
2.1.2. Trajectory planning ........................................................................................................... 18
2.1.3. State space ........................................................................................................................ 19
2.1.4. Work space



2.1.5. Configuration space ........................................................................................................ 19
2.2. Roadmap path planning .............................................................................................................. 21
2.2.1. Sampling-based motion planning ........................................................................................ 22
2.2.2. Notion of completeness ....................................................................................................... 22
2.2.3. Roadmap path planning ...................................................................................................... 23
2.2.3.1. Visibility graph ............................................................................................................... 24
2.2.3.2. Voronoi diagram ............................................................................................................. 29
2.3. Motion planning algorithms ........................................................................................................ 34
2.3.1. Single-query models ........................................................................................................... 34
2.3.1.1. The incremental sampling and searching ........................................................................ 34
2.3.1.2. Checking path segment algorithm ................................................................................... 34
2.3.1.3. Rapidly exploring dense trees ......................................................................................... 35
2.3.2. Multiple-query model : Probabilistic roadmap: .................................................................. 38
2.3.2.1. The learning phase : ........................................................................................................ 38
2.3.2.2. The Query phase : ........................................................................................................... 39
Conclusion .............................................................................................................................................. 40
General conclusion ...................................................................................................................................... 41
References ................................................................................................................................................... 42




General Introduction

6




General Introduction

Mobile robotics is a rich field where many engineering and science disciplines are comprised,
from mechanical, electrical and electronic to computer, cognitive and social sciences. A
collection of journal publications, textbooks and pertinent websites were used to gather all the
necessary information in order to carry out this literature.
The first chapter presents an introduction to the fundamentals of robotics, spanning robots
definition, history, components and types of sensors used in the robotic industry.
Whereas the second one deepens in the core of our research topic which is the study of a path
planning methods used for static obstacle avoidance, this method - referred as roadmap - is
nowadays widely used in manufacturing different types of autonomous mobile robots which may
find use in our daily life as in elderly houses or hospitals. There are two different ways of path
planning which are: visibility graph and Voronoi diagram.
We conclude this chapter by depicting some of the most used algorithms in robotic motion
planning such as rapidly exploring dense trees (single-query search) and probabilistic roadmaps
(multiple-query search).



Chapter One: Introduction to Robotics

7









CHAPTER ONE: INTRODUCTION TO
ROBOTICS








Chapter One: Introduction to Robotics

8

Introduction
In this chapter we are going to define robotics as a science and get into robot definition, types of
robots according to different classifications, the components used in building a robot and the
different sensors used for perception.
1.1. Basic definitions
Robotics is not a new science, but merely a collection of topics taken from classical fields.
Mechanical engineering contributes methodologies for study of machines in static and dynamic
situation. Mathematics supplies tools for describing spatial motions and other attributes of
robots. Control theory provides tools for designing and evaluating algorithms to realize desired
motions or force for applications. Electrical engineering techniques are brought to bear in the
design of sensors and interfaces for industrial robots, and computer science contributes a basis
for programming these devices to perform desired tasks.
1.1.1. Definition of robotics
The branch of technology that deals with the design, construction, operation and application of
robots as well as computer systems for their control, sensory feedback and information
processing is robotics. These technologies deal with automated machines that can take the place
of humans in dangerous environments or manufacturing processes.
The design of a given robotic system will often incorporate principles of mechanical engineering,
electronic engineering, and computer science (particularly artificial intelligence). The
mathematical expression of a biological system may give rise to control algorithms for example,
or by observing how a process is handled by nature, an analogous system may be formed using
electronics.
The concept of creating machines that can operate autonomously dates back to classical times,
but research into the functionality and potential uses of robots did not grow substantially until the
20th century. Throughout history, robotics has been often seen to mimic human behavior, and
often manage tasks in a similar fashion. Today, robotics is a rapidly growing field, as
Chapter One: Introduction to Robotics

9

technological advances continue; research, design, and building new robots serve various
practical purposes, whether domestically, commercially, or militarily.
1.1.2. Definition of a robot
The concept of robots is a very old one yet the actual word robot was invented in the 20th
century from the Czechoslovakian word robota or robotnik meaning slave, servant, or forced
labor.
A robot is a mechanical or virtual artificial agent, usually an electro-mechanical machine that is
guided by a computer program or electronic circuitry. Therefore it can be defined as a
programmable, self-controlled device consisting of electronic, electrical, or mechanical units.
Robots are especially desirable for certain work functions because, unlike humans, they never
get tired; they can endure physical conditions that are uncomfortable or even dangerous; they can
operate in airless conditions; they do not get bored by repetition; and they cannot be distracted
from the task at hand. Robots don't have to look or act like humans but they do need to be
flexible so they can perform different tasks.
1.2. Classification of robots
Robotics has been one of the major factors of the great success achieved nowadays in the
industrial world. Many types of robots have been built to facilitate our life, yet we are always
eager to design more flexible, multipurpose, and useful robots.
We can classify robots according to several criteria, most of which are: function, size and
application. Function is maybe seen as the most comprehensive criterion as it groups robots of
different sizes and applications.
1.2.1. Types of robots by size:
The most known robots under this criterion are macro-robots (those with dimensions measured
in meters), these robots can reach a couple of meters, usually used for manipulation of heavy
parts in industry. Micro-robots, in contrast, are measured in far less dimensions allowing them to
reach a fraction of a millimeter.
Chapter One: Introduction to Robotics

10

1.2.2. Types of robots by application:
Robot application varies as their function and size do; there are a large number of fields where
robots can be used. Range of application span the classical industrial robots for spot welding or
painting, for instance, on to surveillance, surgical and nursing operation, rehabilitation and
entertainment, military operations.
1.2.3. Types of robots by function:
According to what might a robot do, we can classify robots as follow:
1.2.3.1. Manipulators : robotic arms and hands
They are the mostly used robots in manufacture; a robot arm can
perform repetitive tasks that human operators could not do with the
same speed and accuracy, e.g. car-body spot-welding, painting and
placing surface-mounted components. A manipulator has a limited
range of motion depending on where it is bolted down; it operates
always in a unique environment (weather conditions, terrain).
1.2.3.2. Motion generators
These include robotic systems capable of mimicking a certain type of motions for different
purposes, ranging from manipulation tasks such as the positioning of surveillance cameras to
surgical operations, on to moving platforms for pilot training (flight simulators), or simply
following musical rhymes.
1.2.3.3. Locomotors : legged and wheeled robots
Under locomotors we mean all robots capable of displacing from point A to B on a surface
without being attached to it. They are also called mobile robots or autonomous robots. In contrast
to robots used in manufacturing plants (such as manipulators), these robots can operate within
different hostile environments and are always able to adapt themselves to any change in the
dynamic characteristics of the environment.

Figure 1.1 A welding robot,
used in industry
(Wikipedia)
Chapter One: Introduction to Robotics

11

The notion of autonomy in robotics includes: self-governing, self-determination and
independence. Though autonomy means independence, robotic systems cannot be totally
independent from humans; this is why it is more suitable to talk about relative autonomy in
robotics rather than total autonomy. Thus we can say that the level of autonomy of a system can
be measured by the level of supervision i.e. the less the system is supervised (human interaction)
the more the system is autonomous.
The two fundamental reasons for making robotic systems more autonomous are:
- Assisting humans in managing complexity;
- Achieving critical time responses in a changing environment.
In our report, research will focus merely on autonomous mobile robots
Legged robots
A legged robot is characterized by having point contacts with the ground; the main advantage of
legged robots is adaptability and maneuverability in rough terrain. In fact, the unique adaptive
suspension provided by these machines allows them to navigate on uneven terrain. The main
disadvantage consists of design complexity when dealing with power and mechanics (balance),
the legs must be capable to sustain the robots total weight.
Legged robots may be of several classes, one which is mostly known to the public is humanoid
robots; others also do exist such as (two-legged and four-legged).








Figure 1.2 ASIMO, bipedal humanoid
robot made by HONDA (Wikipedia)
Figure 1.3 A four-legged military robot
World fastest robot in 2012 (Wikipedia)

Chapter One: Introduction to Robotics

12

Wheeled robots
Wheel, the most popular locomotion mechanism being used in mobile robotics does not have
balance problems, because wheeled robots are designed to be always in contact with terrain.
Generally most mobile robots are four-wheeled ones, but there exit also one-wheeled and two-
wheeled robots which demonstrate more balance design complexity, however they offer
advantages in terms of efficiency and cost, as well as allowing the robot to navigate in confined
places that a four-wheeled robot could not reach.





1.3. Components of a robot
Robot construction needs various types of components which are:
1.3.1. Power source
Different types of batteries (range from lead acid to silver cadmium) can be selected to power
robots according to some factors that are: safety, cycle lifetime, cost and weight.
Potential power sources could be:
Pneumatic (compressed gases)
Hydraulics (liquids)
Flywheel energy storage
Organic garbage (through anaerobic digestion).



Figure 1.4 NASAs Curiosity Rover sent to Mars in 2012 (Wikipedia) Figure 1.5 A four-legged mobile robots
(Wikipedia)
Chapter One: Introduction to Robotics

13

1.3.2. Actuation
Actuators are like the "muscles" of a robot, the parts which
convert stored energy into movement. By far the most popular
actuators are electric motors that spin a wheel or gear, and
linear actuators that control industrial robots in factories. But
there are some recent advances in alternative types of
actuators, powered by electricity, chemicals, or compressed
air.
There are different types of actuator that are: electric motor,
linear actuator, series elastic actuators, air muscles, muscles
wire, piezo- motors
1.3.3. Sensing
Sensor is a way that robots use to perform their tasks and act upon any changes by calculating
the appropriate response. They are used to indicate any danger (warnings) that the robots may
encounter during their process by providing real time information of the running task.
There are several ways that robots use for sensing, which we can state: touch, vision A deeper
explanation will be provided in the following section.
1.3.4. Manipulators
The hands of robots are often referred as end effectors that manipulate object (pick up,
modify) and the arm is referred as a manipulator, most of them have replaceable effectors
that allows them to perform some small range of tasks. There are different types of robot
manipulators that are: mechanical gripper, vacuum gripper, general-
purpose effectors.
1.3.5. Locomotion
This is one method that robots use to transport themselves from one
place to another in order to develop their capabilities in order to
decide how, when, and where to move. There are several form of

Figure 1.6 A robotic leg powered
by air muscles (Wikipedia)

Figure 1.7 Segway in the Robot
museum in Nagoya. (Wikipedia)
Chapter One: Introduction to Robotics

14

locomotion that are used by robots which are : rolling robots, two-wheeled balancing robots,
spherical orb robots, tracked robots, walking robots, ZMP Technique , hopping , flying
1.4. Sensors used in mobile robots
There are a wide variety of sensors used in mobile robots; some sensors are used to measure
simple values like the internal temperature of a robots electronic or the rotational speed of the
motors. Others, more sophisticated sensors can be used to acquire information about the robots
environment or even to directly measure a robots global position.
We focus primarily on sensors used to extract information about the robots environment.
We classify sensors using two important functional axes: proprioceptive/exteroceptive and
passive/active.
- Proprioceptive sensors: measure values internal to the system (robot); for example: motor
speed, wheel load, robot arm joint angles, battery voltage.
- Exteroceptive sensors: acquire information from the robots environment; for example:
distance measurements, light intensity, sound amplitude. Hence exteroceptive sensor
measurements are interpreted by the robot in order to extract meaningful environmental features.
- Passive sensors: measure ambient environmental energy entering the sensor. Examples of
passive sensors include temperature probes, microphones, and CCD or CMOS cameras.
- Active sensors: emit energy into the environment, and then measure the environmental
reaction.

Classification of sensors used in mobile robotics applications:
General classification
(typical use)
Sensor /Sensor System PC / EC A / P
Tactile sensors
(detection of physical contact or
closeness; security switches)
Contact switches, bumpers
Optical barriers
Noncontact proximity sensors
EC
EC
EC



P
A
A
Wheel/motor sensors
(wheel/motor speed and position)
Brush encoders
Potentiometers
Synchros, resolvers
PC
PC
PC




P
P
A
Chapter One: Introduction to Robotics

15

Optical encoders
Magnetic encoders
Inductive encoders
Capacitive encoders
PC
PC
PC
PC



A
A
A
A
Heading sensors
(orientation of the robot in relation to a
fixed reference frame)
Compass
Gyroscopes
Inclinometers
EC
PC
EC



P
P
A/P
Ground-based beacons
(localization in a fixed reference
frame)
GPS
Active optical or RF beacons
Active ultrasonic beacons
Reflective beacons
EC
EC
EC
EC




A
A
A
A
Active ranging
(reflectivity, time-of-flight, and
geometric
triangulation)
Reflectivity sensors
Ultrasonic sensor
Laser rangefinder
Optical triangulation (1D)
Structured light (2D)
EC
EC
EC
EC
EC





A
A
A
A
A
Motion/speed sensors
(speed relative to fixed or moving
objects)
Doppler radar
Doppler sound
EC
EC


A
A
Vision-based sensors
(visual ranging, whole-image analysis,
segmentation, object recognition)
CCD/CMOS camera(s)
Visual ranging packages
Object tracking packages
EC P

A, active; P, passive; P/A, passive/active; PC, proprioceptive; EC, exteroceptive.

Wheel/motor sensors: Wheel/motor sensors are devices used to measure the internal state and
dynamics of a mobile robot.
Heading sensors: can be proprioceptive (gyroscope, inclinometer) or exteroceptive (compass).
They are used to determine the robots orientation and inclination. They allow us, with
Chapter One: Introduction to Robotics

16

appropriate velocity information, to integrate the movement to a position estimate. This
procedure is called dead reckoning.
Ground-based beacons: Using the interaction of on-board sensors and the environmental
beacons, the robot can identify its position precisely.
Active ranging: For obstacle detection and avoidance, most mobile robots rely heavily on active
ranging sensors. They are also commonly found as part of the localization and environmental
modeling processes of mobile robots.
Motion/speed sensors: Used for fast-moving mobile robots such as autonomous highway
vehicles and unmanned flying vehicles, Doppler-based motion detectors are the obstacle
detection sensors most chosen.
Vision-based sensors: It provides us with an enormous amount of information about the
environment and enables rich, intelligent interaction in dynamic environments. The first step in
this process is the creation of sensing devices that capture the same raw information light that the
human vision system uses (CCD and CMOS).

Conclusion
The research theme that we are interested in is about autonomous mobile robot, the latter cannot
be of all the types that we have seen above, for instance, manipulators cannot be the focus of our
research since they are not mobile, however locomotors (car-like) or humanoid robots are the
kind of robots that we are interested in.




Chapter Two: Robot Motion Planning & Algorithms

17









CHAPTER TWO: ROBOT MOTION
PLANNING & ALGORITHMS








Chapter Two: Robot Motion Planning & Algorithms

18

Introduction
Robot motion planning has been one of the major issues that robotic engineers and scientists
faced for the last two decades; this chapter gathers different results of researches that have been
conducted on a specific approach of path planning, namely, roadmap methods.
2.1. Basic definitions
In this section we will define some important terms that will often appear in this literature.
2.1.1. Motion planning Also known as the navigation problem or piano movers
problem, motion planning is a term used to describe the process of finding valid
configurations that moves the robot from initial position to goal destination using the following
parameters:
- A start pose of the robot
- A desired goal pose
- A geometric description of the robot
- A geometric description of the world
In other words, motion planning is finding a path that moves the robot gradually from start to
goal while never colliding with any obstacle. We divide motion planning into three major tasks
which are:
- Mapping and modeling the environment
- Path planning and selection
- Path traversal and obstacle avoidance

2.1.2. Trajectory planning It is the path followed by the robot as a function of time. Trajectories
can be planned either in joint space (directly specifying the time evolution of the joint angles)
which is the simplest and the fastest or in Cartesian space (specifying the position and the
orientation of the frame). The planning modalities for trajectory may be quite different : point
to point, with pre-defined path or in the joint space, in the work space, either defining some
points of interest (initial and final point) or the whole geometric path X=X(t). Two necessary
Chapter Two: Robot Motion Planning & Algorithms

19

aspects should be specified in planning for a desired trajectory which is geometric path and
motion law.
Trajectory planning is very important for dimensioning control and use of electric motors in
automatic machines (e.g. packaging).
2.1.3. State space The simplest classical planning algorithms are state space search algorithms.
These are search algorithms in which the search space is a subset of the state space: Each node
corresponds to a state of the world, each arc corresponds to a state transition, and the current
plan corresponds to the current path in the search space. Forward Search and Backward Search
are two of main samples of state space planning which captures all possible situations that
could arise (Position, Orientation); in motion planning, the state space is referred as the
configuration space.

2.1.4. Work space It is the environment in which robots operate (real world), such as factory
plants.

2.1.5. Configuration space Although the motion planning problem is defined in the regular
world, we introduce a key concept in motion planning, that is a configuration q, which is a
complete specification of the position of every point in the system.
We define the space of all configurations by the configuration space or C-space, in other terms it
refers to the set of positions reachable by a robot's end-effector. Thus, the positions of the end-
effector of a robot can be identified with the group of spatial rigid transformations. The joint
parameters of the robot are used as generalized coordinates to define its configurations. The set
of joint parameter values is called the joint space. The robot's forward and inverse kinematics
equations define mappings between its configurations and its end-effector positions, or between
joint space and configuration space. Robot motion planning uses these mappings to find a path in
joint space that provides a desired path in the configuration space of the end-effector.
Usually a configuration is expressed as a vector of positions and orientations.

Chapter Two: Robot Motion Planning & Algorithms

20

Examples:
Rigid body robot
- 3-parameter representation :
- In 3D, q would be





Articulated robot





C-space is obtained by sliding the robot along the edge of the obstacle regions; the figure below
depicts how c-space is obtained.




Figure 2.1 Vector position and
orientation of a configuration.

Figure 2.2 Degrees of freedom of an articulated robot
Work space Configuration space
Figure 2.3 A work space Figure 2.4 A configuration space space
Chapter Two: Robot Motion Planning & Algorithms

21

- Free space It is the unoccupied space of the C-space, i.e. the set of allowed (feasible)
configurations.
- Obstacle region It is the portion of the C-space that is permanently occupied or a set of
disallowed configurations. Obstacle is defined by a set of vertices (intersection points) or
edges (lines) described by pairs of two points.
- Initial and goal states Starting at some initial configuration s and trying to reach at a
specified goal configuration g.
A c-space is defined as follows:


Let

be the work space, be the set of obstacles and be the robot in


configuration .

{ | }


We define as well:
- q
I
: Start configuration
- q
G
: Goal configuration

Hence, we conclude that motion planning amounts to finding a continuous path

such that: q
I
, q
G
.
2.2. Roadmap path planning
The work space of a robot ranges from a continuous geometric description to a decomposition-
based geometric map or even a topological map. Motion planning begins with transforming the
continuous environmental model into a discrete map (metric) suitable for the chosen path-
planning algorithm. Indeed, there exist various methods for path planning; we can identify three
main strategies for decomposition:

Figure 2.5 A work space showing C
free
and C
obs

Chapter Two: Robot Motion Planning & Algorithms

22


Sampling-based motion planning:
- Roadmap: identifying a set of feasible paths within the free space.
Combinatorial motion planning:
- Cell decomposition: discriminating between free and occupied cells.
- Potential field: imposing a mathematical description over the space.
Our main concern in this project is roadmap methods; we will get deeper in the subject in the
following literature.
2.2.1. Sampling-based motion planning
The idea of this motion planning approach, depicted in the figure below, is to avoid the explicit
construction of C
obs
and as an alternative, conduct a search that probes the C-space with a
sampling scheme using a collision detection module which checks the models (obstacles) that are
semi-algebraic sets, 3D triangles, nonconvex polyhedral etc.... This general philosophy has been
very fruitful in modern robotics, manufacturing, and biological applications, such problems
could not be tackled with a technique that explicitly represents C
obs
.

Figure 2.6 Sampling-Based Motion Planning Approach
2.2.2. Notion of completeness
The algorithms used with sampling-based motion planning do not guarantee a solution for any
input, in other terms they do not assure a path for any combination of initial and goal positions,
whereas combinatorial motion planning does, in fact, provide complete obstacle region space.

Chapter Two: Robot Motion Planning & Algorithms

23

2.2.3. Roadmap path planning
Roadmap approaches capture the connectivity of the robots free space C
free
by a graph or
network of paths (lines). It can be defined as follows:
A roadmap, RM, is a union of curves such that for all start and goal points in C
free
that can
be connected by a path the following elements are satisfied :
- Accessibility : there is a path from q
s
C
free
to some q in W
- Depart ability : there is a path from some q W to q
g
C
free

- Connectivity : there exists a path in W between q and q
- One dimensional
Example of a roadmap is shown in the figure below.

Figure 2.7 Corresponding roadmap to a certain environment
Hence, roadmap amounts to connecting the initial and goal positions of the robot to the road
network, then searching for a series of roads from the initial robot position to its goal position.
Based on obstacle geometry, the roadmap is a decomposition of the robots C-space. The
challenge is to construct a set of paths that together enable the robot to move freely in the free
space while keeping the number of paths as small as possible. We describe two main methods of
roadmap motion planning. In the case of visibility graph, roads are close to the obstacle which
Chapter Two: Robot Motion Planning & Algorithms

24

results in minimum-length solutions. In the case of Voronoi diagram, roads are as far as possible
from the obstacle, resulting in lengthier solutions.
2.2.3.1. Visibility graph
This approach is merely defined for polygonal obstacles (after geometric transformation), it
consists of edges joining all pairs of vertices that can see each other (including both the initial
and goal positions as vertices as well), in other words the nodes correspond to the obstacles
vertices, and obviously each constructed line (connected vertices) is the shortest distance
between them as in the figure below. There are two conditions in order to achieve node
connection:
- If they are already connected by an edge on an obstacle;
- The line segment joining them is in the free space;

Figure 2.8 All nodes which are visible from each other are connected by straight-line segments, defining the
road map. This means there are also edges along each polygons sides.
Due to the facility of implementing visibility graphs while path planning, it is moderately
widespread in mobile robotics, particularly when the environmental representation describes
objects as polygons in either continuous or discrete space; the visibility graph search can employ
the obstacle polygon descriptions readily. There are, however, two important caveats when
employing visibility graph search.
Chapter Two: Robot Motion Planning & Algorithms

25

First, the size of the representation and the number of edges and nodes increases as the number
of obstacles polygons increases. Therefore the method is extremely fast and efficient in sparse
environments, but can be slow and inefficient compared to other techniques when used in
densely populated environments.
The second caveat is a much more serious potential flaw: the solution paths found by visibility
graph planning tend to take the robot as close as possible to obstacles on the way to the goal
destination. More formally, we can prove that visibility graph planning is optimal in terms of the
length of the solution path (the shortest possible path). This powerful result also means that all
sense of safety, in terms of staying a reasonable distance from obstacles, is sacrificed for this
optimality.
In order to avoid this, it is reasonable to grow obstacles by significantly more than the robots
radius, or, alternatively, modifying the solution path after path planning is done to distance the
path from obstacles when possible. Of course such actions sacrifice the optimal-length results of
visibility graph path planning.
Let us consider the case of a robot point moving among a set S of disjoint simple polygons in the
space. The polygons in S are called obstacles, and their total number of edges is denoted by n.
We are given a start position p
start
and a goal position p
goal
, which we assume are in the free
space. Our goal is to compute the shortest collision-free path from p
start
to p
goal
, that is, the
shortest path that does not intersect with any obstacle. We compute a trapezoidal map T (C
free
) of
the free conguration space C
free
. The key idea is to replace the continuous work space, where
there are innitely many paths, by a discrete road map G road, where there are only nitely many
paths. The roadmap we use is a plane graph with nodes in the centers of the trapezoids of T
(C
free
) and in the middle of the vertical extensions that separate adjacent trapezoids. The nodes in
the center of each trapezoid are connected to the nodes on its boundary. After nding the
trapezoids containing the start and goal position of the robot, we find a path in the road map
between the nodes in the centers of these trapezoids by breadth-rst search.
How to sketch a visibility graph?
1- We draw lines of sight from the start and goal to all visible vertices and corners of the
world.
Chapter Two: Robot Motion Planning & Algorithms

26


2- We draw lines of sight from every vertex of every obstacle like before. Remember lines
along edges are also lines of sight.

3- We carry on as in 2

4- We do the same procedure

5- We repeat it until it is done


Chapter Two: Robot Motion Planning & Algorithms

27

We describe here one of the algorithms used for computing visibility graph, it is referred as the
Sweepline algorithm:




.




Table 2.1 Visibility Graph shortest path algorithm

In the next section we show how to compute the visibility graph in O(n2 log n) time, where n is
the total number of obstacle edges. The number of arcs of RM
vis
is of course bounded by


Hence, line 2 of the algorithm takes O( n
2
) time. Dijkstras algorithm computes the shortest path
between two nodes in graph with k arcs, each having a non-negative weight, in O(n log n + k)
time. Since k = O( n
2
) , we conclude that the total running time of SHORTESTPATH is O(n2 log
n), leading to the following theorem.









Table 2.2 Visibility Graph Algorithms

Algorithm VISIBILITYGRAPH(S)
Input: A set S of disjoint polygonal obstacles.
Output: The visibility graph RM
vis
( S).
1. Initialize a graph G = (V; E) where V is the set of all vertices of the polygons
in S and E = .
2. for all vertices v 2V
3. do W VISIBLEVERTICES(v; S)
4. For every vertex w W , add the arc ( v; w) to E.
5. return RM
Algorithm SHORTESTPATH(S; p
start
; p
goal
)
Input: A set S of disjoint polygonal obstacles, and two points p
start
and p
goal
in the
free space.
Output: The shortest collision-free path connecting p
start
and p
goal
.
1. RM
vis
VISIBILITYGRAPH(S {p
start
; p
goal
})
2. Assign each arc (v; w) in RM
vis
a weight, which is the Euclidean length of the
segment .
3. Use Dijkstras algorithm to compute a shortest path between p
start
and
p
goal
in RM
vis
.
Chapter Two: Robot Motion Planning & Algorithms

28

The procedure VISIBLEVERTICES has as input a set S of polygonal obstacles and a point p in
the plane; in our case p is a vertex of S, but that is not required.
It should return all obstacle vertices visible from p.

















Table 2.3 Visible vertices algorithm
Example
Vertex New T Actions
Initialization {E
4
, E
2
, E
8
, E
6
} Sort edges intersecting horizontal half

6
{E
4
, E
2
, E
8
, E
5
} Delete E
6
from T. Add E
5
to T

2
{ E
4
, E
1
, E
8
, E
5
} Delete E
2
from T. Add E
1
to T

5
{E
4
, E
1
} Delete E
5
from and E
8
from T.

1
{ } Delete E
1
from and E
4
from T. Add (v,v
1
) RM

8
{E
7
, E
8
} Add E
7
from T. Add E
8
to T. Add (v,v
8
) RM

4
{E
3
, E
4,
E
7
, E
8
} Add E
3
from T. Add E
4
to T. Add (v,v
4
) RM
Algorithm VISIBLEVERTICES(p; S)
Input: A set S of polygonal obstacles and a point p that does not lie in the
interior of any obstacle.
Output: The set of all obstacle vertices visible from p.
1. Sort the obstacle vertices according to the clockwise angle that the half-line
from p to each vertex makes with the positive x-axis. In case of ties, vertices
closer to p should come before vertices farther from p. Let
w
1
. w
n
be the sorted list.
2. Let r be the half-line parallel to the positive x-axis starting at r. Find the
obstacle edges that are properly intersected by r , and store them in a balanced
search tree T in the order in which they are intersected by r.
3. W
4. for i 1 to n
5. do if VISIBLE(w
i
) then Add w
i
to W .
6. Insert into T the obstacle edges incident to w
i
that lie on the clock-wise side
of the half-line from p to w
i
.
7. Delete from T the obstacle edges incident to w
i
that lie on the
counterclockwise side of the half-line from p to w
i
.
8. return W
Chapter Two: Robot Motion Planning & Algorithms

29

7
{E
3
, E
4,
E
6
, E
8
} Delete E
7
from T. Add E
6
to T

3
{E
2
, E
4,
E
6
, E
8
} Delete E
3
from T. Add E
2
to T
Termination


Figure 2.9 Obtained visibility graph

2.2.3.2. Voronoi diagram
It is a set of points equidistant from the closest two or more obstacle boundaries maximizing the
clearance between the points and obstacles. In recent years, Voronoi-based path planning is
considered as a technique used for reacting to unexpected environmental events with efficient
optimized trajectories.
Voronoi diagram is induced by a set of points (called sites): subdivision of the plane where the
faces correspond to the regions where one site is closest.

Figure 2.10 Cell sites for Voronoi diagram
Chapter Two: Robot Motion Planning & Algorithms

30

The Voronoi diagram computes the shortest straight-line path from start and goal to closest point
on it.

Figure 2.11 Voronoi diagrams shortest path
Every Voronoi cell is the intersection of n1 half-planes, if there are n sites. All cells are convex
and have up to n1 edges in the boundary.
How to sketch a Voronoi diagram?
1. If all n sites lie on a line, then the Voronoi cell boundaries are parallel lines, so the
graph is disconnected as follows :







2. Otherwise, the Voronoi cell boundaries form a connected graph as shown below :






Figure 2.13 A Voronoi vertex is the center of an empty circle touching 3 or more sites
Figure 2.12 The collinear sites form a series of parallel lines

Chapter Two: Robot Motion Planning & Algorithms

31



Empty circle property:
Every Voronoi vertex is the center of an empty
circle through 3 sites. Every point on a Voronoi
edge is the center of an empty circle through 2 sites


Using Voronoi diagram for roadmap construction
offers certain advantages which are :
- It diminishes the dimension of the problem to one and trajectories follow the maximum
clearance map (this means that the obtained trajectories are the safest ones).
- The Voronoi-based navigation reminds of topological navigation and because of that, it is
similar to the human one in some aspects.
However, most Voronoi-based methods have the difficulty of calculating the Voronoi diagram
by studying lines and polygons, finding the vertices, nodes and creating a tree to find the path. In
addition, this method is not very efficient in higher dimensions and does not work.
As a solution we use image processing methods to calculate the trajectory so, the new motion
planning is based on the combination of a Voronoi diagram and the expansion of a wave from
the start point to the goal following the Voronoi diagram.
The Voronoi diagram is built using image methods (skeletonization) based on the Breu method
in 2D and Gagvani in 3D.

Figure 2.15 showing two different types of Voronoi diagram for the same work space
Figure 2.14 Non-collinear sites form
Voronoi half lines that meet at a vertex

Chapter Two: Robot Motion Planning & Algorithms

32

The general layout of a Voronoi diagram algorithm is :
Compute the intersection of n1 half-planes for each site, and merge the cells into the
diagram
Divide-and-conquer (1975, Shamos & Hoey)
Plane sweep (1987, Fortune)
Randomized incremental construction (1992, Guibas, Knuth & Sharir)












T
Table 2.3 Voronoi diagram algorithm
We need to define some terms related to the above algorithm.
- Plane sweep: Note that the Voronoi diagram above the sweep line may be affected by sites
below the sweep line.
Maintain and grow the portion of Voronoi diagram above the sweep line that is known for sure.
- The beach line separates the known and unknown part of the Voronoi diagram, it is the
minimum of the parabolas defined by sites above the sweep-line and the sweep-line itself.
1. Initialize the event queue Q with all site events, initialize an empty status
structure T and an empty doubly-connected edge list D
2. While Q is not empty
3. Do remove the event with largest y-coordinate from Q
4. If the event is a site event, occurring at site pi
5. Then Handle Site Event (pi)
6. Else Handle Circle Event (g), where g is the leaf of T representing the arc that
will disappear
7. When all events are handled, we must still fix the doubly-connected edge list
with respect to the bounding box, and to add face information.

Chapter Two: Robot Motion Planning & Algorithms

33


Figure 2.16 The break points move and trace out the Voronoi diagram edges
- Status: The ordered sequence of parabolic arcs that defines the beach line; each is defined by a
site (and so is the sweep-line).
Break points are defined by two sites (and so is the sweep-line) since the beach line is x
monotone, we can store the status in a balanced binary search tree on x-coordinate.
The sweep algorithm also needs an event list (where the status changes) and a data structure to
store the Voronoi diagram computed so far.
The Voronoi diagram will be computed inside a large bounding box so that a doubly connected
edge list can be used.
- An event is an interesting point encountered by the sweep line as it sweeps from top to bottom.
They are prioritized based on y-coordinate
- Circle events (when the sweep line encounters the bottom of an empty circle touching 3 or
more sites) can only happen for three sites that have adjacent parabolic arcs on the beach line, it
is the only way for a parabolic arc to disappear from the beach line.
- Site event (when the sweep line encounters a new site point): is the only way for a new
parabolic arc to appear on the beach line.







Figure 2.17 Original arc above the new site is
broken into two
Figure 2.18 An arc disappears whenever an empty circle
touches three or more sites and is tangent to the sweep line
Chapter Two: Robot Motion Planning & Algorithms

34

2.3. Motion planning algorithms
Path planning algorithms can be either single-query or multiple-query, in the case of single-
query initial and goal positions (q
I
, q
G
) are given only once per robot and obstacle set,
multiple-query models are the opposite.
2.3.1. Single-query models
2.3.1.1. The incremental sampling and searching (as in the sweepline algorithm)
Most single-query, sampling-based planning algorithms follow this template:
Initialization: let G represent an undirected search graph, for which V contains at least one
vertex and E contains no edges. Typically, V contains q
I
, q
G
or both. In general, other points
in C-free may be included. (V, E).
Vertex Selection Method (VSM): Choose a vertex q
cur
V for expansion
Local Planning Method (LPM): For some q
new
C-free that may or may not be
represented by a vertex in V attempt to construct a path s: [0, 1] C-free such that
(0)=q
cur
and (1)=q
new
. Using the methods of Slides
s
must be checked to ensure that it
does not cause a collision. If this step fails to produce a collision-free path segment, then go
to step 2.
Insert an Edge in the Graph: Insert
s
into E, as an edge from q
cur
to q
new
. If q
new
is not
already in V, then it is inserted.
Check for a Solution: Determine whether G encodes a solution path. As in the discrete
case, if there is a single search tree, then this is trivial; otherwise, it can become complicated
and expensive.
Return to Step 2: Iterate unless a solution has been found or some termination condition is
satisfied, in which case the algorithm reports failure.
2.3.1.2. Checking path segment algorithm
Collision detection algorithms determine whether a configuration lies in C
free
. Motion
planning algorithms require that an entire path maps into C
free
, so the interface between the
planner and collision detection usually involves validation of a path segment, for path
s
: [0,
1] C
free
a sampling for the interval [0, 1] is calculated. Hence the collision checker is
called only on the samples, a fixed q> 0 is often chosen as the C-space step size. If q is
Chapter Two: Robot Motion Planning & Algorithms

35

too small, considerable time is wasted on collision checking, and if q is too large, then there
is a chance that the robot could jump through a thin obstacle.


Example: Suppose that for a configuration q(xt,yt,O) the collision detection algorithm indicates
that A(q) is at least d units away from collision and the next candidate configuration to be
checked along is q(xt,yt,O), If no point on A travels more than distance d when moving
from q to q along , then q and all configurations between q and q must be collision free.
2.3.1.3. Rapidly exploring dense trees
The idea is to incrementally construct a search tree that gradually improves the resolution but
does not need to explicitly set any resolution parameters. Instead of one long path, there are
shorter paths that are organized into a tree. If the sequence of samples is random, the resulting
tree is called a rapidly exploring random tree (RRT), which indicates that a dense covering of the
space is obtained.
The principle of RRT Algorithm: Initially, start with the initial configuration as root of tree then,
pick a random state in the configuration space and find the closest node in the tree after that,
extend that node toward the state if possible then pick another random state and so on.

Figure 2.20 A new edge is added that connects from sample (i) to the nearest point S, which is the
vertex q
N
.
Figure 2.19 shows two different obstacle configurations
Chapter Two: Robot Motion Planning & Algorithms

36

The algorithm for constructing RDTs (which includes RRTs) requires the availability of a dense
sequence, , and iteratively connects from (i) to the nearest point among all those reached by
G.

Figure 2.21 If the nearest point in S lies in an edge , the edge is split into two, a new vertex is inserted
into G.

Figure 2.22 If there is an obstacle, the edge travels up to the obstacle boundary, as far as allowed by the
collision detection algorithm.
Here is the RDT algorithm with obstacles:







Table 2.4 Rapidly exploring dense trees algorithm

RDT( q
0
)
1. G. init ( q
0
) ;
2. for i = 1 to k do
3 q
n
nearest( S,( i) ) ;
4 q
s
stopping-configuration ( q
n
, ( i) ) ;
5 if q
s
q
n
t he n
6 G.add_vertex ( q
s
) ;
7 G.add_edge( q
n
,q
s
) ;
Chapter Two: Robot Motion Planning & Algorithms

37

So far, the above literature discussed how to explore C
free
, this does not solve the planning
query.A single-tree search is an efficiently running planning could use the above algorithm, build
up the tree and periodically check if it could connect with the goal destination q
G
. An easy way
to do so is to begin with a dense sequence and periodically insert q
G
at regularly spaced
intervals, say 100 samples.
However better performance could be achieved using by growing two RDTs, referred as to
balanced and bidirectional search, one T
a
starting at q
I
and the other T
b
starting at q
G,
ensuring
that the two trees meet
.
The algorithm below depicts how this could be done. Initially, these trees
start from q
I
and q
G
, respectively. After some iterations, T
a
and T
b
are swapped, in each iteration
Ta is grown exactly the same way as in the previous algorithm. If a new vertex q
s
is added, then
a new attempt is made to extend T
b
. Rather to use (i) to extend Tb, the new vertex q is used.
This causes T
b
to try to grow toward T
a
. If the two connect then a solution has been found.











Table 2.5 Bidirectional RDT Algorithm
RTD_BALANCED_BIDIRECTIONAL ( q
I
,q
G
)
1 T
a
. init ( q
I
) ; Tb. init ( q
G
) ;
2 for i = 1 to K do
3 q
n
nearest (Sa, ( i) ) ;
4 q
s
stopping-configuration ( q
n
, ( i) ) ;
5 if q
s
q
n
then
6 T
a
.add_vertex ( q
s
) ;
7 T
a
.add_edge( q
n
,q
s
) ;
8 qn nearest ( S
b
,qs) ;
9 qs stopping-configuration( q
n
, q
s
) ;
10 i f q
s
q
n
then
11 T
a
.add_vertex ( q
s
) ;
12 T
a
.add_edge( q
n
,q
s
) ;
13 if q
s
= q
s
the return SOLUTION;
14 if |Tb|> |Ta| then S WAP ( T
a
,T
b
) ;
15 return FAILURE
Chapter Two: Robot Motion Planning & Algorithms

38

Growing more than two trees could be beneficial, it offers more advantages.
2.3.2. Multiple-query model : Probabilistic roadmap:
It is constructed by repeatedly generating random free configurations of the robot and connecting
these configurations using some simple, but very fast motion planner. We call this planner the
local planner. The roadmap thus formed in the free configuration space (C-space) of the robot is
stored as an undirected graph. It is used to incrementally build in any amount of time a roadmap.
If the time spent on the construction of the roadmap is short, the roadmap may not adequately
represent the connectivity of the free C-space.
A new motion planning method for robots in static workspace is presented. This method
proceeds in two phases: a learning phase and a query phase.
In the former, the probabilistic roadmap is constructed and stored as a graph whose nodes
correspond to collision-free configurations and whose edges correspond to feasible paths
between these configurations. Whereas in the latter, any given start and goal configuration of the
robot are connected to two nodes of roadmap; the roadmap then is searched for a path joining
these two nodes.
2.3.2.1. The learning phase :
It consists of two successive steps, which we refer to as a construction and the expansion step.
The objective of the former is to obtain a reasonably connected graph, with enough vertices to
provide a rather uniform covering of free C-space and to make sure that most difficult region
in this space contains at least a few notes.
The second step is aimed at further improving the connectivity of this graph. It selects nodes of R
which, according to some heuristic evaluator, lie in difficult regions of C-space and expands the
graph by generating additional nodes in the neighborhood. Hence, the covering of

by the final
road map is not uniform, but depends on the local intricacy of the C-space.


Chapter Two: Robot Motion Planning & Algorithms

39

2.3.2.2. The Query phase :
During the query phase, paths are to be found between arbitrary input start and goal
configuration, using the roadmap constructed in the learning phase. Assume for the moment that
the free C-space is connected and that the roadmap consists of a single connected component R.
Given a start configuration S and a goal configuration G, we try to connect S and G to some two
nodes of R , respectively to . A feasible path from S to G is eventually constructed by
concatenating

, the recomputed path corresponding to P, and

reversed. If one wishes, this


path may be improved by running a smoothing algorithm on it which selects random segments of
the global path and tries to shortcut them by using the local planner.
The algorithm is shown in the next page.
Table 2.6 Probabilistic roadmap algorithm


(1) N
(2) E
(3) Loop
(4) C a randomly chosen free configuration
(5)

a set of candidate neighbors of c chosen from N
(6) N N {c}
(7) for all n

, in order of increasing D(c , n) do
(8) if same_connected_component(c , n) (c , n) then
(9) E E {(c , n)}
(10) Update Rs connected components.

Chapter Two: Robot Motion Planning & Algorithms

40

The probabilistic roadmap planner samples the configuration space for free configurations and
tries to connect these configurations into a roadmap of feasible motions.
The global idea of PRM is to pick a collection of (useful) configurations in the free space

.
These free configurations form the nodes of a graph G = (V;E). A number of (useful) pairs of
nodes are chosen and a simple local motion planner is used to try to connect these configurations
by a path.
In this version of PRM we only add an edge between nodes if they are not in the same connected
component of the roadmap graph. This saves time because such a new edge will not help solving
motion planning queries. On the other hand, to get short paths such extra edges are useful.
Conclusion
In the end of this chapter we try to compare the different algorithms that we have depicted above
in terms of completeness, optimality, efficiency of world updates, efficiency of query updates,
degree of freedom scalability.



Approach


Completeness



Optimality
Efficiency of
world
updates
Efficiency of
query
updates
Good degree
of freedom
scalability
Visibility Yes Yes No No No
Voronoi Yes No Yes yes No
RRT Yes No Semi semi Yes
PRM Yes Graph No Yes Yes



General Conclusion

41


General conclusion

In this modest work, a general study of roadmap methods for autonomous mobile robots have
been covered throughout this mini-project, by mentioning the different approaches that obstacle
avoidance can be achieved using some of the various algorithms that exist, namely: visibility
graph, Voronoi diagram, rapidly exploring dense trees and probabilistic roadmaps.
A comparative study has been achieved at the end of chapter two highlighting the advantages
and disadvantages of the path planning algorithms in terms of completeness, optimality,
efficiency of world updates, efficiency of query updates, degree of freedom scalability. They are
to be used depending on the specific objectives of the designer.
The reader of this present work would inevitably question himself on what impact does this
research could help in the field of robotics, the answer is that an autonomous robot capable of
moving in space without colliding with any obstacle of whichever type (static or dynamic) ,shape
(polygon or not) or size could be designed for instance, to assist nurses in elderly houses, assist
soldiers in military missions, or at a larger extent, carrying out the operations by themself such as
flying robots or the so called drones.
References

42


References

1. Probabilistic Roadmaps for Path Planning in High-Dimensional Configuration Spaces.
Lydia E. kavraki, Petr Svestka, Jean-Claude Latombe, and Mark H Overmars.
2. Path Planning for Mobile Robot Navigation using Voronoi Diagram and Fast Marching.
Garrido, Moreno, Blanco & Jurewicz
3. Robotic Motion Planning: Roadmap Methods
Robotics Institute http://voronoi.sbp.ri.cmu.edu/~motion.
Howie Choset http://voronoi.sbp.ri.cmu.edu/~choset.
4. Planning Algorithms Steven M. LaValle University of Illinois.
5. Mechanical Engineering Series : Frederick F. Ling Editor- in- Chief.
6. Robotics Appin Knowledge Solutions Hingham, Massachusetts New Delhi .
7. The robots builders bonanza. Gordon McComb .
8. Introduction to Autonomous Mobile Robots. Roland SIEGWART , Illah R.
NOURBAKHSH .
9. A Comparative Study of Probabilistic Roadmap Planners. Roland Geraerts Mark H.
Overmars. Institute of Information and Computing Sciences, Utrecht University.
10. Computation Geometry Algorithms and Applications. De berg, M.; Cheong, O.: van
Kreveld. M.; Overmars, M.
11. Wikipedia, the free encyclopedia, Web site.

You might also like