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

COMMUNICATION AND LOCALIZATION

OF AN AUTONOMOUS
MOBILE ROBOT

by
Marshall Roy Sweatt

c Copyright by Marshall Roy Sweatt, 2015

All Rights Reserved


A thesis submitted to the Faculty and the Board of Trustees of the Colorado School of
Mines in partial fulfillment of the requirements for the degree of Master of Science (Computer
Science).

Golden, Colorado
Date

Signed:
Marshall Roy Sweatt

Signed:
Dr. Qi Han
Thesis Advisor

Golden, Colorado
Date

Signed:
Dr. Randy Haupt
Professor and Department Head
Department of Electrical Engineering and Computer Science

ii
ABSTRACT

Removing humans from dangerous situation by shifting them to a supervisory role has
existed for decades. Oil and gas refineries are beginning to shift to this line of thought, as
equipment is monitored electronically; however, accidents still occur when operators must
physically verify alerts before actions can be taken. A mobile robotic system is a suitable
analog for this process. The operator can remotely perform inspection tasks from an
operator control station through a mobile robotic system; however, communication between
the operator and the robot is paramount. If communication is ever lost, the human operator
will be exposed to the dangers of the environment. In an autonomous system, localization of
the mobile robot is key - if the operator tells the robot to move from location A to location
B, the robot needs to know exactly where it is at all times to avoid causing damage to
the environment or itself. The work in this thesis focuses on the WiFi communication and
localization of a mobile robot. First, extensive experiments were conducted to understand
the relationship of received signal strength, bandwidth, link quality, and distance for both
indoor and outdoor environments in a 2.4 GHz WiFi network. Findings from these empirical
studies were then used to determine both single and k-coverage of a given area. Single-
coverage is required to ensure that at every point in the region of interest, communication
can occur between the mobile robotic system and the operator control station. Singe-
coverage was then expanded to k-coverage to provide a more robust network for localization.
Algorithms were implemented to determine a minimal 3-coverage deployment that ensures
a minimum threshold distance between neighboring access points. Channel allocation was
determined through a graph coloring approach where two heuristics were implemented and
their results compared. WiFi localization was implemented through RSSI fingerprinting,
a matching heuristic, where a new approach was considered for determining the k-closest
neighbors. The results from WiFi localization were then fused with dead reckoning, and a

iii
fiducial marker system using an extended Kalman filter and a validation gate. An accuracy
of 0.43 m was achieved through the hybrid localization technique.

iv
TABLE OF CONTENTS

ABSTRACT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii

LIST OF FIGURES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii

LIST OF TABLES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi

LIST OF SYMBOLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii

ACKNOWLEDGMENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii

DEDICATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv

CHAPTER 1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

CHAPTER 2 RELATED WORK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7

CHAPTER 3 EMPIRICAL STUDIES OF WIFI SIGNAL PROPAGATION


CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.1 Experimental Equipment and Environments . . . . . . . . . . . . . . . . . . . 11

3.2 Effects of Transmission Power . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.3 Effects of Electrical Interference . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.4 Effects of Mobile Interference . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.5 Chapter Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

CHAPTER 4 WIFI ACCESS POINT PLACEMENT . . . . . . . . . . . . . . . . . . . 29

4.1 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

4.2 Single-Coverage Access Point Placement . . . . . . . . . . . . . . . . . . . . . 31

4.3 K-Coverage Access Point Placement . . . . . . . . . . . . . . . . . . . . . . . . 34

4.3.1 Algorithm 1: Minimum Average Distance based Placement . . . . . . 34

v
4.3.2 Algorithm 2: K-Benefit based Placement . . . . . . . . . . . . . . . . . 36

4.3.3 Performance Comparison of K-Coverage Algorithms . . . . . . . . . . . 38

4.3.4 Anti-Clustering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

4.4 Channel Allocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.4.1 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.4.2 Channel Allocation Algorithms . . . . . . . . . . . . . . . . . . . . . . 47

4.4.3 Experimental Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

4.5 Chapter Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

CHAPTER 5 WIFI LOCALIZATION . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

5.1 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

5.2 WiFi Localization Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

5.3 Integration of WiFi Localization with other Localization Methods . . . . . . . 61

5.3.1 Extended Kalman Filter . . . . . . . . . . . . . . . . . . . . . . . . . . 62

5.3.2 Adding WiFi to the EKF . . . . . . . . . . . . . . . . . . . . . . . . . 65

5.4 Performance Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

5.4.1 Experimental Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

5.4.2 Experimental Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

5.5 Chapter Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

CHAPTER 6 CONCLUSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

REFERENCES CITED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

APPENDIX A - AUTOMATION OF MAP GENERATION . . . . . . . . . . . . . . . 83

A.1 Methodology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

A.2 Experimental Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

vi
APPENDIX B - WIFI LOCALIZATION . . . . . . . . . . . . . . . . . . . . . . . . . . 87

vii
LIST OF FIGURES

Figure 1.1 Oil and gas refinery environments . . . . . . . . . . . . . . . . . . . . . . . 3

Figure 1.2 Blaster - a Mobile Refinery Inspection Robot . . . . . . . . . . . . . . . . . 4

Figure 3.1 Hardware used during testing . . . . . . . . . . . . . . . . . . . . . . . . . 12

Figure 3.2 Testing direction in environments . . . . . . . . . . . . . . . . . . . . . . 13

Figure 3.3 Experimentation setup of access point and “server” in indoor and
outdoor environments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

Figure 3.4 Average RSSI results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Figure 3.5 Average RSS for both environments . . . . . . . . . . . . . . . . . . . . . 15

Figure 3.6 Average RSSI with 95% confidence interval . . . . . . . . . . . . . . . . . 16

Figure 3.7 Packet delivery ratio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

Figure 3.8 Average bandwidth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

Figure 3.9 CSM’s South IM Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

Figure 3.10 Third Floor of Brown Building at CSM . . . . . . . . . . . . . . . . . . . 20

Figure 3.11 Floorplan of third floor of Brown Building at CSM . . . . . . . . . . . . . 20

Figure 3.12 Testing Platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

Figure 3.13 Average RSS at 3 transmission powers . . . . . . . . . . . . . . . . . . . . 21

Figure 3.14 Average RSS with 95% CI with and without a robotic platform present . 22

Figure 3.15 Average RSS graphed with log-distance path-loss model . . . . . . . . . . 22

Figure 3.16 Average Bandwidth at 3 transmission powers . . . . . . . . . . . . . . . . 23

Figure 3.17 Average Bandwidth with and without a robotic platform present . . . . . 24

viii
Figure 3.18 Indoor Experimental Results . . . . . . . . . . . . . . . . . . . . . . . . . 24

Figure 3.19 MIT Experimental Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

Figure 3.20 Effects of Speed Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Figure 4.1 WiFi AP Placement Prediction Algorithm flow . . . . . . . . . . . . . . . 32

Figure 4.2 Results of Single-Coverage AP Placement . . . . . . . . . . . . . . . . . . 33

Figure 4.3 Single-Coverage Results using DAVE Metric (with small objects
removed) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

Figure 4.4 Results of the minimum average distance k-coverage prediction


