Mobile RFID System for Inventory Automation by JinHock Ong Submitted to the Department of Electrical Engineering and Computer Science in partial fulfillment of the requirements for the degree of Masters Of Engineering in Electrical Engineering and Computer Science at the MASSACHUSETTS INSTITUTE OF TECHNOLOGY February 2008 @ Massachusetts Institute of Technology 2008. All rights reserved. ................... ............ Author .. .......... . . Department of Electrical Engineering and Computer Science January 29, 2008 iz Certified by......... C---'I Abel Sanchez Research Scientist Thesis Supervisor Accepted by Arthur C. Smith Chairman, Department Committee on Graduate Students 13 2008 I No L\Bs1RARIES BARKER Mobile RFID System for Inventory Automation by JinHock Ong Submitted to the Department of Electrical Engineering and Computer Science on January 18, 2007, in partial fulfillment of the requirements for the degree of Masters Of Engineering in Electrical Engineering and Computer Science Abstract As RFID technology proliferates within the industry, more added value applications employing RFID technology are being created. One main application is inventory tracking where RFID technology is used to create a visibility of goods flowing through the supply chain. This thesis discusses the high-level design considerations and implementation challenges of a mobile RFID system to aid inventory automation in an enclosed environment such as a warehouse. Multiple simulations, employing probabilistic-like algorithm for navigation decision, was also conducted to visualize the feasibility of the system. An autonomous vehicle carrying an RFID reader is also implemented to test hardware reliability and the feasibility of a grounded robot to perform inventory in a three dimensional space. Thesis Supervisor: John Williams Title: Associate Professor Thesis Supervisor: Abel Sanchez Title: Research Scientist 3 4 Acknowledgments This project would not be possible without the encouragement, support and guidance of many people. I would like to acknowledge these people, although the list below is not a complete one. I would like to thank Dr. Abel Sanchez and Professor John Williams for providing me the opportunity to work at Auto-ID Labs. I am very grateful to be able to work with Dr Sanchez who has been very thoughtful of his students. I also would like to mention my colleagues, Sergio Herrero, Fivos Constantinous, Indy Yu, Diana Aude, Monica Sun, and Ane Fabo Aranzabal who have created a fun environment to work in, the suggestions and all the help for completing my project. I would also like to thank the Public Service Department of Malaysia for funding the four years of my undergraduate education at MIT. Without this funding, my dreams of pursuing an engineering degree at MIT would not be realized. Through discussions, my friends, particularly ChengHau Tong,Richard Sinn, Christian Deonier, Tri Ngo, Lauren Cooney, Zach Gazak and Joel Yang, has inspired and given me ideas for my project. I am also thankful for my girlfriend, Rachael Choong, for everything. Last but not least, I would like to thank my parents who have contributed tremendously to my being today. They have not only given me advice and love, but also the freedom to pursue my dreams. 5 6 Contents 1 2 Introduction 15 1.1 Mobile RFID System . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.2 Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Related Work RFID Technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.1.1 RFID Software Stack . . . . . . . . . . . . . . . . . . . . . . . 20 2.2 Unmanned-Aerial-Vehicle . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.3 Existing Location Sensing Technology . . . . . . . . . . . . . . . . . . 22 2.1 3 High Level Design 3.1 3.2 3.3 4 19 General Issues . .. 25 . . . . . . . . . . . . . . . . ... 25 3.1.1 Measuring Performance and Determining Task Completion 25 3.1.2 Task Distribution . . . . . . . . . . . . . . . . 26 3.1.3 Localization and Navigation Reference . . . . 27 Hardware Challenges . . . . . . . . . . . . . . . . . . 28 3.2.1 Helicopter Payload and Power Consumption . 28 3.2.2 Navigation Sensors . . . . . . . . . . . . . . . 28 3.2.3 RFID-Reader Constraints . . . . . . . . . . . 29 Software Challenges . . . . . . . . . . . . . . . . . . . 30 3.3.1 30 Machine Learning and Artificial Intelligence Initial Simulation 33 7 5 6 4.1 M otivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.2 Units and Simulation Parameters . . . . . . . . . . . . . . . . . . . . 33 4.3 Simulation Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.4 Semi Probabilistic Navigation Algorithm . . . . . . . . . . . . . . . . 35 4.5 Initial Simulation Results 35 4.6 Result Summary and System Viability . . . . . . . . . . . . . . . . . 38 Hardware Platform 41 5.1 Overall Hardware Configuration . . . . . . . . . . . . . . . . . . . . . 41 5.2 Windows CE 6.0 OS Design and eBox 2300 . . . . . . . . . . . . . . . 42 5.3 R01 Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 5.4 R01 Calibration and Debugging Interface . . . . . . . . . . . . . . . . 45 5.5 Phidgets Interface Kit 46 5.6 Phidgets Servo Controller . . . . . . . . . . . . . . . . . . . . . . . . 47 5.7 Sensor Choice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 5.7.1 Infrared Sensor- Sharp GP2D12 . . . . . . . . . . . . . . . . . 48 5.7.2 Gyroscope-Analog Devices ADXRS300 . . . . . . . . . . . . . 49 5.7.3 Accelerometer - Analog Devices Dual-Axis Accelerometer ADXL202E 50 . . . . . . . . . . . . . . . . . . . . . . . . . . 5.8 RFID Reader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 5.9 Wireless Communication . . . . . . . . . . . . . . . . . . . . . . . . . 52 Other Applications 6.1 6.2 7 . . . . . . . . . . . . . . . . . . . . . . . . RFID at Home 55 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 6.1.1 Inventory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 6.1.2 RFID Locator . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 6.1.3 Smart Appliances . . . . . . . . . . . . . . . . . . . . . . . . . 58 Automated Tour Guide using RFID local knowledge . . . . . . . . . . 60 Discussion and Conclusion 63 7.1 D iscussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 7.2 C onclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 8 67 A Mercury4e Class Library 9 10 List of Figures 2-1 MIT Auto-ID Labs' stack of open source software. The diagram is provided by Dr Abel Sanchez. . . . . . . . . . . . . . . . . . . . . . . 21 3-1 Possible task distribution in multiple UAV operation. . . . . . . . . . 27 3-2 Asymmetrical RFID reader placement are more beneficial since it pro. . . . . . . . . . . . . . . . . . . . . . . . . 29 4-1 UAV simulation implemented with XNA framework. . . . . . . . . . . 34 4-2 UAV FSM Implementing Probabilistic Algorithm . . . . . . . . . . . 36 4-3 Simulated warehouse layout. . . . . . . . . . . . . . . . . . . . . . . . 36 4-4 Completion versus Time (6 UAVs deployed). . . . . . . . . . . . . . . 37 4-5 Completion versus Time (Unbounded). . . . . . . . . . . . . . . . . . 38 4-6 Average completion versus number of UAVs. . . . . . . . . . . . . . . 39 4-7 Two-dimensional trajectory of one of the monitored UAVs. . . . . . . 39 5-1 R01: Autonomous Mobile Reader . . . . . . . . . . . . . . . . . . . . 42 5-2 Hardware Configuration . . . . . . . . . . . . . . . . . . . . . . . . . 43 5-3 R01 Program Class Diagram . . . . . . . . . . . . . . . . . . . . . . . 45 5-4 ROl Debugging and Calibration Interface . . . . . . . . . . . . . . . . 46 5-5 Phidgets Interface Kit- intermediary circuit board to host digital and vides longer read range. analog sensors. 5-6 5-7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Phidgets Servo Controller- intermediary circuit board to control the steering motor and the digital motors by generating PWM signals. . 48 Triangulation detection mechanism of Sharp GP2D12 IR sensor. . 49 11 . 5-8 Mercury4e class library class diagram. 5-9 HTTP Post client to communicate with ROl through the Internet. 6-1 A rotating RFID reader antenna will allow the autonomous vehicle to . . . . . . . . . . . . . . . . . redirect the electro-magnetic waves in all direction. 6-2 . . . . . . . . . . . . 53 56 A metallic surface may prevent the RFID reader from reading an RFID tag even though the tag is within the read range of the RFID reader. 6-3 52 58 Navigating using RFID track: when the robot encounters tag corresponding to the outer track, it will trigger the robot to return the middle track. This will avoid the robot from navigating away from the intended route. ........ .............................. 12 60 List of Tables 5.1 Selected Operating System Components in R01 implementation. 5.2 Analog Devices gyroscope's electrical characteristic. 5.3 Analog Devices dual-axis accelerometer's electrical characteristic. . 51 7.1 Comparison of RFID and RuBee system. . . . . . . . . . . . . . . . . 64 A. 1 RFID reader functions implemented in .NET library. 68 13 . 44 . . . . . . . . . . . . . . . . . . . . . 50 14 Chapter 1 Introduction Radio-frequency identification (RFID) is an automatic identification method that relies on radio signal. RFID tag (also known as transponder) is comparable to bar code; however, unlike bar code, RFID tag does not require line of sight for an RFID reader (also known as interrogator) to detect. There are two types of RFID tags: active and passive. Active tags have built in battery which usually last five years while passive tags harvest energy from radio waves of the RFID readers. Depending on the frequency of the RFID system, high frequency RFID readers allow detection at longer range. Currently, the three main frequency categories include Low Frequency (LF), High Frequency (HF) and Ultra High Frequency (UHF). EPC network has also been proposed to complement RFID technology and ensure interoperability . The network will allow information sharing throughout all levels of the supply chain. The convenience of RFID technology reduces warehouse operation time and increases inventory accuracy. This allows manufacturers, distributors and retailers to reorder stock more efficiently. Moreover, tracking stock through supply chain is also easier, allowing distributor or manufacturer to prepare for incoming shipment better. Even though RFID is often perceived as a replacement for bar code, a number of creative applications beyond the supply chain, using RFID technology, have been introduced. A sushi restaurant in Japan has been tagging serving plates with RFID tags. 15 Plates of sushi are usually put on a conveyor belt around the seating area where customers can pick from. Plates are usually colored corresponding to the price of the dish. Previously, a waiter or a waitress computed customers' total cost by counting the different plates. With RFID technology, the waiter or waitress can scan the plates with an RFID reader to determine the total. A few companies have also introduced RFID mirrors, usually used in fitting rooms of fashion boutiques. When a potential customer wears an RFID-tagged piece of clothing, the mirror will display additional information such as size, brand, material and other matching clothing. The mirror may also provide option to the customer to request a different size of the same clothing. The RFID mirror not only attempts to persuade a potential customer to purchase an item but also provides an engaging experience for the customer to stay longer. Generally, RFID is widely used as location sensing tool particularly among the retail, aerospace, defense, pharmaceutical, supply chain and manufacturing industry. 1.1 Mobile RFID System In supply chain flow, inventory shrinkage due to unaccounted stock is not uncommon. Accuracy of inventory can help reduce the profit loss due to this form of inventory shrinkage [12] [8]. While early adopters have started employing RFID technology in their supply chain flow, many are still questioning the return-of-investment of RFID technology. Over-the-air signal interference and the potentially high velocity of moving RFID tags when stock first arrive or leave the warehouse may affect the performance of RFID readers [5]. Moreover, cost is also a major impeding factor to RFID adoption. This project proposes a mobile RFID system to automate inventory counting and thus reducing the cost of deploying RFID readers in a warehouse. These mobile RFID readers are carried by unmanned-aerial-vehicle (UAV) to perform inventory counting after stock has been transferred to shelving areas. This will reduce the probability of unaccounted stock based on Equation 1.1. 16 Pr(ie) = Pr(rd)* Pr(sd) * Pr(sa) (1.1) Pr(ie) represents the probability of inventory error, Pr(rd) represents the probability of missed RFID readings at receiving dock, Pr(sd) represents the probability of missed RFID readings at shipping dock and Pr(sa) represents the probability of the mobile RFID-readers' failure to discover the stocks at shelving area. Since each probability is always less than one, the proposed system will decrease the probability of inventory error. Moreover, with constant monitoring from the UAVs, the proposed system will also provide inventory visibility. While there are existing robots designed to cover two-dimensional space such as iRobot's Roomba, none has been designed to cover three-dimensional space which is required for inventory tracking. Uneven terrain in a warehouse and items stored at higher shelves, unreachable to a grounded robot, trigger the need for a flying system. However, the capability to traverse a 3D path is not sufficient to perform inventory. An exhaustive method would require the multi-UAV system to cover all possible spaces to determine the correct number of items in a warehouse. Equipped with a RFID reader that has a limited reach range, the UAVs may be required to retain information of its trajectory and not just programmed to reach a destination. Moreover, dynamic obstacles have to be taken into account when designing the UAV system. Nevertheless, the multi-UAV system is not the sole solution to this three-dimensional problem. Warehouse can deploy many RFID readers around the warehouse such that the RFID-reader read-range can cover the entire warehouse. There has also been new technology that allows many antennas to connect to one RFID-Reader. The multi-UAV system however, provides flexibility to accommodate changing warehouse layout which static RFID-reader deployment does not. Apart from performing inventory, the multi-UAV system will also allow spatial tracking of items in a warehouse. Once deployed, the helicopters can also perform other tasks such as security, surveillance and other sensing such as air pressure and 17 room temperature. 1.2 Organization This remainder of this thesis is organized as follows. Chapter 2 summarizes previous work that can be leveraged for this project. Chapter 3 describes the high-level design consideration and potential challenges that may arise. Chapter 4 details the simulation conducted as a preliminary analysis of this problem while Chapter 5 introduces a grounded robot built to test hardware reliability. Chapter 6 discusses other possible application utilizing RFID technology. Finally, Chapter 7 concludes the finding of this paper and a brief description of future work to follow. 18 Chapter 2 Related Work Previous work in the field of autonomous flight control, artificial intelligence, selflocalization, machine learning, and RFID hardware simulation has made the inventory automation project more viable and manageable. 2.1 RFID Technology The size of RFID readers is becoming smaller, thus improving mobility. RFID tag size is also decreasing, with the smallest in the range of sub-millimeter. The small size of the RFID reader makes it possible for small scale robots to support the payload. With UHF and Microwave frequencies, the read range of RFID readers has also improved. The long range allows the robot to detect RFID-tagged items from a considerable distance. Newer RFID readers also provide the options to reduce power to the antenna and consequently a shorter read range. A shorter read range provides better information of the RFID-tagged item's position and also reduces interference from metallic items in the environment. Studies have been done on RFID-Reader collision problem by Auto-ID Center at MIT [51 and other research institutes. These studies can be used to analyze RFIDReader behavior and determining simulation parameters when modeling a RFIDreader apart from solving the RFID reader collision problem. 19 The presence of multiple RFID readers may cause interference and cause none of the readers to detect the RFID tags. A technique called (TDMA) Time Division Multiple Access is often used to avoid interference and collision between overlapping readers. The RFID readers employing TDMA are programmed to read at fractionally different times using specific algorithm to ensure no RFID readers attempt to read simultaneously. However, multiple RFID tags in a single location will not cause interference for the RFID reader, In fact, a single RFID reader can read multiple tags, up to hundreds depending on the reader, within one second. 2.1.1 RFID Software Stack MIT Auto-ID Labs has also introduced a stack of open source software solutions for RFID and sensors network [9]. The software includes ePedigree, Discovery, Object Naming Service(ONS), EPC Information System(EPCIS), Application Level Events(ALE), Low Level Reader Protocol(LLRP), and Tag Data Translation(TDT). Each software solution's functionality is summarized in Figure 2-1. Pedigree is an XML document associated to each RFID tag, documenting the history of the RFID tags. In other words, Pedigree tracks the origins of an RFIDtagged item as it moves across the supply chain. Pedigree can be used to determine the authenticity of a product, especially drugs and luxury items. ONS is comparable to Internet's DNS. ONS list all servers that may contain information on certain EPC. Thus, when a retailer encounters an RFID tag, ONS will be able to redirect the retailer to the manufacturer's website for additional information based on the EPC's unique ID. Conforming to EPC Global standards, each RFID tag contains manufacturer, model number and serial number information. ONS may also point to the manufacturer's EPCIS service. EPCIS essentially is a database specific to EPC events and processes. Since RFID tag only represents a unique ID, these software solutions can be used to discover more information and history based on the unique ID. 20 Pedigree Discovery Who touched the tag Who touched the tag and their APIs 0 z ONS Who owns the tag 0) 0Z Cw EPCIS ALE Share/capture tag data See the tag Tag Dr. Abel Sanchez Figure 2-1: MIT Auto-ID Labs' stack of open source software. The diagram is provided by Dr Abel Sanchez. 2.2 Unmanned-Aerial-Vehicle The Aero-Astro Controls Laboratory at Massachusetts Institute of Technology (MIT) has been working on autonomous helicopters that are capable of tracking a moving radio-controlled car in coordinated swarms [4]. In this project, stable flight control and swarm-like communication was achieved. Omead Amidi from Carnegie Mellon Universitys Electrical and Computer Engineering department has also integrated cameras into his UAV system to develop vision guided autonomous helicopter[1]. University of Technology Sydney also implemented UAV systems which can self-localized using computer vision [11].Work in these areas can be leveraged to quickly setup a group of autonomous helicopters. 21 2.3 Existing Location Sensing Technology Location Sensing Technology is often used to track expensive items such as vehicles and computers. Industries using Real-Time Location System include health care, transportation and distribution, shipping, manufacturing, mining and chemicals. Health care is using RTLS to locate staff, patients, visitors and assets. In transportation and distribution industry, real-time location system can be used to determine the time of arrival of shipments and consequently a better a better management of workforce to handle the incoming shipments. Many existing Real-Time Location Systems are already commercially available. Some of the more popular ones include active RFID tags, radio beacon tracking system, wireless local area network, ultrasonic identification, and ultra wide band systems. Ubisense implements real-time location system utilizing ultra wide band technology. The system is reported to produce location information up to 15 cm three dimensional accuracy. Using four sensors, an area of 400m 2 can be covered. The system determines the location of the tagged item based on the time difference of arrival of signal and also angle of arrival. AT & T Bat system employs active ultra-sonic badges which requires the installation of Microsoft Research's Radar utilizing ambient Wifi-Signal (wigle.net provides a database of Wireless-Network points) Real time location system performance can be measured based on two factors, granularity and currency. Granularity refers to how accurate an item can be located while currency refers to how updated the information retrieved from the RTSL system is. Lo-Jack, a Real Time Location System, can provide accuracy of less than one meter and send out a two hundred millisecond signal once every second. Therefore, Lo-Jack is a high-performance Real Time Location System based on these two factors. However, since Lo-Jack is designed to notify police when the transmitter is activated, the user is unable to track the items themselves. It will become inconvenient for users 22 who want to track misplaced items such as keys and wallets with Lo-Jack. Currently, Lo-Jack is an expensive device and may not be practical many lower cost items. 23 24 Chapter 3 High Level Design 3.1 3.1.1 General Issues Measuring Performance and Determining Task Completion Currently, achieving 100% RFID read rate within a warehouse is still a challenge. Even with an extremely clever design, it is not guaranteed that the system will be able to detect all the EPCs within the warehouse. RFID-reader collision, non-guarantee of reads, and other unpredictable variables such as dynamic obstacles will contribute to the probability of fail positives. Since the main goal of this system is to reduce the probability of a lost item in supply chain flow, we can model a performance metric as a conditional probability. The probability of a loss item during supply chain flow depends on the probability of accurately shipping the right number of items per-shipment. It is possible during a transaction that items are over-shipped or under-shipped. Consequently, knowing the probability that an item is no longer in a warehouse given that it should have been shipped can give us an insight on how an item is lost in the supply chain flow. Thus, a good system is a system that can guarantee the highest probability that its inventory report is absolutely accurate. An example performance formula is shown below where X is the number of EPCs found by the system and x is the real number 25 of EPCs in the warehouse. Performance = Pr(X = xix) (3.1) However, the method of determining the value of x, the real number of EPCs in the warehouse will have to be addressed since our problem stems from the fact that we cannot determine the actual number of items in a warehouse in the first place. For simplicity, we can estimate x from purchase orders assuming no orders are short upon arrival. Thus determining a performance-metric for this system is non-trivial and may require a business-rule model. 3.1.2 Task Distribution Size of target space and the maximum velocity a UAV determine the minimum number of UAVs is required to cover the target space. Consider this simple scenario; a warehouse has a dimension of 200 meters by 60 meters, and a UAV travels at 0.4485 m/s or 1.6146 km/h, carrying a RFID-reader with 2 meter read range. It takes at least twenty five minutes and twenty five seconds to cover this two dimensional space. Thus it is impossible for one UAV to cover a three-dimensional space within one flight cycle of 12 minutes. From initial simulation, it is observed that performance (percent completion given time duration) increases almost linearly with the number of UAVs even under probabilistic algorithm navigation. To further increase the efficiency of the system, the UAVs can cooperate and communicate to distribute their coverage more efficiently. Three possible UAV-distributions will be considered for the design of this system: zone distribution, swarm distribution and zonal swarm distribution (Figure 3-1). The potential trade-off between each distribution is efficiency versus simplicity. For instance, it may be more efficient to deploy the UAVs as a three-dimensional swarm. However, swarm coordination will require constant communication between the UAVs and hence a more sophisticated design. 26 Ur7- U Swarm Zone UAV Shelves Figure 3-1: Possible task distribution in multiple UAV operation. 3.1.3 Localization and Navigation Reference Meaningful cooperation between UAVs to distribute area-coverage will require selflocalization. Even though GPS technology typically has very poor indoor perfor- mance, a lot of work of has been done on utilizing GPS for indoor localization. One such technology is called Pseudolites which provide up to centimeter accuracy [2]. An alternative to using GPS for localization is to place static benchmarking tags in a warehouse which the UAVs can relate to as a point of reference. By keeping track of its velocity and orientation, the UAV can deduce its position with reference to the benchmarking tags. The placement of these benchmarking tags and the amount to deploy will have to be addressed in the design. Another alternative is to use the RFID tags on stock items as a navigation reference. This design will assume that the stock items are static during the UAV operation. This design however may prevent the UAVs from performing machine 27 learning based on its trajectory history since the navigation reference will change frequently depending on the warehouse stock flow. 3.2 Hardware Challenges 3.2.1 Helicopter Payload and Power Consumption One of the major design problems for the system is to determine the right flight hardware. A hobbyist radio controlled four-rotor helicopter, commercially sold as DraganFly, has been chosen as the starting hardware to build the UAV. With the ability to hover, a helicopter provides an easier flight control than a radio controlled airplane. However, most hobbyist radio-controlled helicopters are not designed to carry a heavy payload. The design has to take helicopter payload into account when determining navigation sensors, on-board processor choice, and RFID-reader type. Moreover, with more devices, it is more likely that more power will be needed. The DraganFly battery allows a flight time of about 12 minutes. If other devices such as sensors and RFID reader share the helicopter's power supply, the flight time will be shortened. At the same time, the weight of an extra power supply will further reduce the payload of the helicopter. 3.2.2 Navigation Sensors Due to the limited payload of a helicopter, sensor choice is critical to the viability of a UAV. At minimum, the helicopters will need sonar sensors and altimeters to detect obstacles and to avoid crashing when landing. Other helpful sensors for autonomous flight control include digital compass for navigation and MEMS sensors which include gyroscopes and accelerometers for balancing and determining velocity. 28 3.2.3 RFID-Reader Constraints It is obvious that a low-powered and lighter RFID-reader is preferred. However, other RFID-reader's parameters, such as reads-per-second and read-range, also affect UAV flight-control and algorithm. A low reads-per-second will slow down the velocity of the UAV to ensure RFID tags can be read by the RFID-reader. Short read-range will also force the UAV to fly nearer to the shelves, which increases the probability of unwanted contact with obstacles. Moreover, swarm movement of UAVs may also create RFID-reader collision where one RFID-reader radio signal will interfere with another's due to the shared space of their coverage. Thus, depending on the RFID-Reader read-range, asymmetrically placed RFID-Reader on the UAV will probably perform better than a centrically placed RFID-reader (Figure 3-2). D s Sz distance between shelves N Figure 3-2: Asymmetrical RFID reader placement are more beneficial since it provides longer read range. The distance between shelves in a warehouse typically ranges from 6 feet to 10 feet 29 [10]. Unless, the RFID-reader read range is more than 18 feet (assuming each shelf is 4 feet in depth), the UAV will never be able to read the items on two opposite shelves simultaneously. Thus, a centrically placed RFID-reader is only helpful in balancing the UAV. 3.3 3.3.1 Software Challenges Machine Learning and Artificial Intelligence Robots are often associated with artificial intelligence. While, the UAVs are assigned a very specific task of covering a warehouse searching for RFID tags, the UAVs cannot be programmed to follow a specific path because different warehouses have different layouts. Warehouses may also change their layouts periodically based on business needs. Thus, machine learning and artificial intelligence is required to allow the UAVs to make clever path decision and adapt to unfamiliar environment and dynamic obstacles. Artificial intelligence can also help the UAVs optimized their path decisions to minimize the amount of time used to complete the task based on previous trajectory pattern. The UAVs will be required to process all its sensor data in parallel to avoid any crashes. Apart from processing sensor data, the UAVs will also need to make other calculations to determine the navigation direction and communication with other UAVs. Thus, multi-threading programming is needed in designing the UAV system. However, not all threads are equally important in terms of processor-time allocation. Intuitively, sensor data management should be prioritized to avoid UAV crashes and to maintain stable flight control. To regulate the complexity of multi-thread programming, the design will most likely utilize Microsoft's Coordination and Concurrency Runtime (CCR) framework. Microsoft has also provided a robotic programming platform called Microsoft Robotic Studio with utilizes the CCR framework. 30 Data Management and communication Protocol Each UAV will be reading a lot of data particularly from its sensors and RFID-reader during operation. RFID readers do not filter repetitive reads; duplicate filtering is usually done at the software level. Thus, the UAVs will probably need to send RFIDreads to a database, such as an EPCIS (EPC Information Services) server, periodically to handle a potentially massive amount of data collected. The design of this system should also consider what data the UAV should keep, to be used for navigation and path decision, and which data to transfer to a database. The system will implement an 802.11 wireless communication protocol to relay data back to a database and as a channel to communicate to other UAVs if necessary. 31 32 Chapter 4 Initial Simulation 4.1 Motivation Autonomous flight control is not trivial; to avoid unwanted hardware destruction during testing, a simulation framework has been setup to analyze any algorithms to be implemented. Moreover, this initial simulation will also provide a benchmark for future work to improve on. Due to the three-dimensional nature of the problem, a three- dimensional graphical simulator framework (Figure 4-1) has been designed using Microsoft XNA framework to represent a real warehouse. The simulator tracks the progress of the UAVs and the path traversed by logging, in an Excel file, the number of the RFID tags read and the points where the UAVs make a decision. 4.2 Units and Simulation Parameters Real world measurements are translated to simulation units using the dimension of the DraganFly radio controlled helicopters as a reference. A 3D model representing the DraganFly helicopter can be bounded by a cube of 42 units. Representing the Draganfly helicopter which has real dimension of approximately 82 cm by 82 centimeters, 1 simulation unit corresponds to approximately 1.95 centimeters. Thus, a 60 x 60 x 60 unit box in the simulation would correspond to a 1.17 33 Figure 4-1: UAV simulation implemented with XNA framework. x 1.17 x 1.17 meter box in the real world. Velocity of the simulated UAV is set at 0.4485 m/s or approximately 1 mph. The Draganfly RC helicopter is claimed to have a maximum speed of 20 mph. XNA framework keeps track of the total real time elapsed since the start of the program and the time elapsed after each update cycle, up to one millisecond accuracy. The simulation time is conveniently based on XNA framework's game time parameter. 4.3 Simulation Assumptions For simplicity, the RFID reader attached to the simulated UAVs are assumed to have a 100% read-guarantee when EPC tags are within the read-range of the RFID reader. It is also assumed that RFID collision between readers are being handled using time 34 division multiple access (TDMA) [3]. The simulated RFID-readers are centrically placed and have a read-range of 3.9 meter radius. Sensors are also modeled as an abstraction of their functions. Probability of signal drifts and noise are not taken into account in the initial simulation. Even though there are more than one UAV deployed in some of the initial tests, the UAVs navigate independently and do not communicate with each other. However, the UAVs can detect other UAVs when in proximity and will avoid any collision. Based on experiment results, these assumptions will be changed accordingly in future iterations. 4.4 Semi Probabilistic Navigation Algorithm In the initial simulation, the UAVs are programmed to move in a vertical zigzag motion to cover three-dimensional space. The UAVs are also programmed to navigate using probabilistic-like or randomized algorithm when encounter an obstacle. The UAV will also change its direction when the RFID reader it carries has not read any EPC for more than ten seconds. The direction decision is shown in the formula below. Yawn = Random(-175, 175) (4.1) The UAV will rotate at any integer angle value ranging from -175 degrees to +175 degrees. The integer value is generated using .NET's Random class, which generates a pseudo-random number. For simulation purposes, we will assume this pseudo-random number as random. The probabilistic algorithm will approximate an expected performance or runtime for this system. The finite state diagram in Figure 4-2 shows the states that each UAV will iterate when in autonomous mode. 4.5 Initial Simulation Results A series of test, recording task-completion statistics and the trajectory of one of the UAVs were executed to determine the expected runtime. The simulation scenario sets 35 ~ V 5q4Dtt~tI~ Mo~*~a~wm~ j j / k,'- Rota" ...... ----------.............. Figure 4-2: UAV FSM Implementing Probabilistic Algorithm up a 195 x 66.5 meters warehouse containing twelve five-tiered shelves, measuring 50 meters wide and 5 meters deep, arranged in a layout shown in Figure 4-3.The RFIDreader carried by the UAV has a read-range of 3.9 meters or approximately 12 feet. 616 boxes, measuring 1.17 x 1.17 x 1.17 meters, were randomly placed on all the shelves. '_F I. I ......... X .... . ..... Figure 4-3: Simulated warehouse layout. The first series of test were bounded within a time limit of 12 minutes, the average flight time of commercial radio-controlled helicopters. Six independent UAVs were deployed. The UAVs collectively fails to complete the task of finding all the EPCs in the warehouse within the 12 minute duration. 36 The progress (fraction of EPCs tags read) shown in Figure 4-4 below can be modeled as a logarithmic function. It is intuitively obvious that the rate of finding new tags will decrease as time progresses given a probabilistic navigation algorithm. Completion vs Time 100 80 S60 60 0-Seriesl 40 Seres2 20 - -Series3 - 0 d Series4 o Figure 4-4: Completion versus Time (6 UAVs deployed). Another series of tests, but with a time limit of 60 minutes and six independent UAVs deployed, were executed. All three tests in this series show that the group of six UAVs successfully found all the EPCs after a minimum duration of 27 minutes. The rate of completion versus time is plotted in Figure 4-5. Five more series of tests were then executed, with a decreasing number of UAVs deployed in each series. Six tests were run in each series and an average completion (fraction of total EPCs read) in twelve minute duration were calculated. With only one UAV deployed, the average completion rate is 54.83% while when five UAVs were deployed, an average of 90% completion rate was achieved. Surprisingly, even though there was no cooperation between the UAVs, the increase in completion rate with number of UAVs is almost linear. Figure 4-7 shows a two-dimensional trajectory of one of the UAVs during a twelveminute duration operation. Even though the UAV may repetitively end up in the same location on the graph, its vertical position may be different each time. Thus, the redundancy may not be as much as it appears. 37 100 - - 60 40 20 -4-Serhe s - -- -- -- -- -- __ - Series3 Log. (Series3) -20 0 0 QC0 _F O IeO * O rro r' Figure 4-5: Completion versus Time (Unbounded). However, as more UAVs are deployed, the probability of one UAV going to a spot that has been covered by another UAV increases. It has not been determined if this redundancy is unfavorable since a UAV may fail to read an RFID tag even though the tag is within the RFID-reader read-range. 4.6 Result Summary and System Viability From initial analysis, it appears very promising that given a more clever design and/or the right number of UAVs deployed, a group of UAVs will be able to complete its task of covering a warehouse within one flight cycle of 12 minutes. Using helicopters that have a longer flight time, the number of helicopters needed can be reduced. Even though the initial simulation provides an insight of the viability of creating a multi-UAV system to cover a three-dimensional space, the simulation assumptions are overly optimistic. Thus, we should expect a decrease of performance when accounting all other simulation variables such as signal drift and RFID reader's fail-to-read probability. 38 100 90 70 60 E - 50 - -Average 30 20 . minut s 10 0 1 2 4 3 5 Numberof UAVs Figure 4-6: Average completion versus number of UAVs. -4000 0 -2000 4000 6000 29 Figure 4-7: Two-dimensional trajectory of one of the monitored UAVs. 39 40 Chapter 5 Hardware Platform To test hardware and software reliability, a grounded autonomous vehicle was assembled. The autonomous vehicle, named R01 (Figure 5-1), is designed to scavenge RFID tags in an unknown environment. Hosting a custom web server, R01 can be triggered and controlled from anywhere through a web-browser. The grounded robot can also be used to determine the feasibility of a grounded robot performing inventory in a three dimensional space. A web browser client is implemented to control R01 remotely and poll the sensors attached to the vehicle. 5.1 Overall Hardware Configuration R01 is assembled using mostly off-the-shelf components to reduce development time. The components are hosted on the chassis of eMaxx remote control monster truck. The radio control components were removed from the eMaxx and replaced with manual controllers. The components configuration are shown in Figure 5-2. The autonomous vehicle uses eBox2300 as its main processor. Attached through two USB ports are Phidgets Interface Kit and Phidgets Servo Controller. The Phidgets Interface Kit is used to host analog and digital sensors while the Servo Controller is used to control the steering servo and motors on the eMaxx. R01 carries ThingMagic's Mercury4e RFID reader, connected to the eBox2300's 41 Figure 5-1: R01: Autonomous Mobile Reader serial port. The antenna of the RFID reader is attached to the front of the chassis. The sensors hosted on the Phidgets Interface Kit include two infra-red sensors for obstacle detection, a gyroscope and two-axis accelerometer for tracking the path traversed. 5.2 Windows CE 6.0 OS Design and eBox 2300 R01 carries a compact PC, eBox-2300, an embedded system built on Vortex86 SystemOn-Chip technology, with 128MB of system memory. The eBox-2300 compact PC also has integrated Audio (microphone in headphones out), an Ethernet port, two Serial ports, VGA output, two USB ports and 256MB IDE bootable flash storage. The eBox-2300 can either boot from the flash storage, a bootable USB drive or a bootable compact flash storage. The eBox-2300 on R01 also has the optional wireless 42 eMax Monster Truck Serial port COMI USB 'B Figure 5-2: Hardware Configuration internet capability to allow a truly mobile platform. The eBox-2300 is preloaded with Windows CE 6.0. However, the driver for the optional wireless card may not be included in the factory-default Windows CE 6.0 OS image. The wireless drivers provided can only be installed through the Windows CE 6.0 OS image design. Visual Studio 2005 is required to install Windows CE 6.0. Unlike previous versions of Windows CE platform builders which are standalone applications, the Windows CE 6.0 platform builder is a Visual Studio plug-in. When installing Windows CE 6.0, the installation program only selects ARMV4I CPU support. Select x86 CPU support in order to use the eBox-2300 which uses an x86 CPU architecture. After installing Windows CE 6.0, the eBox-2300 BSP (Board Support Package) should be installed, followed by CoreCon component which allows the host PC to communicate and deploy applications to the target eBox-2300. 43 Catalog Item Vortex86Audio Vortex86-Display Cab File Installer/Uninstaller USB Storage Class Driver .NET Compact Framework Function Audio Drivers Display Drivers Provides application installation and removal. Support for hot pluggable USB storage device, supporting most USB flash drive and external mass storage device. Support managed code application. 2.0 OS Dependencies for .NET Compact Framework 2.0 ConMax-X86 Files Component RAM and ROM file system Hive-based registry VNT VNWLC6 Wireless Support managed code application Adds CoreCon files to the final image; needed for establishing connection between eBox-2300 and VS2005 development machine. Needed to support hive-based registry implementation. Needed to support hive-based registry implementation. Hive-based registry is used to store and save registry entries changed between power reset. Drivers for wireless card. LAN Table 5.1: Selected Operating System Components in ROl implementation. 5.3 R01 Program The R01 program is written in C# under Visual Studio environment for quick deployment. The class diagram is shown in Figure 5-3. The autonomous vehicle's main operation is defined in the StateMachine class. The algorithm can be easily changed by editing the StateMachine class without any effects on other parts of the code. All actuators and sensors are abstracted in ActuatorControllerclass and SensorInputs class respectively. The state machine has access to both the actuators and sensors instances. The autonomous vehicle is also event driven. The events include SensorChangeEvent, ServerHitEvent and NewTagFoundEvent. SensorChangeEvent is triggered when the sensors changes value; for example when the IR sensor detect an obstacle, the SensorChangeEvent is triggered. When the autonomous vehicle receives a command or request from a remote client, the ServerHitEvent is triggered. The command will 44 Actuatoto Class CI UAonArgs ller 4 I Static Class NewTagFoundAr... rver Class 4ass 4 Evenk Args EventArgs sensorrnputs 1 class o Cass StateMachine hangeArgs Args TrackLocation NewTagFoundliandler 5 SewertritHandler EHandler r: ( Delgate Delegate Figure 5-3: R01 Program Class Diagram be parsed through the implemented web server and sent to the StateMachine class. Finally, a NewTagFoundEvent is triggered when a new RFID tag is found; this prevents the StateMachine from processing duplicate RFID tags continuously. 5.4 R01 Calibration and Debugging Interface A calibration and debugging interface is implemented for testing. The interface is shown in Figure 5-4. A steering calibration interface is needed because the steering servo drifts. The steering servo should be calibrated to determine the amount of current needed to turn the steering left or right for example. Due to the drifting, the amount of current to keep the steering servo straight may change over time. The autonomous vehicle can also automatically self-calibrate based on the gyroscope values. 45 Figure 5-4: ROl Debugging and Calibration Interface The debugging output text box displays the HTTP post and HTTP get requests from the remote client. The state text box display the stages in the state machine when experiencing different conditions such as obstacles or a known RFID tag. 5.5 Phidgets Interface Kit The Phidgets Interface kit (Figure 5-5) is connected to eBox-2300 through one of the USB ports available on the eBox. The Interface kit provides eight analog input ports, eight digital input ports, and eight digital output ports. The IR sensors, gyroscopes and accelerometers are connected to the analog inputs since they generate variable current. 46 Figure 5-5: Phidgets Interface Kit- intermediary circuit board to host digital and analog sensors. Digital sensors such as switches and bump sensors can be connected to the digital inputs while the digital outputs can be used to generate PWM (pulse-widthmodulation) signals to control motors. However, the digital input ports and digital output ports are not utilized in current implementation. The Phidgets Interface Kit provides .NET libraries that emphasize event-driven programming. Thus, the software implementation is not required to poll the sensor ports periodically but instead handles the detection of sensor value changes. 5.6 Phidgets Servo Controller The Phidgets Servo Controller (Figure 5-6) is also connected to eBox-2300 through a USB port. The servo controller provides four pulse-width-modulation outputs. Emaxx's steering servo and electronic speed controller is connected to two of the servo controller outputs. The drivers for the Phidgets devices were installed 47 Figure 5-6: Phidgets Servo Controller- intermediary circuit board to control the steering motor and the digital motors by generating PWM signals. through a CAB installation file provided by Phidgets. When programming the the servo controller's position, user can set the position from -23 to 232 where each unit represents approximately 1 degree. The value of -23 represents a PWM (Pulse-WidthModulation) value of 0 which means the motor is not being driven at all. 5.7 Sensor Choice One of the project's aims is to produce a vehicle which can be placed in an unknown room and autonomously map and record RFID-tagged objects using an RFID reader. In order to perform this task, R01 is equipped with three infrared sensors, for obstacle detection and avoidance, a gyroscope and an accelerometer, which allow it to make specific-angle turns and report its approximate position at any given instant. 5.7.1 Infrared Sensor- Sharp GP2D12 The Sharp GP2D12 Infra Red Sensor is used for obstacle detection. This sensor is chosen for its suitable detection range, insensitivity to changes in ambient light and object color, and interfacing ease. Two Sharp GP2D12 sensors are mounted onto either end of the front of the vehicle 48 as shown in Figure 17, an arrangement which provides maximum coverage of the area in front of the vehicle. One other sensor was placed on the back of the vehicle, so that it can detect obstacles when it backs up. The Sharp GP2D12 Infra Red Sensor uses triangulation to detect obstacles. The LED emits a light beam, which is reflected by the obstacle onto the detector where it is focused onto a linear CCD array. The distance of the obstacle from the sensor is then determined based on where the beam hits the CCD array, as shown in Figure 5-7. No jed FaOjed CmOtjed Figure 5-7: Triangulation detection mechanism of Sharp GP2D12 IR sensor. This triangulation mechanism thus determines the object's distance without relying on the intensity of the light reflected. Therefore, readings are independent of the object's color and texture, as the graph overleaf demonstrates (the outputs for both the white and the gray surface, which have very different reflectivity, produce virtually the same output provided they are the same distance away from the sensor). 5.7.2 Gyroscope-Analog Devices ADXRS300 The ADXRS300 gyroscope measures angular velocity in degrees per second. To obtain the angle of the vehicle, relative to an initial orientation, the Phidgets event handler can be used. Every time the angular velocity changes, the Phidgets interface kit 49 registers the event, and if vi is the registered angular velocity and 0ti is the time interval during which the vehicle rotated at that constant angular velocity (i.e. during Oti there have been no events registered for the gyroscope), then the angle of the rotation during that time is simply vi Oti. Therefore, the angle of the vehicle at time t, 6(t), can be determined by Equation 5.1. 0(t) = E vjAtj (5.1) The ADXRS300 gyroscope outputs positive analog voltage for clockwise rotation and negative analog voltage for counter clockwise rotation. The sensor's main characteristics are summarized in Table 5.2: Parameter (at Vdd = 5V) Angular velocity measuring range Output voltage with no rotation (reference voltage) Voltage increment per 10/s increase in velocity Maximum output voltage Power supply voltage Typical Value ±3000/s 2.50 V 5.00 mV 4.00 V 5.00 V Table 5.2: Analog Devices gyroscope's electrical characteristic. 5.7.3 Accelerometer - Analog Devices Dual-Axis Accelerometer ADXL202E The ADXL202E dual axis accelerometer can measure accelerations in the x and y axis within the range of 12g. The sensor provides a choice between two kinds of output, analog voltage or digital signals, which provide duty cycles that are proportional to the acceleration. Here the analog voltage output is used since it can be easily connected to the Phidgets Interface board, whilst using the digital output would require serialization. Using the accelerometer we can obtain the vehicle's velocity at any time t. To do so we again use the event handler. Every time there is a change in acceleration, 50 it will register as an event, and if a2 is the recorded acceleration and ti is the time interval during which the vehicle moved at that constant acceleration, then, assuming the vehicle starts from rest, the velocity is given by Equation 5.2 and Equation 5.3. (5.2) t = E>At, v(t) = ZagAti (5.3) From this we can obtain the distance s(t) the vehicle has traveled in time t, showed in Equation 5.4. v(t')dt' s(t) = (5.4) The accelerometer's main characteristics are summarized in Table 5.3.: Parameter (at Vdd= 5V) Acceleration measuring range Output voltage at Og (reference voltage) Voltage increment per Ig increase in acceleration Maximum output voltage Power supply voltage Typical Value +2g 2.5 V 312 mV 3.62 V 5.00 V Table 5.3: Analog Devices dual-axis accelerometer's electrical characteristic. 5.8 RFID Reader A ThingMagic Mercury4e RFID reader is attached to R01's chassis to detect RFID tags. The Mercury4e is a UHF reader that gives up to 20 feet read range depending on the antenna attached. The Mercury4e is connected to the embedded processor through a serial port. A C# library has been implemented to control the RFID reader. The basic functions implemented are summarized in Table A on page 67. CRC checksum is also implemented when receiving and sending data from the 51 RFIDReader MsgObj MyCr 16 struct 8J Fields 0-Fields 6 Methods '* BootFirmware :4 CheckStatus 4 earCOMPort 8 Properties 8 Data DataLength Opcode 44 4 Methods -4 ConvertHexToByte :4 ConvertHexToBytes 44 CRC calcCrc8 4 GetMessageBytes 34 MSGcalcCrcToDsp ConvertHexByteToString GetFirmwareVersion 24 GetHostBaudRate 24 GetTaglDbuffer 4 ReadTagIDMultiple 4 ReadTaglDSingle 44 44 4 -4 -4 4 4 Enuin B.9600 8_19200 44 s. port # data a datalen / opcode 2 ] 2 1 3 Methods 34 ReceiveMessage {+ 1 overload) RetumReadTagIDSingle RFIDReader SendMessage (+ 1 overload) SetBaudRate SetCurrentProtocol Verifylmage WriteTagData WriteTagiD V CRC calcCrc8 S MSG-calcCrcTo prtocfype f None EPC0 EPC1 IS018000 Impinj GEN2 LICODE 038400 B_57600 B_115200 B_230400 B460800 Figure 5-8: Mercury4e class library class diagram. embedded processor to the RFID reader to detect any corrupted data. An RFID reader that can read any RFID tag format can be implemented by quickly cycling through all protocol types when attempting to read an RFID tag. The class diagram for Mercury4e class library is shown in Figure 5-8. 5.9 Wireless Communication A simple web server is implemented as part of the ROl application to allow data publishing and communication between R01 and external client through the Internet. The web server runs on a separate thread and listens for packets on specific sockets. The web server was implemented using TcpListener and Socket class within .NET 52 Framework and provides httpget and httppost services. ....... Akeer 4,'t~r*t 1N OcttdM oAt Figure 5-9: HTTP Post client to communicate with ROl through the Internet. A web-based client (Figure 5-9) is implemented using ASP .NET to communicate with ROl. Commands are sent using httppost protocol through a web browser. Commands implemented include Start and Stop for autonomous operations and Forward, Left, Right, Reverse and Stop for manual operations. 53 54 Chapter 6 Other Applications 6.1 RFID at Home RFID technology can also be translated to home applications. Integrating an RFID system into a Roomba, the autonomous vacuum cleaner, the vacuum cleaner can also perform inventory of RFID-tagged items at home while cleaning the floors. Thus, while the Roomba is cleaning, it also tracks where RFID-tagged items are in the house. Locating easily misplaced items such as keys, wallet will be easier since the robot is able to report the last location and time the item was detected. Lower cost of RFID tags compared to other Real-Time Location System allows more items to be tagged without expensive equipments. 6.1.1 Inventory It is not convenient to deploy UAVs at home due to safety reasons. Children and pets at home may interfere with the UAV operation. Attaching the RFID location system to a household item such as a vacuum cleaner will be less intrusive to the home environment. Automatic vacuum cleaners such as the iRobot's Roomba already comes with sensors and actuators such as cliff sensors, IR sensors, encoders, and motors which simplifies control. Integrating an RFID reader with an autonomous vacuum cleaner will provide another added-value function for the home appliance. 55 An autonomous vacuum cleaner which uses RFID tags to self-position has also been implemented [3]. Since the Roomba is grounded, the robot requires a flexible or rotating antenna (Figure 6-1) to redirect the radio waves and cover a three dimensional space of the specific environment. Keeping track of its traversed path and the angle of the RFID reader antenna, the system will be able to track tagged-item with reference from a starting point while cleaning the floor. This assumes that the Roomba will be able to successfully cover the two dimensional floor instead of just concentrating at one part of the environment. Figure 6-1: A rotating RFID reader antenna will allow the autonomous vehicle to redirect the electro-magnetic waves in all direction. However, there may be potential problems that prevent the system from working correctly. Reflection from metallic items in the house may cause interference and cause the robot to miscalculate the position of the items found. Depending on the RFID reader antenna, and the RFID tag's antenna, the orientation of the RFID tags may prevent the RFID reader from detecting it due to the 56 polarization properties. The polarization of the reader's antenna and tag's antenna should be the same for maximum signal strength. Thus, if the RFID tag is perpendicular to the RFID reader's antenna, the reader may not detect the tag even though it is within the read range distance. Nevertheless, the system is only capable of telling users where an item was seen at a specific time; it does guarantee a real time location system. Depending on the size of the environment, mobile items such as keys and remote controls may have moved since the robot last sees it. 6.1.2 RFID Locator The system described above can also be used to search for missing items. UHF RFID readers have long read range capabilities; with appropriate antenna, a UHF RFID reader can provide a read range up to 20 feet(6.09 meters). With directional antenna, the system can first determine the quadrant or general area of where the target item is. Once the system finds the general area the target item is, the RFID reader can reduce the power to the antenna to reduce the read range, and thus increasing detection accuracy. The pseudocode below shows a recursive function the system may execute to search for an RFID tag. void locate(string tag-id) boolean found =rotateandsearch(tagjid) if (found) gof orward() reduce-power() locate() else findempty-space() locate() } 57 Similar to the problem mentioned earlier, metallic items may interfere with the robot's operation. For example, looking for RFID-tagged box on a metallic table may be impossible since the metallic table will shield the radio wave from reaching the RFID tag if the RFID reader is interrogating from underneath the table(Figure 6-2). Figure 6-2: A metallic surface may prevent the RFID reader from reading an RFID tag even though the tag is within the read range of the RFID reader. 6.1.3 Smart Appliances Smart washing machine can utilize RFID technology to automatically select wash options when specific items are in the washing machine. This can avoid accidentally damaging clothes when users select the incorrect was options. This will also eliminate the need to refer to the wash instruction labels when doing laundry. When clothing articles that require conflicted washing methods are in the same washing machine, the washing machine can either warn the users or select a wash method that will not damage the clothing. However, one of the problems that may arise for this application is the extremely 58 hot temperature setting of the washing machine which may damage the RFID tags once it is washed. A solution to this problem is to use durable RFID tags which have been designed to endure the harsh temperature. Another potential problem is a clothing item such as socks that may not be RFID tagged thrown into the washing machine. Since the washing machine are unable to detect non-tagged items, unidentified clothing may be damaged or damage other clothing. Refrigerators and kitchen cabinets can also use RFID technology to detect food items in the kitchen. By being able to so, the RFID system can remind users of expiring food products or suggest cooking recipes with the available food items. Keeping an inventory of the available food items, the refrigerator can also publish grocery list that the user can access from a computer or a mobile phone. However, to make this system really work, most of the food items will need to be tagged and it may be cost ineffective to do so. Currently, the average cost of a passive RFID tag is approximately twenty cents. Some small food items such as fruits and spices, etc may be too cheap to add a relatively expensive RFID tag. If an apple costs forty cents, a twenty cent RFID tag will add an additional fifty percent to the total cost. This may be deemed economically unacceptable. Container of food items such as milk and juices may also create a false appearance of available items if the empty containers continued to be left in the refrigerator. Thus, the system may not report to the grocery list if these false positives occur. One solution is to integrate pressure sensor on the RFID tag to approximate the amount of food left in the container. However, sensor-embedded RFID tags are significantly more expensive and may not be practical for transient items such as food for the time being. Thus, the cost of RFID tags must be lower to allow more items to be RFID-tagged. Alternatively, the RFID tags can be designed such that the sensors are reusable and reattachable to another RFID tag. 59 6.2 Automated Tour Guide using RFID local knowledge Carnegie Mellon University has been known to deploy robots as tour guides in museums since 1998[7]. The robot, known as RHINO, implements Markov localization to determine x-y-O coordinates of its position. Markov localization, although robust to occasional changes of an environment, is very expensive to compute. To reduce such computation and increase the accuracy of self localization, RFID tags can be used as markers scattered around the environment. RFID tags can be used to form the route that the robot tour guide should follow. When the robot veers off the designated route, the RFID reader feedback allows the robot to correct its trajectory when certain RFID tags are found (Figure 6-3). Figure 6-3: Navigating using RFID track: when the robot encounters tag corresponding to the outer track, it will trigger the robot to return the middle track. This will avoid the robot from navigating away from the intended route. Moreover, trajectory information can also be embedded within the ID data of the RFID tags. The last 4 bits of the tag ID can contain information on how the 60 robot should proceed while facing a reference point. Another 6 bits can also be used to determine which angle the robot should be facing while navigating. The six bit degree information will provide a 6 degree resolution of information. Therefore, when the robot needs to turn, it does not need to recalculate its position based on the environment's map. The RFID tags will also allow the robot to function in any environment without loading a map of its environment. The robot will require a digital compass as a navigational sensor to determine where it is facing in order to interpret the directions specified by the RFID tags. Although gyroscope can also be used for this purpose, the robot will be required to start its operation facing a specific direction. Gyroscope sensors are also known to drift, especially after a long duration; this may cause operation error. When the tour guide robot encounters a specific RFID tag, the robot will be able to recognize the corresponding landmarks and provide a narrative to the tourists based on the landmark. With RFID, the robot does not require visual processing to recognize the specific landmarks. 61 62 Chapter 7 Discussion and Conclusion 7.1 Discussion Every system has its own advantages and disadvantages. Compared to manual in- ventory counting, RFID technology expedites the process significantly. The benefits of mobile RFID system includes cost reduction and flexible deployment. In a large warehouse or retail store, automatic inventory using static RFID system will require each shelves to be wired with RFID reader antenna and a significant number of RFID readers will be needed. While manual inventory will require less RFID readers, it will still require many hours of labor. The proposed mobile RFID system will be able to overcome both drawbacks. Since items in the warehouse do not constantly move, a mobile RFID system may suffice for inventory automation. While a navigational map will be more efficient for the robot, the system will be unable to adapt to new environments. With probabilistic algorithm or other machine learning algorithm, the robots do not need to be customized for specific environments. Unlike static RFID deployment, mobile RFID system will not require extensive wiring. Moreover, with probabilistic algorithms, sensors' signal drifting will also not drastically affect the performance of the operation. Compared to a static system, the mobile RFID system does have its own drawbacks. One, it provides a non real-time location information. It is only able to tell the location information of when the system last saw the RFID-tagged items. 63 While RFID system encounters difficulty in an environment with metal and liquid, alternative systems such as RuBee are able to overcome it. RuBee technology uses magnetic signal instead of radio signal used by RFID. RuBee can operate in harsh environments with metal and liquid. Therefore, substituting RFID with RuBee, a grounded robot may still be able to cover a three dimensional space. A comparison of RuBee and RFID is summarized in Table 7.1. Features Metal Proximity Liquid Proximity Read rate RFID Causes interference Causes interference Faster than RuBee RuBee No interference No interference Slower than RFID Table 7.1: Comparison of RFID and RuBee system. As item level tagging proliferates, a better data management system is required. The health care industry, apparel industry and other retailers have invested heavily on RFID technology. California has also enforced a law to require the pharmaceutical industry to tag drugs with RFID tags. However, there are still many barriers to RFID adoption [6]. Some obstacles include privacy issues, consumer resistance, tag cost, perception of low return of investment, lack of skilled labor, competing technologies and broadcast regulation. While some of these factors can be solved through advancement of technology, consumer acceptance may be the most vital factor in RFID ubiquity. A possible catalyst to consumer acceptance is the creation of added-value applications for end users. This will encourage the consumers to retain the RFID tags on the purchased items for their own convenience. Some example applications are explained in Chapter 6. Nevertheless, most RFID tags only store the unique identification within the chip; additional information is usually retrieved remotely such as from the Internet. On the other hand, special software and systems will be required to handle the heavy data traffic of the RFID network as RFID technology becomes ubiquitous. 64 7.2 Conclusion In this project, we ran a simulation of a set of Unmanned Aerial Vehicles performing inventory in an unfamiliar warehouse. The results of these simulations were then reported. The performance of the system improves as the number of UAVs increases even though each UAV employs independent randomized path decision. A grounded robot was also implemented to test hardware reliability and the viability of a grounded robot to perform inventory in a three dimensional space. Due to payload constraint, an actual unmanned aerial vehicle was yet to be built.. Using only off-the-shelf items, the total payload is more than three pounds, three times more than the DraganFly's payload. Thus, the electronic components may have to share some circuitry to reduce the total payload. The UAVs can also implement machine learning such as logistic regression to make better path decision. 65 66 Appendix A Mercury4e Class Library Table A summarized the library functions and the parameters needed. 67 Description Start RFID reader firmware. Check the status of the returned reply from RFID reader. Clear the serial port if there are leftover bytes from previous operations. Utlity function to convert a string to an array of bytes. Returns current firmware version the RFID reader is running on. Checks the host's baud rate(RFID reader is the target). Gets the tags stored in the buffer after Function BootFirmwareO CheckStatus(byte[]) ClearCOMPort() ConvertHexBytesToString(byte[]) GetFirmwareVersion() GetHostBaudRateo GetTagIDBuffer(int) calling ReadTagIDMultiple(int).The integer parameter refers to the number of tag IDs t to retrieve. Search for multiple RFID tags and re- ReadTagIDMultiple(int) turn the number of tags found. The ID of the tags found are stored in a buffer within the RFID reader. The IDs can be retrieved by calling the GetTagIDBuffer(int) function. The integer parameter refers to the time out duration in millisecond. Search for a single RFID tag and re- ReadTagIDSingle(int) turns the tag ID if found. The integer parameter refers to the time out duration in millisecond. Sends generic message to RFID reader. Sends generic message to RFID reader. Set the COM port baud rate to ensure synchronized communication. Set the RFID Reader protocol such as SendMessage(string) SendMessage(byte[]) SetBaudRate(Mercury4e.BaudRate) SetCurrentProtocol(ProtocolType) UCODE,GEN2. Verifylmage( WriteTagData(int,string,string,string,string) WriteTagID(int,string,string,string) Verify the firmware image by checking the checksum bits (CRC). Write data to a tag. Rewrite RFID tag ID. Table A.1: RFID reader functions implemented in .NET library. 68 Bibliography [1] Omead Amidi. An Autonomous Vision Guided Helicopter. PhD dissertation, Carnegie Mellon University, Robotics Institute, 1996. [2] Haeyoung Jun Bradford Parkinson Sam Pullen Tom Lagenstein Changdon Kee, Doohee Yun. Centimeter-accuracy indoor navigation using gps-like pseudolites. http://uc.gpsworld.com/gpsuc/article/articleDetail.jsp?id=308333. [3] Svetlana Domnitcheva. Smart vacuum cleaner - an autonomous location-aware cleaning device. citeseer.ist.psu.edu/domnitcheva04smart.html. [4] Jonathan How Ellis King, Mehdi Alighanbari. Experimental demonstration of coordinated control for multi-vehicle teams. In Proceedings of the 16th IFA C Symposium on Automatic Control in Aerospace. [5] S.E. Engels, D.W.; Sarma. The reader collision problem. Systems, Man and Cybernetics, 2002 IEEE International Conference on, 3, 6-9 Oct. 2002. [6] RFID Gazette. barriers 16 to rfid ubiquity. http://www.rfidgazette.org/2007/04/. [7] Walter Steiner Gerhard Lakemeyer, Dik Schulz and Sebastian Thrun. The interactive museum tour-guide robot. In Proc. of the Fifteenth National Conference on Artificial Intelligence, Madison,Wisconsin, 1998. [8] Mikko Karkkainen. Increasing efficiency in the supply chain for short shelf life goods using rfid tagging. International Journal of Retail & Distribution Management, 31(10):529+, 2003. 69 [9] Dr. Abel Sanchez. Mit epc net (mentor). http://www.rfidgazette.org/2007/04/. [10] Michael B. Stroh. A PracticalGuide to Transportationand Logistics, chapter 4. Logistic Network Incorporation Third Edition, 2006. [113 Jonathan Paxman William Bath. Experimental demonstration of coordinated control for multi-vehicle teams. In Australasian Conference on Robotics and Automation 2005. [12] Ying Tat Leung Young M. Lee, Feng Cheng. Exploring the impact of rfid on supply chain dynamics. In Proc. of the 2004 Winter Simulation Conference, 2004. 70