Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
The Pennsylvania State University
The Graduate School
Department of Computer Science and Engineering
DATA COLLECTION USING RFID AND MOBILE READERS
A Thesis in
Computer Science and Engineering
by
Michael Lin
c© 2008 Michael Lin
Submitted in Partial Fulfillmentof the Requirements
for the Degree of
Master of Science
May 2008
The thesis of Michael Lin was reviewed and approved* by the following.
Thomas F. La PortaDistinguished Professor of Computer Science and EngineeringThesis Adviser
Guohong CaoAssociate Professor of Computer Science and Engineering
Raj AcharyaProfessor of Computer Science and EngineeringHead of the Department of Computer Science and Engineering
*Signatures are on file in the Graduate School.
iii
Abstract
RFID tags are widely used to track inventory as it enters and exits warehouses. However,
the limitations of passive RFID technology prevents its use in real-time inventory management.
In this thesis, we present two novel methods of combining RFID technology with mobile robots
to extend RFID’s use in real-time inventory management. Our first method uses both a mesh
network of active RFID tags and a single mobile reader to enable real-time querying of goods
in a warehouse. The combination of the mesh network and mobile reader gives the system
the flexibility to find data paths that efficiently distribute energy consumption, reducing power
consumption by up to 80% while maintaining query response times of under 40 seconds. We also
present a system of multiple mobile readers connected via a base station or ad-hoc network in a
passive RFID tag-equipped warehouse. We find that our flexible grid robot movement algorithm
performed within 5% of the optimal naive algorithm in the base station case, and outperformed
all other algorithms by up to 80% in the ad-hoc case. We conclude that using both RFID
and mobile readers provides a superb combination of capabilities supporting real-time inventory
management.
iv
Table of Contents
List of Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi
List of Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
Chapter 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1 RFID Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Mobile Readers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Chapter 2. Single Reader Data Gathering in Active RFID Networks . . . . . . . . . . . . 62.1 Backbone Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.1 Index Node Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.1.2 Energy Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.1.3 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.1.4 Indexing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2 Backbone Network Formation . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.2.1 Backbone Network Formation Algorithm . . . . . . . . . . . . . . . . . 132.2.2 Updating the Backbone Network . . . . . . . . . . . . . . . . . . . . . 17
2.3 Query Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.3.1 Query Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.3.2 Query Time Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . 182.3.3 Resolving Simple Queries . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3.3.1 Determining the Query Resolution Time . . . . . . . . . . . 202.3.3.2 Protocol Outline . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3.4 Resolving Complex Queries . . . . . . . . . . . . . . . . . . . . . . . . 222.4 Implementation and Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . 232.5 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Chapter 3. Multiple Reader Data Gathering with Passive RFID Tags . . . . . . . . . . . 313.1 Mathematical Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.1.1 Expected Number of Hops in an Active Tag Network . . . . . . . . . . 333.1.2 Expected Number of Transmissions in an Active Tag Network . . . . . 333.1.3 Expected Lifetime of Active Tag Network . . . . . . . . . . . . . . . . 343.1.4 Cost Analysis for Active Tag Network . . . . . . . . . . . . . . . . . . 343.1.5 Cost Analysis for Passive Tag Network . . . . . . . . . . . . . . . . . . 35
3.2 Algorithms for Fully Connected Multiple Readers . . . . . . . . . . . . . . . . 353.2.1 Locating Data Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.2.2 Data Collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.2.2.1 Areas of Responsibility . . . . . . . . . . . . . . . . . . . . . 363.2.2.2 Rest Points . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.2.3 Fully Connected Protocol . . . . . . . . . . . . . . . . . . . . . . . . . 383.2.4 Fully Connected Protocol Variations . . . . . . . . . . . . . . . . . . . 39
3.3 Algorithms for Multi-hop Connected Multiple Readers . . . . . . . . . . . . . 403.3.1 Multi-hop Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423.3.2 Multi-hop Protocol Variations . . . . . . . . . . . . . . . . . . . . . . . 43
3.4 Implementation and Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . 43
v
3.4.1 Simulation Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443.4.1.1 Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.5 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463.5.1 Fully Connected Results . . . . . . . . . . . . . . . . . . . . . . . . . . 463.5.2 Multi-hop Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.6 Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483.6.1 Secondary Distance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483.6.2 Results Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Chapter 4. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
vi
List of Tables
2.1 Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2 Index Node Selection Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.3 Indexing Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.4 Backbone Network Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1 Simulation parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443.2 Aggregate results from skew and no skew simulations with 16 mobile readers
moving at 3 feet per second. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
vii
List of Figures
2.1 Index Selection Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.2 Node identity dissemination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.3 Ring formation example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.4 Hybrid and movement-only success rate . . . . . . . . . . . . . . . . . . . . . . . 272.5 Total distance travelled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282.6 Movement of the mobile reader in the hybrid and pure movement schemes. . . . 292.7 Power consumption per node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.1 Query forwarding in multi-hop operation . . . . . . . . . . . . . . . . . . . . . . . 523.2 Average time per query v. mobile reader speed with four fully connected readers 533.3 Average time per query v. mobile reader speed with 16 fully connected readers . 543.4 Distance v. mobile reader speed with four fully connected readers . . . . . . . . . 553.5 Distance v. mobile reader speed with 16 fully connected readers . . . . . . . . . . 563.6 Time v. mobile reader speed with 16 multi-hop connected readers . . . . . . . . 573.7 Distance v. mobile reader speed with 16 multi-hop connected readers . . . . . . . 583.8 Secondary distance v. mobile reader speed with 16 multi-hop connected readers . 593.9 Secondary distance example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603.10 Reader positions using the naive algorithm . . . . . . . . . . . . . . . . . . . . . 613.11 Reader positions using the flexible grid algorithm . . . . . . . . . . . . . . . . . . 62
1
Chapter 1
Introduction
Radio frequency identification (RFID) tags are an ideal foundation for inventory control
systems. They are small, very low-cost, and can store more than enough information to uniquely
identify items in even the largest warehouses. However, RFID tags’ simplicity also limits their
functionality. Although they can store information, typical passive RFID tags cannot perform
calculations or actively broadcast data. Furthermore, passive RFID tags must be read from
within roughly 10 feet, making it impossible to install an RFID reader that covers an entire
warehouse.
These limitations mean that although RFID can be used to track inventory on a high
level, such as determining which warehouse an item is in, it cannot be used to determine the
exact location of the item. Current inventory control systems using RFID read items’ RFID
tags when the item enters and leaves the warehouse, but once the item is in the warehouse
the RFID tag remains unused. This system of reading RFID tags prevents real-time inventory
access. Furthermore, since items are only read when they are brought into the warehouse, their
exact current location in the warehouse cannot be known. This is especially problematic in large
warehouses, where items can often be misplaced and difficult to relocate.
Current RFID technology is also of limited use in temporary warehouses. For example, a
military may quickly set up a temporary supply depot while preparing for a battle. In a chaotic
temporary warehouse, accurate inventory control is difficult to achieve and highly valuable. How-
ever, these temporary warehouses may not have the necessary infrastructure to support current
RFID inventory control systems, preventing their use. Temporary warehouses require that an
2
inventory control system be robust enough to cope with unannounced item arrival and departure,
as well as being simple enough to be deployed in an area with poor infrastructure support.
In this thesis we present two novel methods of using RFID to extend the capabilities of
inventory control systems to include real-time inventory control and infrastructure-free inventory
control. The first method we propose takes advantage of a new type of RFID tag known as an
active RFID tag, also known as simply active tags. Active tags are similar to passive RFID tags,
but are powered and able to perform computations and communicate with other tags or readers.
We supplement our use of active tags with a mobile robot with an active tag reader, referred to
as a mobile reader. We capitalize on the strengths of both active tags and the mobile reader to
provide a robust real-time inventory system.
The second method we propose in this thesis further explores the development of the
mobile reader while eliminating the requirement for active tags. Since items in warehouses are
often tagged with passive tags already, this greatly reduces the cost of entry for our system. To
compensate for the loss of capabilities from switching from active tags to passive tags, we increase
the number and complexity of the mobile readers.
In the remainder of this chapter, we discuss passive and active RFID in detail and introduce
our mobile readers. The remainder of this thesis is organized as follows: in Chapter 2 we present
a method of using active RFID tags and a single mobile reader to achieve efficient real-time
inventory control. In Chapter 3, we present a method using passive RFID tags and multiple
mobile readers. We conclude in Chapter 4.
1.1 RFID Tags
Currently, there are two major types of RFID tags in use: passive and active. Passive
tags are widespread, while active tags have only recently been introduced. Passive RFID tags
are simple, unpowered circuits that can only be read by a powered reader. Since passive tags
can only hold a few kilobytes of information, they are commonly used as identifiers for items
3
ranging from inventory in warehouses to patients in hospitals. They can perform no calculations
or transmissions; they can only be read. Some passive tags can be rewritten while being read,
while others simply hold a unique identifier and cannot be changed. Although long-range reading
of passive RFID tags is possible in some cases, most uses of passive tags assume readers will be
within three feet of tags they are reading. Although passive tags have very limited capabilities,
their simplicity allows them to be mass-produced at a very low cost. Passive tags can be printed
in rolls of thousands for only a few cents per tag. Additionally, since passive tags are unpowered,
their lifetimes are essentially unlimited, barring destruction of the tag itself.
Unlike passive tags, active tags are powered and can perform basic processing. Active tags
can hold far more information than passive tags, in the range of hundreds of kilobytes, rather
than tens. Furthermore, they can transmit over an antenna, which allows them to be read much
more easily than passive tags, and in some cases allows them to communicate with each other.
Naturally, this complexity comes at a cost. Since active tags are powered, their lifetimes are
limited to the lifetimes of their batteries. Furthermore, individual active tags are an order of
magnitude more expensive than passive tags: typical active tags are priced in the tens of dollars,
compared to the tens of cents of passive tags. Active tags find use in similar situations as passive
tags, although their high cost limits them from being as ubiquitous as passive tags. Whereas
each item in a warehouse may be tagged with a passive tag, active tags are commonly built into
pallets or other storage containers, with an expected lifetime of five years.
The additional capabilities of active tags allow them to be used in much more complex
ways than passive tags. Their capabilities essentially mirror those of sensor motes, such as the
Crossbow MicaZ [1], which allows the large body of research developed for sensors and sensor
networks to be used to design active tag systems. In particular, much research has been done on
ad-hoc networks formed between large numbers of sensor motes, also known as mesh networks.
We leverage this existing research in mesh networks using sensors to develop mesh networks using
active tags.
4
Mesh networks’ essential functions are the same as traditional networks, but the limitations
of wireless technology and the limited resources of the motes change the dynamics of the network.
Most importantly, mesh networks are completely decentralized, which combined with the limited
resources of the nodes makes routing very difficult. Existing research has provided a number of
solutions to the routing problem, which we take of advantage of in our single reader protocol.
Although active tags provide new capabilities that allow for more robust system design,
they are still limited by battery life concerns. Battery life is critical in actual warehouse op-
erations, since there will typically be hundreds or thousands of active tags in a warehouse. It
is simply infeasible to replace batteries on such a large scale, so active tags are designed to be
disposable, with an expected battery life of up to five years. Network transmission is the most
power consuming operation an active tag can perform, so we must be extremely economical with
transmissions. This is problematic in a data querying system, where query responses can be
very large; for example, a single query could ask for the full inventory of a crate that contains
hundreds of items. We use mobile readers to ameliorate the impact of large data transfers in
active tag networks, and to enable real-time querying in passive tag networks.
1.2 Mobile Readers
We use mobile readers for two separate but related tasks in each of the systems presented
in this paper. In the active tag system we use a mobile reader to reduce the energy cost of large
data transfers by increasing the time cost. Rather than using the mesh network to transfer a
large dataset, the mobile reader will move to the data to pick it up. Since the mobile reader must
physically travel to the data, this takes more time, but it also reduces energy consumption. In
the passive tag system, there is no mesh network, so all tag reads must be done by the mobile
reader.
The concept of a mobile reader originated from the fact that warehouses often have either
autonomous or human-driven vehicles performing various tasks in the warehouse. Robots can
5
be used in certain situations to pick up or drop off goods, or forklifts can be used by humans
to move large amounts of goods. By simply attaching a small computer and an RFID reader to
such vehicles, warehouses can greatly improve their inventorying. Although we use robots in our
solution, RFID readers can also be attached to humans, for example on a belt clip.
As a prototype for our mobile reader, we used a simple two-wheeled robot design. Our
robots were designed and constructed by Tim Bolbrock, who also provided the programming
interface with the robots. Our robots have a maximum speed of less than 1 meter per second,
which is acceptable for a prototype, but not for a full working model. In our simulations we
anticipated robots with speeds of 0.5 to 5 meters per second. For comparison, a forklift in a
warehouse has a top speed of 5-10 miles per hour, or 2.2-4.5 meters per second.
6
Chapter 2
Single Reader Data Gathering in Active RFID Networks
In this chapter, we consider data gathering problems in networks of active RIFD tags
using a mobile reader. Data is collected by querying the warehouse. A query is sent to the robot
by a central server. To answer a query the robot can either move to the responsible active tag
and query it, or just query the nearest active tag and use the overlay network to get the answer.
The first method saves energy on the active tags, because little communication happens over the
network, but is slow, since the robot movement is much slower than communicating the data
wirelessly. The second approach is faster but requires the active tags to consume more energy.
An alternative method is to move the robot to a mid-point and then send that data to that point.
The different parameters that can be helpful when deciding on how to collect the required data
include the remaining energy in a tag, the distance to source of data, size of data transferred and
the urgency of the query.
We present a protocol that allows real-time querying of a RFID tag-equipped warehouse
by leveraging the fact that active RFID tags have more resources and wireless communication
capabilities. We use an indexing scheme to simplify the querying process and make it more energy
efficient. Index nodes collect data about the items stored in nearby nodes. All the index nodes
then form a secondary backbone network that is used to locate nodes responsible for queried
items. There are three major phases to our protocol:
1. Backbone Setup: selecting index nodes and collecting indexing data from other nodes
2. Backbone Network Formation: building the backbone network that consists of all index
nodes.
7
R Current location of the mobile readerD Data source (where query answer is stored)S Size of query answer (in packets)B Bandwidth (in packets/sec) n- fixed for all nodesIDi ID for node iMi Time to send answer from d to node iCi Time to move the robot from s to ili Location of node idi Number of hops from d to iTconstraint Query time constraintTquery(i) Query resolution time through node iTlookup Time to lookup the data source using index backboneTresponse Time to get response from data sourceTdecision Time to send robot’s decision back to d
Table 2.1. Notation
3. Query Resolution: resolving different types of queries using the backbone.
We explain each phase in detail below, beginning with the backbone setup and formation
in Sections 2.1 and 2.2. Then we present our query resolution algorithm in Section 2.3. We discuss
our implementation and simulation in Section 2.4, and present our results in Section 2.5. We
conclude in Section 2.6. A list of notation used throughout this chapter is included in Table 2.1
2.1 Backbone Setup
In this section we discuss how to set up the backbone network. To do this, we first need
to select an index node. A leader election algorithm is used to select index nodes from within
the network. After selecting index nodes, index data must be gathered from other nodes. The
algorithms for both index node selection and data indexing are explained in detail below.
2.1.1 Index Node Selection
This algorithm is run on the active tags to select index nodes and divide the network into
cells. The size of the cells is flexible and depends on δ. The value of δ can range from 1 to n. The
value of δ represents the maximum number of hops between nodes in a cell. The algorithm is
8
based on a leader election algorithm [2], with modifications to optimize for index node selection
rather than leader election. The selection criterion is a function, fi, of available memory, m,
residual energy, e, and distance to the current index node, d. Since we are selecting index nodes,
the amount of available memory and energy determine the usefulness of a node as an index node.
New index nodes will replicate information from old index nodes. Therefore, minimizing the
distance between the new and old index nodes will reduce the overhead of transferring old index
information. Energy consumption will be discussed in more detail below.
Leader election algorithms are based on spanning tree algorithms [3]. The basic concept is
to use directed flooding to create a spanning tree rooted at a single node—the leader. An arbitrary
node begins an election by broadcasting an election message. Nodes that receive this message
participate in the election by forwarding the message to their neighbors. As the tree spreads,
parent-child relationships are established between nodes and the nodes from which they received
the election message. Every node keeps track of its parent and children, as they are important in
the later stages of the algorithm. When every node in the network is participating in the election,
the tree is complete, with nodes on the edge of the network being leaf nodes. The tree then shrinks
back toward the leader along the same paths it took as it grew. To accomplish this, leaf nodes
send an election acknowledgment (not to be confused with the single message acknowledgment
sent upon receipt of the election message) to their parent nodes, who will send their election
acknowledgment to their parent nodes only when they have received election acknowledgments
from all of their children. Eventually all of the election acknowledgments are aggregated as they
go up the tree and arrive at the node that started the election. This node completes the election
by sending a message announcing that it is the leader over the tree that now exists in the network.
In a typical leader election algorithm, an arbitrary node starts the election. However,
since our algorithm has a strictly defined function, fi, for the selection of appropriate leaders, we
can optimize the beginning stages of an election by increasing the likelihood of a highly weighted
node starting an election.
9
We introduce a sliding probability, p, that is proportional to each node’s weight as de-
termined by fi. This probability will then be used to determine whether or not a node will
start an election at each tick of a timer. For example, if we define p as fi
fMAX, a node with
maximal weight will start the election with probability 1. However, if a node’s weight is 50% of
the maximum, it will start an election with probability 0.5 at each tick of the timer. We can
optimize the probability method by choosing a probability function that begins aggressively and
then sharply reduces the probability over time, which increases the number of viable nodes at
the beginning of network formation.
Our algorithm further differs from standard leader election algorithms by selecting multiple
index nodes instead of a single leader node. We want index nodes to be roughly uniformly spread
across the physical area of the network, but an in-network algorithm will generally not have any
information about the physical layout of the network. To overcome this problem, we exploit the
fact that nodes know their location. If two nodes, A and B, come across each other in the course
of the algorithm, A will join the tree of the B if and only if B is less than δ distance away.
With these additions, a leader election will run as follows: a node with a high fi will
start an election with probability pi on each clock tick. When a node starts an election, it
broadcasts a message to its neighbors, which participate in the election by forwarding the message
to their downstream neighbors. This forwarding continues without acknowledgment until a node
times out or all nodes within δ of the originating node are participating in the election. This
determines the cell’s boundaries. Once the boundary has been defined, the edge nodes send an
acknowledgment upstream. Acknowledgments are aggregated and sent to the originating node,
which then sends a message announcing the winner of the election. Table 2.2 summarizes the
messages used in this protocol.
10
1. A → ∗ :< Election, A, fA, h > The initial election message. This issent by nodes with high enough fi, andforwarded by downstream nodes. It in-cludes the ID of the initiator, the valueof f and the depth (h).
2. B → A :< ElectionAck, A, fA, C, fC > Election acknowledgment. This alsoincludes the the ID of that node withthe second highest fi (C) and its value(fC).
3. A → ∗ :< Announcement,A, C > Once all acknowledgments are re-ceived, the initiating node sends thisannouncement of the index node (A).This also declares a secondary indexnode (C), which is the node with thesecond highest fi value.
Table 2.2. Index Node Selection Messages
2.1.2 Energy Requirements
There are certain energy consumption properties we would like to maintain for nodes in
the warehouse. Since warehouse crates will store items for a long, possibly pre-determined period
of time, we want to spread the lifetime of the node over the lifetime of the crate. To ensure that
the node will retain enough energy to be viable over its entire lifetime, we introduce a number
of energy-related parameters. Since nodes are associated with a single crate, we use the terms
interchangeably here. Crate lifetime, Li is pre-determined for a particular crate, although it can
be changed once a crate is deployed. Crate age, αi is the time that has elapsed since a crate has
been deployed. These parameters are used to determine the energy threshold. Energy threshold,
σi, is defined as follows: if the remaining energy of node i is less than the threshold σi then the
node will operate in energy energy saving mode, otherwise it operates in normal mode.
To increase the usefulness of a node, σi should be a function of Li and it should also decay
over time. The latter will help in making the energy consumption more uniform over a crate’s
lifetime and thus extend the lifetime of the node. In other words, σi = f(L,αi).
The energy threshold maintains enough energy in the index nodes to sustain the backbone
network and index data. If the the remaining energy of an index node i falls below σi then node
11
i will notify the secondary index node from the election to have it take over as the new index
node.
2.1.3 Example
B5
D7
A3
C2
1. B5
D7
A3
C2
2.
B5
D7
A3
C2
3. B5
D7
A3
C2
4.
Fig. 2.1. Index Selection Example
For the example below, refer to Figure 2.1.
1. D → ∗ :< Election, D, fD = 7, h = 0 > – Node D broadcasts an election message becauseits f is above the threshold.
2. B → ∗, C → ∗ :< Election,D, fD = 7, h = 1 > – Nodes B and C forward the electionmessage.
3. A → B :< ElectionAck, D, fd = 7, A, fA = 3 > – Node A acknowledges the election afterit times out from forwarding the election message. It includes its ID and value of f as apossible secondary index.
4. B → D :< ElectionAck, D, fD = 7, B, fB = 5 > – Node B acknowledges the election afterit receives the acknowledgment from node A. It includes its own ID as secondary indexbecause fB is greater than fA.
5. D → ∗ :< Announcement,D,B > – Node D broadcasts an index message declaring itselfas the index node for its neighbors. It also announce that B is the secondary index.
12
2.1.4 Indexing
The basis for our indexing algorithm is ARI, adaptive ring indexing [4]. We use a simplified
version that is less robust but easier to manage. Following the selection of the index nodes, these
nodes will begin the process of collecting index information for the nodes in their cell. The
specific data that nodes will index depends on the items that are in the warehouse. Typical item
properties include color, serial number, type, or category. Since the index node election created
a tree, all nodes belonging to a certain index node have a path to the index node, which greatly
simplifies the process of collecting index data. The index node simply broadcasts a request for
index data to its nearest neighbors, who respond and forward the message to their children in
the tree. Eventually the index node will either finish indexing its cell or refuse to accept more
data due to storage limitations. If the index node’s remaining memory reaches capacity before
it has index data for all of its children, the cell must be split into two. Since this algorithm also
chooses a backup index node, the current index node simply sends a message telling that index
node to split off and form another cell.
After the index node indexes the nodes in its cell for the first time, periodic updates are
necessary to ensure that index data is fresh. Since nodes will not be continually updating, nodes
simply send an update message to their index node whenever their index data changes. While
this minimizes the number of messages sent and ensures that index data will be up-to-date, it
allows the possibility of an index node not knowing when a node has left its cell. An alternative
method for updating is for nodes to send periodic refresh messages, which can include update
information and also ensure that the index node is immediately notified if a node leaves the cell.
The drawback of this method is the high number of messages that will be sent over the lifetime
of the network. If the contents of crates are rarely updated, this can lead to a large number of
redundant messages. The preferred method depends on external properties, such as the pattern
of item removal in the warehouse. Table 2.3 summarizes the messages used in this protocol.
13
1. AI → B :< SendIndex,AI > Index node AI asks all nodes B in the cell to generateindex information
2. B → AI :< IndexData, B > Node B sends index information to AI
Table 2.3. Indexing Messages
2.2 Backbone Network Formation
A backbone network is formed within the mesh network to optimize query resolution.
The algorithm for forming the network and an example are given below. This algorithm is run
during the network bootstrap process and changes to the backbone network are dealt with on an
individual basis.
2.2.1 Backbone Network Formation Algorithm
As stated above, we assume the network uses a geographically-aware routing protocol for
routing between all network nodes. In addition to this network, we form a backbone network of
index nodes that will provide a direct link to index information for query resolution. By using
a backbone network instead of flooding, we can minimize the number of messages needed to
complete a query, thus helping reduce overall energy consumption of the network. The tradeoff
is that energy consumption will be concentrated in index nodes and nodes that connect index
nodes to each other. Index nodes will have high energy consumption regardless of their use in a
backbone network, and the use of an energy aware routing protocol can spread the energy load
on interconnecting nodes.
The backbone network can be considered as a normal network, with non-index nodes
acting as links between index nodes. Thus, normal routing protocols can be used to form the
network, although energy-aware routing should be used to maximize the lifetime of the network.
We use a ring as the topology of the backbone network. The main advantage of using a ring is
its very simple maintenance; each node need only to know its successor and predecessor for the
ring to be complete. If an index node is leaving the ring, due to low energy level, it only needs
14
Fig. 2.2. In this example, nodes send identity messages to the right, as shown by the solidarrows. These messages are aggregated and sent down, indicated by the bold arrow. Once thecorner node receives these aggregate messages, they are sent back up and across the warehouse,as shown by the dotted arrows.
to inform these to nodes of the identity of its replacement. We are currently considering other
topologies like a tree which might provide better lookup performance.
The algorithm to form the ring consists of two parts. In the first part, index nodes inform
each other of their location. Next, each index node runs a ring formation algorithm and since all
nodes share the same information about the index locations they will end up forming the same
ring. It is important to note that the ring that is built is virtual and consists of index nodes only.
Because index nodes may be multiple hops away from each other, other nodes in the network
must act as bridges between them. So, even though two nodes may be adjacent in the backbone
ring they might actually be multiple hops away from each other.
To disseminate location information we use a controlled flooding scheme that minimizes
the number of exchanged messages. We use a virtual grid in which index nodes first send discovery
messages down the rows until the edge column is reached. The discovery message accumulates the
15
location of all index nodes in that row. The index node in the last column of each row generates
an acknowledgment that will be sent back over the row that includes neighbor information for
all of the nodes in the row. These messages are then summarized and aggregated and sent up
the column to a single node that will then generate an acknowledgment that will disseminate
the aggregated data to all nodes in the network. This message is sent to the nodes in the last
column, which will then forward them along rows as necessary. Figure 2.2 illustrates how the
controlled flooding works.
The second part of the algorithm is forming the ring once all the nodes have complete
information about the network. Only one node need to form the ring and can later inform other
nodes of the structure. So, the ring formation algorithm is run locally. The node that should
run this is the first node that learns the location of all index nodes in the network. In figure 2.2,
this will be the index node on the lower right corner. When that node sends back the report
containing the locations of index nodes in the network it can attach the structure of the ring so
that every index node will become aware of its location in the ring. This will save on the amount
of processing that needs to be done in other nodes to figure the ring structure locally.
Ring formation proceeds as follows: the node that runs the ring will start by creating two
flags for each node: pred and succ. At the beginning, the flags of all nodes are set to false.
The pred flag of a node is set to true only if that node is assigned a predecessor. Similarly, the
succ flag of a node is set to true only if that node is assigned a successor. The algorithm starts
by selecting the node with the lowest ID. For that node, the two closest nodes are selected as
predecessor and successor. Flags for the three nodes are then changed accordingly. After this,
the ring starts growing from both the predecessor and successor sides in an alternating fashion,
i.e we go to the predecessor and select its predecessor and the we go to the successor and select
its successor and so on. Growing the ring from both sides ensures that the distances between
nodes is more uniform and that we do not end up with a link between two nodes that is many
hops in length.
16
Fig. 2.3. An example of the ring formation algorithm. The algorithm starts in the black node.The white arrows indicate nodes selected as predecessors, while the black arrows indicate nodesselected as successors.
The selection method for the next node to add to the ring at each iteration is as follows:
for each node a virtual x−axis and y-axis intersecting at the node are used. The next node will
be the one that is closest to the x-axis with a false pred flag if it is being selected as a successor,
or a false succ flag if it is being selected as a predecessor. If there are multiple such nodes
then the distance from the y-axis is the tie-breaker. After adding a node to the ring its flags are
changed: the pred flag is set to true when it is chosen as another node’s successor whereas the
succ flag is set to true when it is chosen as another node’s predecessor. This continues until all
index nodes become part of the ring and all flags become true. Figure 2.3 shows an example of
how the ring is formed.
There remains the possibility that a ring cannot be formed. In this case, a node will never
fill both its predecessor and successor nodes. Since we assume the network has no partitions, at
least one predecessor or successor will always exist. In this situation, the node uses the same
node for both predecessor and successor. This creates finite branches from the main ring.
17
1. AI → ∗ :< Discovery, AI > Index ring discover message. This issent by index nodes and forwarded byother nodes.
2. EI → AI :< LocationReport, EI > Location report generated by indexnodes on the edge of the network
3. AI → CI , BI :< IndexNodeChange,AI , A′I
> Index node change message, where BI
and CI are the predecessor and succes-sor of node AI and A′
Iis the replace-
ment node.
Table 2.4. Backbone Network Messages
2.2.2 Updating the Backbone Network
Once the backbone network is established, major changes to the network should be rela-
tively rare. However, index nodes will change regularly, and the ring topology provides an easy
mechanism to update single nodes. Since a node is only expected to know its predecessor and
successor nodes, changing an index node in the backbone network is as simple as informing these
two nodes of the replacement index node. Nodes can piggyback backbone network information
on data packets once the basic ring is complete, which allows index nodes to create connections
with nodes other than their predecessor and successor. This allows the ring to become more
connected as time passes. These additional nodes are not informed in the case of an index node
change. Table 2.4 summarizes the messages used in this protocol.
2.3 Query Resolution
In this section, we discuss the details of the query resolution protocol. We start by defining
the different query types that form the basis of our algorithms. Then we discuss time constraints
on queries. Following that, we present protocols for resolving the different types of queries.
2.3.1 Query Types
We define two types of queries: simple and complex queries. Simple queries can be
answered by a single node. Although typically the answer to the query is small and can fit in a
18
single message, this is not always the case. For example a simple query could ask, “Where is the
item with ID #19250?” The response to this query would take only a single message, since it is
only a question of existence and location. Larger simple queries can also exist, such as, “What
are all of the items in Crate #12919?” Although this is still a simple query that can be answered
by a single node, the response is much larger than in the previous example. Note that queries
this simple can be answered by either the node that is closest to item or that node’s index node,
which can improve querying performance.
The second type of query is complex queries. In complex queries the answer must be read
and aggregated from several nodes. For example, a complex query could ask, “How many shoes
are in the warehouse?” To answer this, the query must reach all nodes with shoes or all indexing
nodes that have indexed this information. Complex queries can also combine queries, such as
finding whether an item is available, and if so, in what colors. Complex queries are much more
difficult to resolve because they require coordination and aggregation of information across the
entire warehouse. We concentrate on simple queries and leave the design and implementation of
algorithms for complex queries as future work.
2.3.2 Query Time Constraints
Every query has a time constraint, Tconstraint, within which it should be resolved. This
determines how urgent is the query. For real-time applications, Tconstraint can be set to a very
small value indicating that it requires the minimum possible delay. For low priority queries,
Tconstraint can be set to a large value indicating that it does not require any special treatment
and can be answered with a higher delay. An example of a low priority query would be nightly
inventory checks that can be batched and resolved as the robot moves around the warehouse. In
between the two extremes, time constraints can be set to any value according to the application
and its delay requirements.
19
2.3.3 Resolving Simple Queries
Query resolution for simple queries consists of three main steps: sending the query and
locating the data source, getting an initial response from the data source regarding the query
answer, deciding what the robot should do, i.e. whether it should move, and if so, to which node,
or if it should wait for the data to be sent over the network.
A query is generated by a central server and sent to the robot, R. When the robot receives
the query it sends it to the nearest index node, I. If no index node is within communication
range, the robot sends the query to the nearest node which then forwards it to an index node.
Next, the index node determines the location of the data source, D. This is done by sending
the query over the backbone network to reach all index nodes. In the ring, the query is sent in
both directions to reduce lookup time. The time it takes to locate the data source is referred to
as Tlookup. To make the lookup time faster for later queries, location information is cached as
memory is available in the index nodes. Since items can be moved, cached data has a timer after
which it must be refreshed or deleted.
Once the data source is found using the backbone, it sends a response message back to
the robot. If the queried data is small enough to fit in a single message, it is included in the
message and the query is resolved. If the data cannot fit in one message the data source still
sends a response message containing the ID, the location of the data source, and the size of the
answer, S. Along the way back to R, each node, i, in the path appends its ID and location to
the message, so the message contains a path back to the data source. Since we use geographic
based routing, this path will always be the shortest possible path in terms of physical distance.
The time it takes for the response to get back to R is Tresponse. This time includes both the
lookup time and the time needed to send the response message from D to R.
Using the information it has about the warehouse layout and the information gathered
from nodes in the path, the robot decides its next course of action. The robot has three possible
20
courses of action: it can move to the data source, request that the data source send the response
over the network to the robot’s current location, or request that the data source send the response
to an intermediary node from which the robot will pick up the data. The robot chooses its course
of action based on the query’s time constraint. The robot calculates the query resolution time,
Tquery(i), for each point i in the path between the data source and its current location. Tquery(i)
includes both the time for the data to be transferred to node i and the time it takes the robot to
physically move to node i. Obviously Tquery(i) is dominated by the robot’s moving time. Tquery(i)
must be less than the time constraint, Tconstraint. To prevent excess energy consumption, the
robot chooses the node that is the fewest hops away from the data source that the robot can
move to in time. The next section describes this process in more detail.
2.3.3.1 Determining the Query Resolution Time
To determine the query resolution time, the robot first decides from which point in the
path it is going to collect the data. First, the robot calculates the time, Ci, it would take to travel
to any node i in the path. It then calculates the time, Mi, it takes to transmit the data from
D to any node i in the path. In most cases Ci >> Mi. The robot then picks the node x which
is closest to the data source such that Tquery(i) ≤ Tconstraint. The resolution time Tquery(x)
includes the time to get the initial response from D and the larger of Cx and Tdecision + Mx.
Since the robot knows the layout of the warehouse, its current location, the location of
all nodes i on the path from the data source to the robot, and its movement speed, determining
the value of Ci for any point i is easy. To determine Mi for each node in the path, the robot
uses size of the response, S, the transfer rate of the mesh network, B, and the number of hops
between i and the data source, di and the following equation:
Mi =S
B× (di − 1) (2.1)
21
Now we consider the response time. This is equal to the time to locate the data source, Tlookup
plus the time it takes to send the response packet from D to R over dR hops:
Tresponse = Tlookup +dR
B(2.2)
Next we look at the time to send the robot’s decision back to D, which is the time it takes to
send a single packet back to D over dR hops:
Tdecision =dR
B(2.3)
Finally, the query resolution time if node x in the path is chosen is:
Tquery(x) = Tresponse + max(Tdecision + Mx, Cx) +S
B(2.4)
Recall that S is the size of the response and B is the transfer rate of the network. As mentioned
earlier, this accounts for the time to get the initial response from D, the greater of the time it
takes the robot to reach node i or the time it takes the data to reach node i, and the time needed
to get the answer (which is S packets) from i.
The robot chooses the node x that is closest to the data source such that:
Tquery(x) ≤ Tconstraint (2.5)
When x is found, the robot moves to that location and asks the data source to simultaneously
forward the data to x. If for all nodes i on the path Tquery(i) > Tconstraint, this path cannot be
used and the query cannot be resolved. This is extremely unlikely for reasonable Tconstraint, since
the robot can always choose to have the data source send the entire response over the network.
22
2.3.3.2 Protocol Outline
The following outlines the algorithm used to resolve simple queries:
1. R → I : < Query, Tconstraint > – Robot (R) sends query to nearest index node (I).
2. I : locate D – Index node locates data source (D) using backbone.
3. if S = 1 : D → s : < Answer > – if answer fits in one packet send it back to R. end.
4. else D → R : < Response, S, ID1, l1, ID2, l2, ..., IDn, ln > – D sends response messageback to R including the answer size (S), IDs and locations of intermediate nodes (1, ..., n).
5. R : selects x – R selects a node x to which the data should be forwarded according to2.3.3.1.
6. if x = R robot waits for the dataelse robot moves to x
7. if x = D data source waits for robotelse D forwards data to x
8. R → x : < Query > – Robot sends query to x
9. x → D : < Answer > – x sends answer to robot
2.3.4 Resolving Complex Queries
Although we did not fully develop algorithms for resolving complex queries, in this section
we briefly outline possible methods that can be used to resolve complex queries. As discussed
earlier, complex queries require combining data from multiple nodes in the network, which greatly
increases the complexity of the problem. It is impossible to directly apply our method for
resolving simple queries to complex queries, but we can see how it is possible to adapt our
protocol to handle data from multiple sources. For instance, suppose a query asks for the total
number of shoes in a warehouse. Assume for simplicity that all index nodes have fully indexed
the nodes for which they are responsible. Even with this simplification, this problem is incredibly
complex. The query still requires data from every single index node in the network, which could
easily number in the hundreds in a large network. The robot must choose optimal intermediary
nodes from which to pick up the data from each index node. With hundreds of index nodes and
23
thousands of possible intermediary nodes, a combinatorial explosion is inevitable, making this
problem undecidable in polynomial time.
Clearly, directly applying our simple query protocol to the complex query case is infeasible.
However, a small change to the algorithm can greatly reduce the number of possible paths the
robot could take to pick up all of the data from the warehouse. The robot can choose one or
more fusion points, where multiple nodes can send data for pickup. The number of nodes that
send data to a single fusion point is limited by the storage capacity of the fusion point, but
even multiple fusion points would vastly reduce the number of possible paths the robot can take.
Choosing a good fusion point is a difficult problem in and of itself, but it may be easier to choose
a fusion point in a connected mesh network than to choose an optimal path for a robot to travel
to hundreds of nodes.
2.4 Implementation and Simulation
Due to the lack of available active tags that matched our desired feature set, we used
Crossbow MicaZ motes to approximate active tags. They have essentially the same feature set,
with similar processing and storage limitations, so we felt that this substitution was appropriate.
The MicaZ motes run TinyOS [5], an embedded operating system designed for sensor motes.
We implemented our algorithms in TinyOS 2.0. In addition, we implemented a mobile reader
platform interfaced with a MicaZ mote. Although our implementation ran on real motes, it
was not feasible to run an actual experiment with hundreds of motes and a reader, so we used
TinyOS’s built-in simulator, TOSSIM, to simulate larger experiments with the reader and collect
results.
To test our algorithms, we simulated a small network of 150 motes in a 100 ft. × 100 ft.
warehouse and a large network of 900 motes in a 1000 ft. × 1000 ft. warehouse. We simulated
our full algorithm on each the network: each group of nodes chose an index node, indexed sample
data, and formed a backbone network. We then ran 650 queries on each network, using only
24
the mobile reader without the mesh network, our hybrid movement and transmission algorithm,
and using only the mesh network without the reader. We measured the total distance travelled
by the mobile reader, the power consumption of the network, and the success rate of queries, as
measured by the number of queries that met a randomly chosen time constraint. We also tracked
the movement of the mobile reader. Since TOSSIM does not simulate power usage, we measured
power consumption as a function of the number of transmissions a node made.
2.5 Results
It is important to keep in mind the desired benefit of using the mobile reader and mesh
network. Using only the active tag mesh network to resolve queries would reduce latency, but
this approach would also be severely limited by the battery life of the active tags. Similarly, only
using a single mobile reader that travels to each active tag to read query data would eliminate
battery life concerns, but it would also have very high latency since the reader would have to
move all the way to the tag for every query. The hybrid approach is designed to balance the
trade-off between latency and battery life.
Figure 2.4 shows the success rate of the hybrid and mobile reader-only methods for both
networks. The success rate is measured as the percentage of queries that were completed within
a time constraint randomly chosen between 1 and 80 seconds in the small network and 1 and
120 seconds in the large network. The primary cause of latency is robot movement time, since
network transfer times are measure in milliseconds. The mesh network-only method has no robot
movement time, and all network transfers can be completed within 1 second, so it has a 100%
success rate. The hybrid approach shows a marked improvement over the reader only approach.
Comparing the results for two movement speeds show that the hybrid approach’s benefit increases
as mobile reader speed decreases.
The hybrid approach again shows improvement over the movement-only approach in Fig-
ure 2.5, which charts the total distance travelled by the mobile reader. The improvement over the
25
reader-only approach increases with the number of queries, indicating that most queries benefit
from the hybrid approach. The improvement is more drastic in the larger network, where the
large physical size of the network emphasizes the improvement from using the mesh network.
Figure 2.6 shows the exact movement path of the mobile reader in both networks. The hybrid
reader stays in the middle of the network, which reduces its overall travel distance and improves
latency. Note that in the hybrid case the reader never goes to certain edges of the network which
are far enough away so that the hybrid algorithm results in data being transfered at least part
of the way to the reader.
Figure 2.7 shows power consumption per node. Nodes were numbered such that numbers
in the middle of the range (0 - 150) correspond to nodes in the middle of the network. Nodes
further away from 70 were closer to the edges of the network. The distribution of this graph
emphasizes one of the major downsides of using only the mesh network: nodes in the center of the
network are stressed more than nodes at the edge of the network. This imbalanced distribution
of power consumption greatly reduces the maximum potential lifetime of the network, since
the network is unusable as soon as a single node dies. As we can see from Figure 2.7, the
hybrid approach distributes power consumption much more evenly than the mesh network only
approach. Note that the power consumption graph for the hybrid method does not have the
extreme valleys of the network only method. Instead, there are two milder valleys that show
that power consumption is highest for nodes surrounding the center, while it actually decreases
in nodes closer to the center. This indicates that the robot spent most of its time in the very
center of the network.
2.6 Conclusion
In a warehouse with active tags, the fastest way to collect data from the active tags is with
a mesh network. In a warehouse with active tags and a mobile reader, the most power efficient
way to collect data from the tags is with the mobile reader. The hybrid approach of using both
26
the mesh network and a mobile reader is neither the fastest nor the most power efficient, but it
can provide the most useful trade-off between the two.
27
(a) 150 nodes
(b) 900 nodes
Fig. 2.4. Success rate of the hybrid and pure movement schemes. We simulated using twomobile reader speeds: 1.0 m/s and 0.5 m/s. The no movement scheme has a 100% success rate.
28
(a) 150 nodes
(b) 900 nodes
Fig. 2.5. Total distance travelled by the mobile reader. In the no movement scheme the readertravels zero total distance.
29
(a) 150 nodes
(b) 900 nodes
Fig. 2.6. Movement of the mobile reader in the hybrid and pure movement schemes.
30
(a) 150 nodes
(b) 900 nodes
Fig. 2.7. Power consumption per node in the hybrid and no movement schemes. The puremovement scheme has zero power consumption per node.
31
Chapter 3
Multiple Reader Data Gathering
with Passive RFID Tags
Previously, we addressed the problem of real-time inventory tracking and querying in
an active tag network. Although we found that it was possible to successfully use active tags
networks in combination with a mobile reader to enable real-time access to inventory information,
active tags of the type required for a robust implementation are currently not in widespread use
due to prohibitive costs. We therefore turn our attention to passive RFID tags, which are cheap
and widely available, and in many cases are already used to provide some inventory tracking.
Unlike active RFID tags, passive RFID tags have no processing or networking capabilities
and can only be read by an RFID reader. Furthermore, RFID tags can only be read from within
a short range, roughly 10 feet with current technology. These limitations immediately prevent
us from adapting our work from active tags to passive tags–there is simply no way to perform
any calculations on a passive RFID tag, let alone run complex network protocols.
We can, however, adapt our mobile reader to work with passive tags instead of active
tags. A mobile reader presents a natural solution to many of the limitations of passive RFID
tags. The reader can perform any necessary computing, and the reader can move to within range
of a passive tag to read it. In essence, we can make any passive tag a part of a larger network,
with the mobile reader moving to read tags as necessary. Of course, with a mobile reader we are
limited by the speed of the reader, which can be a severe obstacle when fulfilling many queries
in large warehouses. An obvious solution to this problem is to introduce multiple mobile readers
which can communicate with each other and coordinate their movements around the warehouse
to maximize efficiency.
32
Since we are changing the architecture of our system, we must also update our assumptions.
Most importantly, in the single reader case we assume that the reader is always connected to
a base station through which it receives queries. With multiple readers, the strong assumption
that all readers are always connected to a base station is no longer necessary. It is possible to
form a multi-hop network between readers to exchange queries, thus requiring only one reader
to be connected at any time. However, since readers can move out of range of each other,
disconnections are possible between not only a reader and the query source, but also between
readers themselves. This added complexity decreases efficiency, but allows the system to be much
more flexible.
With these changes in mind, we can describe our new goal more explicitly. We consider the
problem of real-time inventory querying using passive RFID tags with multiple mobile readers
in both a fully connected network with a base station and a multi-hop, ad-hoc network. We
present algorithms for fully connected robot movement scheduling in Section 3.2, and algorithms
for multi-hop operation in Section 3.3. We simulated our algorithms and implemented them
on our existing mobile reader platform, as described in Section 3.4. Finally, we discuss our
results in Section 3.5. Before we begin our discussion of work with multiple readers, we present
a mathematical model to motivate our use of multiple readers in the next section.
3.1 Mathematical Model
To motivate our work with multiple robots, we present a rough mathematical model to
perform a cost-benefit analysis of using multiple robots versus replacing an active tag network.
We first assume an active tag network with a single mobile reader and compute its costs, which
we compare to using multiple readers with passive tags.
33
3.1.1 Expected Number of Hops in an Active Tag Network
We begin by calculating the expected number of network hops from a node to the robot.
We assume the robot is in the center of the warehouse on average, so the expected number of
hops from the edge of the network to the center is accurate as an overall value. Assuming a
m×m network, where m is odd, there are 8 nodes that are 1 hop away from the center, 16 that
are 2 hops away, and so on. Following this pattern, the number of nodes h hops away from the
center is nh =∑m−1
h=28(m− h). Using this information and assuming that H is the radius of the
network in hops and n is the number of nodes, we can calculate the expected number of hops as
follows:
E[h] =∑H
i=1i∑m−1
h=28(m− h)
n(3.1)
3.1.2 Expected Number of Transmissions in an Active Tag Network
In a traditional network the number of hops, E[h], is equal to the number of transmissions
needed, e[t], but we assume our network has a mobile reader which can move in order to reduce
the number of hops transmitted. Therefore, the number of hops is actually a ceiling on the
number of transmissions and may be larger than necessary. To calculate the actual number of
transmissions, we must know E[M ], the expected number of nodes to which the reader can move
within the query’s time constraint. E[M ] is a parameter that we can set based on the reader’s
movement speed and the average query time constraint. Given E[M ], calculating the expected
number of transmissions is simple:
E[t] = E[h]− E[M ] (3.2)
34
3.1.3 Expected Lifetime of Active Tag Network
Given the expected number of transmissions in the network, we can calculate the expected
remaining lifetime of the network based on the total energy of the network, E, the number of
queries performed, Q, and the expected number of transmissions per query, E[t].
Lifetime = E −QE[t] (3.3)
We note that when the expected remaining lifetime of the network is 0, the network has no
remaining energy. By setting Equation 3.3 to 0 and solving for Q, we can calculate the number
of queries the network can support before dying, Qf :
Qf =E
E[t](3.4)
3.1.4 Cost Analysis for Active Tag Network
Our prototype robot costs approximately $400 to build. Assuming that per-robot cost
remains the same, we can use $400 as an estimate of robot cost. Although there is not an
exact product that matches our active RFID tag currently available, other active RFID tags are
available for prices between $5 and $100. We currently use Crossbow MicaZ sensor motes as a
development testbed, which are $125 each when purchased in low quantities. Since we envision
our use of active RFID tags in high-density, high-population environments, we use $5 as our cost
estimate for active RFID tags, which is lower than the current average cost of active RFID tags.
Using our model with a E[M ] value of 30 nodes, performing 1,000,000 queries in a 10,200
node network (m = 101) requires 10,200 active tags, with a total cost of $51,000 and 1 robot
with a cost of $400. The total cost of the network is $51,400.
35
3.1.5 Cost Analysis for Passive Tag Network
Passive tags are an order of magnitude cheaper than active tags. Passive RFID tags cost
as little as $0.20 each in printable, stickered rolls of thousands. 10,200 passive RFID tags would
cost only $2,040. The number of robots required to read these tags depends largely on the
organization and distribution of the tags; a conservative estimate of 1 robot per 200 tags requires
51 robots at a total cost of $20,400. The total cost of the system is then $22,440, less than half
that of the active tag network. When labor costs for replacing active tags are considered, active
tag networks become even more expensive. With this cost analysis motivating our work, we now
consider algorithms for multiple readers.
3.2 Algorithms for Fully Connected Multiple Readers
As described earlier, the protocol has two basic steps. The first step is locating the data
source that is responsible for the desired data. The second step is collecting the data using the
mobile reader. In this section we discuss the protocol for multiple readers in a fully connected
network with a base station in full detail.
3.2.1 Locating Data Sources
Initially, we assume we know the approximate location of the data. Our motivation for
making this assumption is that warehouses are typically organized in some human-friendly fashion
in order for warehouse workers to locate items. Using this knowledge, we know roughly where
an item is and can send a mobile reader to that location to determine the precise location of the
item.
In future work we will incorporate a centralized or distributed caching scheme into our
protocol. With a cache, mobile readers can continually read tags in order to update the cache as
they move around the warehouse fulfilling queries. Furthermore, we can include other modes of
36
cache updating, such as handheld RFID readers used by warehouse workers, or readers attached
to forklifts.
3.2.2 Data Collection
After locating the tag, a robot must travel to the tag and read it to complete the query.
The robots determine which robot will retrieve the data by running our protocol. Given a
single query, choosing which robot to send is easy: we simply send the nearest robot. However,
given a distribution of queries over time, the decision of which robot to send becomes more
difficult. For instance, consider a highly skewed distribution with hotspots that are clustered
physically, temporally, or both. Hotspots can occur if a particular item or class of items is on
sale, which increases customer interest, and accordingly the number of queries for those items.
In a distribution with hotspots, it may be optimal to keep a robot in the hotspot that will not
respond to queries outside the hotspot. The difficulty here lies in determining when a hotspot
is occurring. Since we have no knowledge of future queries, we must rely on heuristics based on
past queries. We introduce two concepts, areas of responsibility and rest points, to heuristically
determine when a hotspot is occurring.
3.2.2.1 Areas of Responsibility
When queries are uniformly distributed, any particular reader will respond to queries from
a large area. A simple example is four readers in a square warehouse. Each reader should be
responsible for an area roughly equivalent to a quadrant. However, when a hotspot occurs, we
can reasonably expect that the hotspot will be smaller than a quadrant. The exact size of a
hotspot depends on a number of other factors, such as warehouse organization, type of hotspot,
and duration of the hotspot; since by definition a hotspot is a clustering of queries, we can assume
that the hotspot will be fairly small. The concept of areas of responsibilities attempts to measure
37
the average area a reader stays within. If this area is small enough, we can assume a reader is in
a hotspot, and act accordingly.
A reader’s area of responsibility is the range within which the reader will respond to
queries. An area of responsibility is described as a circle of radius ARr, centered upon either the
reader itself, r, or the reader’s rest point, RPr (described below). Since areas of responsibilities
are circles, they will not provide full coverage in a rectangular warehouse, and there will be
overlap between the areas of responsibilities of different readers. In these cases, we revert back
to the simple method of sending the closest robot.
The value of ARtr, the area of responsibility radius at time t, is determined by the weighted
moving average of the distance reader r travels, dr:
ARtr
= α(dr) + (1− α)ARt−1r
Where ARt−1r
is the previous value of ARr, dr is the distance the reader travelled to read the
last tag it was chosen to read, and α is a parameter. Experimentally, we have found that a value
of α = 0.1 works well.
3.2.2.2 Rest Points
Once a reader’s area of responsibility is determined, the question of where to center the
area of responsibility arises. The area of responsibility can be centered on some fixed point,
such as the reader’s starting location, or it can be centered on the robot itself. If the area of
responsibility is centered on a fixed point, while it may accurately reflect the size of a hotspot, it
in no way reflects the location of the hotspot. Meanwhile, if the area of responsibility is centered
on the reader itself, it may move too quickly and erratically to reflect the true location of the
hotspot. A compromise between the two, a moving average of the reader’s location, is needed.
38
We determine a reader’s rest point, RPr, using the reader’s average location over a number
of queries, rp recalculate, with maximal outliers removed. We remove outliers to eliminate the
effect of single queries that lie far away from a robot’s normal roaming area. rp recalculate is a
parameter; experiments have shown 15 to be an appropriate value.
It should be noted that a reader does not return to its rest point after each query. Rather,
the rest point is the point on which the reader’s area of responsibility is centered. As described
in the next section, in our standard protocol the reader can move out of its area of responsibility
if necessary to fulfill a query, but will always return to the area of responsibility after fulfilling
the query. Further note that in some of the protocol variations described in Section 3.2.4, the
area of responsibility is centered on the reader itself; in these cases the reader can never leave its
area of responsibility and the rest point is meaningless.
3.2.3 Fully Connected Protocol
We now describe in detail the protocol that the mobile readers follow.
1. A query is sent to all of the robots via a base station from a centralized server.
2. Since we assume the location of all queries is known, we immediately proceed to choosing
a robot to retrieve the data. There are three cases:
• The query is in one and only one robot’s area of responsibility. This robot is chosen
to retrieve the data.
• The query is in no robots’ area of responsibility. The nearest robot is chosen to retrieve
the data.
• The query is in more than one robot’s area of responsibility. Of the robots in whose
areas of responsibilities the query is located, the closest one is chosen to retrieve the
data.
39
3. Once the chosen robot arrives at the data location, it reads the RFID tag and sends the
information back to the server via the base station. At this point it also updates its area of
responsibility using the equation above, and updates its rest point if rp recalculate queries
have passed since it last changed its rest point.
4. If the robot has moved outside its area of responsibility, it now moves back to the closest
point within the area of responsibility.
3.2.4 Fully Connected Protocol Variations
In addition to the original protocol above, we developed a number of variants on the
protocol for comparison purposes.
Simple In this variation, we ignore both areas of responsibilities and rest points and simply
choose the closest robot. Robots rest wherever their last query put them.
AR + RP This is the protocol described in 3.2.3
AR Only In this variation, we only adjust and follow the area of responsibility, which is always
centered on the robot. There are no rest points. Since the area of responsibility is centered
on the robot itself, it can never leave its area of responsibility.
Flexible Grid This is similar to the AR Only protocol, but the areas of responsibilities are
fixed on each robot’s starting location. Like the AR Only protocol, there are no rest
points. Unlike the AR Only protocol, robots can leave their areas of responsibility, and
must return to them if they do.
RP Only In this variation, we only adjust rest points. The area of responsibility is of fixed size
and centered on the rest point.
Return to Center In this variation, the robot always returns to its origin location after re-
sponding to a query. Areas of responsibilities and rest points are ignored.
40
3.3 Algorithms for Multi-hop Connected Multiple Readers
Although it is easy to simulate a warehouse where mobile readers are always connected
with a central server and have perfect information about the network, that will not always be
the case in an actual deployment. Real-time inventory systems are often designed with military
use in mind, since the constraints of a battlefield often requires that warehouses be quickly
constructed with little time to deploy proper infrastructure. In this case, it is easy to imagine a
battlefield storage area that contains thousands of RFID-tagged items but no wireless networking
infrastructure. If there are no wireless base stations, the mobile readers must rely on a multi-hop
mesh network in order to communicate.
Queries must still originate from outside the mobile readers, for example, from a wireless-
equipped laptop connected to the mesh network at the edge of the warehouse. Furthermore,
queries can no longer be sent to all readers—they can only be sent to whatever readers are in
range of the query source. Therefore, queries must either be saved by the readers that are in
range and transmitted to the other readers at a later time, or the querying algorithms must be
run on an incomplete set of readers.
With these changes to the underlying network, in multi-hop operation we can no longer
assume readers have perfect information about the network. Indeed, because of disconnections
readers often have very poor information about the network. It is only safe to assume that a
reader will know the location of itself and nodes it is connected to via the mesh network, which
makes it inefficient to use our mobile reader algorithms without modification, since they assume
all the readers know the locations of all of the other readers. Furthermore, since queries now
originate from specific locations, and not from a central server to which all readers have access,
once a query has been fulfilled, the reader must transmit the result back to the query source.
We made a number of additions to our assumptions and algorithms in order to accommo-
date the differences between multi-hop and centralized operation. In our simulation, queries now
41
originate from locations on the edge of the warehouse. The locations are uniformly distributed
across all four sides of the warehouse and the location from which a query originates is chosen
at random. Additionally, query responses must be transferred back to the originating location
before a query is considered complete. While it may be possible that a query source is in range
of no readers, we assume that queries can only originate from query sources that are in range of
readers. To simulate multi-hop operation, we must be able to determine if readers are in wireless
communication range of each other and query sources. We use a wireless range parameter, set
to 300 feet to reflect current wireless technology, to simulate wireless disconnections.
Since queries originate from a specific location and the querying algorithms only run on
the readers that receive the query, it is often the case that the reader responding to a query is not
the optimal reader. In order to counter this inefficiency, as a reader moves to a query location,
it periodically searches for other readers. If it locates another reader that is closer to the query
location than it is, it transfers the query to that reader via the mesh network. This cascading
effect greatly reduces the distance readers must travel to fulfill queries. This effect combined with
limited wireless range increases the usefulness of locality and increases the performance of the
flexible grid and rest point algorithms relative to the naive and areas of responsibility algorithms.
Figure 3.1 illustrates this cascade effect.
In order to transmit queries responses back to their corresponding query sources, we
introduce a query return stage to all algorithms. Upon reading an RFID tag and obtaining a
query result, readers return to the query source location while continuously searching for other
readers that are closer to the query source, as they do when moving to read queries. The cascading
effect once again reduces moving distance. Once a reader is within wireless range of the query
source, it can transmit the query result back to the source and the query is considered answered.
In the next section we present updated protocols that reflect these changes.
42
3.3.1 Multi-hop Protocol
The base multi-hop protocol is described in detail below.
1. A query is broadcast from a query origin point such as a laptop on the edge of the network.
All robots in range of the broadcast will react to the query. We assume at least one robot
is in range of the broadcast.
2. If a robot in broadcast range of the query origin point is connected to any other robots, it
forwards the query information to those robots.
3. As with the fully connected protocol, we assume the location of the query is known. We
proceed to choosing which robot will respond to the query. The basic protocol for choosing
which robot will respond to the query is the same as in the fully connected case. However,
since the robots are not fully connected, only robots that received the query take part in
the protocol. As before, there are three cases:
• The query is in one and only one robot’s area of responsibility. This robot is chosen
to retrieve the data.
• The query is in no robots’ area of responsibility. The nearest robot is chosen to retrieve
the data.
• The query is in more than one robot’s area of responsibility. Of the robots in whose
areas of responsibilities the query is located, the closest one is chosen to retrieve the
data.
4. Once a robot is chosen to respond to the query, it begins to move to the data location.
While it is moving, it periodically pings for other robots in its wireless range. If a robot that
is closer to the data location than the current chosen robot responds, the current chosen
robot forwards the query information to that robot and returns to its area of responsibility.
The new robot repeats this process until a robot reaches the data location.
43
5. Once the chosen robot arrives at the data location, it reads the RFID tag. The robot must
now transfer the response to the query origin point. If the query origin point is within
broadcast range, the robot simply sends the response over the network. If the query origin
point is not within broadcast range, the robot begins to move back to the query origin
point.
6. As the robot is moving back to the query origin point, it periodically pings for other robots
in its wireless range. If a robot that is closer to the query origin point than the current
robot responds, the current robot forwards the query response to that robot and returns to
its area of responsibility. The new robot repeats this process until a robot is within range
of the query origin point.
7. Once a robot is within wireless range of the query origin point, it transmits the query
response to the query origin point, completing the query.
8. Every time a robot forwards query data, it updates its area of responsibility using the
equation above, and updates its rest point if rp recalculate queries have passed since it
last changed its rest point.
3.3.2 Multi-hop Protocol Variations
The protocol variations we developed for the fully connected case also apply to the multi-
hop case. The variant protocols are the same as in the fully connected case, but with the addition
of query and response forwarding between robots.
3.4 Implementation and Simulation
To test our algorithms, we both implemented and simulated them. We simulated and
tuned our algorithms using a custom Python simulation that modeled thousands of passive tags
44
Simulation ParametersSkewed Query Burstiness α 0.4Skewed Query Burstiness β 0.8
Wireless Range 300 ft.Algorithm Parameters
Area of Responsibility and Flexible Gridα 0.1
Rest Pointrp recalculate 15
Table 3.1. Simulation parameters.
and dozens readers. After using our simulation to fine-tune our algorithms, we implemented
them on our custom robot platform using Gumstix Linux computers.
3.4.1 Simulation Details
Our simulation is a custom Python script that uses a tick-based clock to simulate mobile
reader actions. Our simulation simulated a square 1000 feet × 1000 feet warehouse. 10,000
RFID tag locations were uniformly distributed over the area of the warehouse, with tags every
10 feet. Each simulation issued 1000 queries from both a skewed and uniform distribution. More
details on queries are in Section 3.4.1.1. We tested a warehouse with four mobile readers and a
warehouse with 16 mobile readers. Simulation parameters are listed in Table 3.1.
3.4.1.1 Queries
As noted earlier, there are actually two parts to the problem of using RFID to track
inventory in real-time. First, the item must be located within the warehouse. Only after an item
has been located can it be queried using a mobile RFID reader. Since we assume the location of
a query is known, queries are of the form
(item, location, time constraint)
45
Where item is the item we are searching for, location is the item’s location, and time constraint
is an optional time constraint on the query.
Although our system and algorithms can be used to answer individual queries, it is more
interesting to look at an overall distribution of queries over time. There are two basic distributions
of queries over a warehouse: uniform and skewed. A uniform distribution is simple: queries are
uniformly distributed over the entire warehouse area. This could occur in a warehouse where
items are very well distributed and no particular item is more or less popular than average.
In a real warehouse, however, it is likely that some items will be more popular than others
and will therefore be queried more often. For instance, if a store is having a sale on a particular
brand of shoes, the area where those shoes are located will be more heavily loaded with queries.
In this case, we say the queries have a skewed distribution, and that a hotspot has developed in
shoe department.
When queries are uniformly distributed, all readers will respond to queries from a large
area. A simple example is four readers in a square warehouse. Each reader should be responsible
for an area roughly equivalent to a quadrant. However, a hotspot must be a concentration of many
queries in a short of amount of time in a smaller than average area in order to be distinguished
from uniformly distributed queries.
The exact shape and size of a hotspot depends on a number of outside factors, such as
warehouse organization, cause of the hotspot, and duration of the hotspot, but since a hotspot
is defined as a noticeable clustering of queries, we can assume that the hotspot will be distin-
guishably small. In many ways a skewed distribution is more interesting to study than a uniform
distribution: identifying when a skew or hotspot occurs is important and non-trivial, and opti-
mal robot movement can be greatly affected by a skew. With this in mind, our algorithms are
designed to accommodate both skewed and uniform queries.
We used two algorithms to shape the skewed query distribution: a burstiness algorithm
and the Zipf distribution [6]. We used the burstiness algorithm to determine when to begin
46
a burst of queries in the hotspot. Within the hotspot, queries were distributed using the Zipf
distribution.
The burstiness algorithm is:
• If not in burst, enter a burst with probability α, remain not in a burst with probability
1− α
• If in a burst, remain in the burst with probability β, leave the burst with probability 1− β
α and β are parameters, our simulations were run using α = 0.4 and β = 0.8.
The Zipf distribution is a commonly used distribution that models elements discretely
distributed with a power law. The exact formula is:
f(k, θ,N) =1/kθ∑N
n=11/nθ
Where N is the total number of elements, k is the rank of the given element, and θ is a parameter
that characterizes the distribution. We used θ = 40 to indicate a highly skewed distribution.
3.5 Results
In this section we present simulation results for both fully connected and multi-hop algo-
rithms.
3.5.1 Fully Connected Results
Our results for four readers are shown in Figure 3.2 and results for 16 readers are in
Figure 3.3. In the skewed and uniform case we find that the naive algorithm gives the best
performance. To understand why, it is important to understand how each algorithm operates.
The naive algorithm is actually very efficient: it sends the closest reader to respond to each
query, and the readers make no extraneous movements after responding to queries. Areas of
47
responsibility, flexible grid, and rest points all require non-optimal reader choices and extraneous
movements. Our design intention for those algorithms was to to preserve reader locality around
a hotspot. Each algorithm was designed to keep one reader in a hotspot and force other readers
to answer that reader’s queries so it would not have to leave the hotspot.
Unfortunately, the loss of efficiency from forcing non-optimal reader choices and super-
fluous movement was greater than any gain in efficiency from keeping a reader in a hotspot.
Figures 3.4 and 3.5 show that the total distance traveled by each reader for the area of respon-
sibility, flexible grid, and rest point algorithms is uniformly higher than the distance traveled
for the naive algorithm. Moreover, there is a direct relationship between an increase in distance
traveled and an increase in average time per query.
Increasing the number of readers decreased overall time per query, but did not cause drastic
changes in the relative performance of the algorithms. The performance differences between the
algorithms, which was generally under 10% in the four reader case shrinks even more in the 16
reader case. It is important to note that although our algorithms performed worse than the
naive algorithm in the centralized case, the performance delta is very small. Furthermore, the
increased locality of our algorithms becomes important in multi-hop operation.
3.5.2 Multi-hop Results
Multi-hop results are shown in Figure 3.6. Although in the fully connected, centralized
mode of operation no algorithm performed markedly better than the others, in the multi-hop
case the flexible grid algorithm is clearly the best performer.
Figures 3.7 and 3.8 show the distance travelled by the readers in each algorithm. Figure 3.7
shows the total distance travelled by all readers over the entire run of the simulation. Again, the
flexible grid algorithm clearly outperforms the others. Figure 3.8 shows the secondary distance
all readers travelled over the simulation. The secondary distance measures distance travelled by
a reader after receiving a forwarded query from another reader.
48
3.6 Analysis
In the multiple reader system, we found dramatic performance differences between our
reader scheduling algorithms in the multi-hop case. In this section we formalize the differences
between algorithms in the multi-hop case in order to provide a clearer understanding of the
benefits of our algorithms and the differences between them.
3.6.1 Secondary Distance
We introduced secondary distance in Section 3.5.2, where we used it as one performance
measure of our algorithms. Here we formalize our argument for using secondary distance as a
performance measure and analyze its effects on overall performance.
As defined earlier, secondary distance is any distance a robot moves when it is not the
original recipient of a query. Consider the simple example in Figure 3.9 with three readers: A,
B, and C. Robot A receives a query from an external source, then forwards it to robot B, which
then forwards it to robot C, which reads the tag. The distances robots B and C moved are both
secondary distances. Similarly, when returning a query to the query origin, any distance moved
by robots that were forwarded the query response is a secondary distance.
To begin our analysis, we first define d1, the primary distance. In the single-hop case,
this is simply the distance from the closest reader to the RFID tag. In the multi-hop case, this
is the distance from the first robot that received the query to the RFID tag. If that robot does
not encounter any robots that are closer to the tag, then the primary distance is also the total
distance travelled to read the tag. If the robot does forward the query, we define the distance the
first robot travelled before forwarding the query as d′1, and the remaining distance to the tag as
d⊥1
= d1 − d′1. For simplicity, we discuss only the distance travelled from the query origin to the
tag, and not the distance travelled from the tag back to the query origin. A symmetric analysis
can be carried out for the return case.
49
Next, we define ds, the secondary distance. ds is the sum of any distance travelled by
robots that are not the original receivers of a query. The distance travelled by the second robot
is d2, by the third d3, and so on, with the last robot’s distance defined as dn. Then we have the
following definition of ds:
ds =n∑
i=2
di
With ds defined, we can determine the distance saved by forwarding a query, df :
df = d⊥1− ds
d⊥1
should always be less than ds, since queries are only forwarded if the second robot is closer
to the tag.
Finally, we define the total distance travelled for a query, dt:
dt = d′1
+ ds
3.6.2 Results Analysis
In the previous section we defined the secondary distance, ds. Now we examine the results
to determine how much influence secondary distance has on overall performance. We compare
the results of the naive algorithm, which performed best in the single-hop case with those of the
flexible grid algorithm, which performed best in the multi-hop case.
Table 3.2 shows aggregate values of dt, ds, and df for the naive and flexible grid algorithms,
as well as the percentage of total movement that was due to secondary movement and the total
number of handoffs from one robot to another. These results show that secondary movement
was the primary contributor to total distance travelled in both algorithms, but significantly more
so in the naive case than in the flexible grid case. While secondary movement contributed 85%
50
Naive Flexible GridNo Skew Total Distance (dt) 138745.53 16099.75No Skew Secondary Distance (ds) 118432.86 10072.84No Skew Secondary Percentage (ds/dt) 85% 62%No Skew Distance Saved (df ) 391874.66 113249.89No Skew Number of Handoffs 2497.4 1162.4Skew Total Distance (dt) 125456.20 25153.52Skew Secondary Distance (ds) 102877.79 14004.37Skew Secondary Percentage (ds/dt) 82% 55%Skew Distance Saved (df ) 382843.81 158954.14Skew Number of Handoffs 2387.0 1233.4
Table 3.2. Aggregate results from skew and no skew simulations with 16 mobile readers movingat 3 feet per second.
of the total distance travelled in the naive, no skew case, it only contributed 62% of the total
distance travelled in the flexible grid case.
Additionally, the number of handoffs and distance saved are both much larger in the naive
case. The naive algorithm performed twice as many handoffs as the flexible grid algorithm, yet
dNaives
is almost 10 times dFlexible Grids
. Clearly the distance the robots are traveling on each
part of the journey to the tag is much greater in the naive case than in the flexible grid case. The
distance saved further supports this: dFlexible Gridf
is large, and dNaivef
is three times larger than
dFlexible Gridf
. Although dNaivef
> dFlexible Gridf
, relative to dt, the flexible grid algorithm saves
more distance. This indicates that the flexible grid algorithm makes better use of the cascade
effect. However, the disparity between the algorithms is too large to simply be caused by the
flexible grid algorithm making better use of the cascade effect.
To understand this disparity, it is easiest to look at Figures 3.10 and 3.11, diagrams of
the physical layout of the mobile readers in both cases. In both cases the readers start evenly
distributed around the warehouse, but over time the naive readers become distributed towards
the edges in uneven patterns. Robots begin to cluster together, especially in the skewed case. By
comparison, the flexible grid algorithm forces the readers to remain evenly distributed, reducing
the overall distance from any reader to any location in the warehouse. Furthermore, the flexibility
51
of the flexible grid algorithm allows readers to settle in positions where they provide the maximal
benefit in terms of handoffs. Readers in the center of the warehouse position themselves such
that readers from either edge quickly hand off queries to readers in the center. While this may
occur in the naive algorithm, the lack of structure in the algorithm seems to prevent readers from
finding such positions.
Although we only compared the flexible grid and naive algorithms, our results show that
the AR only, RP only, AR + RP, and RTC algorithms performed similarly to the naive algorithm.
An interesting artifact of the analysis of the flexible grid algorithm is that the steady state
in which the readers settle near the end of the simulation has readers in the center forwarding
queries while moving very little. This indicates that a system using both fixed and mobile readers
may perform well.
3.7 Conclusion
Our results have shown that in the fully connected case, the naive algorithm performs
the best, although the remaining algorithms performed very closely to the naive algorithm, with
only a 5% performance difference between most algorithms. In the multi-hop case, the flexible
grid algorithm is the clear winner, with the readers moving up to 80% less distance than the
naive algorithm. This is a vast improvement, and makes the flexible grid algorithm the overall
best-performing algorithm. Although the naive algorithm is superior in the fully connected case,
if there is any chance that a base station will not be available, the flexible grid algorithm is the
best choice.
52
(a) Receiving a query
(b) Forwarding a query
(c) Completing a query
Fig. 3.1. Query forwarding in multi-hop operation. The triangles are mobile readers. The squareis the query source. The small circle is the query location. The large dotted circles indicate thewireless range. The mobile reader on the left receives a query over wireless from the query sourceand begins to move toward the query location. Before it reaches the query location, it discoversthe second mobile reader, which is closer to the query location. The original reader forwards thequery to the second, which then continues to the query location to fulfill the query.
53
3 4 5 6 7 8 9 10Mobile Reader Speed (ft/s)
30
40
50
60
70
80
90
Aver
age
Tim
e Pe
r Que
ry (s
econ
ds)
NaiveAR OnlyFlexible GridRP Only
(a) Skewed Queries
3 4 5 6 7 8 9 10Mobile Reader Speed (ft/s)
30
40
50
60
70
80
Aver
age
Tim
e Pe
r Que
ry (s
econ
ds)
NaiveAR OnlyFlexible GridRP Only
(b) Uniform Queries
Fig. 3.2. Average time per query v. mobile reader speed for 1000 queries in a 1000 × 1000warehouse with 10000 RFID tags and four mobile readers connected through wireless base stationswith a central server.
54
3 4 5 6 7 8 9 10Mobile Reader Speed (ft/s)
10
15
20
25
30
35Av
erag
e Ti
me
Per Q
uery
(sec
onds
)
NaiveAR OnlyFlexible GridRP Only
(a) Skewed Queries
3 4 5 6 7 8 9 10Mobile Reader Speed (ft/s)
10
15
20
25
30
35
40
Aver
age
Tim
e Pe
r Que
ry (s
econ
ds)
NaiveAR OnlyFlexible GridRP Only
(b) Uniform Queries
Fig. 3.3. Average time per query v. mobile reader speed for 1000 queries in a 1000 × 1000warehouse with 10000 RFID tags and 16 mobile readers connected through wireless base stationswith a central server.
55
3 4 5 6 7 8 9 10Mobile Reader Speed (ft/s)
240000
260000
280000
300000
320000
340000To
tal D
istan
ce T
rave
led
NaiveAR OnlyFlexible GridRP Only
(a) Skewed Queries
3 4 5 6 7 8 9 10Mobile Reader Speed (ft/s)
240000
250000
260000
270000
280000
Tota
l Dist
ance
Tra
vele
d
NaiveAR OnlyFlexible GridRP Only
(b) Uniform Queries
Fig. 3.4. Distance v. mobile reader speed for 1000 queries in a 1000 × 1000 warehouse with10000 RFID tags and four mobile readers connected through wireless base stations with a centralserver.
56
3 4 5 6 7 8 9 10Mobile Reader Speed (ft/s)
94000
96000
98000
100000
102000
104000
106000
108000
110000Di
stan
ce T
rave
led
NaiveAR OnlyFlexible GridRP Only
(a) Skewed Queries
3 4 5 6 7 8 9 10Mobile Reader Speed (ft/s)
105000
110000
115000
120000
125000
Tota
l Dist
ance
Tra
vele
d
NaiveAR OnlyFlexible GridRP Only
(b) Uniform Queries
Fig. 3.5. Distance v. mobile reader speed for 1000 queries in a 1000 × 1000 warehouse with10000 RFID tags and 16 mobile readers connected through wireless base stations with a centralserver.
57
3 4 5 6 7 8 9 10Mobile Reader Speed (ft/s)
10
20
30
40Ti
me
(sec
onds
)
NaiveAR + RPAR OnlyFlexible GridRP OnlyRTC
(a) Skewed Queries
3 4 5 6 7 8 9 10Mobile Reader Speed (ft/s)
10
20
30
40
Tim
e (s
econ
ds)
NaiveAR + RPAR OnlyFlexible GridRP OnlyRTC
(b) Uniform Queries
Fig. 3.6. Time v. mobile reader speed for 1000 queries in a 1000 × 1000 warehouse with 10000RFID tags and 16 mobile readers connected via a multi-hop mesh network with no central server.
58
3 4 5 6 7 8 9 10Mobile Reader Speed (ft/s)
20000
40000
60000
80000
100000
120000
140000
160000
180000Di
stan
ce (f
t)NaiveAR + RPAR OnlyFlexible GridRP OnlyRTC
(a) Skewed Queries
3 4 5 6 7 8 9 10Mobile Reader Speed (ft/s)
20000
40000
60000
80000
100000
120000
140000
Dist
ance
(ft)
NaiveAR + RPAR OnlyFlexible GridRP OnlyRTC
(b) Uniform Queries
Fig. 3.7. Distance v. mobile reader speed for 1000 queries in a 1000 × 1000 warehouse with10000 RFID tags and 16 mobile readers connected via a multi-hop mesh network with no centralserver.
59
3 4 5 6 7 8 9 10Mobile Reader Speed (ft/s)
20000
40000
60000
80000
100000Se
cond
ary
Dist
ance
(fee
t)
NaiveAR + RPAR OnlyFlexible GridRP OnlyRTC
(a) Skewed Queries
3 4 5 6 7 8 9 10Mobile Reader Speed (ft/s)
20000
40000
60000
80000
100000
120000
Seco
ndar
y Di
stan
ce (f
t)
NaiveAR + RPAR OnlyFlexible GridRP OnlyRTC
(b) Uniform Queries
Fig. 3.8. Secondary distance v. mobile reader speed for 1000 queries in a 1000 × 1000 warehousewith 10000 RFID tags and 16 mobile readers connected via a multi-hop mesh network with nocentral server.
60
A
A B C
(a) Receiving the query
A
A B C
(b) Forward the query to B
A
A B C
(c) Forwarding the query to C
A
A B C
(d) Completing the query
Fig. 3.9. An example illustrating secondary distances. Robot A receives the initial query. It thenforwards the query to robot B, which eventually forwards the query to robot C. The distancesrobots B and C move, shown as solid lines in Figures 3.9(c) and 3.9(d), are secondary distances.
61
(a) Initial positions (b) Positions after 500 queries
(c) Final positions
Fig. 3.10. An illustration of the initial, midway, and final positions of readers running the naivealgorithm. This is a simplified diagram based on actual simulation results. Readers in the naivecase tend to cluster together in patterns that are inefficient for multi-hop use.
62
(a) Initial positions (b) Positions after 500 queries
(c) Final positions
Fig. 3.11. An illustration of the initial, midway, and final positions of readers running theflexible grid algorithm. This is a simplified diagram based on actual simulation results. Readersin the flexible grid case are distributed more evenly and eventually settle into positions that arevery efficient for multi-hop use.
63
Chapter 4
Conclusion
RFID has seen widespread acceptance as a means of tracking inventory in warehouses, but
technological limitations have prevented its use in real-time inventory tracking. We presented two
methods of adopting both newer active RFID technology and existing passive RFID technology
to real-time inventory systems. Key to both of these solutions is the use of a mobile robot to
compensate for RFID’s weaknesses. In our active tag system, we used a mobile reader to reduce
reliance on a mesh network formed by active RFID tags. While the mesh network alone is
sufficient to enable real-time inventory tracking, the addition of a mobile reader gave the system
the flexibility to optimize and reduce overall power consumption while maintaining lower latency
than a robot-only design.
Mobile readers were also vital in the design of our passive RFID system. Using mobile
readers we were able to overcome the severe limitations on capabilities that prevent passive RFID
tags from being used in more complex systems. In particular, mobile readers allowed us to treat
passive RFID tags as part of a larger network formed by other readers. We presented systems
using either readers that were able to connect to a base station for query dissemination and
coordination or readers connecting to each other via a multi-hop ad-hoc network with discon-
nections. In the fully connected base station case we found that the naive algorithm for reader
scheduling and movement performed best, while in the multi-hop case our flexible grid algorithm
outperformed the other algorithms we designed by up to 80%.
The active and passive tag systems both take advantage of mobile robots to expand the
use of RFID tags beyond their inherent limitations. In the active tag system the expanded
power supply of the reader enabled the design of a long-term inventory system that was not as
64
dependent on battery life as an active tag-only system. In the passive tag system the mobility
and networking capabilities of the reader automated the human component of reading passive
RFID tags and allowed the design of a versatile inventory system that does not require a large
amount of infrastructure to operate. In both cases a multi-modal approach to the problem gave
rise to new design possibilities their ensuing solutions.
Both systems presented in this thesis only scratch the surface of what is possible with
their respective technologies. In the active tag system, much work can be done in the area
of complex queries. We only briefly introduced them here, but we anticipate that algorithms
for solving complex queries will be difficult to find and optimize. Furthermore, our design was
limited to one mobile reader; system response time could be improved by using multiple readers,
or a combination of fixed and mobile readers. With multiple readers the problem of resolving
complex queries becomes even more interesting.
There are also a number of future steps for our passive tag system. Although we tried
many variations of algorithms, we were unable to find an algorithm that performed uniformly
better than the naive algorithm in the fully connected case. Finding such an algorithm is one
potential path for future work, as is attempting to formalize the system to find provably optimal
algorithms. As mentioned in Chapter 3, we assume the location of the tag is known to the
reader. This is a strong assumption to make and work is in progress on designing centralized and
peer-to-peer caches that would eliminate this requirement.
RFID tags and readers and mobile, semi-autonomous robots have both been used exten-
sively in warehouses. By combining the two we were able to design novel methods to overcome
long-standing limitations of both technologies. Although we present many concrete algorithms
and solutions, our most important insight is simple and abstract: the sum is greater than the
whole of its parts.
65
References
[1] (2007, January) Crossbow technology. [Online]. Available: http://www.xbow.com/Home/
HomePage.aspx
[2] S. Vasudevan, J. Kurose, and D. Towsley, “Design and analysis of a leader election algorithm
for mobile ad hoc networks,” in the proceedings of the 12th IEEE International Conference
on Network Protocols (ICNP’04), 2004, pp. 350–360.
[3] R. Gallager, P. Humblet, and P. Spira, “A distributed algorithm for minimum-weight spanning
trees,” ACM Trans. Program. Lang. Syst., vol. 5, no. 1, pp. 66–77, 1983.
[4] W. Zhang, G. Cao, and T. L. Porta, “Data dissemination with ring-based index for wireless
sensor networks,” in the proceedings of the 11th IEEE International Conference on Network
Protocols (ICNP’03), 2003, p. 305.
[5] (January, 2007) Tinyos community forum. [Online]. Available: http://www.tinyos.net/
[6] G. Zipf, Human Behavior and the Principle of Least Effort. Addison-Wesley, 1949.