algorithm (k=2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

Figure 4.5 AP Placement Results using k-Benefit Metric (k = 1) . . . . . . . . . . . 38

Figure 4.6 AP Placement Results using k-benefit metric (k=2) . . . . . . . . . . . . 38

Figure 4.7 Anticluster algorithm results . . . . . . . . . . . . . . . . . . . . . . . . . 44

Figure 4.8 Uncovered-Sections algorithm results . . . . . . . . . . . . . . . . . . . . 45

Figure 4.9 Pruning algorithm results . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

Figure 4.10 Algorithm Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

Figure 4.11 Determining Children list and 2+Hop Nodes list Example . . . . . . . . . 51

Figure 4.12 Interference Graph Example . . . . . . . . . . . . . . . . . . . . . . . . . 52

Figure 4.13 Interference graph for k-coverage configuration . . . . . . . . . . . . . . . 54

Figure 4.14 Colored k-coverage placement APs . . . . . . . . . . . . . . . . . . . . . . 54

Figure 5.1 Extended Kalman Filter with Validation Gate Example . . . . . . . . . . 67

Figure 5.2 Floorplan for building 3, second floor at the Petroleum Institute . . . . . 70

Figure 5.3 WiFi APs for one location . . . . . . . . . . . . . . . . . . . . . . . . . . 71

Figure 5.4 Position estimation error using WiFi fingerprinting methods across 7
cycles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

ix
Figure 5.5 Map Estimation with Dead reckoning + WiFi . . . . . . . . . . . . . . . 74

Figure 5.6 Map Estimation with Dead Reckoning+WiFI+FMS:Validation Gate


Value=0.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

Figure 5.7 Autonomous Navigation Position Error . . . . . . . . . . . . . . . . . . . 76

Figure A.1 PI’s Ruwias Building 3rd Floor . . . . . . . . . . . . . . . . . . . . . . . . 85

Figure A.2 Binary Map Representing PI’s Ruwias Building 3rd Floor . . . . . . . . . 86

x
LIST OF TABLES

Table 4.1 AP Placement Locations for Single-Coverage using DAVE Metric . . . . . 34

Table 4.2 AP Placement Locations using k-Benefit Metric (k = 1) . . . . . . . . . . 37

Table 4.3 Number of APs required resulting from k-coverage algorithms when not
including objects ¡1 m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

Table 4.4 Number of APs required resulting from k-coverage algorithms when
including objects ¡1 m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

Table 4.5 AP Placement Locations from Anti-cluster Algorithm (Algorithm 1) . . . 44

Table 4.6 Final AP locations after Pruning . . . . . . . . . . . . . . . . . . . . . . . 45

Table 4.7 Interference of 2+hop nodes for N1 in Figure 4.11 . . . . . . . . . . . . . . 51

Table 4.8 Resulting channel allocation for single-coverage of CSM’s Brown


Building 3rd Floor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

Table 4.9 ColorByColor Information . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

Table 4.10 Interference Edges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

Table 4.11 Channel Allocation Results . . . . . . . . . . . . . . . . . . . . . . . . . . 54

Table 5.1 List of Variables used in calculating Kalman Filter . . . . . . . . . . . . . 62

Table 5.2 WiFi Mean Position Errors . . . . . . . . . . . . . . . . . . . . . . . . . . 72

Table 5.3 Gate Values for Hybrid Localization . . . . . . . . . . . . . . . . . . . . . 73

Table 5.4 Indoor Localization Results . . . . . . . . . . . . . . . . . . . . . . . . . . 75

Table 5.5 Autonomous indoor localization results . . . . . . . . . . . . . . . . . . . . 76

xi
LIST OF SYMBOLS

Log-Distance Path-Loss exponent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . n

Distance from access point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . d

Relative distance from access point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . d0

Calculated signal strength at distance d . . . . . . . . . . . . . . . . . . . . . . . . . P Ld

Relative signal strength at relative distance d0 . . . . . . . . . . . . . . . . . . . . . . P L0

xii
ACKNOWLEDGMENTS

I would like to thank my family for their support in all my endeavors. I would not be
who I am without the love and guidance of my parents Melvin and Susan Sweatt and my
brother Mitchell Sweatt. We have encountered many hardships, but have found the strength
to persevere.
To my advisor, Dr. Qi Han, thank you for taking a chance on me and allowing me to
be a part of this project. Under your tutelage, I have been able to learn and grow into the
man I am today. I also appreciate all the work and support provided by Dr. John Steele
throughout my studies at the Colorado School of Mines. I would also like to thank my
committee member, Dr. D.J. Yang, for his support and guidance.
My thanks goes out to the Petroleum Institute of Abu Dhabi, UAE, for sponsoring this
project. My appreciation to the faculty who sponsored us, Dr. Khaled Al-Wahedi and Dr.
Hamad Karki, as well as lab technician Mr. Leslie Dias, and other Petroleum Institute staff,
for their support during our stay at the Petroleum Institute.
I would also like to thank my teammates on this project Adewole Ayoade, Alex Yearsely,
and Dan Albert for all their contributions to this project. My deepest appreciations to
Adewole Ayoade for all the work and support you provided for this project both at Col-
orado School of Mines and the Petroleum Institute. Your comradery throughout this entire
enterprise was both enjoyed and appreciated.
Finally, I would like to thank my office mates, Craig Champlin, Wendy Belcher, and
Thyago Mota, as well as all the members of CSM’s RAD lab, Dan Anderson, John Steuben,
Andrew Neill, and Matthew Chee, for their help, support, and comic relief throughout this
project. I would also like to thank all my friends at the Petroleum Institute, Sola, Chimeze,
Dapo, Saheed, as well as Masdar students and members of the Evangelical church, Abu-
Dhabi.

xiii
To my mother Susan for helping me beat cancer.
I love you.

xiv
CHAPTER 1
INTRODUCTION

As advancements in technology continue, new possibilities that increase people’s safety


are being developed. These advancements range from robotic surgeons to automated facto-
ries and can be distributed in environments that are typically hostile to humans. Oil and
gas facilities are often located in hostile environments. Whether it is the frigid cold of the
frozen north, the extreme heat of the Middle East, or the isolation of an ocean, each location
provides its own unique risks. The oil and gas infrastructure consists of four major compo-
nents: extraction, refinement, distribution, and transportation in between each component.
Each stage presents its own unique risks, from drilling practices during extraction, volatile
explosions at refineries, to contamination during transportation and distribution. This work
aims at reducing risk of human operators at the oil and gas refinement level. More specifi-
cally, this work considers oil and gas refineries in Abu Dhabi, United Arab Emirates (UAE),
which is among one of the biggest oil and gas industries in the world.
Hazards are numerous when it comes to oil and gas refineries in Middle East. Tempera-
tures exceed 50o C for the majority of the summer, which combines with the high humidity
of the region. Workers who are exposed often fall victim to heat stroke and related injuries.
Sandstorms also ravage the area, reducing visibility to meters, and result in the erosion of
equipment. Gas and steam leaks that are invisible to human senses can be fatal if humans
are exposed. These leaks can also result in fire or even in an explosion of high-pressure
vessels, leading to catastrophic failure.
While there exists technology to monitor such environments, these devices are prone to
failure. If a refinery is forced to shut down to address a failure, the effects on revenue are
substantial. Even if a refinery is forced to shut down for a day, millions of dollars are lost in
revenue. To avoid these significant losses, routine inspection is performed on a daily basis.

1
These inspections vary from reading a gauge, to inspecting pipe and equipment, among other
tasks. When a failure occurs, emergency inspection must be performed, which may prove
hazardous to humans as they are entering an “unknown environment.”
A mobile robot capable of monitoring an environment through various sensors is a rational
analog to a human. Robotic platforms can be equipped with various forms of locomotion
and an array of sensors that are more capable than that of a human. Due to the constraint
of these environments, restrictions are applied to physical systems that enter oil and gas
facilities. Devices must meet specific industry standards before they are allowed to enter
restricted zones. Mobile robots must meet specific criteria as stated in [1], which include:

• ATEX or IECEx certified

• Drive systems must be suitable for floor conditions, especially for offshore facilities

• Size constraints are applied based on the location of the facility (offshore vs onshore)

• Perceiving the environment is paramount - perception sensors must be highly reliable

The work presented in this thesis is part of a multi-disciplinary project, contracted by the
Petroleum Institute in Abu Dhabi, UAE, which aims to automate oil and gas processes. Oil
and gas refinery environments can be seen in Figure 1.1. A mobile robotic system capable
of autonomous path planning, path tracking, obstacle avoidance, and inspection has been
created. The system is capable of tele-operation, various forms of shared control, and full
autonomous control for various inspection tasks. The system consists of a Segway Robotic
Mobile Platform (RMP), a 5 degree of freedom (DOF) arm, and a sensor package mounted
at the end of the arm that is capable of a height of 2 m when fully extended, as seen in
Figure 1.2. The sensor package consists of a network imaging camera, a thermal imaging
camera, an acoustic sensor used for auditory leak inspection, and a methane gas sniffer. For
more information on this system, interested readers may refer to [2].
Thesis Scope: This focus of this thesis is on communication and localization of the
robotic system through the use of WiFi. The objective of this research is to implement a

2
(a) Oil and gas refinery

(b) Oil and gas refinery

Figure 1.1: Oil and gas refinery environments

general approach that provides WiFi communication and localization that can be applied
in any environment, specifically an oil and gas refinery. Without the capability of remote
communication, an operator would have to be within line of sight of the robot in order to

3
Figure 1.2: Blaster - a Mobile Refinery Inspection Robot

control the system. The operator would then still be exposed to most of the hazards originally
afflicting the need for such a system. In order for a system to be able to autonomously
navigate, it must be confident of its current location within some range of uncertainty;
however, no one sensor provides both the precision and scalability required to operate within
a large environment, such as an oil and gas refinery. Through sensor fusion, a more accurate

4
localization can be achieved.
This work makes the following contributions.

• Thorough studies of WiFi signal propagation properties for both indoor and outdoor
environments have been conducted. These studies determine the relationship between
received signal strength (RSSI), bandwidth, link quality, and distance, which is required
for understanding WiFi AP deployment and communication.

• Multiple heuristics for AP placement have been implemented to determine both single
and k-coverage configurations, where every point in the region of interest is covered by
at least k APs.

– Single-coverage of a region is required in order to ensure communication between


the mobile robot and the operator control station. Without communication, the
operator would be exposed to the dangers of the environment. Single-coverage is
a special case of k-coverage where k=1.

– k-coverage is required for WiFi localization to ensure a more robust localization


system. Additional placement heuristics have been implemented for determining
k-coverage that result in the placement of APs which maximizes the distance
between neighboring APs.

• Several channel allocation algorithm that minimizes interference from neighbor APs
have been implemented.

• WiFi localization through an RSSI matching heuristic has been implemented. The
localization approach described in this paper is unique, as it has been modified from
the original version to consider a more precise AP set when determining the location
of the mobile robot.

• We have tested localization through sensor fusion. An Extended Kalman Filter has
been integrated with a validation gate in order to fuse dead reckoning (DR), compass,

5
GPS, WiFi, and a fiducial marker system. WiFi localization will be used as a substitute
for GPS localization when GPS is not available, e.g: in indoor or covered environments.
WiFi localization was only implemented in an indoor environment due to hardware
restrictions.

Chapter 2 discusses related work in regards to existing oil and gas technologies. Chapter3
focuses on the communication requirements of our system and provides an in-depth study
of wireless signal propagation that will be used in both Chapters 4 and 5. Chapter 4 dis-
cusses several heuristics for determining access point (AP) placement that result in minimal
placement configurations. WiFi localization is explored in Chapter 5. Finally, Chapter 6
concludes the work accomplished.

6
CHAPTER 2
RELATED WORK

This chapter focuses primarily on the related work providing wireless communication
in an oil refinery. Related work concerning specific aspects of WiFi communication and
localization will be deferred to later chapters.
One idea is to deploy a wireless sensor network (WSN) to remotely monitor and detect
leaks of harmful by-products of oil refineries [3]. These sensors are deployed throughout the
refinery to detect gas leaks, report gauge readings, and perform various other tasks. Two
major drawbacks to this approach are the limited battery life of the sensors and their prone
to failure nature. Since these sensors have no mobility, one sensor must be placed at every
location that requires monitoring. This distribution can become very costly in terms of not
only money, but time as well.
Augmenting how the operator performs inspection tasks is a reasonable solution to avoid
unneeded exposure and cost. Compared to WSNs, a mobile robotic platform can provide
reliable two-way wireless communication with less cost and maintenance than WSNs. Sys-
tems have been developed [1, 4] to address offshore oil and gas refinery requirements. [1]
discusses both the important and most frequent operations required for an off-shore oil and
gas facility. The authors also discuss the challenges of using an autonomous system in an
oil and gas facility and explain the dangers of such a facility. The first autonomous system
for an oil and gas facility is introduced by the authors. Localization is performed through
fusing INS with reflective tape to characterize specific shaped objects. Communication can
be performed across WiFi to the operator control station or through Bluetooth to a hand
held device. Similarly, [4] discusses the required hardware and software components as well
as the necessary abilities of a mobile service robot for offshore oil and gas facilities. Their
system is capable of both autonomous and tele-operation control. Inspection is performed

7
through predefined automated scripts. The system uses a form of Simultaneous Localiza-
tion and Mapping (SLAM); however, no details are provided. Quantitative results for the
accuracy of localization are also never given.
[5] incorporates WiFi into a localization scheme for a mobile robotic platform. The
authors use the existing WiFi infrastructure in an industrial environment to aid in the
localization of an autonomous vehicle. The WiFi map is built through a Guassian Process
using the popular squared exponential kernel. This information is then combined through a
Sequential Monte Carlo location estimation with a laser beacon-based localization system.
The authors were able to achieve a localization mean error of 7.4 m through 22.3 m depending
on the type of testing environment. In contrast, we have developed an autonomous system
capable of localizing to a sub-meter level in both indoor and outdoor environments.

8
CHAPTER 3
EMPIRICAL STUDIES OF WIFI SIGNAL PROPAGATION CHARACTERISTICS

We are interested in deploying an autonomous mobile robotic system into a given en-
vironment for the performance of inspection tasks. This requires that at any point in the
given region we are able to communicate with the robot to send commands or receive read-
ings. Communication between the operator control station and the robotic system occurs in
various forms.
The system uses a three-way handshake protocol to establish communication between
the robot and the operator station. Once communication is established, the operator can
specify the desired state of the robot, which is sent to the robot in a single packet. The
robot parses this packet making the necessary changes to enter the desired state and sends
back its current state. This cycle continues as new commands are sent from the OCS and
received by the robot.
The critical component of communication is being able to control the robot. If we can
not communicate remotely, then the operator will have to be out in the field with the robotic
system. Since we are interested in taking humans out of harms way, we must have a reliable
WiFi network. Commands are comprised of different levels of control. At the high-level
control, we want to be able to send tasks for the robot to execute autonomously, while at
the low-level control we would like to be able to control the robot through remote control
(driving the platform or actuating the 5 DOF arm). If communication between the robot
and the OCS is disrupted, the robot stops executing its current command or task. Once
communication is re-established, a new command must be sent before the robot resumes
execution of a command. External interference may cause packets to be dropped. To make
the system more robust from interference, three packets must be dropped in a row before
the robot will stop its current execution.

9
The system is also equipped with an emergency stop button both physically on the robot
and virtually on the GUI. If either is pressed, the system halts and must be restarted before
execution can resume. This is both for the safety of the robot as well as the environment
currently surrounding the robot as the operator may be un-aware of an obstruction near the
robot.
Another form of communication is data. The system streams a video feed from two
network cameras (one for driving and one for inspection). The operator has the option of
displaying both acoustic and gas data from the GUI. Information from these sensors are all
streamed separately using the three-way handshake protocol.
In total there are five TCP/IP connections established for communication: control data,
network camera feed for driving, network camera feed for inspection, acoustic data, and gas
data. Control data is always streaming between the OCS and the robot. 2-5 can be toggled
on or off depending on the requirements of the current mission of the robot. If the operator
wants to manually monitor the environment, then 1,2,4 and 5 would be streaming between
the OCS and the robot in order for the operator to drive the robot, see where the robot
is, and to be alerted of any anomalies in acoustic data or anomalies in the gas sniffer. In
another scenario where the operator is interested in reading a gauge and the robot is already
positioned near the gauge, then the operator would only require 1 and 3 in order to drive
the arm and see where the head of the arm is pointing as well as to read the gauge once
the arm has been driven to a viable location. In a final scenario where the operator is only
interested in driving from point A to point B, then only the control data would be required
for streaming between the OCS and the robot. In order for any of these scenarios to work,
communication must be reliable.
Now that we have discussed why communication is required and what forms of com-
munications exist, we need to deploy the network that will provide the infrastructure for
this communication. We are interested in using a minimal number of access points (APs)
to provide this coverage. In order to achieve this, we first need to understand how WiFi

10
signals propagate. In the following sections we perform a number of experiments to under-
stand how received signal strength (RSSI), bandwidth, and distance are correlated for our
specific device. We then use this information to determine a placement configuration that
requires a minimal amount of APs to achieve complete coverage. Once single-coverage has
been established, we extend the required coverage to k in order to perform localization of
the autonomous robot. This resulting configuration results in interference of APs that cover
the same region, so a channel allocation algorithm is considered.
WiFi is a common medium for communication through a known environment. It pro-
vides many useful protocols for establishing communication between devices and there are a
number of different access points (APs) to choose from. Three experiments were performed
to understand WiFi signal propagation:

• Transmission Power Testing (TPT) (indoor and outdoor): Determine signal character-
istics of the unit at the extremes of transmission power

• Electrical Interference Testing (EIT) (indoor and outdoor): Determine what interfer-
ence the robotic platform causes

• Mobile Interference Testing (MIT) (indoor only): Determine the interference of the
robotic platform being mobile

3.1 Experimental Equipment and Environments

The equipment used for testing remains constant through all tests. Since we are inter-
ested in deploying a system in an oil and gas refinery, we require a device that is capable
of extreme heat and must be weather resistant. The EnGenius ENH210EXT is designed
to operate in severe weather conditions so we have chosen to use this AP. The EnGenius
ENH210EXT (Figure 3.1(a)) is capable of a transmission power within a range from 11 dBm
to 29 dBm. In order to determine which transmission power to use, a number of experi-
ments were conducted. Since an oil and gas refinery can be thought of as both an indoor
environment because of the tall steel infrastructures with no available GPS signal, as well as

11
an outdoor environment because it is outdoors two experimental locations were used. For
our experiments the device was positioned 3.048m (10ft) high on a vertical PVC pipe. The
access point is connected to an Asus EEE PC running Ubuntu 2.6. This PC is running a
DHCP server as well as an FTP server. The testing unit is a Dell XPS15z laptop running
Ubuntu 12.10. The robotic platform is a Segway RMP 440 LE ( Figure 3.1(b)).

(a) EnGenius ENH210EXT Access Point (b) Segway RMP 440 LE Platform

Figure 3.1: Hardware used during testing

An oil and gas refinery can be considered as a combination of outdoor and indoor envi-
ronmental conditions; therefore, we chose to test two environments using a soccer field to
represent an outdoor environment and a hallway to represent an indoor environment as seen
in Figure 3.2. In the outdoor environment, the access point was placed 15 feet away on the
opposite side of a six foot chain-link fence. The soccer field is approximately a 60.96 m (200
ft) by 91.44 m (300 ft) open area as seen in Figure 3.2(a). The outdoor test was performed
during the afternoon with mild to moderate wind conditions. The indoor hallway was chosen
to represent a restricted path environment consisting of static objects and walls. This test
was conducted in the evening to minimize external interference on the second floor of CSM’s
Brown Building. The hallway is 73.152 m (240 ft) long consisting of varying widths from
3.048 - 9.144 m (10 - 30 ft) as seen in Figure 3.3(b). There are various desks and a coffee
cart among light foot traffic that provided interference.

12
(a) Indoor environment: second floor of Brown (b) Outdoor environment: Soccer field at CSM
Building at CSM.

Figure 3.2: Testing direction in environments

3.2 Effects of Transmission Power

(a) Outdoor AP setup (b) Indoor AP setup

Figure 3.3: Experimentation setup of access point and “server” in indoor and outdoor envi-
ronments

We are interested in the effects of transmission power on the received signal strength
(RSSI), bandwidth, and link quality. In order to characterize our device at its max and min
transmission powers a number of experiments were performed in different locations. This
test was performed in two locations, seen in Figure 3.2. The placement of the access point

13
(AP) for each environment can be seen in Figure 3.3. Outdoor testing is performed on
CSM’s South IM Field as seen in Figure 3.3(a) while indoor testing is performed in CSM’s
Brown Building on the second floor as seen in Figure 3.2(a). In both environments, we start
at 1.524 m (5 ft) from the AP. We then transfer a file through an FTP client to determine
the average bandwidth while taking 10 RSS readings using the iwconfig command. We also
test link quality through the use of the Ping command. We then retreat 4.572 m (15 ft) and
continue testing until we reach a distance of 100.584 m (330 ft) in the outdoor environment
and 73.152 m (240 ft) in the indoor environment. Each experiment is conducted twice, once
with a transmission power of 11 dbm, and again at 29 dbm in both environments.
In order to confirm the omnidirectional capability of the transmitting antenna, we also
took measurements at different angles from the original testing path in the outdoor environ-
ment.
These environments were used to determine the effects of transmission power on received
signal strength (RSSI), bandwidth, and signal quality. The following paragraphs explain
in detail our results for both the indoor and outdoor environments, both at a transmission
power of 11 dbm and 29 dbm.
Received Signal Strength Figure 3.4(a) and Figure 3.4(b) (along with Figure 3.5)
allow us to obtain an idea about the variation of the lower and upper bound of the supported
signal strength by the AP at a given distance. As expected, the RSSI decays with distance,
but there are significant variations between the two testers (denoted Test1 and Test2) when
environment conditions may have changed over time (Test1 started at the access point and
proceeded away, while Test2 started at 300 ft away from the access point and proceeded
towards the access point). This process was conducted on the same day over several hours.
Furthermore, the indoor environments with hallways (which functions as a wave guide
for signal travel and have significant multipath effect) have considerably higher RSSI levels
than outdoor environments. Moreover, the transmission power of 29 dBm shows better
RSS reading than 11 dBm as expected. During the outdoor testing, we noticed that harsh

14
RSS vs Distance RSS vs Distance
Multiple Test: Indoor Multiple Test: Outdoor
-20 -25
Test1: 11dbm Test1: 29dbm
Test1: 29dbm Test2: 29dbm
Test2: 11dbm -30
Test2: 29dbm
-30
-35

-40
-40
Average RSS (dbm)

Average RSS (dbm)


-45

-50 -50

-55

-60
-60

-65
-70

-70

-80 -75
0 10 20 30 40 50 60 70 0 10 20 30 40 50 60 70 80 90
Distance (m) Distance (m)

(a) Average RSSI for multiple indoor tests (b) Average RSSI for multiple outdoor tests

Figure 3.4: Average RSSI results

RSS vs Distance
-20
Outdoor: 11dbm
Outdoor: 29dbm
Indoor: 11dbm
-30 Indoor: 29dbm

-40
Average RSS (dbm)

-50

-60

-70

-80

-90
0 10 20 30 40 50 60 70 80 90
Distance (m)

Figure 3.5: Average RSS for both environments

environmental conditions such as high winds changed the RSSI rapidly and it greatly affected
the bandwidth and link quality.
When we examine the 95% confidence level graphs Figure 3.6(a) and Figure 3.6(b)
for RSSI, it can be seen that although individual RSSI values per reading vary, they are
highly concentrated around the mean. Therefore, in designing localization algorithms and
communication patterns we may not have to consider sudden variations of the RSSI.

15
RSS vs Distance RSS vs Distance
Indoor Outdoor
-20 -20
11 dbm 11 dbm
29 dbm 29 dbm

-30
-30

-40
-40
Average RSS (dbm)

Average RSS (dbm)


-50

-50

-60

-60
-70

-70
-80

-80 -90
0 10 20 30 40 50 60 70 0 10 20 30 40 50 60 70 80 90
Distance (m) Distance (m)

(a) Indoor environments (b) Outdoor environments

Figure 3.6: Average RSSI with 95% confidence interval

Packet Delivery Figure 3.7 shows how the link quality varies with the distance from
the transmitter for different transmission levels (29 and 11 dBm). We used a packet delivery
ratio as the metric to indicate link quality.

Packet Delivery vs Distance


100

90

80

70
Packet Delivery Ratio

60

50

40

30

Outdoor: 11dbm
20 Outdoor: 29dbm
Indoor: 11dbm
10 Indoor: 29dbm

0
0 10 20 30 40 50 60 70 80 90
Distance (m)

Figure 3.7: Packet delivery ratio

Interestingly, there is a significant amount of packet loss in outdoor conditions around


200 ft from the antenna; this can be accounted for by a gray area. Further, there is an

16
interesting sudden drop in the quality near 285 ft in the outdoor 29 dBm test, which may be
due to changes in the environmental conditions over time or degradation due to interference
or cancellation of different multipath receptions of the same signal. Finally, we can see that
beyond about 165 ft the link quality becomes unstable. However, in the indoor testing we
experienced perfect link quality due to better signal strength (less fading and multipath)
and stable environmental conditions.
Bandwidth Figure 3.8 shows the changes in the throughput (realized bandwidth) for
different testing environments and at different distances. As expected the throughput decays
as distance increases. However, throughput is an important parameter for data transmission
and during outdoor testing at an 11 dbm transmission power we note that throughput
becomes very poor starting from 150 ft and unusable beyond a distance of 225 ft.

Bandwidth vs Distance
60
Outdoor:11dbm
Outdoor: 29dbm
Indoor: 11dbm
Indoor: 29dbm
50

40
Bandwidth (Mbps)

30

20

10

0
0 10 20 30 40 50 60 70 80 90
Distance (m)

Figure 3.8: Average bandwidth

When looking at all four curves, we can see that there are lots of variations in the
throughput, but in both environments, 29 dbm provides acceptable levels (around 10 Mbps,
which will be adequate for our requirements).
These studies provide us a general guideline about the upper and lower limits which
provide insight into the capabilities of the device. These insights will be considered when

17
designing a methodology for AP placement that supports our application requirements.
Although there is much variations in the results (i.e., they do not show smooth decay), the
upper and lower bounds that we obtained are of greater use in designing a methodology than
the individual readings. Individual readings may vary due to many reasons such as changes
in the environmental conditions over time, orientation of the testing device antenna, testing
device processing loads, or unknown external interference.

3.3 Effects of Electrical Interference

The previous section demonstrated the capabilities of the EnGenius ENH210EXT AP in


regards to RSSI, bandwidth, and link quality at the highest and lowest transmission powers.
While a transmission power of 29 dBm provides good coverage and bandwidth, the range at
which it transmits is just too large to be applied in a cluttered environment. Since we are
ultimately concerned with covering narrow environments, interference between neighboring
APs would be too great. On the other hand, the coverage range of a transmission power at
11 dBm is too small and would result in a more APs. Instead, we have chosen the to use
the middle transmission power of 20 dBm for deployment. The rest of our experiments will
be performed at this transmission power.
EIT: Outdoor Environment This test has a similar setup to the previous section, with
the exception that we are taking 20 RSSI readings in an outdoor environment (Figure 3.9).
We then perform this test twice, once with the testing unit on the robot and once with the
testing unit off the robot, i.e.: no robot present during second test.
EIT: Indoor Environment Because an oil and gas refinery consists of both outdoor and
indoor environments, we decided to also test in an indoor environment as seen in Figure 3.10
(a) and Figure 3.10 (b). We chose the third floor of Brown Building on the Colorado School
of Mines campus to reduce the amount of interference from external sources, i.e.: wind,
traffic, or people. Brown building, Figure 3.11, is an academic building consisting of various
class rooms and hallways. Minor foot traffic existed during this experiment.

18
(a) South Facing (b) North Facing

Figure 3.9: CSM’s South IM Field

The receiver is placed on the robotic platform as shown in Figure 3.12 (a). These tests
are performed until we reach a distance of 59.436 m (195 ft). Another hallway intersects the
testing hallway from 119 m - 143 m as seen in Figure 3.12 (b). This test is done twice, once
with the testing unit on the robot and once with the testing unit off the robot, i.e.: no robot
present during second test.
Received Signal Strength First, Figure 3.13 shows the average received signal strength
vs distance at three transmission powers: 11 dBm, 20 dBm, and 29 dBm. This graph shows

19
(a) Brown Building Hallway (b) Brown Building Hallway Continued

Figure 3.10: Third Floor of Brown Building at CSM

Figure 3.11: Floorplan of third floor of Brown Building at CSM

a mostly linear relationship between transmission powers (as expected) with minor external
interference, i.e.: wind.
Figure 3.14 shows the difference in RSSI when the WiFi receiver is on or off the robotic
platform. There is a severe dip in readings from 22 m through 54 m which may be due to
moderate wind gusts up to 31.5 km/h. If we consider only the ranges of 0 m - 22 m and 54

20
(a) Testing while receiver on robot (b) Testers

Figure 3.12: Testing Platform

Average RSS vs Distance


-30
Tx=11dbm
Tx=20dbm
Tx=29dbm

-40

-50
Average RSS (dbm)

-60

-70

-80

-90
0 10 20 30 40 50 60 70 80 90 100
Distance (m)

Figure 3.13: Average RSS at 3 transmission powers

m - 100 m we obtain a coefficient for the amount of interference on RSSI caused from the
robotic platform in an outdoor environment. The average interference on RSSI is minimal:
-2.16 dBm. This amount will have little affect on creating a methodology for access point
placement in an oil and gas refinery.

21
Average RSS vs Distance
Outdoor Environment
Tx=20dbm
-35
Robot
No Robot
-40

-45

-50

Average RSS (dbm)


-55

-60

-65

-70

-75
0 10 20 30 40 50 60 70 80 90 100
Distance (m)

Figure 3.14: Average RSS with 95% CI with and without a robotic platform present

Average RSS vs Distance


Outdoor Environment
Tx = 20 dbm
-35
No Robot
Robot
Log-Distance Path-Loss Model
-40

-45
Average RSS (dbm)

-50

-55

-60

-65

-70
0 10 20 30 40 50 60 70 80 90 100
Distance (m)

Figure 3.15: Average RSS graphed with log-distance path-loss model

Figure 3.15 compares the log-distance path-loss model against the average RSSI in an
outdoor environment, with and without the presence of the robotic platform. This model is
given by:

P L[dBm] = P L0 [dBm] + 10 ∗ n ∗ log(d/d0 ), (3.1)

22
where P L[dBm] is the calculated signal strength, T x is the transmission power (20 dBm),
P L0 [dBm] is the relative signal strength at d0 , n is the log-loss exponent (1.8), d is the
distance, and d0 is the relative distance (4.572 m).
Bandwidth Figure 3.16 shows the average bandwidth vs distance at three transmission
powers: 11 dBm, 20 dBm, and 29 dBm. Figure 3.17 shows the difference in interference
on bandwidth caused by the robotic platform. From this information, we can determine the
average interference on bandwidth is -4.57 Mbps.

Bandwidth vs Distance
60
Tx=11dbm
Tx=20dbm
Tx=29dbm

50

40
Average Bandwidth (Mbps)

30

20

10

0
0 10 20 30 40 50 60 70 80 90 100
Distance (m)

Figure 3.16: Average Bandwidth at 3 transmission powers

The following paragraphs explain the results of electrical interference provided by the
platform for our two metrics.
Received Signal Strength Figure 3.18(a) allows us to obtain a coefficient for the
amount of interference on RSSI caused from the robotic platform. As expected, there exists
interference, however, the average interference on RSSI is minimal: -3.75 dBm. This amount
will have little affect on creating a methodology for access point placement in an oil and gas
refinery.
Bandwidth Figure 3.18(b) shows a difference in interference on bandwidth caused by
the robotic platform. You can observe an impact on bandwidth between the range of 25 m

23
Average Bandwidth vs Distance
Outdoor Environment
Tx = 20 dbm
60
No Robot
Robot

50

40

Average Bandwidth (Mbps) 30

20

10

0
0 10 20 30 40 50 60 70 80 90 100
Distance (m)

Figure 3.17: Average Bandwidth with and without a robotic platform present

RSS Interference Caused


By Robotic Platform: Bandwidth Interference Caused
95% Confidence Interval By Robotic Platform
-35 70
Receiver on Robot Receiver on Robot
Receiver off Robot Receiver off Robot

-40 60

-45 50
Average Bandwidth (Mbps)
Average RSS (dbm)

-50 40

-55 30

-60 20

-65 10

-70 0
0 10 20 30 40 50 60 0 10 20 30 40 50 60
Distance (m) DIstance (m)

(a) Average RSS - 95% CI (b) Average Bandwidth

Figure 3.18: Indoor Experimental Results

- 35 m. This may be caused by external interference. The average impact on bandwidth is


-15.9 Mbps.
The conducted performance studies provide us with two coefficients for interference (RSSI
and bandwidth) that can be used in future testing in the absence of the robotic mobile

24
platform (RMP) in an outdoor environment.

• The interference on RSSI caused by the robotic platform is small (-2.16 dBm) and is
consistent across 100 m, with the exception of 22 m - 54 m, when the robotic platform
is not present. This interference is likely due to the gusting winds present during
experimentation.

• The interference on bandwidth caused by the robotic platform is also small (-4.57
Mbps) and is consistent across 100 m, with the same exception of 22 m - 54 m when
the robotic platform is not present.

• We will use a cut-off of -65 dBm while creating a methodology for access point place-
ment in an oil and gas refinery. This will provide a distance of around 75 m with a
throughput of around 10 Mbps.

3.4 Effects of Mobile Interference

The previous section investigated interference caused by the presence of the robot. We
would also like to learn how much interference is caused by the RMP during motion. In the
following sections, we discuss the experimental setup and results of the Mobile Interference
Test (MIT).
The environment for this test is the same as the Electrical Interference Testing indoor
environment. It can be seen in Figure 3.10(a), and Figure 3.10(b), and Figure 3.11. The
experimentation setup is the same as the EIT setup and can be seen in Figure 3.19.
Three different speeds (0.33 m/s, 0.66 m/s, and 2.0 m/s) were tested at four starting
locations (7.63 m [25 ft], 22.86 m [75 ft], 38.1 m [125 ft], 53.34 m [175 ft]). Each starting
location at each speed will be tested 10 times, each taking 20 readings. Another hallway
intersects the testing hallway from 119 m - 143 m as seen in Figure 3.11. Each test is
conducted over 10 seconds. Due to spatial reasons, we could not run the 2.0 m tests at 38.1
m and 53.34 m.

25
(a) Testing while receiver on robot (b) Testers

Figure 3.19: MIT Experimental Setup

Received Signal Strength Figure 3.20(a) shows the average RSSI at four speeds: 0
m/s, 0.33 m/s, 0.66 m/s, and 2.0 m/s at four different locations. From this graph, you
can see that the faster the robotic platform moves, the lower the average RSSI. This is due
to the fact that the robot is traveling a greater distance during the test. At each speed,
the platform travels 3.3 m, 6.6 m, and 20 m respectively. It does not appear that there is
interference caused by the motion of the platform itself. You can also observe that there is
interference caused by noise in the RSSI readings.
Bandwidth Figure 3.20(b) shows the average bandwidth at four speeds: 0 m/s, 0.33
m/s, 0.66 m/s, and 2.0 m/s at four different locations. From this graph, you can observe
that there is minimal interference caused from the platform moving.
This study shows how the speed of the robotic platform will effect localization in a WiFi
network. The interference on RSSI caused by a mobile robotic platform appears to be linear
across speeds, while the interference on bandwidth caused by a mobile robotic platform is
small and does not appear to have much effect. These results inform us that there will be

26
Effects of Speed Tests on RSS Effects of Speed Tests on Bandwidth
-40 70
Static Test Static Test
0.33m/s 0.33m/s
0.66m/s 0.66m/s
2.0m/s 60 2.0m/s
-45

50
-50

Average Bandwidth (Mbps)


Average RSS (dbm)

40

-55

30

-60
20

-65
10

-70 0
0 10 20 30 40 50 60 0 10 20 30 40 50 60
Distnace (m) Distance (m)

(a) Average RSSI (b) Average Bandwidth

Figure 3.20: Effects of Speed Testing

little effect on WiFi localization while the platform is mobile.

3.5 Chapter Summary

Through these various experiments, we have determined:

• The upper and lower bound signal characteristics of our equipment, including RSSI,
bandwidth, and link quality. A transmission power of 11 dBm will require a multitude
of units because its bandwidth drops to near 0 Mbps within 30 m, while a transmission
power of 29 dBm will cause interference as it is capable of transmitting well over 90 m
with a bandwidth over 5 Mbps.

• Coefficients for RSSI (-2.16 dBm) and bandwidth (-4.57 Mbps) that we can use when
there is no robotic platform present during future tests

• The interference caused by the platform being mobile is small

• The signal characteristics caused by a transmission power of 20 dBm will be used for
creating a methodology for access point placement in an oil and gas refinery

27
• We will use the Log-Distance Path-Loss Model to determine coverage theoretically

• We will use a cut-off of -65 dBm while creating a methodology for access point place-
ment in an oil and gas refinery. This will provide a distance of around 75 m with a
throughput of around 10 Mbps

From the information learned through these experiments, we will be able to proceed in
creating a methodology for access point placement that will be general enough to be applied
in any environment.

28
CHAPTER 4
WIFI ACCESS POINT PLACEMENT

Not only will a WiFi network assist in localization, it will be necessary for communication
between the RMP and the operator station. This communication will require a minimum
throughput that supports the transmission of sensor information from the RMP to the
operator as well as control information from the operator to the RMP. This requires that at
any time, the mobile unit be in communication range of at least one access point. While a
dense network dispersed through an environment can achieve this, this approach is costly.
This chapter presents several algorithms for minimizing the number of access points (APs)
required to obtain full k−coverage of a given area (k ≥ 1), while maintaining a throughput
requirement of 10 Mbps. This approach can be generalized to any environment with any
throughput requirement.
In the previous chapter, we have studied the WiFi signal propagation in both indoor
and outdoor environments. Assuming that our throughput requirement is 10 Mbps, we
determined that at a distance of 75 m, the RSSI will be -65 dBm, with a bandwidth of
10 Mbps. This cut-off metric will be used in predicting signal distribution. From these
experiments, we determined that the regular Log-Distance Path-Loss Model (Equation 4.1
is adequate to predict signal propagation in our tested environment. The parameters of the
Log-Distance Path-Loss Model were chosen experimentally with a transmission power of 20
dBm by using an RSSI P L0 = −44.1 dBm at a known distance from the AP d0 = 4.572 m
(i.e., 15 ft), where P L is the predicted received signal strength at a distance of d. We then
compared a range of path-loss exponents (from 0.1 to 3.0) to the actual readings taken in an
outdoor environment and selected the exponent that resulted in the smallest average overall
difference: n = 1.8.
 
d
P L = P L0 + 10nlog (4.1)
d0

29
All the algorithms presented in this chapter are implemented using Java. To test the
algorithms, we model CSM’s 3rd floor West Brown Building (Figure 3.11). The building
material is mostly sheetrock. This building consists of a large hallway, approximately 3 m x
45 m, and many classrooms.

4.1 Related Work

Predicting WiFi AP placement in indoor environments has been investigated [6]. The
authors introduce a prediction method based on the log-distance path-loss model of an en-
vironment in an attempt to help generalize the approach to any environment. The authors
perform a site survey of one academic building to tune the propagation model and then apply
the approach to several different buildings without retuning. [7] provide a tool for optimizing
base station placement in buildings through computational geometry and signal propagation.
This approach requires a very detailed study of the environment, including building compo-
sition. [8] uses an approach based off on the Transmission-Line Matrix (TLM) formulation
instead of the empirical or deterministic methods. Multi-Resolution Frequency Domain
ParFlow (MR-FDPF) adapts spatial resolution while considering paths. They introduce an
approach for efficient in-building coverage prediction based on strait lines of MR-FDPF.
Note placement in WSNs has been studied extensively. [9] surveys WSNs that consider
node placement. Depending on when placement optimization occurs, either at deployment
or during operation, different placement strategies have been proposed. WSN placement
approaches are presented in [10], [11], and [12]. The concept of “k-Benefit” is introduced in
[10] and [11] where the newest placement is connected to the existing network while providing
the most new coverage. Further, research has been completed to spread out the placement
of units. [13] provides a survey of coverage problems in WSNs. [14] studies the placement
problem in terms of the visual packing of components. [15] provides a WSN approach to
ensure a minimal separation requirement for 3-coverage.

30
4.2 Single-Coverage Access Point Placement

In this chapter, we aim to minimize the number of access points while ensuring desired
throughput is met and each point of the entire region is covered by at least one AP. The
optimal placement configuration is an NP complete problem, so it can not be calculated in
polynomial time. Heuristics and approximation must be used to find non-optimal solutions
for this problem. We borrow this approach from [6]. The overall flow of the algorithm is
depicted in Figure 4.1. The inputs for the algorithm are the dimensions of a given area
containing a list of object locations and their width and height, as well as the minimum
throughput requirement. From the given area, a grid-system map is created containing
object grid-points and non-object grid-points. The size of each grid-point is user defined
and is the same for all grid-points. The algorithm then creates a candidate pool of possible
access point locations, iterates through all possible locations, and determines the location
that produces the smallest average distance between all uncovered nodes. The AP is then
placed at that location and added to the set of best APs. If the coverage requirements
have not been met, it will reiterate through and choose another location. The algorithm
terminates once coverage requirements are met. Next, we will go into the details of each
step.

1. Create a pool of candidate APs: The pool consists of all non-object grid-points in the
area. This extensive pool ensures that the configuration containing the fewest APs
while providing full coverage is discovered because all possible locations are included.

2. Determine best access point from the pool: In this step, the algorithm iterates through
the candidate pool. At each iteration of the algorithm, it predicts the signal propaga-
tion from the location of the candidate access point. The signal propagates until the
cut-off distance (Chapter3) is reached or the grid-point is an object-node. Considering
the coverage of this new AP, as well as the current set of best APs, the algorithm
calculates the minimum average distance between all uncovered nodes. The coverage

31
Environment Throughput
Information Requirement

1: Create pool of candidate access points

2: Determine best access point from pool

3: Switch on APbest and add to set of APs

4: Coverage No
requirement met?

Yes

5: Output list of best APs

Figure 4.1: WiFi AP Placement Prediction Algorithm flow

from the current candidate AP is then removed and the next AP in the candidate pool
is considered. Once all the candidate APs have been considered, the smallest aver-
age distance from each iteration is compared, where the AP with the smallest average
distance is chosen as the best AP.

3. Switch on APbest and add to set of APs: The best candidate AP from the previous
step is added to the final set of APs. The algorithm also adds the prediction of signal
propagation from the new AP to the coverage map. At this time, the coverage from
all APs in the final set has been distributed through the map.

4. Coverage requirement met: Check if coverage requirements of the region have been
met. This checks each non-object grid-point in the map and determines if any of these
points has yet to be covered. If it finds a single uncovered grid-point, the algorithm
goes back to Step 2, otherwise it terminates.

32
5. Output list of best APs: Return the set of best APs along with their locations.

The intent of this algorithm is to cover a very large area, such as an oil and gas refinery.
Unfortunately, we were not able to procure access to such an establishment. Instead we
are testing in a smaller environment, the Colorado School of Mines (CSM) Brown Building.
Propagation cut-off of each AP should also be scaled down to accommodate this smaller
environment. Instead of -65 dBm, we will use a cut-off range of -55 dBm. This reduces the
number of grid-points within the propagation range from 70 down to 20. This value was
chosen empirically, as the entire width of the hall is approximately 70 m.
The algorithm produced the resulting diagram: Figure 4.2. This diagram shows a grid-
system map of 72 nodes by 10 nodes, where each node is 0.9144 m (3 ft). An ’A’ is a
grid-point that represents an AP location, an ’X’ is a grid-point that represents an object,
and an ’0’ is a grid-point that is covered by a surrounding AP. From the output of the
algorithm, we will require 6 APs with their locations marked by ’A’.

0 0 0 0 0 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 0 0 0 0 0 0 0 0 0 0 0 0 X X X X X X X X X X X X X X X
0 0 0 0 0 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 0 0 0 0 0 0 0 0 0 0 0 0 X X X X X X X X X X X X X X X
0 0 0 0 0 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 0 0 0 0 0 A 0 0 0 0 0 0 X X X X X X X X X X X X X X X
0 0 0 0 0 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 0 0 0 0 0 X 0 0 0 0 0 0 X X X X X X X X X X X X X X X
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 A 0 0 0 0 0 0 0 0 0 0 0 0 A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 A 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 0 0 0 0 0 0 0 0 0 X X X X X X X X X X X X X X 0 0 0 0 0
X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 0 0 0 0 0 0 0 0 0 X X X X X X X X X X X X X X 0 0 0 0 0

Figure 4.2: Results of Single-Coverage AP Placement

For the previous result, all objects in the area were considered when attempting to place
APs. Those results demonstrated that objects which occupied only one grid-point (objects
are less than 1 meter) have a large impact in regards to preventing propagation. To address
this, all objects that occupy only one grid-point were removed from the map. The results
that follow are based on this modified map.
Using the minimum average distance between all uncovered pairs of nodes metric for
single-coverage results in placing 4 APs, purple “X’s” with the corresponding placement
index, as seen in Table 4.1 when using the modified map. Their locations are shown in

33
Figure 4.3(a) which provides the coverage area found in Figure 4.3(b).

Table 4.1: AP Placement Locations for Single-Coverage using DAVE Metric

AP 1 2 3 4
Location (x,y) (4, 5) (73, 5) (55, 5) (42, 6)

X1 X4 X3
X2

(a) AP Location Results for Single-Coverage (with small objects removed)

1 1 1 1 1 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 1 1 1 1 1 1 1 1 1 X X X X X X X X X X X X X X X X
1 1 1 1 1 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 1 1 1 1 1 1 1 1 1 X X X X X X X X X X X X X X X X
1 1 1 1 1 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 1 1 1 1 1 1 1 1 1 X X X X X X X X X X X X X X X X
1 1 1 1 1 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 1 1 1 1 1 1 1 1 1 X X X X X X X X X X X X X X X X
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 2 2 2 2 2 2 2 2 2 2 2 2 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 2 2 2 2 2 2 2 2 2 2 2 2 1 1
X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 1 1 1 1 1 1 X X X X X X X X X X X X X X X 1 1 1 1 1
X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 1 1 1 1 1 1 X X X X X X X X X X X X X X X 1 1 1 1 1

(b) Coverage Results for Single-Coverage

Figure 4.3: Single-Coverage Results using DAVE Metric (with small objects removed)

4.3 K-Coverage Access Point Placement

In Section 4.2 we obtained a single coverage of the WiFi network. Since a WiFi network
already exists for communication, we can make use of this medium for localization. By
expanding single-coverage used for communication to k-coverage, where every point in the
region of interest is covered by at least k APs. WiFi localization can then be performed
through an RSSI matching approach discussed in Chapter 5.
In the following sections, we use this concept of k-coverage for use of localization via
WiFi through two different heuristics.

4.3.1 Algorithm 1: Minimum Average Distance based Placement

In Section 4.2 we were able to obtain single coverage of a WiFi network using the minimum
average distance metric based on [6]. [6] introduces a greedy algorithm using the metric based

34
on the smallest average distance between uncovered nodes as the best AP placement. In this
chapter, we will generalize the algorithm to handle k-coverage.
The minimum average distancek-coverage prediction algorithm uses the same algorithm
flow as the single coverage AP placement algorithm with minor changes. Nodes are modified
to keep a count of the number of times each node has been covered by an AP. Step 4 in
Figure 4.1 is also modified to consider the coverage of each node rather than if it is simply
covered. The design of the algorithm is iterative meaning that it tries to determine a coverage
of 1 before moving onto a coverage of 2. The reasoning behind this is that nodes that have
a coverage less than the iteration have a higher priority to be covered over other nodes who
have a coverage count of the iteration - 1. This also ensures that hard to cover areas are
considered before multi-coverage.
The algorithm can be run with a coverage equal to 1 and produce the same results as the
single coverage AP placement prediction algorithm from Section 4.2. The minimum average
distance k-coverage prediction algorithm produced the resulting diagram: Figure 4.4. This
diagram shows a grid-system map of 72 nodes by 10 nodes, where each node is 0.9144 m (3
ft). The graph is printed to show the coverage of each node, where an ’X’ is a grid-point
that represents an object.

2 2 2 2 2 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X2 2 2 2 2 2 2 2 2 X X X X X X X X X X X X X X X X
2 2 2 2 2 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X2 2 2 2 2 2 2 2 2 X X X X X X X X X X X X X X X X
2 2 2 2 2 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X2 2 2 2 2 2 2 2 2 X X X X X X X X X X X X X X X X
2 2 2 2 2 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X2 2 2 2 2 2 2 2 2 X X X X X X X X X X X X X X X X
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 6 6 6 6 6 6 6 4 4 4 4 4 4 4 4 4 4 4 4 4 4 2
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 6 6 6 6 6 6 6 6 6 4 4 4 4 4 4 4 4 4 4 4 4 4 4
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 6 6 6 6 6 6 6 6 6 4 4 4 4 4 4 4 4 4 4 4 4 2
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 6 6 6 6 6 6 6 4 4 4 4 4 4 4 4 4 4 4 4 2 2
X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 2 2 2 2 2 2 X X X X X X X X X X X X X X X 2 2 2 2 2
X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 2 2 2 2 2 2 X X X X X X X X X X X X X X X 2 2 2 2 2

Figure 4.4: Results of the minimum average distance k-coverage prediction algorithm (k=2)

The algorithm suggests that to achieve a coverage of 2, the environment will require 12
APs. 18 Aps are required to achieve a coverage of 3. The algorithm will continue to return
5*k positions required for AP placement. During each iteration, the algorithm will select a
placement based on the minimum average distance of uncovered nodes from an AP for the

35
current coverage requirement. In the first round of the first iteration, the algorithm may,
for example, select position (5,5) as the first placement for that iteration. The algorithm
will then obtain a coverage of 1 before beginning the next iteration. In the next iteration,
the algorithm will again try to minimize the average distance between uncovered nodes, so
a position next to the first iteration will be selected, as it was the original optimal position.
So the algorithm will pick (5,6) for example. The selection of nodes adjacent to the optimal
node placement will continue until k-coverage has been met, creating clusters of at each
single-coverage location of size k.

4.3.2 Algorithm 2: K-Benefit based Placement

In Section 4.3, we introduced an algorithm that can determine a k-coverage AP placement.


The results, Section 4.3.1, indicate that in order to obtain k-coverage, APs will be clumped
together in groups. We are interested in determining if other approaches yield the same
results. In this section we will introduce a new WiFi k-coverage algorithm based on the
work of [10]. [10] introduces a greedy algorithm using the metric based on the concept of
“k-benefit.” [10] suggests that the best path to add in a WSN is the path where every new
sensor that covers the largest query region is selected. WSNs have to consider paths due as
new sensors need to be able to communicate with the rest of the sensors in order to transmit
their data back to the operator. In WiFi networks, all APs provide a single hop from the
mobile device to the AP, thus the AP that introduces coverage to the most new nodes will
be chosen. In this section, we will explain how the algorithm predicts k-coverage of a WiFi
network.
The k-benefit k-coverage prediction algorithm, borrowed from [10] uses the same algo-
rithm flow (Figure 4.1) as the single coverage AP placement algorithm (Section 4.2) with
minor changes. Like the minimum average distance k-coverage prediction algorithm, the
Nodes are modified to keep a count of the number of times each node has been covered by
an AP and terminates at Step 4 when k-coverage has been established. Step 2 in Figure 4.1
is also modified to consider the k-benefit metric instead of the minimum average distance

36
between uncovered nodes. Unlike Section 4.3.2, the algorithm is not iterative. The algo-
rithm will pick the AP that introduces the most new coverage, up to k, until all the nodes
are k-covered.
We are interested in seeing how k-benefit performs in the case of k=1. The original
map that includes all objects is used for comparison. The k-benefit k-coverage prediction
algorithm produced the resulting diagram: Figure 4.6. This diagram shows a grid-system
map of 72 nodes by 10 nodes, where each node is 0.9144 m (3 ft). The graph is printed to
show the coverage of each node, where an ’X’ is a grid-point that represents an object.
k-benefit provides similar results as DAVE (Figure 4.3(a)) when considering the original
map which included all objects. The resulting locations of APs for the k-benefit approach is
given by Table 4.2 can be seen in Figure 4.5(a) where the purple “X’s” with the corresponding
placement index mark the locations of the APs. This configuration results in the coverage
seen in Figure 4.5(b); however, you can note the order of AP placement. DAVE begins by
placing APs that cover the edges of the map, leaving the center for last. k-benefit takes the
opposite approach, covering the center first then work out towards the edges.

Table 4.2: AP Placement Locations using k-Benefit Metric (k = 1)

AP 1 2 3 4
Location (x,y) (51, 5) (4, 6) (72, 7) (29, 6)

The algorithm suggests that to achieve a coverage of 2, the environment will require 8
APs. 12 APs are required to achieve a coverage of 3. Like the minimum average distance
k-coverage prediction algorithm, the k-benefit k-coverage prediction algorithm selects nodes
in a such a way as to clump APs together to obtain k-coverage.
For example, if k=3, the first 3 rounds will produce locations of three APs that are
located next to each other because the algorithm will select the node that produces the
largest coverage. For example, in round 1, the algorithm may pick position (5,5). In the
next round, it may select position (5,6) then (6,5) in the third round. The following three

37
X1
X2 X3 X4

(a) AP Location Results

1 1 1 1 1 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 1 1 1 1 1 1 1 1 1 1 1 1 X X X X X X X X X X X X X X X
1 1 1 1 1 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 1 1 1 1 1 1 1 1 1 1 1 1 X X X X X X X X X X X X X X X
1 1 1 1 1 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 1 1 1 1 1 1 1 1 1 1 1 1 X X X X X X X X X X X X X X X
1 1 1 1 1 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 1 1 1 1 1 1 1 1 1 1 1 1 X X X X X X X X X X X X X X X
1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1
1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1
1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1
1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1
X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 1 1 1 1 1 1 1 1 1 X X X X X X X X X X X X X X 1 1 1 1 1
X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 1 1 1 1 1 1 1 1 1 X X X X X X X X X X X X X X 1 1 1 1 1

(b) AP Coverage Results

Figure 4.5: AP Placement Results using k-Benefit Metric (k = 1)

2 2 2 2 2 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 2 2 2 2 2 2 2 2 2 2 2 2 X X X X X X X X X X X X X X X
2 2 2 2 2 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 2 2 2 2 2 2 2 2 2 2 2 2 X X X X X X X X X X X X X X X
2 2 2 2 2 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 2 2 2 2 2 2 2 2 2 2 2 2 X X X X X X X X X X X X X X X
2 2 2 2 2 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 2 2 2 2 2 2 2 2 2 2 2 2 X X X X X X X X X X X X X X X
3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 3 3 3 3 2 2 2 2 2 2 3 4 4 3 3 3 3 3 3 3 3 3 3 3 3 3 2 2 2 2 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 2 2
3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 3 3 3 3 3 3 2 2 2 2 3 4 4 4 4 3 3 3 3 3 3 3 3 3 3 3 3 3 2 2 2 2 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 2
3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 3 3 3 3 3 3 3 3 2 2 2 2 3 4 4 4 4 3 3 3 3 3 3 3 3 3 3 3 3 3 2 2 2 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 2 2
3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 3 3 3 3 3 3 3 3 3 3 2 2 2 2 3 4 4 4 4 3 3 3 3 3 3 3 3 3 3 3 2 2 2 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 2 2 2
X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 2 2 2 2 2 2 2 2 2 X X X X X X X X X X X X X X 2 2 2 2 2
X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 2 2 2 2 2 2 2 2 2 X X X X X X X X X X X X X X 2 2 2 2 2

Figure 4.6: AP Placement Results using k-benefit metric (k=2)

rounds will produce another clump elsewhere in the map. This will continue until all nodes
are k-covered.

4.3.3 Performance Comparison of K-Coverage Algorithms

Table 4.3 shows the comparison of the number of APs required to k-cover the 3rd floor of
Brown building at CSM, where Dave is the minimum average distance k-coverage prediction
algorithm and k-benefit is the k-benefit k-coverage prediction algorithm. The k-benefit
algorithm requires more APs to cover the same region because of the chosen metric. By
selecting the AP that covers the most new nodes, the algorithm leaves the corners to be
covered by a new AP. Dave attempts to cover those corners first then move to the center.

38
Table 4.3: Number of APs required resulting from k-coverage algorithms when not including
objects < 1 m

k Dave K-Benefit
1 4 4
2 8 8
3 12 12
4 16 16

Table 4.4: Number of APs required resulting from k-coverage algorithms when including
objects < 1 m

k Dave K-Benefit
1 5 8
2 10 15
3 15 23
4 20 30

Although both heuristics perform the same in this environment with objects less than 1
m removed, they do not perform the same if we do consider these objects (Table Table 4.4.
In order to minimize the number of APs required when deploying in an environment, we will
use the minimum average distance between all uncovered nodes metric.

4.3.4 Anti-Clustering

Our previous approach for k-coverage end up placing APs in clusters of size k. To avoid
this, we modify an approach from [15], which overlays the single-coverage solution in such
a way as to maximize the minimum distance between sensors in wireless sensor networks.
It assumes a uniform distribution of sensors initially and a uniform sensing region. The
center of three sensors from the uniform distribution is used as the placement of the new
sensor; by considering every combination of neighboring sensors throughout the uniform
distribution (each sub-triangle), the single-coverage placement is shifted to maximize the
minimum distance between all sensors.

39
In order to apply this approach to our environment, we make a few assumptions. First, the
single-coverage solutions found using our approach discussed in Section 4.2 are not uniform
and cannot be simply shifted. Second, we cannot assume a uniform coverage area due to
the existence of various objects in the area that we are trying to cover. Third, the area
of interest is comprised of long-narrow passages that are interconnected because an oil and
gas refinery can be thought of as roadways and pathways surrounded by metallic polygons.
We are interested in covering these pathways in between the infrastructure. Similarly, an
academic building can be thought of as a collection of hallways.
Section 4.2 presents an AP placement algorithm that ensures that the entire region is
at least covered by one AP. This first layer is then used to obtain second layer of coverage
using Algorithm 1, in which a higher layer is based on the placement results of all previous
layers. First, the algorithm determines which APs are closest in Euclidean distance to each
other (Line 2). Generally, there will be at most four neighbors, as the areas we are covering
intersect at 90 deg angles. Access points that have only one neighbor are units that are near
the edge of the area. In order to increase the coverage along the edge of the map, we add
a “place-holder neighbor” to indicate that we need to consider calculating new positions for
APs in this area. Now that we have determined all pairs of APs that we need to consider, we
iterate through these pairs. For each pair we must find the center point in Euclidean space
between the two APs in the pair (Line 6). Next, we predict signal propagation from the
center point along the norm of the line between the two APs (Lines 7 - 11) in one direction.
This propagation is terminated by one of two factors: either we run into an object or we
reach a user defined minimum distance threshold (Line 9 - 11). Before we can add the APs
to the map, we first check that the AP covers an area that is less than k-covered. If an
AP covers an area that is already k-covered, it does not provide new coverage and is not
necessary to be added. In order to minimize the number of APs distributed, we only add APs
that provide new coverage to the area. Next, we predict signal propagation in the second
direction along the line and repeat the processes above (Lines 15 - 19).

40
Algorithm 1 Anticluster Algorithm
1: procedure AnticlusterPlacement(APs from Single-Coverage configuration)
2: Determine closest neighbors of APs
3: for i=0:numAPs do
4: for j=numAPs:i do
5: if Pair i and j is a closest neighbor then
6: Determine centerpoint between APs i and j
7: Set currentPoint to centerPoint
8: Set count to 0
9: while currentPoint is not an object and count is less than distance thresh-
old do
10: Move currentPoint along normal away from centerpoint in first direction
11: end while
12: if coverage area of AP at currentPoint is not already k-covered then
13: Add new AP at currentPoint
14: end if
15: Reset currentPoint to centerPoint
16: Reset count to 0
17: while currentPoint is not an object and count is less than distance thresh-
old do
18: Move currentPoint along normal away from centerpoint in second di-
rection
19: end while
20: if coverage area of AP at currentPoint is not already k-covered then
21: Add new AP at currentPoint
22: end if
23: end if
24: end for
25: end for
26: end procedure

41
We next address several issues that may arise using the approach described above.

• Uncovered sections: By propagating in both directions in the area of narrow rectangles


as we assume, most of the region achieves k-coverage. However, there are some areas
where propagation is blocked. In order to cover these areas, we must complete another
coverage pass. Since these areas are small and in close proximity of objects, we consider
a different approach. Algorithm 2 depicts how we achieve coverage of these smaller
regions that are not k-covered yet. First, the algorithm scans the map (starting at
the origin, moving by column then row) to find the first uncovered section. Once an
uncovered section has been found, the center in the x-direction of the gap is computed
(Line 2). Since we are attempting to cover long narrow passages, the x-direction is
defined to lay in the direction of the passage. The center in the x-direction of the
gap is computed to determine the location that lies farthest from any obstruction in
order to ensure that the entire uncovered section is covered by the addition of an AP
at this new location. Uncovered sections are unique locations attached to the main
passage way, such as alcoves or an opening between equipment. These sections tend
to be small when compared to the coverage radius of an AP. The distance from the
closest AP is then calculated (Line 4). If the distance between the calculated position
and the closest AP is less than the minimum threshold, then attempt to propagate
the current position away from the closest AP until the threshold has been met or an
object is reached (Lines 5-9). If the current position is valid, an AP at that position
is added to the map (Lines 10-12). The algorithm then looks for the next uncovered
section (Line 13). If another uncovered section is found, the algorithm continues to
determine placement of a new AP, otherwise it terminates.

• Redundant APs: Through the single-coverage, anticluster, and uncovered-sections al-


gorithms, k-coverage is achieved. This process is iterative, in the terms that it places
one AP at a time, which might result in a configuration with unnecessary APs. An
unnecessary AP is any AP whose removal would not cause any point in the area to drop

42
Algorithm 2 Uncovered Sections Algorithm
1: procedure UncoveredSectionsPlacement(APs from Anticluster configuration)
2: Set currentPosition to center of first uncovered section
3: while currentPosition is not null do
4: Determine the closest AP in Euclidean space to currentPosition
5: if closestAPDistance < the minimum distance threshold then
6: while currentPosition is not an object and count is less than distance threshold
do
7: Move currentPosition away from closestAP
8: end while
9: end if
10: if closestAPDistance geq minimum distance threshold and currentPosition is not
an object then
11: Add AP to map at currentPosition
12: end if
13: Determine next uncovered section
14: end while
15: end procedure

below k-coverage. In order to obtain a minimal number of APs required for placement,
these units are pruned from the set of APs . The coverage of each AP from the AP
Placement algorithms are checked to determine if the AP can be removed. If every
point in the coverage area of the current AP is covered by more than k APs, then the
current AP is removed from the set. Once all APs have been verified, the remaining
set is a minimal configuration to k-cover the given area.

We next present experimental results to show how anti-clustering algorithm along with
the algorithms addressing the uncovered sections and redundant APs improve the AP place-
ment. The four APs resulted from the DAVE approach including the removal of objects less
than 1 m (Figure 4.3) are passed into the Anti-cluster algorithm (Algorithm 1). The center
of each neighboring AP pair (including edges) is determined. The algorithm attempts to
propagate outward from this center in both directions until a minimum distance threshold
is reached or an obstacle is encountered. Since the area is inherently narrow (4 m wide),
we have defined this minimum distance threshold to be 2 m. The algorithm results in an
additional 9 APs (Table Table 4.5). The locations of the new APs, aqua “X’s” with the cor-

43
responding placement index, are shown in Figure 4.7(a) which provides the coverage shown
in Figure 4.7(b).

Table 4.5: AP Placement Locations from Anti-cluster Algorithm (Algorithm 1)

AP 5 6 7 8 9 10 11 12 13
Location (x,y) (0, 7) (0, 2) (23, 7) (23, 4) (75, 8) (75, 4) (64, 7) (49, 7) (49, 4)

X6

X8 X13
X5 X1 X4 X3 X10
X7 X12 X11 X2
X9

(a) AP location results for Anticluster algorithm

3 3 3 3 3 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 2 2 2 2 2 2 2 2 2 X X X X X X X X X X X X X X X X
3 3 3 3 3 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 2 2 2 2 2 2 2 2 2 X X X X X X X X X X X X X X X X
3 3 3 3 3 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 2 2 2 2 2 2 2 2 2 X X X X X X X X X X X X X X X X
3 3 3 3 3 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 2 2 2 2 2 2 2 2 2 X X X X X X X X X X X X X X X X
3 3 3 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 4 3 3 3 3 3 3 3 3 3 3 4 4 4 5 5 5 5 6 6 6 6 6 5 5 5 4 4 4 5 5 5 5 5 5 5 6 7 7 7 7 8 8 7 7 7 7 7 7 6 6 6 5 5 5 5 5 4
3 3 3 3 4 5 5 5 5 5 5 5 5 5 5 5 5 5 4 3 3 3 3 4 4 3 3 3 3 3 4 5 5 5 5 6 6 6 6 6 6 6 5 4 4 4 5 5 5 5 5 5 5 6 6 6 7 7 8 8 8 8 7 7 7 7 7 7 6 5 5 5 5 5 5 5
3 3 3 3 4 5 5 5 5 5 5 5 5 5 5 5 5 4 4 4 3 3 4 4 3 3 3 3 3 3 4 5 5 5 5 5 6 6 6 6 6 6 5 4 4 5 5 5 5 5 5 5 5 5 6 6 6 8 8 8 8 8 8 7 7 7 7 7 6 5 5 5 5 5 5 4
3 3 3 4 4 4 5 5 5 5 5 5 5 5 5 5 4 4 4 4 4 3 3 3 3 3 3 3 3 4 4 4 5 5 5 5 5 6 6 6 6 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 7 7 8 8 8 8 7 7 7 7 7 6 6 6 5 5 5 5 4 4
X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 3 3 3 3 3 3 X X X X X X X X X X X X X X X 3 3 3 3 3
X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 3 3 3 3 3 3 X X X X X X X X X X X X X X X 3 3 3 3 3

(b) Coverage results for Anticluster algorithm

Figure 4.7: Anticluster algorithm results

As you can see from Figure 4.7(b), there are still some uncovered areas. We apply
Algorithm 2) to address this issue. The algorithm determines the center of the gap in the x-
direction. Since the algorithm scans the entire row before moving to the next, the minimum
distance between the current location and the closest AP is greater than the user-defined
minimum threshold of 3 m, it places the final AP at (55, 0). The resulting AP placements,
fuchsia “X’s” with the corresponding placement index, can be seen in Figure 4.8(a) which
provides the coverage shown in Figure 4.8(b).
As shown in Figure 4.8(b), the entire area is 3-covered; however, some areas appear to
have higher than needed coverage. A pruning algorithm is used to determine if any APs are
redundant. We are able to remove two APs from our list while maintaining k-coverage. The
final AP locations can be seen in Table 4.6 and Figure 4.9(a) which provides the coverage

44
X6 X14

X8 X13
X5 X1 X4 X3 X10
X7 X12 X11 X2
X9

(a) AP location results for Uncovered-Sections algorithm

3 3 3 3 3 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 3 3 3 3 3 3 3 3 3 X X X X X X X X X X X X X X X X
3 3 3 3 3 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 3 3 3 3 3 3 3 3 3 X X X X X X X X X X X X X X X X
3 3 3 3 3 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 3 3 3 3 3 3 3 3 3 X X X X X X X X X X X X X X X X
3 3 3 3 3 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 3 3 3 3 3 3 3 3 3 X X X X X X X X X X X X X X X X
3 3 3 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 4 3 3 3 3 3 3 3 3 3 3 4 4 4 5 5 5 5 6 6 6 7 7 6 6 6 5 5 5 6 6 6 6 6 6 6 7 8 8 8 8 9 9 8 8 8 8 8 8 7 7 7 6 6 5 5 5 4
3 3 3 3 4 5 5 5 5 5 5 5 5 5 5 5 5 5 4 3 3 3 3 4 4 3 3 3 3 3 4 5 5 5 5 6 6 6 6 6 7 7 6 5 5 5 6 6 6 6 6 6 6 7 7 7 8 8 9 9 9 9 8 8 8 8 8 8 7 6 6 5 5 5 5 5
3 3 3 3 4 5 5 5 5 5 5 5 5 5 5 5 5 4 4 4 3 3 4 4 3 3 3 3 3 3 4 5 5 5 5 5 6 6 6 6 6 7 6 5 5 6 6 6 6 6 6 6 6 6 7 7 7 9 9 9 9 9 9 8 8 8 8 8 7 6 5 5 5 5 5 4
3 3 3 4 4 4 5 5 5 5 5 5 5 5 5 5 4 4 4 4 4 3 3 3 3 3 3 3 3 4 4 4 5 5 5 5 5 6 6 6 6 5 6 6 6 6 6 6 6 6 6 6 6 6 6 7 8 8 9 9 9 9 8 8 8 8 8 7 7 6 5 5 5 5 4 4
X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 4 4 4 4 4 4 X X X X X X X X X X X X X X X 3 3 3 3 3
X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 4 4 4 4 4 4 X X X X X X X X X X X X X X X 3 3 3 3 3

(b) Coverage results for Uncovered-Sections algorithm

Figure 4.8: Uncovered-Sections algorithm results

seen in Figure 4.9(b).

Table 4.6: Final AP locations after Pruning


AP 1 2 3 4 5 6 7 8 9 10 11 12
Location (x,y) (4, 5) (73, 5) (55, 5) (42, 6) (0, 7) (0, 2) (23, 7) (23, 4) (75, 8) (75, 4) (49, 7) (55, 0)

X6 X14

X8 X3 X10
X5 X1 X4
X7 X12 X2
X9

(a) Final AP location results after Pruning algorithm

3 3 3 3 3 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 3 3 3 3 3 3 3 3 3 X X X X X X X X X X X X X X X X
3 3 3 3 3 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 3 3 3 3 3 3 3 3 3 X X X X X X X X X X X X X X X X
3 3 3 3 3 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 3 3 3 3 3 3 3 3 3 X X X X X X X X X X X X X X X X
3 3 3 3 3 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 3 3 3 3 3 3 3 3 3 X X X X X X X X X X X X X X X X
3 3 3 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 4 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 5 5 5 6 6 5 5 5 4 4 4 4 4 4 4 4 4 4 5 6 6 6 6 7 7 6 6 6 6 6 6 5 5 5 5 5 4 4 4 3
3 3 3 3 4 5 5 5 5 5 5 5 5 5 5 5 5 5 4 3 3 3 3 4 4 3 3 3 3 3 3 4 4 4 4 5 5 5 5 5 6 6 5 4 4 4 4 4 4 4 4 4 4 5 5 5 6 6 7 7 7 7 6 6 6 6 6 6 5 5 5 4 4 4 4 4
3 3 3 3 4 5 5 5 5 5 5 5 5 5 5 5 5 4 4 4 3 3 4 4 3 3 3 3 3 3 4 4 4 4 4 4 5 5 5 5 5 6 5 4 4 4 4 4 4 4 4 4 4 4 5 5 5 7 7 7 7 7 7 6 6 6 6 6 6 5 4 4 4 4 4 3
3 3 3 4 4 4 5 5 5 5 5 5 5 5 5 5 4 4 4 4 4 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 5 5 5 5 4 5 5 4 4 4 4 4 4 4 4 4 4 4 5 6 6 7 7 7 7 6 6 6 6 6 6 6 5 4 4 4 4 3 3
X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 3 3 3 3 3 3 X X X X X X X X X X X X X X X 3 3 3 3 3
X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 3 3 3 3 3 3 X X X X X X X X X X X X X X X 3 3 3 3 3

(b) Final coverage results after Pruning algorithm

Figure 4.9: Pruning algorithm results

45
4.4 Channel Allocation

WiFi operates in the frequency range of 2.4 GHz to 2.485 GHz. Within this 85 MHz
band, WiFi defines 11 partially overlapping channels. Any two channels are non-overlapping
if and only if they are separated by four or more channels. In particular, the set of channels 1,
6, and 11 is the only set of three non-overlapping channels [16]. Our objective is to minimize
the number of channels required for a given network to ensure that no two APs interfere.
The channel allocation problem can be formulated as a graph-coloring problem, which is
known to be NP-Hard. The graph is a vertex-edge graph consisting of nodes and edges.
Each AP is a node in the graph and if the coverage area of two APs interfere, there exists
a bi-directional edge between the two nodes. We aim to color the graph using the fewest
colors so that no two adjacent nodes have the same color, in which a color corresponds to
a channel. In the rest of this section, we use node, AP, and vertex interchangeably, and we
also use color and channel interchangeably.

4.4.1 Related Work

Graph coloring has been studied extensively. [17] is a survey paper covering both integer
models and heuristics for solving the graph coloring problem as well as discussing general-
izations of the graph coloring problem, which include but are not limited to the bandwidth
coloring problem and the multi-coloring problem. This paper discusses the concept of greedy
sequential coloring, which we borrow as one of our approaches. The authors in [18] study the
opportunistic spectrum allocation scheme in which they propose three distributed heuristics
for determining graph-coloring across cooperative users. Our other approach is borrowed
from the distributed greedy algorithm, where they handle colors one color at a time. [19] in-
troduces a weighted variant of the graph coloring problem and propose a scalable distributed
algorithm for determining channel allocation. In [20], the authors introduce a theoretical
model to interpret interference of surrounding networks and provide optimization functions
and rules for optimizing spectrum utilization. [21] propose a linear mixed integer program

46
to meet the signal to interference plus noise ratio requirement. The authors also introduce
a control scheme with a smaller complexity that provides a suboptimal scheme and report
the results between their two approaches.

4.4.2 Channel Allocation Algorithms

Our approach consists of two steps: 1) create the interference graph, and 2) determine
the color of each AP. This first step is to determine which APs interfere. Given a set of
APs and their locations, an interference graph can be constructed as a vertex-edge graph,
where a vertex represents an AP and an edge exists between two APs if they interfere. For
every pair of APs, the algorithm propagates their signal to their interference cut-off distance
as described the previous chapter. The algorithm keeps track of a) the number of times
a non-object node is single-covered (Cs ) and b) the number of times a non-object node is
covered more than once (Cm ). This information is then used to calculate the interference
Cm
percentage between the two APs: I = Cs
. If I is more than a predefined threshold (e.g.,
5%), then the APs cause interference and this bi-directional edge is added to the interference
graph.
For the second step, we have implemented two approaches for determining how to color
the interference graph. The algorithm flow for the two approaches can be seen in Figure 4.10.
The first approach is called the greedy sequential algorithm [17], referred to as ColorByAP.
This approach considers colors one vertex at a time. In this approach, the heuristic loops
through all APs and checks the color of the current AP. If the current AP’s color has not
been set, the heuristic determines the first color that has not been used among the colors of
the current node’s children (one-hop neighbors) and applies that color to the current node.
When all nodes have been colored, the heuristic stops. If the number of colors is less than
11, then the solution is a feasible solution for the channel allocation problem. Algorithm 3
provides the pseudocode for determining channel allocation through ColorByAP.
Algorithm 3 determines all 2+hop nodes of this initial node in order to avoid interference
of two neighboring nodes. A 2+hop node is any node that is not a child of the current AP.

