scieee AI-readable full text Open interactive document viewer

Position reference with direction estimator for indoor location systems

João Manuel Jorge Barbosa

Full text

POSITION REFERENCE WITH DIRECTION ESTIMATOR FOR INDOOR LOCATION SYSTEMS JOÃO MANUEL JORGE BARBOSA DISSERTAÇÃO DE MESTRADO APRESENTADA À FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO EM ÁREA CIENTÍFICA M 2015 FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO Position reference with direction estimator for Indoor Location Systems João Manuel Jorge Barbosa Mestrado Integrado em Engenharia Eletrotécnica e de Computadores Supervisor at FEUP: Rui Esteves Araújo (PhD) Supervisor at Fraunhofer AICOS: Filipe Sousa (M.Sc.) July 30, 2015 c João Manuel Jorge Barbosa, 2015 ii Resumo Nas últimas décadas os Sistemas de Localização Indoor sofreram um progresso considerável. Gradualmente têm vindo a desempenhar um papel cada vez mais importante em todos os aspectos da vida quotidiana das pessoas incluindo, por exemplo, assistente de navegação, detecção de emergência, vigilância/acompanhamento de um alvo de interesse e também fornecendo informações de localização e publicidade. Por essas razões, soluções em tempo real precisas e fidedignas para serviços de localização indoor são necessárias mais que nunca. No entanto, nenhum dos sistemas já desenvolvidos é capaz de satisfazer todas as exigências. Como consequência, há um interesse permanente na concepção de um sistema que permita atingir todos os requisitos. Uma vez que os smartphones estão equipados com vários sensores como acelerómetros, giroscópios e magnetómetros, é possível ter um sistema de localização indoor a funcionar no nosso telémovel pessoal. Contudo, há alguns problemas associados a esta solução baseada em sensores inerciais uma vez que estes sensores ruidosos vão introduzir erros de posição devido ao próprio ruído. Consequentemente, esses erros cumulativos vão gerar uma estimativa errada para a posição atual. Esta dissertação tem como objectivo melhorar a precisão do Sistema de Localização Indoor, usando uma superficie inteligente que vai recolher os dados e calcular em tempo real a direcção do utilizador. Neste documento será apresentado o estado de arte dos campos intervenientes desta solução e a metodologia adoptada para a implementação desta abordagem como uma referência de posição com estimador de direção para Sistemas de Localização Indoor. A superficie inteligente não só funciona como uma referência absoluta de posição mas também permite detectar a direção da caminhada do utilizador. No final, o sistema poderá enviar todas as informações para o smartphone (utilizando por exemplo Bluetooth). 7 individuos com pesos entre 65Kg e 95 Kg e com tamanho do sapato entre 39 e 44 (Euro sizes) testaram o sistema final. Os resultados obtidos foram bastantes satisfatórios. Foi aplicada uma solução de baixo custo que no final foi capaz de detectar com sucesso 4 direções e orientações diferentes. Além disso, o sistema foi desenhado por forma a diferenciar o local onde o pé atinge a superficie inteligente (centro, direita ou esquerda). iii iv Abstract In the past decades Indoor Location Systems were undergone considerable progress. Gradually they have been playing an increasingly important role in all aspects of people’s daily lives including, for example, living assistant, navigation, emergency detection, surveillance/tracking of target-of-interest and also providing location based information and advertisement. For these reasons, reliable, accurate and real-time solutions for indoor tracking services are required even more strongly than ever. However, none of the systems already developed is capable of satisfy all the demands. As a consequence, there are a permanent concern on designing a system that will achieve all the requirements. Since smartphones are equipped with several sensors like accelerometer, gyroscope and magnetometer it is possible to have an indoor location system running in our personal smartphone. Nevertheless, there are some problems associated to this solution based in inertial sensors once these noisy sensors will introduce position errors due to noise itself. Consequently, these cumulative errors will generate a wrong estimation for current position. This dissertation aims to improve Indoor Location System accuracy by using a smart floor that will be collecting data and calculating in real-time the user’s direction. In this document, the state of the art of the intervening fields of this solution and the methodology adopted for the implementation of this approach as a position reference with direction estimator for Indoor Location Systems will be showcased. The intelligent surface works as an absolute position reference and also detects person’s walking direction. In the end, the system could send all the information to the smartphone (using for example Bluetooth). 7 People with weights between 65 Kg and 95 Kg, and shoe sizes from 39 to 44 (Euro sizes) tested the final system. The results were quite satisfactory. It was applied a low cost solution that in the end was capable of successfully detect 4 different directions and orientations. Besides, the system was design in order to differentiate the point where the foot reaches the intelligent surface (centre, right or left). v xii CONTENTS 4 Tests and Results 43 4.1 Results........................................ 45 5 Conclusions and Future Work 51 5.1 Achievements.................................... 51 5.2 FutureWork..................................... 52 List of Figures 1.1 Precise Indoor Location (PIL) . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Floor Sensing System Concept. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1 Distance-based geolocation method . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 RFIDSystemoutline ................................ 8 2.3 The CricketThe Cricket Indoor Location System Concept ............. 8 2.4 Arrangement of the prototype Active Floor .................... 11 2.5 Sensor Arrangement for the Carpet System . . . . . . . . . . . . . . . . . . . . 12 2.6 The final prototype sensor mat for gait recognition . . . . . . . . . . . . . . . . . 13 2.7 Effects of different resolutions . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.8 The profile of the 4 footsteps on the sensor mat . . . . . . . . . . . . . . . . . . 14 2.9 Footstep imaging from Intelligent Carpet System ................. 15 2.10 Current wireless-based positioning systems . . . . . . . . . . . . . . . . . . . . 17 3.1 Forcevs.Resistance ................................ 20 3.2 FSR output when slighty pressed . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.3 Comparing FSR 402 to a 0.02ecoin......................... 21 3.4 FlexiForceA201 .................................. 21 3.5 FSRVoltageDivider ................................ 22 3.6 Conductancevs.Force ............................... 23 3.7 Signal Conditioning Circuit (designed with Multisim 12.0)............. 24 3.8 Negative saturation of the current-to-voltage converter. . . . . . . . . . . . . . . 24 3.9 Results after applying the LPF. We were able to reduce 10% of the noise. . . . . 25 3.10 Signal Conditioning Circuit (designed with Multisim 12.0)............. 25 3.11MCP3008....................................... 26 3.12RaspberryPi2. ................................... 27 3.13 Chipboard surface (left) and Shock Absorber surface (right) from Leroy Merlin. . 28 3.14 Side view of smart floor and its inside. . . . . . . . . . . . . . . . . . . . . . . . 29 3.15 The bottom layer with FSR 402 sensors. . . . . . . . . . . . . . . . . . . . . . . 29 3.16 Raspbian is the Debian Wheezy adapted to Raspberry Pi. . . . . . . . . . . . . . 31 3.17DatasetCollection.................................. 33 3.18 Analogue reading when pressure was being applied only to FSR0 sensor. . . . . . 33 3.19 System performance when a person walks from right (East) to left (West). . . . . 34 3.20 Sample ground reaction force (GRF) profile of a single Load Cell . . . . . . . . 34 3.21 System performance when a person walks from left (West) to right (East) . . . . 35 3.22 Console output after Calibration. . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.23 Example of index readjustment . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.24ExampleofafalseHEEL.............................. 39 xiii xiv LIST OF FIGURES 3.25 Console output after Direction estimator is complete. . . . . . . . . . . . . . . . 39 3.26 Flowchart representing the algorithm . . . . . . . . . . . . . . . . . . . . . . . . 40 3.27 Membership functions used in the algorithm. . . . . . . . . . . . . . . . . . . . 41 4.1 Oscilloscope output when someone is walking on the same direction but at opposite orientations (left and right). We can distinguish two max peaks which proves that we might be able to identify the heel striking (in blue on the left image and yellow on the right image) and toe push-off (in yellow on the left image and blue ontherightimage).................................. 43 4.2 First performed tests following previously defined directions. The figure describes the three phases of human gait. Starting from left to right, first we have heel striking, than the weight transference and finally the toe push-off. . . . . . . . . . 44 4.3 Test bed for the final tests. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.4 Zoom in microprocessor. All the cables and sensors are unnoticeable to the user. . 45 4.5 Example of a footstep hitting the right side of the smart floor. . . . . . . . . . . . 46 4.6 Test example of walking from North to South. . . . . . . . . . . . . . . . . . . . 46 4.7 Test example of walking from South to North. . . . . . . . . . . . . . . . . . . . 47 4.8 Test example of walking from West to East. . . . . . . . . . . . . . . . . . . . . 47 4.9 Test example of walking from East to West. . . . . . . . . . . . . . . . . . . . . 47 4.10Resultsfromtable4.1. ............................... 48 4.11 Results from walking randomly. . . . . . . . . . . . . . . . . . . . . . . . . . . 49 5.1 Concept of a raised floor with FSR 402 installed on the pedestals. . . . . . . . . 52 List of Tables 2.1 Experimental results from Bluetooth technique . . . . . . . . . . . . . . . . . . 6 2.2 A comparison of wireless technologies . . . . . . . . . . . . . . . . . . . . . . . 7 2.3 LocalizationSystems................................ 9 2.4 Results from Sound Based Indoor Localization . . . . . . . . . . . . . . . . . . 10 3.1 FlexiForce A201 vs. FSR 402 . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.2 A brief outline of a few microprocessors. . . . . . . . . . . . . . . . . . . . . . . 27 3.3 Finalbudget. .................................... 30 3.4 Fuzzyrulesexamples................................. 42 3.5 Fuzzy rules for checking which side the foot hit the ground. . . . . . . . . . . . . 42 4.1 Results from walking randomly . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4.2 Information related to the performed tests . . . . . . . . . . . . . . . . . . . . . 49 4.3 ConfusionMatrix-partI............................... 50 4.4 Confusion Matrix - part II. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 xv xvi LIST OF TABLES xvii xviii List of Abbreviations List of Abbreviations ADC Analog-to-Digital Converter AOA Angle of Arrival AP Access Point API Application Programming Interface CDMA Code Division Multiple Access COP Centers of Pressure CoM Center of mass FDMA Frequency Division Multiple Access FSR Force Sensitive Resistor GPIO General-purpose input/output GRF Ground Reaction Force GPS Global Position System HF High Frequency ILM Iterative Landweber Method IMU Inertial Measurement Unit INS Inertial Navigation System IPNS International Conference on Information Processing in Sensor Networks LPF Low Pass-Filter MT Mobile Terminal NFC Near Field Communication NN Neural Network PCoMA Parallel Center of Mass algorithm PIL Precise Indoor Location PFT Polymer Thick Film PNS Pedestrian Navigation Systems POF Plastic Optical Fiber RFID Radio-Frequency Identification RF Reference Points RPi Raspberry Pi RSS Received Signal Strength SNR Signal-to-Noise ratio TDE Time Delay Estimation TDMA Time Division Multiple Access TDOA Time Difference of Arrival TOA Time of Arrival TOF Time of Flight TOI Target-of-Interest UHF Ultra High Frequency ULF-MC Ultra Low-Frequency Magnetic Field Communication WLAN Wireless Local Area Network Chapter 1 Introduction 1.1 Motivation and Context The localization and tracking of users in a specific space has in recent years become a goal of computer science researchers. With the advent of smart environments, transparent user localization has become even more pressing purpose than before the rise of these paradigms. If a system or environment could transparently follow the movement of the user, it could customize its interface and behaviour to match the references, history, and context of that particular ambient to intervene in the case of necessity or danger. Since all dead reckoning solutions are subject to cumulative errors, navigational aids are required in order to give accurate information not only to correct positional errors but also to calibrate dead reckoning algorithms. When we talk about outdoor environments, GPS plays a dominant role in localization. On the other hand, GPS is inefficient for indoor scenarios due to the weakness of signals emitted by this system and their disability to penetrate most building materials. According to the U.S. Environmental Protection Agency (EPA): "People spend approximately 93% of their time indoors, 2% outdoors, and 5% in transit (e.g car, train, bus). Thus, from a time budget standpoint, indoor environments dominate the total exposure spectrum." [1] Considering that people spend most of their time in indoor environments, other effective technologies are demanded for indoor human/object location and some techniques have been developed these last decades. However, due to restrictions of position timing, position accuracy, and complex indoor environments, a flawless positioning technique has not been achieved yet. In our particular case, the main issue is associated with estimation errors from an inertial navigation system. At the moment, Portuguese researchers from Fraunhofer AICOS have already developed a location system that using advanced dead reckoning algorithms based on fused data provided by an Inertial Measurement Unit (IMU) [2] is capable of calculate the user’s position in 1 2Introduction indoor environments. Since this approach creates undesirable estimation errors, our mission is to develop a system that provides absolute reference points with increased resolution. 1.2 Project Presentation "Indoor location systems are an important enabling technology for applications such as indoor navigation, public safety, security management and ambient intelligence, representing huge potential regarding advertisement and retail businesses. Pedestrian navigation systems (PNS) have recently emerged as a solution for the indoor positioning problem regarding the lack of accuracy. These systems rely on dead reckoning algorithms which are solutions based on the fused data provided by the Inertial Measurement Unit (IMU) on the smartphone that can then be used to evaluate one’s current position by using a previously known one."[3] The lack of reliable GPS signals inside buildings has been an obstacle to determine accurate indoor positioning. In order to overcome this issue Fraunhofer AICOS has developed the PIL project. The Precise Indoor Location (PIL) is an accurate indoor location technology with submeter level accuracy that allows indoor navigation using a smartphone. The goal of the PIL project is to provide a commercial grade location solution, that is not only free of any infrastructure requirements, but also does not require efforts to generate and maintain maps of buildings for the purpose of indoor location, in order to contribute to the fast spread of indoor location solutions on the consumer level. Target markets are e.g. retail, solutions for public and private safety providers or elderly people. Figure 1.1: Precise Indoor Location (PIL) developed by Fraunhofer AICOS Portugal [3]. 1.2 Project Presentation 3 Recently Fraunhofer Portugal won the 3rd place with PIL solution in the Microsoft Indoor Location Competition [4], which was held last April 15 during the IPSN 2015 Conference in Seattle. With more than 40 submissions from industry and academia this is currently the most renowned competition in the field. In Chapter 2 will be presented different approaches that due to their potential could be used for position reference. However, we opted for a solution based in a smart floor with pressure sensors. The smart floor was designed concerning the existing PIL project. Since the project already have a performance above the average, it was designed a solution that will work as an add-on for the main system and so the performance won’t decrease. Taking into account these aspects, in Figure 1.2 is presented a block diagram describing the system concept: Figure 1.2: Floor Sensing System Concept. 10 Background and State of the Art 3. Data hiding in sound so that only reasonably small disturbance in the acoustical environment may occur; 4. How may a simple audio channel, like the one of a common cell phone be used as an acoustic receiver localizer; Even these issues raise the sound based indoor localization system’s problems, the authors were able to develop a similar approach. The system is named NAVMETRO and was already successfully tested in Trindade Metro Station (Porto, Portugal). The main goal of this system was to help visually impaired navigating inside the Metro Station. This paper was focused on theoretical and practical aspects of a possible real implementation of an audible sound based indoor localization scheme using a standard audio channel receiver. Experimental results in a room with 6 m x 7 m x 3 m size using TDMA, FDMA and CDMA access schemes in a sound communication system, show that is possible to have a localization accuracy of a few centimetres in non-ideal conditions. To maximize the general performance of the system (e.g. accuracy, precision, ...) the authors conducted three experiments: 1. Latency analysis considering the Easera Gateway sound board with different API tools; 2. Comparison on three correlation techniques to perform Time Delay Estimation (TDE): cross-correlation, generalized cross-correlation phase transform and maximum likelihood; 3. Evaluation of the position estimation error and reliability with a sufficient SNR considering: TDMA (with unit pulses), FDMA (with chirps) and CDMA. The three experiments showed promising results as we can see in table 2.4: Table 2.4: Results from [16]. TDMA FDMA CDMA Average error in all area (cm) 5,3 5,4 4,5 Average error inside centre area (cm) 1,5 3,0 1,3 Average error outside centre area (cm) 6,4 6,0 5,4 Reliability inside centre area (%) 100,0 100,0 100,0 Reliability outside centre area (%) 98,3 98,9 97,8 Minimum SNR(dB) 24,7 11,4 7,2 2.7 Floor Sensing System In this section we will explain with some detail several location systems based on floor sensing. For our final application we believe that it is essential to investigate methods for measuring footsteps. If we could achieve a detailed user’s footprint measurement, we would not only have an accurate measure of the position and direction, but we would be able to solve the problem of matching those footprints to the right user 1.3. We believe that only with a complete floor sensing 2.7 Floor Sensing System 11 system we will be capable of correctly identify the user in a situation where multiple individuals are simultaneously using the system. Consequently, we believe that our system must provide, among others, the following elements: 1. Impact Time; 2. Time on Heel to Toe; 3. GRF - Ground Reaction Force; There are already solutions commercially available. An example of those solutions is the electronic walkway under the brand name GAITRite [17]. The system consists in sensor pads, each containing 2304 sensors arranged in a 48 x 48 grids, typically covering a total active area of 1 m x 6 m. It is capable of measuring spatial and temporal gait parameters and it’s portable. The GAITRite has been used by physiotherapists as part of clinical assessment, but its cost is substantial. This limits its usage to a laboratory tool rather than an affordable system potentially deployable in new homes or retro-fitted in existing dwellings. In order to achieve a lower cost solution, a number of methods for footstep sensing have been proposed and developed including, for example: piezoelectric 2.7.1, force 2.7.2, resistive 2.7.3 and plastic optical fibre 2.7.4 sensing principles. 2.7.1 The Magic Carpet This system employed a piezoelectric cable to produce a sensing floor of size 3m x 8m with a resolution of 10 cm [18]. The system had a scan rate of approximately 60 Hz.The authors created it in order to be used as an installation art piece where a person’s motion controlled music. One of the interactive environments conceived for this project involved creating a space where the position and pressure of a performer’s feet would be measured together with upper-body and hand motion using a pair of Doppler radars. This data would be used to create a truly immersing environment, where any kind of body motion would be directly and immediately converted into expressive sound. However, although the system had a good performance in tracking an individual among the surface, it does not provide enough information for gait analysis. Figure 2.4: Arrangement of the prototype Active Floor [18]. 12 Background and State of the Art Learning from this experience the same group later developed the Ztile which had hexagonal tiles (with 40cm diameter) containing 20 sensors each. Z-tiles was a design for a fully scalable, self-organising, force sensitive surface that detects x and y locations as well as the force applied (z-axis). The main goal of this system was to develop a fully pixelated surface area that could detect both force and location in real-time situations. 2.7.2 The ORL Active Floor The ORL Active Floor [19] is a square grid of conventional carpet tiles, each backed by 18 mm plywood and 3mm steel plate, supported at the corners by cylindrical load cells which are instrumented to give us the total vertical force. In the data acquisition system described the authors have found that the load cells are able to resolve weight changes of about 50 grammes. The grid has a 50 cm spacing, and a sampling rate of around 250 Hz per load cell is employed. This approach uses hidden Markov model technique in order to attempt the classification of the footstep signature of a number of individuals. The main idea of the system is to allow the time varying spatial weight distribution of the active office environment to be captured. Figure 2.5: Sensor Arrangement for the Carpet System [19]. However, this system had some disadvantages with pressure sensitive technology (such as that from Tekscan): 1. Some weight is supported by the areas between the pressure sensitive pads, so the total weight on an area of floor cannot be accurately ascertained; 2. High point pressures will damage the small sensors, e.g. high heels. The available technology is not recommended for sustained use even with flat shoes; 3. The technology is expensive when applied to a whole office floor (more or less $3000 per tile). For these reasons, the authors from The ORL Active Floor opted for the load cell approach. On the other hand, they lost the opportunity of processing image and concerning to that they weren’t able to see, for example, which way feet were pointing. 2.7 Floor Sensing System 13 2.7.3 A floor sensing system for gait recognition This subsection will describe a prototype floor sensor as a gait recognition system [20]. In 2005 a novel approach emerged in order to measure gait accurately without the need of video analysis. The new sensor consists of 1536 individual sensors arranged in a 3 m by 0.5 m rectangular strip with an individual sensor area of 3cm2and operates at a sample rate of 22 Hz. This solution is inspired by computer keyboards design and is made from low cost, off the shelf materials (sensors themselves cost around $100). This application is based on the extraction of all the elements referred in 2.7 and the final results proved that the floor sensing system was able to achieve an 80% recognition rate. In the Figure 2.6 we can see the final prototype. Figure 2.6: The final prototype sensor mat for gait recognition [20]. In this gait recognition system the authors found a problem known as ghosting. In ghosting a triangle of three points, when pressed simultaneously, will also illicit an erroneous fourth point. This occurs because the current can flow through multiple ways to the ground. Sometimes we solve this problem by placing diodes at each switch to stop current flowing backwards but since we have 1536 sensors we can’t do that. In order to solve this issue the team placed an insulation along diagonal lines and overlap 4 grids. 2 layers of the sensor mat were also implemented so that the resolution could be increased. In this paper the authors also explain the influence of sensor resolution on foot profile. Figure 2.7 describes this effect. 14 Background and State of the Art Figure 2.7: (a) low resolution - 1 cm2; (b) high resolution - 5 cm2[20]. The analysis of the profile of all footsteps is needed in order to give a correct gait analysis: Figure 2.8: The profile of the 4 footsteps on the sensor mat [20]. 2.7.4 Footstep imaging using Plastic Optical Fibre (POF) The cost of sensors, reliability of the sensing signal, resolution of the sensing floor, sampling rate, and sensing area are all key factors that influence the performance of the intelligent environment. In order to get a better solution based on these requirements a new technique based on optical sensing has emerged. The POF sensor utilizes light intensity transmission measurements and compared to other sensing methods offers the advantages of ruggedness, intrinsic safety and resistance to fluids. Typically, POF is available at the cost of less than 1 USD/m and can be combined with inexpensive, light and small optoelectronic light sources and detectors for the manufacture of energy efficient sensor elements. Furthermore, it is straightforward to integrate the POF sensor elements with a standard commercial underlay commonly used for carpeting, allowing the sensor head to remain inconspicuous under the normal carpet surface in the daily living space. An example of footstep imaging using POF is the new Intelligent Carpet System [21] (2015). The authors of this novel approach manufactured an 1m x 2 m sensor head by attaching 80 POF sensors on a standard commercial carpet underlay and it only cost 150USD/m2; 2.7 Floor Sensing System 15 Since the POF sensitivity to bending is still weak in absolute values, several authors have demonstrated methods to enhance their sensitivity by embedding an imperfection in fiber, which modulates its wave-guiding properties as a function of the bending radius. As the authors of the Intelligent Carpet System illustrate, the simplest and least expensive way to enhance the POF sensitivity to bending is to manufacture grooves of suitable depth and period along the POF length. A few experiments were done in order to properly discover the dimensions of the grooves. We can found those experiments in the paper, however we prefer to show the final performance results. Figure 2.9: Footstep imaging from Intelligent Carpet System [21]. Figure 2.9 presents three different bare feet positions: (a) the weight is on the metatarsus bones; (b) the weight is on the calcaneus bones; and (c) the weight is balanced on the left foot. "Compared to the actual feet coordinates, the calculated CoM (center of mass) coordinates show for both feet a clear displacement of as much as 7cm towards the back of the feet and about 3cm outwards. In case (c), in order to keep the balance, stress is naturally distributed on both, metatarsal and calcaneus bones. Furthermore, the pressure is doubled, resulting in stronger deformation affecting areas spread further, as observed by ILM. The centre of deformation is shifted with about 8cm towards the front of the foot, which corroborates that the pressure is more evenly distributed between the heel and the ball of the foot, compared to the other cases. There is generally good consistency in the PCoMA calculations and the ILM reconstructions." So far this approach seems to be perfect for our problem, however we think we should discard this technique due two main reasons: first, the methods and algorithms that were used are 16 Background and State of the Art quite complex, so the external expensive hardware needed to process all the information, raises substantially the cost of the system. Furthermore, in Intelligent Carpet System, a data scan of the complete frame takes 328ms and considering the duration of the gait events, the time resolution or image frame rate of the system required has to be at least 10 Hz (100ms imaging period). As we can see, in result of these two problems, a system based on POF is unable to reach requirement number 8. 2.8 Current Solutions During this research, we found a few approaches using force sensing principles that partially solved the main issues presented on this dissertation. Hyunseok Kim and Seongju Chang (2015) developed a touch floor system based on force sensitive resistors, capable of identifying user position and motion with high resolution. They applied a particle swarm optimization-based neural network (NN) initialized with the output of a Levenberg–Marquardt-based NN. This technique produced inaccuracy drawbacks of the trilateration method in position estimation due to sensor’s non linearity to be reduced. In short, their system was capable of providing similar functionalities and almost the same resolution as a touch pad or pointing device such as a mouse [22]. A. Nunes et al. (2007) proposed an architecture of a pressure sensing floor divided in rigid tiles. The system was based on a network of flexible pad pressure sensors, used under all tile corners. The proposed architecture was applied in an interactive room with a 64 tiles floor (256 sensors), providing a network weight measuring system that allows detecting, recording and tracking the movement of objects or people over the sensitive area. Their system was organized as a wired network of modular acquisition and computational units that communicate wireless with a computer [23]. Gang Qian et al. (2010) presented an approach for people identification based on gait using floor pressure data. By using an high-resolution pressure sensing floor they were able to obtain both the 1D pressure profile and 2D position trajectories of the centers of pressure (COP) of both feet to form a 3D COP trajectories over a footstep. From the 3D COP trajectories of a pair of footsteps, a set of features were extracted and used together with other features such as the mean pressure and stride length for people identification. In the end, their method reached an average recognition rate of 92.3% [24]. Seongju Chang et al. (2010) implemented an interactive floor system named Ubi-floor which allows users to interact with a floor based smart environment. They focus on developing a modular smart floor which could be applied to the real built environment to provide various interactive multimedia services. The location detection algorithm is based on referencing and solving equations of relative voltage strengths measured through multiple pressure sensors. The application of this technique enabled the identification of user’s position in a relatively large surface [25]. 2.9 Summary 17 2.9 Summary Along this chapter, research in the fields of biomechanics, wireless communication and floor sensing was revealed. Solutions based on wireless communications such as Wi-Fi, Bluetooth, RFID, Ultrasonic and Infra-Red are mainly used as techniques for indoor navigation. However, we described in this chapter a few disadvantages regarding to these approaches. This type of solution typically isn’t capable of detecting position with sub meter accuracy or, in some cases, they required additional devices beyond the smartphone. Figure 2.10 describes a survey of wireless indoor positioning techniques and systems. Figure 2.10: Current wireless-based positioning systems [26]. During the research of techniques for solving the requirements proposed on this dissertation, we realized that a solution based on floor sensing had more advantages than using wireless techniques. Considering the fields directly associated with the study of the dynamics of human gait, it was important to research and study the models and parameters involved in gait analysis. Achieve knowledge in themes such as normal and pathological function of gait analysis was fundamental since our solution is based on recognition and identification of footsteps. 18 Background and State of the Art Chapter 3 System Development In Chapter 1 we mentioned all the objectives of this dissertation, however we can resume our work in two main goals: 1. Determine the absolute user’s position (less than 1 m precision); 2. Estimate the user’s orientation and direction; Taking into account the background and the state of the art described in the previous chapter, and considering the constraints in which this project was developed, the proposed solution follows the topics bellow: •To determine the absolute user’s position it was installed sensors on the smart floor which are activated when a person walks through the tile; •The sensors used in our prototype are force sensitive resistors; •The smart floor is size of 60 cm x 60 cm in order to match the standard dimensions of a raised floor tile; •Our solution includes 4 sensors, each one placed at the corners of the tile; •The output of the sensors are linearised so we can get reliable data; •The new Raspberry Pi 2 is used to process all the data received from the sensors; •To estimate the user’s orientation and direction we implemented an approach based on Fuzzy Logic. 3.1 Hardware Along this section we will explain and describe with some detail all the electric components used to build the prototype. A final budget will also be presented at the end. Since the beginning, one of the main goals was the final cost of the project which must be the lowest possible. 19 26 System Development 3.1.3 Analogue to Digital Converter At the beginning of this dissertation it was purposed a scalable solution that should allow an increase of the active area whenever it was needed. Regarding to this concern, it was chosen a microprocessor capable of accepting the higher number as possible of FSR sensors (section 3.1.4). Taking this into account, we implemented an ADC because it would allow using digital input rather than analogue input. Therefore, we didn’t need to buy an expensive microprocessor with multiple analogue inputs. In other words, imagine if in the future we want to expand 6 times more the active area of our solution (to make an active area of 1.8 m x 1.2 m). In this situation we would use 24 analogue inputs which would be an expensive solution instead of using a few digital inputs. Considering our ADC, with a single digital input the system is able to read 8 sensors simultaneously. The ADC elected was the MCP3008 from Microship [34]. It’s a low cost solution (3e) and as we mentioned above it has 8 analogue input channels that can be configured for single ended and differential ADC conversions. The MCP3008 is a 10-bit ADC that can convert up to 200 kilo samples per second. Figure 3.11: MCP3008. In order to have the lowest power consumption possible we opted to use the 3.3 V supply from the microprocessor alternatively to use the 5V. Besides that, with 3.3V supply and considering that MCP3008 is a 10 bit ADC, we can achieve a lower resolution: LSB =3.3V 1023 =3.22mV (3.2) 3.1 Hardware 27 3.1.4 Microprocessor Figure 3.12: Raspberry Pi 2. The Raspberry Pi is a microprocessor based single-board computer (SBC). One of the advantages about the Raspberry Pi is that it is running Linux. Thanks to Linux the Raspberry Pi benefits from a far more flexible and powerful development environment. We can program for it in C++, Java, Python or some other language. Basically a Raspberry Pi works as if a normal computer at a relatively low price (30e). In the past we worked with Raspberry Pi and so we are already familiarized with its development environment. Besides that the Raspberry Pi is also one of the best cost-effective microprocessors. One of the main reasons to use the Raspberry Pi was also that we needed a real-time solution. The new model is extremely fast once it has a 900MHz quad-core ARM Cortex-A7 CPU [35] which is 6 times faster than the old Raspberry Pi model B+. Before any decision was taken, others microprocessors like Intel Edison [36], Arduino Uno [37] or as well as Beagle Bone [38] were explored due to their potential and contribute for our solution. Table 3.2 shows some relevant specifications related to these microprocessors Table 3.2: A brief outline of a few microprocessors. Raspberry Pi 2 Beagle Bone Black Intel Edison Arduino Uno CPU Cortex A7 Cortex A8 Atom + Quark ATmega328 Cores 4 1 2 + 1 - Clock Speed 900 MHz 1 GHz 500 MHz 16 MHz RAM 1 GB 512 MB 1 GB 32 KB GPIO 40 pin 2x46 pin 70 pin 14 pin Power Supply 3.3 V or 5 V 5 V 3.3V to 4.5 V 5 V Price 30e>40e75e20e Afterwards analysing all the devices above we thought that the Raspberry Pi 2 was a reasonable choice to work as a microprocessor. Although, others microprocessors like the ones we mentioned could be perfectly used in our solution. The final algorithm was developed in C++ and it could easily be adjusted to run inside those devices. For analogue reading, we used the MCP3008 connected to the Raspberry Pi 2 through SPI Interface. We opted for this bus protocol because it was easy to connect and didn’t require any 28 System Development additional components. Furthermore, Raspberry Pi’s GPIO header already supports this protocol. Fortunately, it already exists a useful library that allows accessing the GPIO pins of the Raspberry Pi - wiringPi library. With this library, we can easily read the analogue output of the sensors. Further we will explain, with some detail, on how it works. 3.2 Building the prototype After a few weeks installing all the electric components and configuring the system, we were finally able to get some values from FSR 402 sensors. Subsequently, a platform that simulates the floor was demanded in order to create a real scenario situation. While we were searching for the perfect material to use in the prototype, we came to the conclusion that two types of material was needed: an unbending surface for spreading equally the applied forces, and a shock absorber surface for increasing the force range of the sensors. Figure 3.13: Chipboard surface (left) and Shock Absorber surface (right) from Leroy Merlin. The smoother surface was installed over the sensors so we can absorb the applied forces and at the same time protect sensors sensitive area. The unbending surface was used as a rigid layer over the shock absorber in order to ensure that the pressure is evenly distributed across active sensing area, avoiding local high pressures at the edges. Besides, this surface allows spreading the force over a greater area and therefore the overall pressure is kept below the saturation point (as we mentioned in section 3.1.1). As a lower layer we added a chipboard surface because it is a cheaper and lighter solution and also is hard enough to support a footstep without bending. Additionally, this last layer is used to fix FSR 402 sensors at each corner of the smart floor. Figure 3.14 illustrates the physical appearance of the prototype. 3.2 Building the prototype 29 Figure 3.14: Side view of smart floor and its inside. For fixing sensors at the corner of the tile we simply used tape. At this stage we think that’s enough to ensure that sensors stay unmoved. The same technique is also used for sticking together both layers. Figure 3.15: The bottom layer with FSR 402 sensors. 30 System Development 3.3 Final Budget In Chapter 1 we purposed ourselves to come up with a low cost solution. Doing the maths, we can conclude that we maintain our goal of building a solution with less than 100e. Table 3.3 can confirm this achievement. Table 3.3: Final budget. Name Quantity Seller Unit Price FSR 402 4 DigiKey 6.72e MCP3008 1 Farnell 2.18e Raspberry Pi 2 1 Farnell 32.87e 5 V Power Supply 1 Farnell 4.19e 8 GB SD card 1 Farnell 8.89e LM324 1 Farnell 0.413 Shock Absorber Surface 62x62 cm 1Leroy Merlin 5.29e Chipboard Surface 120x60 cm 1Leroy Merlin 8.99e Total Price: 90e A few aspects must be taken into account after analysing this table. More than a third of the total cost of the project is for the microprocessor. In case of we intend to use only 1 smart floor (60x60 cm total area) we can reduce considerably the total cost by substituting the Raspberry Pi 2 for a less expensive device. It’s also important to refer that for larger sensing active areas the total cost per square meter will be reduced. Despite we would need to buy larger amounts of sensors, we would be able to work with a single Raspberry Pi (up to 24 sensors). At last, if could apply the solution to a raised floor we could use the existing panels to work as the unbending surface. We also could use the pedestals of the raised floor for fixing the FSR 402. Further we will present with more detail this idea (section 5.1). In short, imagining that we would have 100 prototypes (6mx6 m active area) taking advantage of a raised floor. In this case we would have a final price of less than 30e(per tile). 3.4 Software Along this section we will present the software used during the dissertation. The development of this project was mostly focused on 3 steps: 1. Configuring the Raspberry Pi; 2. Gathering data from sensors; 3. Modelling the algotihm using matlab 3.4 Software 31 4. Implement the algorithm in C++ to run in real-time in the RPi. In the next subsections it will be explored the 3 steps of the development of our solution. We will explain how to configure and calibrate the system and also present graphically data collected from the sensors in order to better understand the design of the Algorithm (which will be explained further). Along this section we will give special highlighting to MATLAB because it was a fundamental tool for modulation of the system. We will see later that during the data processing, there are some important characteristics that we should extract. We believe that if we can acquire all the information that is presented bellow, we will be able to identify the person’s walking: •Person’s weight. This measure will be accomplished by summing all four FSR values; •Exact time when a footstep is detected (according to NTP server); •Time on heel to time on toe; Even if we can’t get a precise measure of the person’s weight we can at least do a qualitative classification of the weight (light, heavy,...) depending on the adopted thresholds. Considering the last item, if we can synchronize both clocks of the micro controller and the user’s smart phone we will be able to save the exact time that the foot hit the smart floor. Since the smartphone is also capable of calculating the time that the foot hit the ground (using accelerometer), later we will be able to match these two information time and identify the user (impact time registered by the smart floor and impact time extracted using the accelerometer). 3.4.1 Raspbian and useful libraries "Raspbian is an unofficial port of Debian Wheezy armhf with compilation settings adjusted to produce optimized "hard float" code that will run on the Raspberry Pi. This provides significantly faster performance for applications that make heavy use of floating point arithmetic operations. All other applications will also gain some performance through the use of advanced instructions of the ARMv6 CPU in Raspberry Pi." [39] Figure 3.16: Raspbian is the Debian Wheezy adapted to Raspberry Pi. Raspbian can be directly downloaded from the Raspberry Pi webpage and it’s a user’s friendly operating system. It is very similar to Linux and for that reason we quickly configured the system. All the steps for configuration can be found at the Raspberry Pi webpage. 32 System Development As we mentioned before, a useful library for our project was the wiringPi library [40]. WiringPi is a GPIO access library for the BCM2835 used in the Raspberry Pi. It’s designed to be familiar and easy to use. It also has a lot of different functions that really help to acquire all the data through the Raspberry Pi. We now present the ones that were useful for our project: •void pinMode (int pin, int mode); •void digitalWrite (int pin, int value); •wiringPiSetup (void); •analogRead (int pin); The first function sets the mode of a pin (for example to either INPUT or OUTPUT). The second function writes the value HIGH or LOW to the given pin. It’s clear to notice that digitalWrite function depends on the previous one because the pin must be set as an output earlier. In our particular case, we used both functions to turn on a green LED whenever the main algorithm is running, in other words, while someone is stepping on the smart floor. There are four ways to initialise wiringPi. We used the wiringPiSetup for assuming that the calling program is going to be using the wiringPi pin numbering scheme. Basically it’s a simplified numbering scheme which provides mapping from virtual pin to the real underlying GPIO numbers. However, the user can choose another setup for the wiringPi (e.g. use wiringPiSetupGpio for using GPIO numbers directly with no re-mapping). At last but not least, as the name indicates, the analogRead is used to get data from the ADC. This function does all the hard work and we just need to insert the channel pin number. Besides, the same author offers a library for the MCP3008. This library is implemented concerning the communication protocol of our ADC. Allying the wiringPi library to the MCP3008 library, with a single instruction we are able to get the analogue values of FSR 402 sensors. 3.4.2 Development Tools Considering that our solution was designed to be used as a checkpoint for position reference, it is appropriated to consider that in an average size building we could have dozens of replicas of our prototype. Concerning this mass production idea, we decided to develop the algorithm in one of the most used programming languages (C++) in order to allow the main code running on other devices. Thus, it should be no problem to apply our code to a lower price microprocessor. In this section instead of explaining the algorithm (we will explore it in section 3.5), we will present some routines that we used to start reading values and also explain the dataset collection. One of the first routines that we implemented is analogread4.c. The analogread4.c function was responsible for extracting to a .txt file the ADC values received by the MCP3008. It also saved the exact time that the values were read. Having a time perception of the events will be useful for designing the algorithm. This routine gathers the outpuit from the 4 FSR sensors and 3.4 Software 33 saves it taking into account .csv. Later, with this format, we were able to access the information using Excel or even Matlab. Some results are presented in figure 3.17. Figure 3.17: Dataset Collection The C++ code was developed in Sublime Text [41] and then compiled with Cygwin [42]. Therefore, we used Putty [43] to create a SSH connection to communicate with the Raspberry Pi. Through the SSH connection we also transferred files using the WinSCP tool [44]. In short, all the developed code was designed in a personal computer (modulation) and afterwards it was inserted into the Microprocessor (implementation). The figure 3.18 illustrates the role of each tool for analogue reading of FSR sensors. As we can see, in this case, pressure was being applied only to FSR0. Figure 3.18: Analogue reading when pressure was being applied only to FSR0 sensor. 34 System Development As soon as we were able to get pressure data from the sensors we decided to analyse this information graphically in order to better understand the system behaviour when a person walked over the smart floor. At first instance, we study the system performance using Excel: Figure 3.19: System performance when a person walks from right (East) to left (West). Looking at the results presented above we can define two main events: firstly an abrupt ground reaction force due heel striking, and then another sharp ground reaction force associated to the toe push-off. Figure 3.20 explains these events. Figure 3.20: Sample ground reaction force (GRF) profile of a single Load Cell [45]. To improve data’s analysis we switch from Excel to MATLAB. We used Matlab to analyse the collected data and model the algorithm. The following subsection will explain all the performed procedures. 3.4 Software 35 3.4.3 MATLAB "MATLAB is a high-level language and interactive environment for numerical computation, visualization, and programming. Using MATLAB, you can analyse data, develop algorithms, and create models and applications. The language, tools, and built-in math functions enable you to explore multiple approaches and reach a solution faster than with spreadsheets or traditional programming languages, such as C/C++ or Java." [46] Concerning the advantages mentioned above, on the context of this dissertation, MATLAB version R2014a was used for analysing the incoming data from the FSR sensors. Plotting these signals, it’s possible to detect the two main phases associated to human gait. Similar to Figure 3.20, we can distinguish the heel striking from the toe-push off. Figure 3.21: System performance when a person walks from left (West) to right (East) After analysing a few samples from several tests with previously known directions, we start designing the algorithm for direction estimation. The MATLAB was also used to design and implement Fuzzy Logic. At the end MATLAB revealed to be a useful tool that helped us to reach 42 System Development 3.5.2 Fuzzy Logic Rules At the end of our algorithm, we implemented a set of fuzzy rules. These rules were applied in order to get the direction estimation. Since we were using Fuzzy Logic, we were allowed to expand the algorithm for new non-ideal situations. For example, while we were doing the tests we notice a few events that weren’t covered by the fuzzy rules such as when part of the foot hit outside the smart floor. Considering table 3.4, we conclude that most of the fuzzy rules applied are based on analysing the footstep position, in others words, knowing which sensors were activated first. Table 3.4: Fuzzy rules examples. Nr. Fuzzy Rule 1 IF FSR0 AND FSR1 IS HEEL AND FSR2 AND FSR3 IS TOE THAN DIRECTION IS N_S 2 IF FSR3 AND FSR2 IS HEEL AND FSR0 AND FSR1 IS TOE THAN DIRECTION IS S_N 3 IF FSR0 AND FSR2 IS HEEL AND FSR1 AND FSR3 IS TOE THAN DIRECTION IS W_E 4 IF FSR1 AND FSR3 IS HEEL AND FSR0 AND FSR2 IS TOE THAN DIRECTION IS E_W Table 3.5 shows the set of rules that we use for checking on each side the foot touch the smart floor. Afterwards we have a final direction estimation, we compared the max values of both FSR. If we had a "HEEL FSR" higher than its pair and subsequently the corresponding "TOE FSR" also higher than its pair it means that more pressure was applied to one side of the tile. Table 3.5: Fuzzy rules for checking which side the foot hit the ground. Nr. Fuzzy Rule 5 IF DIRECTION IS N_S AND FSR0 IS HIGHER THAN FSR1 AND FSR2 IS HIGHER THAN FSR3 THAN DIRECTION IS N_S (W) 6 IF DIRECTION IS N_S AND FSR1 IS HIGHER THAN FSR0 AND FSR3 IS HIGHER THAN FSR2 THAN DIRECTION IS N_S (E) 7 IF DIRECTION IS S_N AND FSR2 IS HIGHER THAN FSR3 AND FSR0 IS HIGHER THAN FSR1 THAN DIRECTION IS S_N (W) 8 IF DIRECTION IS S_N AND FSR3 IS HIGHER THAN FSR2 AND FSR1 IS HIGHER THAN FSR0 THAN DIRECTION IS S_N (E) 9 IF DIRECTION IS W_E AND FSR0 IS HIGHER THAN FSR2 AND FSR1 IS HIGHER THAN FSR3 THAN DIRECTION IS W_E (N) 10 IF DIRECTION IS W_E AND FSR2 IS HIGHER THAN FSR0 AND FSR3 IS HIGHER THAN FSR1 THAN DIRECTION IS W_E (S) 11 IF DIRECTION IS E_W AND FSR1 IS HIGHER THAN FSR3 AND FSR0 IS HIGHER THAN FSR2 THAN DIRECTION IS E_W (N) 12 IF DIRECTION IS E_W AND FSR3 IS HIGHER THAN FSR1 AND FSR0 IS HIGHER THAN FSR2 THAN DIRECTION IS E_W (S) Chapter 4 Tests and Results Along this chapter it will be described the performed tests. 7 people with an average weight between 65 and 95Kg tested the final system. The subjects heights were from 175 to 190cm and their shoe size were from 39 to 44 (Euro Sizes), which conceded different sizes of footsteps. At first stage, the individuals walked over the tile following previously defined directions. The data was collected and processed later using MATLAB (modulation). At the end, in order to better reproduce a real case scenario, we assembled a few tiles for simulating a raised floor. In this case, data was already processed in the Raspberry Pi at real-time, using C++ Language (implementation). For the final tests, we also elevated the floor around the smart floor in order to avoid false positives results. In other words, since the smart floor has 3 layers, the subjects needed to climb to the top of the smart floor (3-5 cm), which could change the normal behaviour of human gait. One of the first tests realized in order to prove the concept of our system is presented in figure 4.1. Figure 4.1: Oscilloscope output when someone is walking on the same direction but at opposite orientations (left and right). We can distinguish two max peaks which proves that we might be able to identify the heel striking (in blue on the left image and yellow on the right image) and toe push-off (in yellow on the left image and blue on the right image). 43 44 Tests and Results Figure 4.2: First performed tests following previously defined directions. The figure describes the three phases of human gait. Starting from left to right, first we have heel striking, than the weight transference and finally the toe push-off. As we mentioned above, we start testing the system by gathering data and then processing it using MATLAB. All the performed tests were done under previously defined directions in order to later match the results and check if they were correct. Some results will be presented in subsection 4.1. Taking into account that we were analysing the pressure applied to each sensor, it was fundamental to have a balanced surface for doing the tests. Sometimes the floor had small highs that unbalanced the smart floor and consequently the results were affected. In order to avoid this problem we tried to do all the tests on the flattest ground possible. Figures 4.3 and 4.4 illustrated the final test bed used. Figure 4.3: Test bed for the final tests. 4.1 Results 45 Figure 4.4: Zoom in microprocessor. All the cables and sensors are unnoticeable to the user. The test bed described was used taking into account two main goals: simulating a real case scenario and proving the idea that all the system can stay undetectable. 4.1 Results In this subsection we will present the obtained results. Regarding our solution, the final output is a string with the final direction estimation. There are 12 directions and orientations that the algorithm is able to identify: 1. N_S, N_S (W) and N_S (E); 2. S_N, S_N (E) and N_S (W); 3. W_E, W_E (S) and W_E (N); 4. E_W, E_W (N) and E_W (S); The output mentioned above represents the final direction for when the foot hit the ground, respectively, on the centre, on right or on the left side of the smart floor. Considering that the final result isn’t something measurable, i.e, the final direction is not presented in angle degrees, we can’t do a fair measurement of the precision of the final output of the system. However, more than 100 steps from 7 different people were analysed and the algorithm were able to correctly identify all of them. It also differentiated the ones when the footstep hit the ground on the right/left side of the smart floor. An example of the differentiation mentioned is illustrated in figure 4.5. 46 Tests and Results Figure 4.5: Example of a footstep hitting the right side of the smart floor. The following figures illustrate some performed tests. The main four directions are exemplified as well as the plotting of the output signals. Figure 4.6: Test example of walking from North to South. 4.1 Results 47 Figure 4.7: Test example of walking from South to North. Figure 4.8: Test example of walking from West to East. Figure 4.9: Test example of walking from East to West. 48 Tests and Results A second test was realized in order to evaluate the performance of the smart floor while a subject was walking randomly. The results are presented bellow. Table 4.1: Results from walking randomly Nr. Direction Output Nr. Direction Output Nr. Direction Output 1E-W (N) E-W 17 E-W (S) E-W (S) 33 N-S N-S (W) 2W-E W-E 18 S-N (E) NONE 34 E-W E-W 3E-W (S) E-W (S) 19 W-E W-E 35 W-E (S) W-E (S) 4S-N N-S 20 E-W (N) NONE 36 E-W (S) E-W (S) 5N-S (W) NONE 21 W-E (N) NONE 37 S-N (E) S-N (E) 6S-N (W) NONE 22 E-W (N) E-W (N) 38 N-S (E) NONE 7S-N (E) S-N (E) 23 S-N S-N 39 S-N (W) NONE 8N-S N-S 24 N-S N-S 40 N-S (W) N-S (W) 9E-W (N) E-W (N) 25 E-W E-W 41 N-S (E) N-S (E) 10 W-E (N) W-E 26 W-E W-E (N) 42 S-N (W) NONE 11 S-N S-N 27 E-W (S) E-W (S) 43 W-E W-E 12 N-S N-S 28 W-E (S) W-E (S) 44 E-W E-W (N) 13 S-N (E) S-N (E) 29 E-W (N) E-W (N) 45 W-E W-E 14 N-S (E) NONE 30 W-E W-E 46 W-E W-E 15 E-W E-W 31 N-S N-S 47 S-N S-N 16 W-E W-E 32 S-N S-N 48 N-S N-S Age 23 Average value read in Calibration (ADC) Sex: Male FSR0: 968 Weight: 95 Kg FSR1: 986 Height: 190 cm FSR2: 896 FSR3: 1004 Figure 4.10: Results from table 4.1. Looking at table 4.1 we can see that the results were satisfactory. Although the smart floor was not balanced (for example, FSR2 registered a ADC value 20% lower than FSR3), we were able of detecting correctly 81% of the tests. We believe that if the smart floor were correctly balanced (all 4 FSR values very similiar at the beginning) the results could improve. For example, if we had pedestals on each corner of the tile (just like a raised floor), the smart floor would be balanced and it also would help to spread the forces to the corners. 4.1 Results 49 The 19% of the wrong results could have an explanation. Looking at table 4.1, we see that all the wrong results occurred while the subject was walking from N-S or S-N and the foot did not hit the centre of the surface (nr: 5, 6, 14, 18, 20, 21, 38, 39 and 42). Considering the position of each sensor, we know that FSR2 and FSR3 were placed at the west and east side of the tile, respectively. Once we hadn’t the FSR2 at the same level of the FSR3 (FSR2 was 20% lower than FSR3), it’s comprehensive that, for example, when the subject hit the floor on the west side of the tile while walking from N-S, the output of the 4 sensors were influenced owing to the slope of the West side. Another interesting result is that we didn’t have a single false positive result. In other words, when none of the fuzzy rules could calculate the direction, the output was "NONE". Finally, we believe that all the undetected directions could be calculated by adding new rules to the algorithm with, for example, higher values of threshold in order to include the tests number 5, 6, 14, 18, 20, 21, 38, 39 and 42. In order to increase the number of tests, we asked for 3 volunteers to walk randomly over the smart floor. During the tests, we did our best to have a balanced floor and so the results could improve. Figure 4.11 illustrates the results from the 3 subjects. Table 4.2 also presents the ADC value registered in the calibration. At this point, we had better results comparing to the ones showcased above. Figure 4.11: Results from walking randomly. Table 4.2: Information related to the performed tests ADC value in calibration Subject 1 Subject 2 Subject 3 sensor1 955 936 959 sensor2 981 939 950 sensor3 956 959 886 sensor4 998 1006 1006 weight 85 Kg 75 Kg 85 Kg height 185 cm 186 cm 185 cm 50 Tests and Results Table 4.3: Confusion Matrix - part I. Table 4.4: Confusion Matrix - part II. Chapter 5 Conclusions and Future Work This research proposes a low cost solution for improving the Indoor Location System accuracy. Our technique is based on a floor sensing system with four FSR sensors. The smart floor works as a position reference with direction estimator. At the moment the algorithm detects twelve different directions and orientations. We also developed a scalable solution that can easily be expanded to cover larger areas. In next section we summarize all the achievements of our project. 5.1 Achievements Considering all the results of our solution we can affirm that, effectively, the smart floor can be used as a position reference and direction estimator. In the list bellow we enumerate the main achievements: 1. Low cost solution with a total price less than 100e; 2. Position reference width sub-one-meter accuracy; 3. Low energy consumption; 4. Real-time solution; Associated to the algorithm we were able of: 1. Successfully detects more than 100 different footsteps from people with weights of 65 to 95 Kg and shoe size of 39 to 44 (Euro sizes); 2. When the subject was walking randomly, 81% of the results were correct, even with an unbalanced floor; 3. Distinguish on each side the foot hit the smart floor (centre, right or left); 4. Calculating the time on heel to time on toe; 5. Registering the exact time of the impact on the smart floor (according to NTP server); 6. Calculating the maximum force applied over the tile during the footstep (in ADC value); 51