47
Start:
ColorByColor
Is the
Start: Create Child List and Current Node’s
Yes
ColorByAP 2+Hop Nodes List 2+Hop List
Empty?
Update Current
Select First AP Color-Value By 1 No

Are
Are All Nodes Yes End
All APs Yes End Colored?
Colored? Calculate Interference
of 2+Hop Nodes for
No Current Node
No
Select Next Non-Colored
Determine First Available Node and Color it the Color Least Interfering
Color Among Current Current Color-Value 2+Hop Node of Current
AP’s Neighbors Node with
Current Color-Value
Is the
Color Current AP First
Current Node’s Remove Least Interfering
Available Color Yes
Child List 2+Hop Node From
Empty? Current Node’s
2+Hop List
Select Next AP
No

(a) Color By AP (b) Color By Color

Figure 4.10: Algorithm Flow

The AP sf romAP P lacementAlgorithms are passed into the algorithm in order to determine
which channels to assign to which APs (Line 1). The APs whose coverage overlap are APs
who interfere. A list of interfering APs is created for each AP (Line 2). The algorithm then
iterates until all APs have been colored (Lines 3 - 16). During each iteration, the AP with the
smallest index that has yet to be assigned a channel is used to determine coloring (Line 4).
It is then added to a first-in first-out queue that contains APs that have yet to be assigned
a color (Line 5). The algorithm iterates through all the nodes in the queue (Line 6). During
each iteration, the first AP in the queue is removed (Line 7). The children of the first AP
in the queue are then considered (Line 8), where unvisited children are added to the queue
(Lines 9 - 11). An unvisited child is defined as any node that has not already been added to
the queue that shares an interference edge with the current AP. Line 12 checks the color of
each neighboring AP, while Line 13 assigns the first unused color between the neighboring

48
Algorithm 3 Channel Allocation: ColorByAP
1: procedure ChannelAllocation(AP sf romAP P lacementAlgorithms)
2: Determine which APs interfere
3: while All APs are not colored do
4: Select AP with smallest index that has not been previously colored
5: Add AP to queue
6: while Queue is not empty do
7: Remove first AP in queue
8: for Each interference edge of current AP do
9: if Current interfering AP has not been visited then
10: Add current interfering AP to queue
11: end if
12: end for
13: Determine assigned colors of neighboring APs
14: Determine first unused color and assign to AP with smallest index
15: end while
16: end while
17: end procedure

APs. By considering the color of your neighbors, you will not assign two neighboring nodes
the same color. The algorithm continues to iterate until the queue is empty, coloring all
APs that are connected to the originally chosen AP. If an AP is unconnected from the rest
(which means that its coverage does not overlap the coverage of any other AP), then it is
handled by the outer while loop. Note, this should not be the case, as we are interested in
providing a configuration where every point in the region of interest is covered.
The second approach is borrowed from [18]. The author’s focus is the problem of spectrum
allocation which introduces the concept of fairness, which is where all secondary users are
allocated portions of the spectrum in a fair way. Since the concept of fairness between users
does not exist in channel allocation, we have borrowed their greedy approach. Instead of
coloring one vertex at a time, the approach applies one color to as many vertices as possible
before moving on to the next color. We refer to this algorithm as ColorByColor.
Figure 4.10(b) depicts ColorByColor’s algorithm flow. First, a list of children (one-hop
neighbors) and 2+hop nodes must be created. 2+hop neighbors of the current node consist
of all vertices can be reached from the current node that do not exist in the its children

49
list. The algorithm loops through all APs visiting each in increasing order. For each AP in
APs, the algorithm marks the current AP visited and determines the AP’s children. The
list of 2+hop nodes for the current AP are also determined. 2+hop nodes of the current
AP are all nodes that do not exist in the current AP’s children list that can be reached.
Once all nodes have been visited and both the children and 2+hop lists for every node have
been determined, the algorithm can begin to consider coloring the graph. A random starting
node is determined and the current color being considered is initialized to the first color.
The algorithm then iterates through all APs. Unless the current color is the first color in
which a random starting node is considered, the heuristic determines the first available AP
in increasing order that has yet to be colored. The current AP is colored using the current
color. If the current node has no children then it is an unattached node and its color does
not affect any other node, so we have chosen to reset their color to the initial color value.
If the current node does have children, then we try to maximize the number of APs that
use the current color value. To do this, we consider the current node’s 2+hop list. For each
node in the 2+hop list of the current node, we calculate how many times this 2+hop node
is a neighbor to another 2+hop node. This least-interfering 2+hop node is then colored
the value of the current color, which is the same as the current Node’s color value and is
removed from the list of the current node’s 2+hop list. If a tie exists between two or more
2+hop nodes, then the AP with the smallest index is chosen. To avoid assigning neighbors
the same color, the children of the least-interfering 2+hop node are also removed from the
current node’s 2+hop list. The algorithm continues to iterate through the remaining 2+hop
list until the current node’s 2+hop list is empty. Once it is empty, the maximum number
of APs have been colored the current color value, so this value must be incremented. The
heuristic iterates until all nodes have been colored. When all nodes have been colored, the
heuristic stops. If the number of color values is less than 11, then the solution is a feasible
solution for the channel allocation problem.

50
To better understand how nodes are classified, consider Node N1 in Figure 4.11. Its
children are N2, N3, and N4, and the 2+hop nodes of N1 are N5, N6, N7 and N8. N6, N7,
and N8 are classified as 2+hop nodes of N1 because they are not direct children of N1 and it
is possible to reach them. N4 is not considered a 2+hop because it already exists in the list
of N1’s children. N9 is not included in the 2+hop list because it is an unreachable (detached)
node. Table Table 4.7 shows the interference between 2+hop nodes of N1 for Figure 4.11.
As you can see from the table, since N8 has the lowest interference it is considered first for
coloring. Now that a 2+hop node has been colored, the interference of the newly colored
node, N8, must be considered for N1’s 2+hop list. This would result in the removal of N6
from N1’s 2+hop list because N6 is a child of N8.

N2

N6 N8

N1 N4 N5

N7 N9

N3

Figure 4.11: Determining Children list and 2+Hop Nodes list Example

Table 4.7: Interference of 2+hop nodes for N1 in Figure 4.11

Node Interference
5 2
6 3
7 2
8 1

4.4.3 Experimental Results

Section 4.2 produced the graph shown in Figure 4.2 using all objects (includes objects <
1 m), where an “A” marks the location of APs, “X” marks the location of objects, and “0”

51
marks non-object nodes. This information was used to test both heuristics. ColorByAP and
ColorByColor produced the results found in Table 4.8. These results show for this example
both heuristics provide similar results: four channels are needed for six APs.

Table 4.8: Resulting channel allocation for single-coverage of CSM’s Brown Building 3rd
Floor

ColorByAP ColorByColor
AP Index Color AP Index Color
0 0 0 0
1 1 1 1
2 1 2 1
3 0 3 3
4 2 4 2
5 3 5 0

If we consider the example shown in Figure 4.12(a) consisting of 8 nodes and 12 bidirec-
tional edges, we can observe a difference in assignment of the APs by the two heuristics. We
will now go into detail of this example.

N0 N1 N2 N4
C:0

N1 N2 N6
N3 N4
C:1 C:1 C:1

N0 N3 N7 N5
N5 N6 N7
C:0 C:2 C:3 C:3

(a) AP Interference Graph (b) BFS tree starting at node 4

Figure 4.12: Interference Graph Example

First, let us consider ColorByAP. If we select a starting node of 4, the resulting BFS tree
Figure 4.12(b) shows the 2+hop interference of N4 as well the ColorByAP coloring result

52
for each node denoted by “C:Color Result”. As you can see from the figure, it takes 4 colors
to color the 8 nodes for ColorByAP. Now if we consider ColorByColor with the starting
node being N0, Table Table 4.9 shows that it only takes 3 colors to color the 8 nodes. This
is because N0 and N4 are not the same color. ColorByColor determines the amount of
interference that each 2+hop node generates and adds the 2+hop node of the current node
with the least interference. This allows N0, N2, and N6 to be assigned the same color instead
of N0 and N4.

Table 4.9: ColorByColor Information

Color Node Children 2+Hop Nodes


0 N0 1,3,5,7 2,4,6
1 N1 0,4 2,3,5,6,7
0 N2 3,4,7 0,1,5,6
2 N3 0,2,5,7 1,4,6
2 N4 1,2,6 0,3,5,7
1 N5 0,3,6 1,2,4,7
0 N6 4,5 0,1,2,3,7
1 N7 0,2,3 1,4,5,6

The k-coverage algorithms show that is possible to 3-cover our testing environment using
12 APs as seen in Table 4.6. To ensure that the coverage of these APs do not interfere,
the channel allocation algorithm (Algorithm 3) is used to assign each AP a non-interfering
channel.
The k-coverage configuration of APs results in 33 bi-directional interference edges between
the 12 APs as listed in Table 4.10. These edges can be seen in Figure 4.13, where each AP
is represented by a circle whose index shows the order in which the AP was added by the
AP placement algorithms.
The channel allocation algorithm determines that 6 channels are required to avoid in-
terference across the twelve APs consisting of 33 interfering edges (Table 4.11). Figure 4.14
shows the final coloring of each AP, where the index represents placement order.

53
Table 4.10: Interference Edges

Index Vertex1 Vertex2 Index Vertex1 Vertex2 Index Vertex1 Vertex2


0 AP0 AP4 11 AP2 AP8 22 AP5 AP6
1 AP0 AP5 12 AP2 AP9 23 AP5 AP7
2 AP0 AP6 13 AP2 AP10 24 AP6 AP7
3 AP0 AP7 14 AP2 AP11 25 AP6 AP10
4 AP1 AP2 15 AP3 AP6 26 AP7 AP10
5 AP1 AP3 16 AP3 AP7 27 AP8 AP9
6 AP1 AP8 17 AP3 AP10 28 AP8 AP10
7 AP1 AP9 18 AP3 AP11 29 AP8 AP11
8 AP1 AP10 19 AP4 AP5 30 AP9 AP10
9 AP1 AP11 20 AP4 AP6 31 AP9 AP11
10 AP2 AP3 21 AP4 AP7 32 AP10 AP11

5 11

7 9

0 3 2
1
4 6
10 8

Figure 4.13: Interference graph for k-coverage configuration

Table 4.11: Channel Allocation Results

AP Index AP Index AP Index


0 0 4 1 8 0
1 2 5 2 9 5
2 3 6 3 10 1
3 0 7 4 11 4

5 11

7
0 3 2 9

1
4 6
10 8

Figure 4.14: Colored k-coverage placement APs

54
4.5 Chapter Summary

Every mobile robotic system must be able to communicate with the operator in order
for control to occur. Whether communication occurs across a couple of feet to thousands of
yards, an operator should be able to directly drive the platform through RC control or be
able to give high-level instructions for the robot to perform autonomously. To provide full
coverage of a WiFi network to a given environment, a number of studies were conducted to
understand how WiFi signals propagate. The information gleaned from these studies was
used in determining a minimal configuration of APs that provide complete single-coverage.
WiFi not only be used for remote communication, but can also implement a form of
localization. In order for WiFi localization to be more robust, coverage must be expanded.
We have chosen to consider 3-coverage. Iterating the single-coverage algorithm k times
resulted in clusters of APs, so we have implemented additional placement algorithms that
provide k-coverage by maximizing the distance between APs. Due to the iterative nature of
our heuristics, we found that some APs were redundant. A post-process pruning algorithm
is then applied to our k-coverage results that provides a minimal placement configuration.
Since we are considering k-coverage, interference not only between neighboring APs but
also APs who provide coverage of the same area will occur. In order to avoid this interference
a channel allocation through graph coloring algorithm has been implemented.
The intent of this work is to be implemented in an oil and gas refinery; however, we were
unable to be granted access to one. Our algorithms are flexible enough to be applied to any
environment, so a pseudo-environment was used for testing. The CSM’s Brown Building
provides a similar configuration to an oil and gas refinery as both are composed of narrow
corridors that meet at 90o intersections. In order to account for a smaller environment, we
shrunk the propagation range that we considered for coverage of each AP. Single-coverage
found that 4 APs were required to provide full coverage of a hallway on the third floor. In
order to expand coverage to 3, 10 additional APs were placed before 2 APs were pruned,
resulting in 12 APs required to provide 3-coverage. The channel allocation algorithm was

55
then applied to this configuration which found 33 bi-directional interference edges between
the APs, but was able to find a coloring configuration that required only 6 colors.

56
CHAPTER 5
WIFI LOCALIZATION

In order for the robot to be able to autonomously navigate, it must be aware of its
location. As previously discussed, WiFi is being used for communication between the robot
and the control station. We have already shown how to expand this coverage to achieve
k-coverage of a given region. From this multi-coverage, we will be able to develop a WiFi
localization technique to assist in the localization of the robot.
In the following sections, we will discuss the work related to WiFi localization (Sec-
tion 5.1) and our implementation of a WiFi fingerprinting method (Section 5.2).

5.1 Related Work

When considering WiFi localization, two approaches generally exist [22]: signal propa-
gation modeling and WiFi fingerprinting. Signal propagation modeling allows the system to
triangulate its position based on a propagation model with known AP locations. As you can
imagine, this approach requires a very detailed propagation model that is typically unique to
that one environment. To apply this approach to different environments, new propagation
models must be determined. The second approach, WiFi fingerprinting, works in two stages.
In the offline stage, a database of fingerprints at various locations is created. During the
online stage, this database is used to compare against the current fingerprint. A match-
ing algorithm is used to determine the k-closest neighbors and the averaged position is the
location requested.
Indoor WiFi localization has been studied extensively. The original WiFi localization
techniques were formed by [22], where they describe both the signal propagation method as
well as WiFi fingerprinting. [23] provides a survey of wireless indoor positioning techniques.
The authors provide a comprehensive performance comparison across six metrics: accuracy,
precision, complexity, scalability, robustness, and cost. Different triangulation approaches,

57
including received signal strength indicator (RSSI), time of arrival (TOA), time difference of
arrival (TDOA), and roundtrip time of flight (RTOF) are discussed. The authors also discuss
other positioning techniques including scene analysis and proximity. WiFi fingerprinting falls
within the category of scene analysis. This category typically occurs in two stages: offline
and online. The offline stage usually consists of some form of site survey, while the online
stage makes use of this survey to determine its estimated location. Probabilistic approaches,
neural networks, support vector machines (SVM), and smallest M-vertex polygon (SMP) are
also considered under the scene analysis approach. Various technologies, such as GPS, RFID,
Cellular, UWB, WLAN, Bluetooth, as well as a few others, are discussed in terms of the accu-
racy of their localization. The mathematical differences between different indoor localization
techniques are discussed in [24]. Authors consider geometry-based methods, minimization
of cost functions, fingerprinting, and Bayesian techniques. [25] provide a signal propagation
approach for indoor localization of a mobile robot that is capable of 1.5m accuracy. A proba-
bilistic localization technique is implemented using a probability grid, where they use Bayes
to fuse the current grid-point with new information. The highest accumulated probability is
then used as the localization result. [26] shows that the signal propagation model requires
a precise propagation model that is unique to the current environment. The authors then
compare this approach against WiFi fingerprinting, which shows that WiFi fingerprinting
provides a better accuracy. During the offline phase, a database of fingerprints are created
at a predefined spacing. Each location is recorded in four directions. In order to determine
localization during the online phase, the authors use a weighted nearest neighbor technique.
Other localization techniques and environments have also been studied for mobile localiza-
tion. Cellular phones can act as an analog to a robotics platform, as both are mobile and
equipped with a variety of sensors. [27] presents indoor localization through fingerprinting
using cellular phones. By combining WiFi, cellular, accelerometer and magnetometer, the
authors are able to achieve an accuracy of 1.5m. [28] introduces a technique to determine
mobile localization through the use of a single AP that does not rely on fingerprinting or

58
signal propagation. Instead physical layer information is used to determine the RSSI of the
direct propagation path by looking at the angle of arrival of incoming signals.
WiFi fingerprinting has also been studied for outdoor localization in urban canyons [29].
The authors show that pedestrian and car traffic has a high impact on accuracy of outdoor
localization. Our experiments also show that wind has a large effect on the wireless signal.
In addition, [30] presents a survey on localization methods for mobile wireless sensor net-
works. Common WSN architectures, measurement techniques, and localization algorithms
are discussed. Real-world mobile sensor applications are also discussed, where position es-
timation is a requirement. [31] provides a study of Vehicular Ad Hoc Networks (VANets)
where GPS, dead reckoning, cellular localization, and visual localization are fused together
to overcome GPS limitations.

5.2 WiFi Localization Algorithm

We are interested in an algorithm that is capable of being applied to different environ-


ments with little modification. Wifi localization through signal propagation requires detailed
information specific to the application environment, which includes floor plans of the envi-
ronment, as well as material details. The propagation model would then have to be tuned to
reflect this information. If the environment changes in any way, the propagation model must
be updated to reflect these changes. WiFi fingerprint matching does not require any of this
information, instead a database of positions must be generated during the offline phase. This
database is independent of specific environment information. If there are minor changes to
the environment, fingerprinting is able to compensate through the k-neighbors of the affected
locations. Major changes in the environment will require a modification to the database of
the affected locations. For these reasons, we have adopted the WiFi fingerprinting algorithm
based on the approach presented in [26].
A fingerprint consists of the surrounding APs and their RSSI at a given position. At
every location, a fingerprint is created for each orientation[22]. We have decided to restrict
the number of orientations to two along each hallway while using all four orientations at

59
each corner. This decision was made based off of the assumption that the robot will never
be driving perpendicular to a narrow corridor, a.k.a. hallway or roadway. For specific details
on our implementation, please see Appendix B.
The same method that created the fingerprints in the database is also used to create
a new fingerprint at an unknown location. This fingerprint is then used to determine the
k-closest neighbors in signal space (d(Z, Zi )), Equation (5.1).
v
u N
1 uX
d(Z, Zi ) = × t (RSSIj (x, y) − RSSIj (xi , yi ))2 , (5.1)
N j=1

where Z is the current fingerprint at the new unknown location, Zi is the fingerprint in the
database with index i. N is the number of APs in Z ∪ Zi . RSSIj (x, y) is the observed signal
strength for APj at unknown position (x, y) and RSSIj (xi , yi ) is the observed signal strength
for APj at the known location (x, y). We consider all APs that exist in the union of Z and
Zi during every iteration in order to achieve a closer match while comparing neighbors. The
reasoning behind this, is that the subset of APs in Z may exist in numerous locations Zi with
similar RSSI, thus resulting in a mismatch of neighbor selection. Every AP in the Z ∪ Zi
should be compared against the AP with the matching BSSID in the other set. APs that
exist in only one set are compared against the no reading value ( -70 dvm in our case as
discussed in experiments.)
This approach differs from [26]. In their approach, they consider only the APs that exist
in the new fingerprint Z. The reason that we chose to change this approach is because if
you only consider the subset of APs found in Z, the RSSI of these APs may match closely
to multiple Zi , but Zi may contain APs not found in Z. This in turn would cause incorrect
matching, thus lowering the accuracy of localization. They also do not mention how they
handle the case where an AP exists in Z but not Zi .
The results from Equation (5.1) are then sorted in non-decreasing order, where only the
k-closest neighbors are used in determining location. The locations of the k-closest neighbors
are averaged in order to determine the current estimated location of the robot.

60
5.3 Integration of WiFi Localization with other Localization Methods

There are a variety of sensors that are available for localization on a robotic system,
including the inertial navigation system (INS), GPS, compass, WiFi, and a fiducial marker
system (FMS). Depending on the environment, a different combination of localization sensors
will be fused through an Extended Kalman Filter (EKF) to determine a more accurate
location of the mobile system.
Dead reckoning (DR) is comprised of motion sensors (encoders) and rotation sensors
(gyroscopes). It is used to continuously determine the position of the robot. While DR can
be very good at measuring linear displacement, it tends to accumulate error when angular
displacement transpires [32]. DR is commonly paired with other sensors such as compass
to account for this. Compasses are used to determine heading, however, they are prone to
failure when exposed to external magnetic fields or soft metals - this makes them impractical
for indoor use. Instead, a Fiducial marker system is used to update heading in problematic
areas, i.e. around corners. By fusing DR and WiFi, the system is able to keep its position
on track until a marker is encountered.
Each localization sensor has different strengths and weaknesses. DR is very good at
keeping track of linear movement, but tends to lose its position when turning. GPS is
capable of locating within a few meters when a good signal is available, but fails when
there are obstructions between the sensor and the surrounding satellites. A compass can be
used to determine the heading of the robot and is useful when coupled with DR; however,
external magnetic fields and ferrous metals interfere with the accuracy of the unit. WiFi is
often used for indoor localization due to the presence of wireless networks in most buildings;
however wireless signals become very unstable in outdoor environments [29]. The FMS is a
visual marker that correlates with a unique position in the database. Through the use of
iterative non-linear least-squares, a 6-DOF pose estimate of the robot can be determined.
FMS seems like a great approach for localization; however, it is prone to a variety of failures
from the maker being obstructed from the field of view of the camera, the lighting conditions

61
interfering with the marker. Also, markers would have to be distributed throughout the area
of work and the number of tags available are restricted to the size of the payload (the number
of bits), i.e. more tags requires a bigger payload which requires a larger tag.

5.3.1 Extended Kalman Filter

The Kalman Filter is a sensor fusing algorithm that uses a series of measurements ob-
served over time, modeled with Gaussian noise to produce estimates that are more precise
than a single measurement. It involves prediction and measurement updates. The Kalman
filter uses the error in measurement space to update the state space. An initial system state
vector x0 is defined which is used in predicting the next system state with its prediction
uncertainty propagated alongside. This predicted new state is corrected based on the actual
measurement zt obtained. These calculations are then performed recursively. The list of
variables used can be found in Table Table 5.1.

Table 5.1: List of Variables used in calculating Kalman Filter

Variable Name Variable Symbol


Xt State at interval t
ζt−1 Covariance for interval t-1
u Control input
X̂t The predicted state
b Gyroscope bias
g Motion function
Ĝt Derivative of motion function with respect to the previous state
Vt Derivative of motion function with respect to the input
Qt Variance of sensor measurement
Mt Noise in control (input) space
Ht Jacobian of measurement model w/ respect to predicted state
ζ̂t Variance of prediction
Kt Kalman gain
ẑt Measurement given the predicted state
zt Actual measurement
I Identity Matrix

Since various localization sensors are fused with dead reckoning, let us consider the EKF
model that only uses DR measurements to update its location. We can then expand this

62
model to incorporate other localization sensors.
Equation (5.2) defines the state variables being used in the Kalman filter, which include
the position in x (Px ), the position in y (Py ), the heading of the robot (θ), and the Velocity
of the robot (V). The predicted state x̂t is then calculated (Equation (5.3)), where b is the
gyroscope bias and a is the acceleration, based on the control input (Equation (5.4)) and
the previous state xt−1 .
   
Px P ositionX
 Py   P ositionY 
xt−1 =
 θ  =  Heading 
   (5.2)
V V elocity
2 2
Px + V δt sin θ − bδt 2sin θ + aδt 2sin θ
   
P x0
 Py 0   Py + V δt cos θ − bδt2 cos θ + aδt2 cos θ 
x̂t = g(xt ) = 
 θ0
= 2 2  (5.3)
  θ + ωδt 
V0 V − bδt + aδt
 
α
u= (5.4)
ω
Since EKF assumes a non-linear model and uses Taylor series approximations, the Jaco-
bian of the state variable must be taken. To do this, we linearize the state variable by taking
the Jacobian with respect to xt−1 (Equation (5.6)) and with respect to the control input (u).
Velocity is determined by taking the Jacobian with respect to the control input (Equa-
tion (5.5)).
δt2 sin θ
 
2
0
δg  δt2 cos θ
0 
Vt = = 2  (5.5)
δu  0 δt 
δt 0
2 2
0 V δt cos θ − bδt 2cos θ + aδt 2cos θ δt sin θ
 
1
2 2
δg  0 1 −V δt sin θ + bδt 2sin θ − aδt 2sin θ δt cos θ 
Ĝt = =  (5.6)
δxt−1  0 0 1 0 
0 0 0 0
The variance of the measurement model (Qt ) is given by Equation (5.7), while Equa-
tion (5.8) is the variance of the control input (Mt ), where ρ2 represents the variance. Ht
is the Jacobian of the measurement model (zˆt ) with respect to the predicted state (Equa-

63
tion (5.9)).

ρ2Px 0
 
0 0
 0 ρ2P 0 0 
Qt = 
 0
y
2
 (5.7)
0 ρPθ 0 
0 0 0 ρ2PV
 2 
ρα 0
Mt = (5.8)
0 ρ2ω
 
1 0 0 0
 0 1 0 0 
Ht =  0 0
 (5.9)
1 0 
0 0 0 1
The error in the prediction of measurement (ζt ) is calculated by Equation (5.10). The
Kalman gain, which maps the error in measurement space to update the state space, is
computed (Equation (5.11)) using the predicted covariance (ζˆt ) of the measurement and the
measurement model with respect to the predicted state.

ζ̂t = Gt ζt−1 GTt + Vt Mt VtT (5.10)

Kt = ζˆt HtT (Ht ζˆt HtT + Qt )−1 (5.11)

Equation (5.12) represents the predicted measurement (zˆt ) and actual measurement (zt )
taken. Finally, the state is updated based on the difference between the predicted state and
the actual measurement multiplied by the Kalman gain (Equation (5.13)).
 0   
Px GP Slong
 Py0   GP Slat 
ẑt = 
 θ0 
 ; zt = 
 Headingcompass 
 (5.12)
V0 Encodervelocity

xt = x̂t + Kt (zt − ẑt ) (5.13)

64
5.3.2 Adding WiFi to the EKF

Since WiFi only updates two of the state variables (X and Y), two new entries will be
added to Equation (5.7), Equation (5.9), and Equation (5.12):

ρ2Px 0 0 0 0 0
 
 0 ρ2Py 0 0 0 0 
2
 
 0 0 ρPθ 0 0 0 
Qt =  0 0 0 ρ2PV 0 0

 (5.14)
 2 
 ρ Px 0 0 0 0 0 
W iF i
0 ρ2Py 0 0 0 0
W iF i
 
1 0 0 0
 0 1 0 0 
 
 0 0 1 0 
Ht =   0 0
 (5.15)
 0 1 

 1 0 0 0 
0 1 0 0
Px0
   
GP Slong
 Py0   GP Slat 
 θ0
   
  Headingcompass 
 V 0  ; zt =  Encodervelocity
ẑt =    
 (5.16)
 W iF i0   
 Px   XW iF i 
W iF i 0
Py YW iF i
Since WiFi signals are known to vary, the estimated position from WiFi may be in-
correct. To help reject bad estimations, a validation gate is used to restrict acceptable
measurements within a region of the observation space [33]. This region can be considered
as an ellipsoid centered around the observation prediction ẑ with an innovation covariance
S (Equation (5.2)), where the difference between the predicted measurement and the actual
measurement must be within the standard deviation of the predicted measurement. A mea-
surement will only be valid if its normalized innovation (zksensor − ẑksensor ) or error d2k is within
the user-defined threshold gate g 2 (Equation (5.18)).

S = Ht ζˆt (Ht )T + Qt (5.17)

d2k = (zksensor − ẑksensor ) ∗ S −1 ∗ (zksensor − ẑksensor )T ≤ g 2 (5.18)

65
Through the use of a validation gate, only measurements that are within 2σ of the
observation prediction will be accepted when the robot has a high confidence in its location.
As its confidence shrinks, d2k becomes smaller allowing predictions with larger variance to be
accepted. One thing to note however, is that the first prediction that is less than or equal
to g 2 will be accepted which may result in a bad estimate. This may affect the system in a
significant manner.
Using Equation (5.11), the kalman gain, K, determines how much the predicted position
measurement is augmented to reflect the sensor measurement. If the confidence of the sensor
reading is high compared to the confidence in the predicted measurement, then the position is
highly affected; however, if the confidence of the sensor is low, the position is only augmented
a little.
Figure 5.1 provides a graphical example that demonstrates the effects of this process.
Initially, the robot is located at position 1 in the lower left corner. After some time, the robot
travels to position 2 along the dotted line, believing that it has traveled along the solid line.
In this position, the confidence, ζ̂, of the estimated position is still high (Equation (5.10))
which results in a smaller region of acceptance (green ellipsoid). Due to this high confidence,
the position produced from the sensor (Equation (5.16)) is rejected by the filter as it does
not fall within the estimated position ellipsoid. As the robot continues to travel to position 3
(given no previous measurement updates), the confidence in its estimated position decreases,
which produces a larger ellipsoid of acceptance. The position provided from the sensor now
falls within this ellipsoid. Based on the variance of the position as computed by the WiFi
localization algorithm, the location of the robot is corrected through Equation (5.11) and
Equation (5.13) As the robot continues to position 4, the accuracy of the robot’s position
estimation increases from the correction at position 3.
The confidence in the location prediction provided by WiFi must be determined in order
to be applied to Equation (5.11) and Equation (5.13). A static variance can be calculated
to be applied in all situations; however, WiFi is known to vary. To predict the confidence

66
Object

4
3
2

Object

Figure 5.1: Extended Kalman Filter with Validation Gate Example

in the estimation, a dynamic approach is introduced. In an actual system, without knowing


the actual locations, it is impossible to know the position error of the prediction/estimation.
To address this issue, we try to estimate the position error without knowing the ground
truths. Specifically, we first choose a set of known locations with ground truths available,
we then run WiFi localization method to get the estimated locations. The actual position
errors can be computed for these specified locations and we can derive an average position
error, say E. Next, we compute the average RSSI distance of the k-closest neighbor locations
(since estimated position is derived from k-closest neighbor points). For each location, the
RSSI distance is computed for each AP in the visible AP set in either offline or online stage,
and then average RSSI distance is derived. This is done for each location in the fingerprint
database constructed offline. We then rank these locations in a non-decreasing order of the
average RSSI distance. The top k results are considered the k−closest neighbor points. We

67
then add the average RSSI distance of all these k points and divide it by k to derive the
average RSSI distance out of these neighbors, say R. With R and E available, we can derive
the relationship between the average RSSI distance and the position error. We use the term
“scaling factor” to describe this. The scaling factor is the ratio of the average total distance
in Euclidean space of the k-closest neighbors over the average position error. All of these
are done in advance.
During online stage, when fusing WiFi location method into EKF, the average of the
k-closest neighbors RSSI distance is then multiplied by this scaling factor to determine the
estimated position error. This value is used to determine the approximate upper bound of
the estimated position error that determines which confidence value is given to the prediction
by the validation gate. We consider this to be an upper bound as we fit the scaling factor
conservatively, meaning that the majority of ground-truth position errors fall below the
estimated position error. Now that we can differentiate between a high confidence and
a low confidence estimation, we need to know what confidence values to apply to each
category. The low confidence value was determined empirically by calculating the variance
of all estimated position vs ground-truth errors during an offline phase. The high confidence
value uses the subset of these errors by only considering position estimations that fall within
one standard deviation of the full data set. The variance of this subset is then used as the
high confidence value.

5.4 Performance Evaluation

WiFi localization was performed in an academic setting in Abu Dhabi at the Petroleum
Institute. The following sections explain the experimental setup and results.

5.4.1 Experimental Setup

The existing network setup at the Petroleum Institute is very dense. At any location, 5
to 37 wireless transmitters can be seen. Some of these devices are not APs deployed by PI,
for instance, they are printers or gaming consoles. To obtain a more stable fingerprint, only

68
APs that belong to the PI network are considered. WiFi signal propagation is known to
vary. From our experiments, we noticed that the presence of an AP in a fingerprint became
very unreliable when the RSSI from the AP was below -70 dbm, which we have named the
“No reading value”. To overcome this, a fingerprint only consists of the surrounding APs
whose RSSI is better than the no reading value. In other words, of this set, only APs that
have a RSSI stronger than -70 dbm are considered. This limits the pool of available APs to
less than 25 at any one location.
We evaluate our approach on the third floor of the Petroleum Institute’s Ruwais building
(Figure 5.2). Ruwais building is a multifloor academic building comprised of sheetrock and
glass walls. The robot traversed the hallways (12m x 46m) in the clockwise direction.

5.4.2 Experimental Results

The variance in RSSI of our environment was determined by taking multiple readings
over time at a given location. 30 samples were taken once every five minutes over one hour.
18 APs were available at the location throughout the test. Figure 5.3(a) shows the number
of times the AP appears in one of the fingerprint readings. The average RSSI with a 95%
confidence interval can be seen in Figure 5.3(b). The overall average number of appearances
is only 204 out of 390 for all APs seen, while the average variance is 36.74 dbm, and the
average standard deviation is 5.12 dbm2 . This test was performed on a Dell PC using a
Intel(R) Centrino(R) Advanced-N 6230 wireless adapter.
WiFi Localization
Remote control was initially used to validate WiFi localization. 10 locations at a 15m
spacing as seen in Figure 5.2, where each location is represented as a numbered square.
These locations are used to determine the average position error, the standard deviation,
and the variance of WiFi localization. This test was repeated 7 times and was performed
over two days. Figure 5.4 shows the resulting position error for each location across 7 cycles.
We achieved an average accuracy of 2.30 m across 7 loops (cycles) through remote control of
the robot with a standard deviation of 2.53m, and a variance of 6.41m2 . Due to a mismatch

69
5

4 6

3 7

2 8

Y1 10 9
X

Figure 5.2: Floorplan for building 3, second floor at the Petroleum Institute

in fingerprinting, some locations (e.g., Location 3), have a high position error. We found
that this error is due to the fact that locations 2, 3, 7, and 8 are all located in an open
area surrounded by glass. This results in fingerprints containing the same APs, which affects
the results of matching by including fingerprints across the hall as part of the k-closest

70
Number of AP Appearances -40
Average RSSI w/ 95% Confidence Interval
400
(Max 360)
-45

350
-50

300
-55

Average RSSI (dbm)


Appearance Count (#)

250 -60

200 -65

150 -70

-75
100

-80
50

-85
0
01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19
AP

AP

AP

AP

AP

AP

AP

AP

AP

AP

AP

AP

AP

AP

AP

AP

AP

AP

AP -90

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19
AP Number

AP

AP

AP

AP

AP

AP

AP

AP

AP

AP

AP

AP

AP

AP

AP

AP

AP

AP

AP
AP Number

(a) Appearance count for each AP (b) Average RSSI with a 95% confidence interval

Figure 5.3: WiFi APs for one location

neighbors. There was also a physical change in environment during testing, i.e.: cabinets
from classrooms were moved into the hallway in between the offline and online phases, in
between locations 8 and 9. This effect enhanced the wave guide at location 9, resulting in
high precision.

Position Error vs Location


Indoor Environment
14
Cycle 1
Cycle 2
Cycle 3
12 Cycle 4
Cycle 5
Cycle 6
Cycle 7
10
Position Error (m)

0
1 2 3 4 5 6 7 8 9 10
Location Number

Figure 5.4: Position estimation error using WiFi fingerprinting methods across 7 cycles

71
Variance of position error is predicted by the system while determining the k-closest
neighbors. Table 5.2 shows the average, standard deviation, and variance of different sets
of the estimated position. If the entire set is considered (no constraints), WiFi achieved a
mean position error of 2.30m with a standard deviation of 2.53m. If only the values that
have an estimated position variance less than 2 m2 are considered, we were able to achieve
an average position error of 1.50m with a standard deviation of 1.18m. This constraint was
determined empirically to produce a subset where the the max estimated position error of
the subset is within one standard deviation of the entire set. This is used when integrating
with EKF.

Table 5.2: WiFi Mean Position Errors

Average Standard Deviation Variance


All Values 2.30 2.53 6.41
Estimated Variance < 2 m2 1.60 1.18 1.39

Hybrid Localization through Remote Control


Localization was first tuned using remote control. Predefined locations were marked in the
area designating ground truths with a 1.5m spacing. The size of the Segway RMP440 mobile
platform is 0.8 x 1.2m. The robot was then driven through the predefined path, where the
operator instructed the robot to record its estimated location by pressing a button when the
robot was over each marker. This data was post processed to determine the value of the
validation gate (g 2 =0.1).
To determine the variance of WiFi signal propagation in our environment, 7 readings from
each of the ten locations with a 15 m spacing were taken. The maximum position error in
WiFi fingerprinting was calculated for all 70 estimations against known ground truths, where
the variance of the actual position error was used to determine the lower confidence value
(ρ2wlc = 13.3 m2 ) with an average position estimation error 2.3m and a standard deviation ρ
= 2.53 m.

72
The actual position error was then compared to the estimated position error variance.
It was found that if we consider estimated position error variances of less than 2m only,
the maximum actual position error was within one standard deviation (ρ=2.53 m) of the
dataset. If we consider the actual position error variances that are less than 2.53 m, then
the average actual position error drops to 1.49 m with a standard deviation of 1.18 m and
a variance of 1.39 m2 . This variance (ρ2whc = 1.39 m2 ) was then used to determine the high
confidence value of WiFi localization. The scaling factor was determined empirically to be
0.07799.
Figure 5.5 shows the localization estimation information produced from the EKF, where
the red represents the data from a 2D laser scanner, the dotted black line represents the
actual path traversed, and the blue represents the estimated location of the robot. As shown
in these figures, WiFi directs the robot back toward the actual path. Since the heading of
the robot is not updated by WiFi, the system continues to believe that it is traversing in the
same orientation (Figure 5.5(b)). It can be seen in the top right corner of Figure 5.5(a) where
the WiFi localization actually pulls the robot off of the correct estimation. This is due to a
high validation gate value (g=0.5). Table 5.3 shows the acceptance rate for the different gate
values. Since WiFi is supposed to be used as a supplementary system to provide localization
between fiducial markers, a low acceptance rate is adequate.

Table 5.3: Gate Values for Hybrid Localization

Sensors Gate Value Acceptance Rate (%) Mean Position Error(m)


Dead reckoning+WiFi 0.5 12 1.02
Dead reckoning+WiFi 0.1 4 1.60
Dead reckoning+WiFi 0.05 3 2.89
Dead reckoning+WiFi 0.02 2 0.73
Dead reckoning+WiFi+FMS 0.1 3 0.43

Table 5.4 shows the results of fusing different sets of localization sensors at 85 known
locations. By fusing dead reckoning with WiFi, we were able to achieve a mean position
error of 0.73 m using a WiFi validation gate value of 0.02. Accuracy was further increased

73
(a) Validation Gate Value=0.5 (b) Validation Gate Value=0.1

(c) Validation Gate Value=0.05 (d) Validation Gate Value=0.02

Figure 5.5: Map Estimation with Dead reckoning + WiFi

by fusing dead reckoning, WiFi, and the fiducial marker system to achieve a position error
of 0.43 m using a WiFi validation gate value of 0.1 for WiFi. We do not have results for
FMS only, as the fiducial markers are placed sparsely throughout the environment.
Hybrid Localization through Autonomous Control
Autonomous control testing was implemented in the same location as Section 5.4.1. A
predefined rectangular path was defined (12m x 46m) for the robot to traverse in a clockwise
orientation.

74
Table 5.4: Indoor Localization Results

Localization DeadReckoning DeadReckoning DeadReckoning


WiFi Only
M ethod Only +W iF i +W iF i + F M S
Mean Error (m) 1.60 2.88 0.73 0.43

In order to know when/where the robot recorded its estimated location with autonomous
control, a sound was produced to designate where a marker should be placed. This sound
occurred at a predefined time interval of 5s. Once the robot completed the circuit, the loca-
tion of each marker was recorded. The Euclidean distance between the known ground truth
and the estimated position of the robot was used to determine the accuracy of localization.
Indoor localization was also tested with autonomous control. A predefined rectangular
path (12m x 46m) was given to the robot to track while avoiding obstacles. Table 5.5 shows
the resulting average error, standard deviation, and variance of the estimated position while
autonomously traversing through the path. Figure 5.6 depicts the localization estimation
for dead reckoning+WiFI+FMS, where the green dots represent the locations of fiducial
markers and the dotted red lines represent glass walls. Figure 5.7(a) shows the designated
ground truths for Figure 5.7(b), which shows the Euclidean position error throughout the
environment. Overall, the average estimated position error is 0.65m.

Figure 5.6: Map Estimation with Dead Reckoning+WiFI+FMS:Validation Gate Value=0.1

75
Table 5.5: Autonomous indoor localization results

Average (m) Standard Deviation (m2 ) Variance(m)


0.65 0.73 0.54

Observed Euclidean Position Error from Ground Truth


4

3.5

Euclidean Position Error (meter)


2.5

1.5

0.5

0
0 10 20 30 40 50 60 70 80 90 100
Location Number

Student Version of MATLAB Student Version of MATLAB

(a) Marked Locations on Map (b) Position Error at Marked Locations

Figure 5.7: Autonomous Navigation Position Error

5.5 Chapter Summary

In this chapter we discuss how to perform localization using a WiFi network. We im-
plement a WiFi fingerprinting based localization method and evaluated it in real-world sce-
narios. We also fused it with other location methods such as dead reckoning and FMS into
EKF and tested the hybrid approach in the same setting. Results from remote control and
autonomous control of the robot are presented. The system is capable of obtaining a posi-
tion error of 0.73m by fusing dead reckoning+WiFi, and an average position error of 0.43m
by fusing dead reckoning+WiFi+FMS during RC control. The system was then deployed
autonomously (dead reckoning+WiFi+FMS), resulting in an average position error of 0.65m.
WiFi localization is shown to be a good substitute for GPS when being fused with dead
reckoning. It is capable of maintaining a low position error between the fiducial markers.
WiFi also helps keep location estimation close to the actual path by updating the X,Y

76
position of the robot when bad headings are calculated through the FMS.

77
CHAPTER 6
CONCLUSION

Communication and localization are core concepts for an autonomous mobile robot. At
any point in the work space, an autonomous mobile robotic system must not only be able
to communicate with the operator control station, but also know within some degree of
confidence what its current location is. In this work, we defined the types of communication
required for an autonomous mobile robot to be deployed, which included control, vision,
and data streams. We also studied WiFi signal propagation characteristics in terms of the
relationship between RSSI, bandwidth, link quality, and distance. This information was then
applied to both AP placement as well as WiFi localization.
Minimal configurations for AP placement are explored for both single and k-coverage.
Using the minimum average distance between uncovered nodes, we were able to obtain single-
coverage of a hallway in the 3rd floor of CSM’s Brown Building using only 4 APs. We then
considered configurations for k-coverage that spread out AP placement that resulted in using
12 APs to 3-cover the hallway. Different channel allocation heuristics were then applied to
these results, where 6 channels were required to avoid interference between the 12 APs.
A matching algorithm through WiFi fingerprinting was presented that was used for lo-
calization by the robotic mobile system. We were able to achieve a position estimation
accuracy of 2.3 m. Fusing WiFi with dead reckoning and then a fiducial marker system
further improved the accuracy in position error to 0.73 m and 0.43 m, respectively.
Future Work. In this work we were able to localize to a sub-meter resolution by
combining dead reckoning, WiFi, and a fiducial marker system; however, all of this work was
performed in an indoor environment. Through the use of the work described in this thesis,
it would be possible to expand it to an outdoor environment. The system would then be
able to add GPS and compass, among other devices, into the Kalman filter to determine a

78
more accurate localization solution.
Much work has to be done to the robotic platform in order to gain entrance to an oil
and gas refinery; however, that work is outside the scope of this thesis. Once a platform
is available that meets these restrictions, the system could be deployed in an actual oil
and gas refinery, which is an outdoor environment, but not a typical one. For instance,
due to the tall steel infrastructures, GPS will not always work in a refinery. This unique
environment will have a major impact on how communication works, hence we expect an
empirical study similar to Chapter 3 will be required to understand the relationship between
transmission power, RSSI, bandwidth, link quality, and distance. An updated log-distance
path-loss model may be required for both the AP placement and localization algorithms.

79
REFERENCES CITED

[1] Birgit Graf and Kai Pfeiffer. Mobile robotics for offshore automation. Proceedings of
the EURON/IARP International Workshop on Robotics for Risky Interventions and
Surveillance of the Environment, Benicassim, Spain, 2008.

[2] Adewole Ayoade. Navigation and Control of a Mobile Manipulator for Inspection.
Master’s thesis, Colorado School of Mines, 2014.

[3] Mohammad Reza Akhondi, Alex Talevski, Simon Carlsen, and Stig Petersen. Applica-
tions of wireless sensor networks in the oil, gas and resources industries. In Proceedings
of 2010 24th International Conference on Advanced Information Networking and Ap-
plications (AINA), 2010.

[4] Matthias Bengel, Kai Pfeiffer, Birgit Graf, Alexander Bubeck, and Alexander Verl.
Mobile robots for offshore inspection and manipulation. In Proceedings of IEEE/RSJ
International Conference on Intelligent Robots and Systems, 2009.

[5] Felix Duvallet and AD Tews. WiFi position estimation in industrial environments using
Gaussian processes. Proceedings of Intelligent Robots and Systems, 2008.

[6] David Plets, Wout Joseph, Kris Vanhecke, Emmeric Tanghe, and Luc Martens. Coverage
prediction and optimization algorithms for indoor environments. EURASIP Journal on
Wireless Communications and Networking, 2012(1), 2012.

[7] Steven Fortune, David M Gay, F Brian, K Kernighun, Reinaldo A Vulenzuelu, and
Margaret H Wright. Wise design of indoor wireless systems. Proceedings of IEEE
Computational Science Engineering Magazine, 2(1), 1995.

[8] Jean-marie Gorce. On predicting in-building wifi coverage with a fast discrete approach.
International Journal of Mobile Network Design and Innovation 2.1, 2(1), 2007.

[9] Mohamed Younis and Kemal Akkaya. Strategies and techniques for node placement in
wireless sensor networks: A survey. Journal of Ad Hoc Networks, 6(4), June 2008.

[10] Zongheng Zhou, Samir Das, and Himanshu Gupta. Connected k-coverage problem in
sensor networks. In Proceedings of the 13th International Conference on Computer
Communications and Networks, 2004.

80
[11] Himanshu Gupta, Zongheng Zhou, Samir R Das, and Quinyi Gu. Connected sensor
cover: self-organization of sensor networks for efficient query execution. Proceedings of
IEEE/ACM Transactions on Networking, 14(1), 2006.

[12] Mohamed Hefeeda and Majid Bagheri. Efficient k-coverage algorithms for wireless sensor
networks. Technical report, Citeseer, 2006.

[13] Bang Wang. Coverage problems in sensor networks. Proceedings of ACM Computing
Surveys, 43(4), October 2011.

[14] S Hochbaum. Approximation Schemes for Covering and Packing Problems in Image
Processing and VLSI. Journal of the ACM, 32(I), 1985.

[15] Jung-Eun Kim, Man-Ki Yoon, Junghee Han, and Chang-Gun Lee. Sensor placement for
3-coverage with minimum separation requirements. In Proceedings of IEEE’s Conference
on Distributed Computing in Sensor Systems. Springer, 2008.

[16] Jim Kurose and Keith Ross. Computer Networking: a Top-Down Approach. Addison-
Wesley, 2009.

[17] Enrico Malaguti and Paolo Toth. A survey on vertex coloring problems. Proceedings on
International Transactions in Operational Research, 17(1), January 2010.

[18] Wei Wang and Xin Liu. List-coloring based channel allocation for open-spectrum wire-
less networks. Proceedings of IEEE 62nd Vehicular Technology Conference, 1, 2005.

[19] Arunesh Mishra, Suman Banerjee, and William Arbaugh. Weighted coloring based
channel assignment for WLANs. Proceedings of ACM SIGMOBILE Mobile Computing
and Communications Review, 9(3), July 2005.

[20] Haitao Zheng and Chunyi Peng. Collaboration and fairness in opportunistic spectrum
access. Proceedings of IEEE International Conference on Communications, 5, 2005.

[21] Anh Hoang and Ying-chang Liang. Maximizing Spectrum Utilization of Cognitive Radio
Networks Using Channel Allocation and Power Control. Proceedings of IEEE Vehicular
Technology Conference, September 2006.

[22] Paramvir Bahl and VN Padmanabhan. RADAR: An in-building RF-based user loca-
tion and tracking system. Proceedings of 19th Annual Joint Conference of the IEEE
Computer and Communications Societies (INFOCOM), 2000.

[23] Hui Liu, Student Member, Houshang Darabi, Pat Banerjee, and Jing Liu. Survey of
Wireless Indoor Positioning Techniques and Systems. IEEE Transactions on Systems,
Man, and Cybernetics, Part C: Applications and Reviews, 37(6), 2007.

81
[24] Fernando Seco, Antonio R Jim, Carlos Prieto, Javier Roa, and Katerina Koutsou. A
survey Mathematical Methods for Localization. Journal of Intelligent Signal Processing,
2009.

[25] Luis Rodero, Universidad Rey, and Juan Carlos. Robot localization using WiFi signal
without intensity map Probabilistic localization. Proceedings of the V Workshop Agentes
Fsicos (WAF), (March), 2004.

[26] Frédéric Evennou and François Marx. Advanced integration of wifi and inertial naviga-
tion systems for indoor mobile positioning. Eurasip journal on applied signal processing,
2006, 2006.

[27] Eladio Martin, O Vinyals, Gerald Friedland, and R Bajcsy. Precise indoor localization
using smart phones. Proceedings of the international conference on Multimedia, 2010.

[28] Souvik Sen, Jeongkeun Lee, Kyu-han Kim, and Paul Congdon. Avoiding Multipath to
Revive Inbuilding WiFi Localization Categories and Subject Descriptors. Proceedings
of the 11th annual ACM international conference on Mobile systems, applications, and
services, 2013.

[29] Y. Chen, Y. Chawathe, A. LaMarca, and J. Krumm. Accuracy characterization for


metropolitan-scale wi-fi localization. Proceedings of the 3rd international conference on
Mobile systems, applications, and services, 2005.

[30] Isaac Amundson and XD Koutsoukos. A survey on localization for mobile wireless
sensor networks. Mobile Entity Localization and Tracking in GPS-less Environnments,
2009.

[31] Azzedine Boukerche, Horacio a.B.F. Oliveira, Eduardo F. Nakamura, and Antonio a.F.
Loureiro. Vehicular Ad Hoc Networks: A New Challenge for Localization-Based Sys-
tems. Computer Communications, 31(12), July 2008.

[32] Sebastian Thrun, Wolfram Burgard, and Dieter Fox. Probabilistic Robotics (Intelligent
Robotics and Autonomous Agents). The MIT Press, 2005. ISBN 0262201623.

[33] Hugh Durrant-Whyte and Thomas C Henderson. Multisensor data fusion. Springer
handbook of robotics, 2008.

82
APPENDIX A - AUTOMATION OF MAP GENERATION

In order for an autonomous mobile system to navigate between defined locations, the
system must be aware of the environment within which it operates. A map can be generated
in multiple ways; however, this work implements two methods.

• A list of objects: This approach requires the user to generate a list of objects which
includes their X and Y positions relative to a known origin along with their width and
height.

• A matrix of object locations: This approach automates the generation of a map by


converting a SolidWorks file into an N x M matrix.

A.1 Methodology

The automation of the generation of a map requires two steps.

1. Access to a map of the environment in SolidWorks which is typically available via


blueprints. SolidWorks has the capability of exporting their files into the Standard
Template Library (STL) extension. This file is comprised of numerous triangles that
construct the given environment.

2. Once an STL file of the environment has been generated, the 3-dimensional triangles
within are overlaid on a 2-dimensional matrix. To reduce the number of triangles
considered while overlaying, only triangles who lie on the 0-plane are considered. An
assumption is made about the nature of an oil and gas environment: all corridors meet
at a 90o angle, meaning that when we insert a triangle, we consider the triangle to
be a square. All grid-points occupied by each square during the iteration through the
0-plane triangles are marked as an object grid-point. When all triangles have been
considered, the resulting map is a binary representation of the environment, where a
0 indicates free space and a 1 indicates the presence of an object.

83
A.2 Experimental Results

The program is implemented in C# using Microsoft Visual Studio 2010. The 3rd floor of
the Ruwais building at the Petroleum Institute in Abu Dhabi (Figure A.1), UAE, was used
as the model for map generation. The algorithm takes the STL file consisted of 252 triangles
and inserts the 60 triangles that exist along the 0-plane. The resulting binary map is shown
in Figure A.2.

84
Figure A.1: PI’s Ruwias Building 3rd Floor

85
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1
1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1
1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1
1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1
1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1
1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1
1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Figure A.2: Binary Map Representing PI’s Ruwias Building 3rd Floor

86
APPENDIX B - WIFI LOCALIZATION

The algorithm to create and match fingerprints was written in C#. It makes use of the
Managed WiFi API, which is a .Net wrapper for the Native WiFi API. Native WiFi is a
network programming interface that contains functions, structures, and enumerations that
support wireless network connectivity and wireless profile management1 . In other words, the
Managed WiFi API gives programmers access to your WLAN interface. Through this, you
are able to scan the surrounding network using your WLAN interface. With the WlanB-
SSEntry method, you are able to retrieve not only the BSSID (MAC address), but also the
RSSI of that AP. This allows for a programmatic approach to be used in order to build each
fingerprint (Zi ).

1
http://msdn.microsoft.com/en-us/library/ms705969.aspx

87

You might also like