Universidade de Aveiro Departamento deElectr´onica, Telecomunica¸c˜oes e Inform´atica, 2016
Miguel
Castro Migueis
Vieira
VLC based Position Estimation for Robotic
Navigation
Estima¸
c˜
ao da Posi¸
c˜
ao baseada em VLC para
Navega¸
c˜
ao Rob´
otica
Universidade de Aveiro Departamento deElectr´onica, Telecomunica¸c˜oes e Inform´atica, 2016
Miguel
Castro Migueis
Vieira
VLC based Position Estimation for Robotic
Navigation
Estima¸
c˜
ao da Posi¸
c˜
ao baseada em VLC para
Navega¸
c˜
ao Rob´
otica
Disserta¸c˜ao apresentada `a Universidade de Aveiro para cumprimento dos requisitos necess´arios `a obten¸c˜ao do grau de Mestre em Engenharia Eletr´onica e Telecomunica¸c˜oes, realizada sob a orienta¸c˜ao cient´ıfica de Pro-fessor Doutor Pedro Fonseca e sob a coorienta¸c˜ao do Professor Doutor Jos´e Lu´ıs Costa Pinto de Azevedo, Professores do Departamento Eletr´onica Telecomunica¸c˜oes e Inform´atica da Universidade de Aveiro.
o j´uri / the jury
presidente / president Professor Doutor Telmo Reis Cunha Professor Auxiliar, Universidade de Aveiro
vogais / examiners committee Professora Doutora M´onica Jorge Carvalho de Figueiredo Professora Adjunta, Departamento de Engenharia da Escola Superior de Tecnologia e Gest˜ao do Instituto Polit´ecnico de Leiria (Arguente Principal) Professor Doutor Pedro Nicolau Faria da Fonseca
agradecimentos Gostaria de come¸car por agradecer ao meu orientador, Prof. Pedro Fonseca da Universidade de Aveiro, por me ter dado a conhecer uma ´
area com grande potencial , por todo o apoio prestado em todo o trabalho, por me ter deixado ter o prazer e a oportunidade de apresentar o artigo publicamente, por ter insistido para que o trabalho ficasse rigoroso e conciso. Gostaria de agradecer tamb´em ao Prof. Lu´ıs Nero, Prof. Jo˜ao Paulo Barraca e ao Nuno Louren¸co por me terem ajudado a corrigir alguns erros encontrados durante as apresenta¸c˜oes e ao meu coorientador Prof. Jos´e Lu´ıs Azevedo por toda a ajuda na cria¸c˜ao da base rotativa do prot´otipo.
Queria agradecer aos meus pais por me dizerem que o trabalho estava muito bonito, s´o para n˜ao ouvirem a explica¸c˜ao e que gra¸cas a eles ´e que isto foi poss´ıvel. Quero tamb´em agradecer ao meu irm˜ao Andr´e Vieira, Professor na Universidade de S˜ao Carlos, Brasil por me ter ajudado a corrigir algumas falhas. Um grande abra¸co para todos os meus amigos que apoiaram, me faziam rir e me ouviram em todos os momentos e ao pessoal do laborat´orio que disponibilizava momentos de divers˜ao. Quero finalmente agradecer `a Rita Vale, por todo o apoio, pela aten¸c˜ao, pelo tempo perdido a corrigir a minha disserta¸c˜ao e por me erguer a cabe¸ca e dizer para continuar.
Resumo A cada vez mais frequente utiliza¸c˜ao de LED como ilumina¸c˜ao artificial favoreceu o desenvolvimento de um posicionamento indoor baseado em luz vis´ıvel. Nesta disserta¸c˜ao foi feito um levantamento sobre as estrat´egias e os sensores utilizados neste tipo de posicionamento. Para tal, propomo-nos a estimar a posi¸c˜ao de um robot atrav´es de comu-nica¸c˜ao por luz vis´ıvel, usando um prot´otipo desenvolvido em trabalhos anteriores.
O trabalho desenvolvido organizou-se em quatro etapas. Numa primeira fase, verificou-se que o prot´otipo mencionado se adequa para estimar a posi¸c˜ao. As limita¸c˜oes deste, levaram `a cria¸c˜ao de um ambi-ente de simula¸c˜ao onde foram estudadas estruturas semelhantes. Neste seguimento, procedeu-se `a compara¸c˜ao de resultados obtidos no simu-lador com experiˆencias similares utilizando o prot´otipo. Posteriormente foi implementado um modelo de ru´ıdo no ambiente de simula¸c˜ao per-mitindo testar a influˆencia do mesmo na posi¸c˜ao estimada.
Os resultados obtidos demonstram ser poss´ıvel implementar um sis-tema de posicionamento por luz vis´ıvel utilizando um simples sensor composto por alguns foto-d´ıodos posicionados sobre uma calote hem-isf´erica, representando uma solu¸c˜ao de baixo custo para posiciona-mento por luz vis´ıvel. Na compara¸c˜ao feita entre os resultados obtidos pelo simulador e o prot´otipo verificou-se que este consegue apresentar uma resposta idˆentica ao prot´otipo. Com a implementa¸c˜ao do mod-elo de ru´ıdo, os resultados apresentam um erro de poucos cent´ımetros. Conclu´ımos que o campo de vis˜ao dos foto-d´ıodos tem um papel muito importante quando a posi¸c˜ao ´e estimada. O campo de vis˜ao do sen-sor deve ser grande o suficiente para intercetarem outros para prevenir pontos cegos, mas n˜ao demasiado grande uma vez que levaria a erros por todos os sensores receberem sinal.
Abstract The widespread use of LED as artificial illumination lead to the de-velopment of indoor positioning systems using visible light. On this work we gathered information on strategies and sensors used in visible light positioning (VLP). As such, we propose to estimate a robots po-sition based on visible light communication (VLC) using a prototype developed in previous works.
The work was divided in four stages. Initially, we verified that the pro-totype used was suitable to estimate its position. In order to overcome the prototype’s limitations, a simulation environment was developed, where similar structures were tested. This allowed the comparison be-tween the results obtained using the prototype and those from the simulator. At last, a noise model was implemented on the simulator to verify its influence on the position estimation.
The results show the viability of implementing VLP using a simple sensor based on a set of photo-diodes placed over a hemispherical dome, yielding a low-cost solution for VLP. When comparing the results obtained with the prototype and the simulator, we verified that the response is identical. With the implementation of the noise model, the results show an error of a few centimetres. We concluded that the photo-diodes field of view is important when the position is estimated. The sensors field of view should be big enough to intercept others in order to prevent blind spots but not too big since it would lead to errors because all sensors would receive signal.
Contents
Contents i
List of Figures iii
List of Tables v Acronyms vii 1 Introduction 1 1.1 Context . . . 1 1.2 Motivation . . . 2 1.3 Proposal . . . 2 1.4 Dissertation Structure . . . 3
2 State of the Art 5 2.1 Sensors . . . 5
2.2 Structures and approaches . . . 6
2.3 Algorithms . . . 8
2.4 Chapter Remarks . . . 11
3 Experimental setup and results analysis 13 3.1 Position Estimation with the Prototype . . . 13
3.1.1 Prototype . . . 14
3.1.2 Position estimation algorithm . . . 14
3.1.3 Test Procedure . . . 16
3.1.4 Results analysis . . . 17
3.2 Simulation Environment for VLP . . . 20
3.2.1 Modelling . . . 21
3.2.2 Adapt the algorithm . . . 24
3.2.3 Test Procedure . . . 25
3.2.4 Results analysis . . . 25
3.3 Simulation Environment Validation . . . 26
3.3.1 Test Procedure . . . 26
3.4 Noise Model Implementation . . . 30 3.4.1 Noise in the PD . . . 30 3.4.2 Implementation . . . 32 3.4.3 Test Procedure . . . 32 3.4.4 Results analysis . . . 33 3.5 Chapter Remarks . . . 34
4 Conclusion and Future Work 41 4.1 Conclusion . . . 41
4.2 Future Work . . . 42
Bibliography 43 A Functions and Scripts 46 A.1 Tables of functions and scripts used . . . 46
B Data 49 B.1 Data received from the first and fourth quadrant . . . 49
List of Figures
2.1 Diagram of VLC multiple applications and different ways to implement VLP. 5
2.2 PDA10A photo-diode. . . 6
2.3 Possible scenario to use VLP . . . 6
2.4 Visible light indoor imaging optical wireless system model . . . 9
2.5 Visible light positioning system model using three light sources . . . 9
2.6 LED structure model . . . 9
3.1 Azimuth (θ) and elevation (φ) representation. . . 13
3.2 Photodiode circuit . . . 14
3.3 Transmitter circuit . . . 14
3.4 Used Prototype composed of 8 Photo-detectors and a microcontroller. . . . 15
3.5 Test procedure loop. . . 16
3.6 Floor of the room with the test points marked. . . 17
3.7 Signal received in all PDs in position (1.0, -0.5) with an azimuth of 70◦. . . 17
3.8 Measured position compared with the real position. . . 18
3.9 Error associated to each test point. . . 19
3.10 Structure with a step motor. . . 19
3.11 The two main modules from the simulation environment. . . 20
3.12 Incidence angle and field-of-view. . . 21
3.13 A VLP sensor with 8 meridians and 3 parallels. . . 22
3.14 Error map, using largest sum. . . 26
3.15 Error map, using most non-zero values. . . 27
3.16 Maximum and average error as a function of FOV. . . 28
3.17 Right angle triangle made with information provided by the sensors. . . 29
3.18 Signal received by the Photo-detectors . . . 30
3.19 Signal received by the PDs in the simulator. . . 31
3.20 Both real and simulated results overlap. . . 32
3.21 Map of points with the results from real and simulated scenario. . . 34
3.22 Photo-Detector current. . . 35
3.23 Hemispherical dome with meridians and parallels represented. . . 35
3.24 The error of a structure 6x24 with different FOV varying the SNR. . . 36
3.25 The error of a structure 8x32 with different FOV varying the SNR. . . 36
3.27 The three different configuration with a FOV of 10◦. . . 37
3.28 The three different configuration with a FOV of 20◦. . . 38
3.29 The three different configuration with a FOV of 30◦. . . 38
List of Tables
3.1 Intensity received in each sensor in all azimuth angles . . . 18
3.2 The maximum, average and minimum values of error . . . 19
3.3 Comparison of methods for choosing the best line for azimuth computation. 25 3.4 Values used to get the real FOV and elevation angle of the prototype . . . 27
3.5 Comparison between the elevation and azimuth from experience and the validation framework . . . 33
3.6 The average error of all configuration with the different FOVs . . . 34
A.1 Table of functions used for all tests preformed . . . 46
A.2 Table of scripts used for all tests preformed . . . 47
B.1 Signal received in each PD in first quadrant . . . 50
B.2 Signal received in each PD in first quadrant . . . 51
B.3 Signal received in each PD in first quadrant . . . 52
Acronyms
AOA Angle of Arrival
FOV Field of View
GPS Global Positioning System HFOV Half Field of View
HTM Homogeneous Transformation Matrix IPS Indoor Positioning System
IR Infrared
LBS Location Based Systems
MIMO Multiple Input Multiple Output
PD Photo-diode
RF Radio Frequency
RSSI Received Signal Strength Indication
SNR Signal Noise Ratio
TDOA Time Difference of Arrival
TOA Time of Arrival
VLC Visible Light Communication VLP Visible Light Positioning
Chapter 1
Introduction
1.1
Context
Visible Light Positioning (VLP) is emerging as a solution for indoor localization. In-terest on VLP has risen, among other reasons, as a result of the dissemination of LED illumination [1].
Studies on positioning systems for Location Based Services (LBS) have been focused on the Global Positioning System (GPS), infrared, radio frequency (RF ), ultrasound and more recently, Visible Light Positioning (VLP ). GPS is an efficient system for tracking or determine the location of various objects in open surroundings. However, it is unable to provide location inside buildings [2–4]. The use of an indoor positioning system in large places such as hypermarkets, hospitals, airports, among others, will simplify navi-gation [5–8]. Indoor positioning systems, such as infrared (IR), RF and ultrasound have some constraints. To use IR based system requires building an infrastructure to place the receivers and wires, incurring in additional costs [5, 9]. RF-based methods are used on a daily basis in cell-phone communications, computer wireless networks, GPS, wireless communication, among others. Other restrictions in radio based systems include multi-path propagation, difficult deployment [5], the requirement for extremely accurate time measurements, the relatively poor accuracy of indoor positioning achievable by RF-based techniques and electro-magnetic interference [1]. As IR, ultrasound requires building a specific infrastructure [10, 11]. Ultrasonic high-precision indoor positioning system (IPS) uses Direct Sequence Code-Division Multiple Access (DS-CDMA) techniques, but this is also a disadvantage because of the non-power controlled CDMA-based systems, along with sensitivity to the Doppler effect due to the speed of sound and distortions affected by the responses of the transducer [12]. Compared to these methods, indoor positioning systems using Visible Light Communication (VLC) present several advantages. It can be imple-mented at low price and relying on an existing LED-based illumination infrastructure, requiring a transmitter (light source) and a receiver (photo-detector, PD) [3]. It can also be used in RF sensitive areas such as hospitals and aircrafts. In addition, several authors refer that there is little influence on multipath interference caused by non-line of sight
propagation [5, 13].
Techniques for VLP are based on triangulation, trilateration and fingerprinting [14], which, in some cases, are combined with other localization methods. Triangulation is the process of determining the location of a point by measuring angles to it from known points at either end of a fixed baseline [14]. A typical example for triangulation is the angle of arrival (AOA) method, this determines the direction by measuring the Time Difference of Arrival (TDOA) at individual elements of the array, from these delays the AOA can be calculated. [1, 15]. Trilateration is the process of determining the location of points by measurement of several distances to a reference point using geometry [14]. This can be reached by some methods as time of arrival (TOA), time difference of arrival (TDOA) and received signal strength Indication (RSSI) [1]. Fingerprinting consists on estimating the relative position by matching the data from online measurements with pre-measured location-related data [16]. VLC uses LED for its luminosity due to their reachable cost, low power consumption and low heat generation. Transmitting digital signal using LED, is a developing communication technology and has a broad prospect of applications for indoor communications [1, 2, 4, 5]. There are several standards for VLC, including IEEE 802.11 IP PHY, IEEE 802.15.7, and JEITA CP-1221. However, while these are accepted as an important concern of VLC and Visible Light Positioning (VLP), there are researchers that do not use the norms above. VLP systems can be designed with a number of different architectures, depending on the study purpose [1].
1.2
Motivation
Nowadays, LED is widely used as artificial illumination mostly due to its advantages. Not only it has low power consumption, low heat generation and high light intensity but also, LED allows light modulation as data broadcaster and LED luminaries can work as beacons for the indoor robot positioning. These reasons together with the widespread use of this illumination are opening doors to Visible Light Positioning systems.
1.3
Proposal
Researchers have been looking for the most reliable and precise indoor positioning system. The increasing use of LED and therefore the development of VLP makes this a promising navigation system. As such, the aim of this work is to estimate the position of a robot platform using Visible Light Communication. For that we will use a prototype crated by [17].
This work is based on previous developments made by our research team, documented in [17]. In this dissertation, we investigate the application of the sensor developed in [17] to the problem of determining the location of an object in an indoor environment, namely by studying the algorithms for computing the object location and the performance of these algorithms, in terms of location error.
1.4
Dissertation Structure
This dissertation is divided in four chapters. Chapter 1 consists of an introduction to this work, the motivation and the thesis proposal. Chapter 2 summarizes what has been done so far on VLP, namely the sensors , structures, and algorithms used as well as different approaches. A general overview of all experiments, their methodologies and results analysis are explored on Chapter 3. Finally, Chapter 4 presents the conclusions of this work and also some future work notes.
Chapter 2
State of the Art
This chapter reviews the literature relevant for this dissertation work aimed to better understand Visible Light Positioning, knowing the different sensors, structures, approaches and algorithms used. Figure 2.1, represents the different applications for VLC and in how many ways VLP can be implemented.
Figure 2.1: Diagram of VLC multiple applications and different ways to implement VLP.
2.1
Sensors
Sensors are commonly used in robotics since by processing the data received they allow robots to interact with their surroundings. The choice of sensor will depend on the final purpose of the study. A photo-diode (PD), an image sensor or a mobile phone camera are examples of sensors used in VLP [16]. We will focus on the PD since it presents several advantages, for intance, its low cost, fast response time, low noise, usable with almost any visible or near infrared light source as LEDs, neon, flurescent, among others. Its aplicability is vast, it can be used in cameras as photographic flash control, in safety equipment as smoke detectors, in industry as position sensors, in communications for optical communications
and VLP [18]. It is a semiconductor device that generate an output which is proportional to light intensity.
There are also more complex devices based on PD, such as the PDA10A used by [19] (figure 2.2), which can be fixed or moving, with different degrees of freedom. Note that even though most the sensors used are similar, what differentiate the indoor positioning systems are the structures and the different approaches to achieve the same goal.
Figure 2.2: PDA10A photo-diode.
2.2
Structures and approaches
Visible light positioning can be used in different scenarios: in a warehouse, where the stacker uses the artificial illumination (figure 2.3) to store packages, in a hospital to locate a wheelchair or even in a museum detecting the guided tour headphones [1]. For that to be possible it is necessary to establish communication strategies. It is necessary to define how to transmit the signal and how it will be interpreted.
Multiple input multiple output (MIMO) is a possible way to broadcast wireless infor-mation using several transmitters and receivers. MIMO has become an essential element of wireless communication, having more capacity in its channels than single input single output. For an indoor positioning system, MIMO allows the alignment required for such an interconnect to be achieved in the receiver as it is not necessary that light from a source precisely strikes a single detector [13]. It is used to minimize errors and optimize data speed. Besides MIMO, other ways to transmit information are used, as dimmed LEDs via pulse with modulation (PWM) [20], intensity modulation direct detection (IM/DD), the use of optical code division multiple access (OCDMA) [19] and frequency division multiple access (FDMA) [21]. As PWM, on-off keying (OOK) and pulse-position modulation (PPM) have been used in VLC single channel systems as modulation methods. OOK denotes the simplest form of amplitude-shift keying (ASK) modulation that represents digital data at the presence or absence of a carrier wave. In its simplest form, the presence of a carrier for a specific duration represents a binary one, while its absence for the same duration represents a binary zero. Some more sophisticated schemes vary these durations to convey additional information. It is analogous to unipolar encoding line code [22]. PPM is a form of signal modulation in which M message bits are encoded by transmitting a single pulse in one of 2M possible required time-shifts. This is repeated every T seconds, so that the
transmitted bit rate is M/T bits per second. It is primarily useful for optical communi-cations systems, where it tends to have little or none multipath interference [23]. When illuminated LEDs are densely arranged, inter-cell interference may be a serious problem for single channel systems. In order to overcome that interference, a carrier allocation VLC system is a possible solution as [24] proposed. IM is a form of modulation in which the op-tical power of a source is varied in accordance with some characteristics of the modulating signal. The IM/DD method is usually used in VLC due to the simple implementation of a low cost receiver, the possibility of modulation formats and high data rate compared with VLC based on image processing. Variation in the intensity of light emitted from a LED can be converted to current variation by a photo-detector (PD), so, the modulated signal can be recovered at the receiver [24]. In OCDMA, an optical code (OC) represents an user address and signs each transmitted data bit, which is based on the principle that codes are mapped to the identities or addresses of users following a code-user relation [25]. In the case of FDMA, it consists on the division of the frequency band allocated for wireless communication into thirty channels, each of which can carry digital data, it can be used with both analog and digital signal [26].
Even with many techniques to transmit information, the best way to interpret data is still being studied. Regarding this, many of indoor positioning systems use received signal strength indication (RSSI) to estimate the position [2,14,19,20,27,28]. The received power drives from the Lambertian radiation pattern of the LED, the LED’s height and the distance between the LED and a mobile station. Given all the necessary parameters and the signal power at the receiver, trilateration is used to calculate distances between LEDs and a target [16]. Using this technique and knowing the LED position, very accurate positioning can be achieved [1]. Time of arrival (TOA) is another technique frequently used in localization, and it is the base of the GPS system. Nevertheless, it requires the
transmitted signals to be very accurately synchronized [1]. TOA works by calculating the distances between LEDs and the target from the arrival time of signals and then uses these estimated distances to derive the position of the target. For visible light, the distance is calculated by directly multiplying the propagation delay of the signal by the speed of light. Annother techique is named time difference of arrival (TDOA) which helps to estimate position by supposing that all the LEDs transmit signals to the receiver, due to the difference in the distance from the receiver to the LEDs, the time at which signal arrives at the receiver is different [16]. Another method for VLP systems is the angle of arrival (AOA). After obtaining the angle of arrival the position of the target is determined as the intersection of the multiple beams [16]. Positioning based on AOA it not frequently used in radio-based systems because of obstacles between the transmitter and receiver. For VLP this is different, the receiver will always have line of sight with a number of light bulbs. AOA-based positioning systems are promising for VLP not only because lenses with precise designs don’t have large costs associated, but also because the resulting error associated to light reflection on walls is relatively small [1]. Compared with other techniques used on VLP, AOA does not require synchronization between LEDs and can be used to estimate the position in 2D or 3D [16].
Knowing the amount of possible ways to transmite data using visible light and how the receivers can intrepret that data to estimate the target position, it is important to know where the LEDs are usually placed and the different types of strucutres used to the position estimation. Usually LEDs are placed on the ceiling forming a square with four LEDs (Figure 2.4), a triangle (Figure 2.5) and in some cases a single LED [3, 27]. Reversing the usual approach, [14] proposed a mobile station composed of LEDs in different angles (Figure 2.6) and distribute photo-diodes on the ceiling. Their approach along with accelerometers results in a more accurate positioning system, however, it is not practical. [27] proposed an indoor localization system using multiple optical receivers, these were oriented with different elevation and azimuth, forming a dome, and a structure composed of a single PD with a fixed elevation, that rotates to three different azimuth angles [3]. Even if the hardware represents a significant part for VLP, the software, more precisely the algorithm, is also important.
2.3
Algorithms
Several studies use algorithms to estimate the target position and, even though it is of the utmost importance, some authors do not describe them. In this way, we summarized all the information gathered on this subject. Jia et al. in [2] used the minimum mean square error algorithm and the maximum likelihood algorithm. The minimum mean square error algorithm presents low complexity. If the calculated distance to a light source is different than the real distance, the error of position will be high. The maximum likelihood algorithm uses the probability density function. In a real scenario, the probability density function can be obtained by the experimental analysis beforehand or calculated by applying some wireless transmission model. The maximum likelihood is more complex compared with the
Figure 2.4: Visible light indoor imaging optical wireless system model ([13]).
Figure 2.5: Visible light positioning system model using three light sources ([24]).
minimum mean square error and is not appliable in all cases. The authors also considered a range free VLC based positioning method and a hybrid positioning method based on VLC and RSSI. In range free VLC based positioning method, the power received is not measured or calculated. With this method, multiple LED bulbs need to be set as reference nodes. Each node has an ID and when the receiver detects the ID for multiple light nodes, it is possible to estimate its position. This case is limited since each LED has a receivable area. In the hybrid method, it is used the range free positioning method to obtain the possible position of the receiver and then it is used the minimum mean square error or maximum likelihood algorithms to estimate the final position.
In [27], Yang et al. separate the positioning algorithm in two parts (2D and 3D): in the 2D algorithm, every optical receiver obtains the power from the light source. To estimate the position, the height component is given and the transmission distance, the angle gain and the incidence angle gain of the optical receiver are used. The 3D algorithm consists in positioning in the xOy plane by taking the 2D algorithm results and, to compensate the height component, using the information from the transmitter.
Ganti et al. in [28] compared the performance of two tracking algorithms (Kalman filter and Particle filter) for an indoor positioning system. The positioning algorithm that they used is an asynchronous method that uses RSSI measurements of light signal emitted by modulated LEDs. The RSSI measurements are translated into pseudo-ranges from LED bulbs to the receiver and this can be located after trilateration. They concluded that the kalman filter is simple and gives accurate measurements. However, when wild values were introduced into the measurements the particle filter is more resistant, therefore it can track more precisely.
In [20], Li et al. uses trilateration to calculate the receiver position from distance measurements to multiple light sources. Their LEDs were dimmed via PWM to carry digital information and their geometrical information was based in RSSI. By measuring the received signal strength they calculate the distance to the light and the incidence and irradiation angles. They first addressed the normal cases with sufficient light sources and then the challenging cases with insufficient sources.
Kuo et al. in [29] used a localization algorithm based on AOA and an ideal camera with a biconvex lens. An important property of a biconvex lens is that if a ray of light passes through the center of the lens, it is not refracted. If the transmitter forms an angle with the receiver the image at the receiver drifts out of the origin, because of the lens and knowing the distance to the origin is possible to know the incidence angle. Their algorithm assumes that transmitters locations are known and since they use a smartphone camera the position estimation is based on the images from the camera (pixel size and focus length) and uses the minimum mean square error as an optimization. In their images, they need to identify a light source and match its identity with a map of global coordinates.
2.4
Chapter Remarks
Due to the different types of light modulation, geometry information, sensors, structures and even the algorithm there is no single way to implement visible light positioning since this will depend on the final purpose of the study. In the next chapter we present the tests performed and their methodologies using the prototype developed by [17]. The prototype is composed of eight photo-diodes at different elevation angles. The algorithm used to estimate the position is based on the received signal strength in each photo-diode and simple trigonometry.
Chapter 3
Experimental setup and results
analysis
In this chapter we present the experiments performed, their methodologies and results analysis.
3.1
Position Estimation with the Prototype
This experiment is based on position estimation using the prototype characteristics and its orientation. Throughout this chapter the terms azimuth and elevation will appear frequently. The azimuth θ represents the rotation from the initial position around zz axis (figure 3.1). The elevation φ is the angle where the intensity received is higher or where a PD was placed(figure 3.1).
3.1.1
Prototype
The prototype devoloped in [17] (figure 3.4) it is composed of eight photo-diodes (re-ceivers) and a microcontroller (PIC32) which processes the data. Each circuit was built individually (Figure 3.2) and placed in the prototype structure manually.
Figure 3.2: Photodiode circuit ([17]).
The transmitter is composed of three LEDs and a MOSFET that works as a switch (figure 3.3).
Figure 3.3: Transmitter circuit [17]).
In the equipment presented in the figure 3.4, each sensor was placed at a different elevation angle. Those angles were 90.0, 79.0, 68.5, 58.5, 48.0, 37.5, 27.5 and 18,0 degrees from the top to the bottom. These angles were used in the position estimation algorithm described in the next subsection.
3.1.2
Position estimation algorithm
The algorithm used to estimate the position is based on RSSI, simple trigonometry and weighted average. The algorithm is composed by two parts, as detailed next. The first part corresponds to selection of the relevant signal and the second is to use the information from all measures and estimate the position.
Each PD receives the signal according to its elevation angle, the angle with the light bulb and the distance to it. With the information in each PD the signal amplitude, the average and the frequency were calculated using the script proceV aloresP ic (table A.2).
Figure 3.4: Used Prototype composed of 8 Photo-detectors and a microcontroller. To distinguish relevant from irrelevant information, strategies based on variance, average, maximum of the signal and weighted average (function mediaP onderada table A.1) were used. To avoid a discrepancy of values, this approach, benefits the angles with more signal amplitude and rejects the angles with insignificant amplitude.
As mentioned before the algorithm uses weighted average to approximate the elevation and azimuth angles. The equations used are given by,
θ = Pn i=1wi· θi Pn i=1wi (3.1) φ = Pn i=1wi· φi Pn i=1wi (3.2) In equation (3.1), θ is the azimuth’s weighted average and it is used to estimate the light source azimuth , θi represents the different azimuth angles and wi, their signal amplitude.
The equation (3.2) φ is the weighted average of elevation angle, φi the different elevation
angles with relevant signal. Using the data from each measurement we are able to calculate the azimuth angle using (3.1), with (3.2) the final elevation and we determined the position using the following equations.
d = h
tan( ˆφ) (3.3)
x0 = cos(ˆθ) · d (3.4)
y0 = sin(ˆθ) · d (3.5)
In equation (3.3), d is the distance from the prototype to the light source, with a height h. The estimated position is the result of equation (3.4) and (3.5) obtaining x0 and y0, respectively.
Afterwards the estimated position hold an error compared to the correct position. The error was obtained using the Euclidean distance (3.6) between the measured point and real point, where x and y represent the real position and x0 and y0 the estimated one.
deuc=
p
(x − x0
)2+ (y − y0
)2 (3.6)
To gather all the information needed to estimate the position, it is necessary to follow the procedure described next.
3.1.3
Test Procedure
The procedure for this experiment is represented in figure 3.5. Before turning on the light source it is necessary to set some configurations and prepare the room. The LED was placed at a height of 2.75 m and used a function generator to generate a square wave with 5 KHz. The frequency was relatively high so it wouldn’t disturb us during the experiment, since at lower frequencies one can see the LED blinking. Its light intensity can be controlled by changing the supplying voltage.
Figure 3.5: Test procedure loop.
The signal was configured with an amplitude of 5 V and an offset of 2.5 V. The power supply was configured to be between 8 V and 11 V, where 11 V represents the maxi-mum allowed intensity, more than that can damage the LED. These settings follow the recommendations in [17].
In the room was necessary to mark on the ground the place under the transmitter (light source). This mark was the beginning of the benchmark (0.0 ; 0.0). Afterwards we marked 20 test points on the ground (Figure 3.6), but just 16 of them were used. Each point represents a different position.
After placing the marks on the ground, we design a circumference with the same di-ameter of the prototype on a cardboard where we marked angles from -90 to 90 degrees in
Figure 3.6: Floor of the room with the test points marked.
multiples of 10 apart from 45 and -45 degrees. To collect the data we placed the prototype and the cardboard over a test point aligned with the xx axis.
3.1.4
Results analysis
The data received at a given position was used to obtain the azimuth, the elevation and the estimated position. The figure 3.7 shows the intensity received by the prototype in (1.0, -0.5) position rotated 70◦. It is possible to observe that only the photo-diode at 68.5◦ has relevant signal. The signal in the other PDs was considered irrelevant.
Figure 3.7: Signal received in all PDs in position (1.0, -0.5) with an azimuth of 70◦.
-0.5) of 16 test points. The other points intensities are presented in annex B.
Table 3.1: Intensity received in each sensor in all azimuth angles
Position Azimuth Signal Amplitude in the different PDs
(m) (degrees) 90◦ 79◦ 68.5◦ 58.5◦ 48◦ 37.5◦ 27.5◦ 18◦ (1.0;-0.5) 0 4.5 4.0 4.5 4.0 3.0 3.0 3.5 3.5 10 4.5 4.0 4.5 4.0 3.0 3.0 3.5 3.5 20 4.5 4.0 4.5 4.0 3.0 3.0 3.5 3.5 30 4.5 4.0 3.5 4.0 4.0 3.5 4.0 2.5 40 4.5 4.0 3.5 4.0 4.0 3.5 4.0 2.5 45 4.5 4.0 6.0 4.0 4.0 3.5 4.0 2.5 50 4.0 3.5 26.5 4.0 4.0 3.5 3.5 4.0 60 4.5 4.0 43.5 5.0 4.0 4.0 3.5 3.5 70 4.5 4.0 43.0 5.0 3.5 2.5 3.5 3.5 80 4.5 3.5 24.0 3.5 3.0 3.5 4.0 3.5 90 4.5 5.0 4.5 4.5 4.5 4.5 3.5 4.5
Figure 3.8 shows how the estimated points are located compared to test points and the light source. Figure 3.9 represents the error associated to each estimated position.
Figure 3.8: Measured position compared with the real position.
Using the error from figure 3.9, we calculate the average error as shown in table 3.2. The result obtained was an average error of 11 cm and a maximum error of 28 cm. The average error was calculated using arithmetic average from the errors in figure 3.9.
This experiment can be divided in two parts. One part corresponds to the azimuth and the prototype orientation and the other part to the elevation. Regarding the error and the estimated angles (azimuth and elevation), rotating the prototype 10◦ to 10◦ can be too much because of the prototype’s field of view (FOV). By improving the resolution more area will be covered by the PD’s FOV and with more data the weighted average will reduce the discrepancy in the azimuth values. To solve this problem instead of using a quarter of quadrant divided by 10 we could use a quarter of quadrant divided by 20 or more. To
Figure 3.9: Error associated to each test point.
Table 3.2: The maximum, average and minimum values of error Error (m)
Max Avg. Min
0.282 0.107 0
facilitate the use of the prototype in this conditions a step motor can be attached to the prototype rotating it when needed and so saving time (figure 3.10). We started to build a platform with a step motor, however this was not concluded since a simulation environment was being developed where this platform could be represented. Other possible problem was that the cardboard may not be completely aligned, since we rotate the prototype over it, this can introduce error to the azimuth angle. This error can be reduced using strategies for a better alignment or verify if it is a systematic error that increase with the distance to the axis. If this takes place the error can be cancelled in the final calculation.
Figure 3.10: Structure with a step motor.
The last problem detected was the elevation angle. In most of the results only one PD receives signal, thereby the estimated elevation angle is equal to the elevation of that PD (the average is computed with a single value). These results show that the field of view
is not enough to obtain a correct elevation using weighted average. After completing this experiment we concluded that with the available prototype it was very difficult to change the amount of PDs, respective position and FOV.
3.2
Simulation Environment for VLP
Due to the problems detected during the previous section, a simulation environment for VLP was created to overcome the lack of flexibility of the prototype used before by allowing us to change the number of sensors and their FOV. That way it is possible to discover new structures, configurations, verify the response with different sensors, among others, using a flexible simulator. The simulation environment comprises two main modules: modelling and positioning (Figure 3.11). Modelling is responsible for the mathematical representa-tion of all system entities in 3D space and the simularepresenta-tion of the sensor behaviour. The positioning module receives the output of the previous module, representing the sensors response, and estimates the position based on the algorithm described in the previous section. Each module will be detailed in the next subsections.
This work was presented in IEEE International Conference on Autonomous Robot Systems and Competitions (ICARSC) in 2016 [30].
3.2.1
Modelling
The sensor for VLP consists on a set of identical photo-detectors (PD) placed on a hemispherical dome following a regular pattern. The optical power Pi received by PD i is
given by (3.7), where Poiis the optical power received when emitter and receiver are aligned
and 1 meter apart, di is the distance from the light source to the PD, αi is the incidence
angle with respect to the normal vector (axis) of the PD, S(.) is the directional sensitivity function which accounts for the decrease in sensitivity with the increase in the incidence angle and Π(.) is the rect function. The half field-of-view (HFOV), denoted by Ψ1/2, is
defined as the maximum deviation from the main axis where the source light is detected by the PD. The incidence angle αi and the HFOV Ψ1/2 are represented in Figure 3.12.
Pi = Poi d2 i S(αi)Π( αi 2Ψ1/2 ) (3.7)
The half field-of-view Ψ1/2 of the PDs can be adjusted as needed. This can be achieved,
for instance, by placing the PD inside an opaque tube, adjusting its length. The field-of-view value will be a trade-off between a wide angle for covering a significant area, avoiding blind spots, and a narrow angle for providing spatial discrimination. If we have 20 PDs we can’t have a field-of-view of 10◦ since it will result on many blind spots because the area used wasn’t totally covered.
Figure 3.12: Incidence angle and field-of-view.
The system modelling was based on Homogeneous Transformation Matrices (HTM ). HTM can be used as a mathematical tool to represent position and orientation, as well as translation and rotation movements [31]. It is possible to use HTM to represent several successive movement, by multiplying them. This makes HTM a flexible tool for handling position and movement in robotics. In this work, this concept is extended to include the representation of optical components (emitter and receiver), allowing to compute the be-haviour of these components given their location and orientation in space. Each component has its own HTM to represent it in space. The functions used to create the entities are the Rotx, Rotx, Rotx, T R, CreateSensors, IntensitySens and LightIntV 2 described in annex A, table A.1.
As an example, (3.8) is the HTM representing the translation movement from the origin to the point (x, y, z) and (3.9) represents a rotation of θ around the z axis in the origin.
T = 1 0 0 x 0 1 0 y 0 0 1 z 0 0 0 1 (3.8) R = cos(θ) − sin(θ) 0 0 sin(θ) cos(θ) 0 0 0 0 1 0 0 0 0 1 (3.9)
To obtain results using the simulation environment a VLP sensor based on photo-diodes was used. These are regularly distributed on a hemispherical dome with their orientation vector normal to the dome surface. The distribution is based on meridians and parallels. Angle wise, meridians and parallels are equally spaced. In the case of parallels, the lowest parallel may lay on the equator or it can be placed in a more elevated line. There is no PD in the pole, making the two opposite PDs in the highest parallel to be at the same angular distance as the other PDs in the same meridian. As such, the VLP sensor is defined by three parameters: Nm, the number of meridians, Np, the number of parallels and φ(0), the
offset of the lowest parallel line. Figure 3.13 depicts a VLP sensor with Nm = 8, Np = 3
and φ(0)= 0.
Figure 3.13: A VLP sensor with 8 meridians and 3 parallels.
Based on this distribution procedure, the position and orientation of the different PDs in relation to the center of the dome are easily defined by a distance, R, the radius of the dome, and two angles, θi and φi, the azimuth and the elevation angles, respectively. For
the sake of simplicity, and without loss of generality, the reference frame of the dome is defined such that the base is centred in the xOy plane with the Z axis going toward the pole.
The values of θi and φi are given by (3.10), where j = 0..Nm and i = 0..Np.
[ θj φi ]T = 2jπ Nm φ(0)+ i(π − 2φ (0)) 2Np− 1 T (3.10)
Assuming that a PD is initially at the origin of the reference frame and aligned with it (with its sensibility diagram aligned with the zz axis), the orientation corresponds to a rotation θ around the zz axis, followed by a rotation ψ = π/2 − φ around the rotated yy axis. Finally, in order to put the PD in the surface of the dome, a translation R along the rotated Z axis is required. The complete transformation is given by the multiplication of three HTMs, as given in (3.11)
Hi,j = Ti,jRi,jY R Z
i,j (3.11)
where RZ
i,j, RYi,j and Ti,j are, respectively, given by (3.12), (3.13) and (3.14).
RZi,j = cos(θ) − sin(θ) 0 0 sin(θ) cos(θ) 0 0 0 0 1 0 0 0 0 1 (3.12) RYi,j = cos(ψ) 0 sin(ψ) 0 0 1 0 0 − sin(ψ) 0 cos(ψ) 0 0 0 0 1 (3.13) T = 1 0 0 0 0 1 0 0 0 0 1 R 0 0 0 1 (3.14)
For simplicity, light sources were modelled as a single point and with an omnidirectional radiation pattern. As such, the light source pose was fully determined by its position in space. The only geometrical parameters required to compute the received light intensity are the distance from the light source to the receiver and the incidence angle at the receiver. The sensitivity function is presented in (3.15), where α ∈ [0, π/2]. The function has a maximum of 1 at α = 0, which means that the sensor gets the maximum intensity when the light source is on the PD axis [32]. The intensity also decreases with the square of the distance, as shown in (3.7).
S(α) = cosm(α) (3.15)
The parameter m is the Lambert’s mode number that represents the directivity of the light source and it is related to Φ, the incidence angle at half-power, by (3.16) [32].
m = − ln(2)
ln(cos(Φ)) (3.16)
The computation of the light intensity received by each sensor is based on the HTM of the sensor, the position of the light source and the sensor’s Ψ1/2 (field-of-view). This
3.2.2
Adapt the algorithm
The positioning algorithm used considers the outputs from the PDs and estimates the sensor location, based on the light intensity received by each PD, light location and the orientation of the sensor (Figure 3.11). The algorithm assumes that the sensor is placed in the xOy plane (z = 0) and the light source is located in a horizontal plane at a fixed height h (z = h). The algorithm is the same as the previous section but as the sensor has multiple meridians it was necessary to adjust the trigonometric circle discontinuity. We moved that discontinuity to the opposite meridian of the sensor with more light’s intensity received. This creates an image rotated θ degrees from the original position and where θ corresponds to the chosen meridian.
The readings of the PDs are stored in an array L of size Np× Nm where a value Li,j = 0
indicates that the PD in the i-th parallel and j-th meridian is not detecting light (the light source is outside the PD’s field-of-view). To compute the azimuth θ, the algorithm searches for the best line is to compute the azimuth estimate. For this purpose, there are
two possible options: the line with the largest value for the sum of its elements or the line with the most non-zero elements. The azimuth estimate ˆθ is given by (3.17), where θj
corresponds to the azimuth angle in column j. ˆ θ = PNm j=1Lis,j· θj PNm j=1Lis,j (3.17) To compute the elevation, the algorithm now scans the L array columns searching for the column js where the sum of elements is maximal. This yields an estimation of an
elevation angle ˜φ given by (3.18), where φi is the elevation angle corresponding to line i.
˜ φ = PNp i=1Li,js· φi PNp i=1Li,js (3.18)
The estimated ˜φ is the elevation angle as detected by the PDs located in the chosen meridian, having an azimuth equal to θjs. This is not necessarily the elevation of the source
light, but rather corresponds to the projection of the light source position in the vertical plane that contains the PDs used in the computation. Defining γ = θjs− ˆθ, the estimation
of the elevation angle ˆφ is now given by (3.19). ˆ
φ = arctan[tan( ˜φ) · cos(γ)] (3.19)
The distance d on the xOy plane from the sensor to the light source is given by (3.20), the source light position estimate (xl, yl, zl) is given by (3.21) and the error was obtain
using equation 3.6.
d = h
tan( ˆφ) (3.20)
To present results about this validation framework for VLP, several tests were performed to validate the positioning and the modelling modules.
3.2.3
Test Procedure
The estimation of the sensor’s position is straightforward once the light source position is known. The positioning algorithm considers that the sensor frame is placed at the origin and thus the result will be the location of the light source relative to the sensor. To perform the tests the sensor was positioned at the origin and the light source was placed at a height z = 5 and in different (x, y) locations, in a regular 2-dimensional grid from (−10, −10) to (10, 10). At each point, the sensor position was estimated using the algorithm above and the positioning error, defined as the euclidean distance from the actual position to the estimated position was computed. The error map uses the most non-zero elements and the largest value for the sum of its elements, allowing the comparison between them. To estimate the light source position (and, by inversion, the sensor position), the algorithm relies on the estimation of the light source azimuth ˆθ and elevation ˆφ relative to the sensor. The final test was to compare the average and the maximum error associated to three different configurations, using 8 meridians for all configurations and 4, 5 and 6 parallels, when the FOV is varying as we can see in the results. Considering that the number of sensors required is given by Np times Nm, the higher the number of parallels and meridians
used the more sensors are needed.
3.2.4
Results analysis
The sensor was used to perform a set of experiments in order to validate both the simple positioning algorithm described before and the viability of the platform to be used as a simulation and validation framework.
Figure 3.14 presents the error map for a sensor with Np = 8 and Nm = 5 and estimating
the azimuth using the line with the largest value for the sum of its elements. A clear improvement is noticed when the line with the most non-zero elements is used (Figure 3.15). As shown in table 3.3, a ten-fold reduction in both average and maximum error is observed when changing from selecting the line with the largest sum to the line with the most non-zero elements, when estimating the azimuth.
Table 3.3: Comparison of methods for choosing the best line for azimuth computation. Error Largest sum Most non-zero
Max 1.89 0.19
Avg. 0.62 0.05
Figure 3.16 presents the results for the maximum and average value of the error, varying Ψ1/2, from 45◦ to 90◦, for three different sensor configurations: (Nm, Np) = (8, 4), (8, 5)
and (8, 6). The best results are obtained for Ψ1/2= 78◦, with an average error of 0.05 and
Error plot: z light=5, N Merid=8, N Paral=5, FOV=78º x -10 -5 0 5 10 y -10 -8 -6 -4 -2 0 2 4 6 8 10 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
Figure 3.14: Error map, using largest sum.
These results show the viability of implementing VLP using a simple sensor, based on a set of photo-diodes and a simple localization algorithm, yielding a low-cost solution for visible light positioning. The inclusion of real world conditions in the simulation sce-nario, such as noise and other error sources in the sensor readings, different photo-detector characteristics, sensor configuration and photo-detector misalignment wasn’t considered. Thereafter in the next section we present the simulator environment validation.
3.3
Simulation Environment Validation
Comparing the results from a real system with a simulated one brings the possibility to understand what is needed to change, or improve, on the simulator to obtain a response close to the real one. The simulation environment for VLP presented in the previous section isn’t different. In this section two types of validation are presented, the intensity and position validation. The intensity validation is based on recreating the test performed by [17], moving the prototype in straight line and registering the intensity received in each PD. In this case using the simulator and the position validation results in comparing the position estimation in 3.1, with the simulator results.
3.3.1
Test Procedure
To compare the intensities it is necessary to recreate the experiment done by [17]. He placed the prototype under the light source (origin) and facing −x, then he moved the prototype over −x until the sensor at 90◦ stop receiving signal. Finally, he moved the prototype over the same line but to the positive side. Using the information from the test described we were able to calculate the FOV of each sensor in the prototype (figure 3.18), in this case the height is 2.18 m. For the FOV, we took the two zeros of each PD function
Error plot: z light=5, N Merid=8, N Paral=5, FOV=78º x -10 -5 0 5 10 y -10 -8 -6 -4 -2 0 2 4 6 8 10 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
Figure 3.15: Error map, using most non-zero values. (xn
i) and used them as width of a right angle triangle with a height of 2.18 m (figure 3.17).
Each PD had two different angles (α1 and α2) corresponding to the position of the zeros.
αni = tan−1x
n i
h (3.22)
The equation 3.22 was used to obtain the angles αi from each PD, where i is the index
of angles per PD (two in our case), αn1 represents the angle of xn1 and αn2 the angle of xn
2 with a height of h (Figure 3.17). To obtain the correct elevation of each PD we use
equation 3.23, to obtain the FOV we just subtract the αn2 and αn1 and divided for two as prescribed in 3.24. Elevation = 90 − α n 1 + α2n 2 (3.23) F OV = α n 1 − αn2 2 (3.24)
The table 3.4 include the x1 and x2 from each PD and the values obtained using the
equations 3.22, 3.23, 3.24 and figure 3.18. With that values we can configure the simulator with a FOV close to the obtained.
Table 3.4: Values used to get the real FOV and elevation angle of the prototype n ElevNom xn1 xn2 α1n αn2 RealElevation (◦) FOV (◦)
0 90 -0.5 0.3 -12.9178 7.8355 92.541 10.37
1 79 -0.05 0.7 -1.3138 17.8018 81.756 9.56
2 68.5 0.4 1.15 10.3973 27.8127 70.895 8.71
3 58.5 0.85 1.7 21.3012 37.9477 60.376 8.32
FOV
45 50 55 60 65 70 75 80 85 90
Max and Mean error
0 0.5 1 1.5 2 2.5 max(8,4) mean(8,4) max(8,5) mean(8,5) max(8,6) mean(8,6)
Figure 3.16: Maximum and average error as a function of FOV.
With the information from the table 3.4, we were able to configure the simulator and compare the intensities received performing a similar experiment. The final part consisted on estimating the position in several test points (similar to the experiment described in section 3.1) using the simulator with similar characteristics to the prototype. For that, we started by saving the elevation and azimuth to compare with physical values and then the position was estimated. The number of sensors was 8x36 because the prototype is composed by 8 layers of sensors and in the experiment described before it was rotated from 0◦ to 90◦, 10 times. This gave us a circumference with 36 meridians and 8 parallels. We set the light source on (0, 0, 2.75) (m) and the robot in the same sampling points as the real experience. Then we started by obtaining the elevation angle and the azimuth with a FOV of 10◦. We analysed the same angles with a lower FOV (of 5◦) to test its importance and relevance.
The results from these experiments were combined with those from the section 3.1 and are represented on the figure 3.21.
3.3.2
Results analysis
The systems comparison helped us to better understand the system, machine or algo-rithm failures. Allowing us to detect bugs, to verify if the performance is similar between
Figure 3.17: Right angle triangle made with information provided by the sensors.
tests and when comparing real and simulated systems, it allows us to know if the simula-tion is close to the real scenario. In this case, we will present the results from the different tests performed to validate the simulator.
In addition, the results from the intensity validation using the simulator are presented in figure 3.19, with the prototype in figure 3.18 and a results overlap (figure 3.20) for a better comparison.
With the information provided from table 3.5, it is possible to notice that the simulated values (FOV = 10) are closer to the physical values and with that information we calculate the final position (real and simulated) and place them together with the results obtained from the experiment with the prototype (figure 3.21).
Comparing the intensities results, the simulator present an identical behaviour to the real test (figure 3.20), even though the results from figure 3.19 have a systematic deviation around 2◦. Bearing in mind that the PDs in the prototype aren’t in the correct elevation (table 3.4), the observed deviation should not be a problem of the simulator, but rather the result of incorrect placement of the PDs in the structure. The deviation was calculated by obtaining the elevation angle from the position of the PD maximum both simulated and physical, and then subtracting them.
As mentioned before, the real FOV is between 8◦ and 10◦. This difference can signif-icantly affect the PD’s receiving signal and because of that the sensors don’t contribute in the same way for the position estimation. It is important to refer that in this moment the simulation environment doesn’t have noise included. Nevertheless the results from the elevation angle are very similar, compared with the simulator when the FOV is 10◦ (table 3.5). We noticed that some positions are better in the way that, depending on the sensor and light position, if the sensor was facing the light the error was close to zero. Including the FOV of 5◦ proved its importance for the positioning estimation. Without enough field of view it isn’t possible to obtain a good estimation. As mentioned before, this version of the simulation environment did not consider noise, even with this limitation the simulator present satisfactory results.
Figure 3.18: Signal received by the Photo-detectors ([17]).
3.4
Noise Model Implementation
The noise implementation in a simulator brings the opportunity to turn the tests more real. Thereby it is possible to do experiments close to real scenarios, helping to build future prototypes. That way it is possible to verify the influence of noise in the used algorithm, the amount of noise the system can handle, how the noise influences the different configuration of sensors and the error associated to it.
3.4.1
Noise in the PD
The white LED can be represented mathematically. For our purpose its representation starts by defining its luminous flux Φv, given by (3.25) where Km = 683lm/W , is a
constant establishing the relationship between the radiometric unit and photometric unit named luminous efficacy. This is the maximum amount of visible light that a light source can produce [33]. Vm is the photopic curve and V S represents the visible spectrum, S(λ)
is the spectral power distribution of the white LED [34]. Φv = Km
Z
V S
S(λ)Vm(λ)dλ (3.25)
A simple approach to model spectral power distribution of white LEDs is to use Gaus-sian distributions centred on the device maximum response. Following this approach the LED’s SPD can be approximated by 3.26, where Si is the spectral power of the device
Figure 3.19: Signal received by the PDs in the simulator.
weighting factor describing the additive proportions of each peak wavelength [34].
S(λ) = X i wiSie − λ−λi√ 2σi 2 (3.26) Given the SPD, to obtain the current in the PD Id, produced by the white LED, it
is necessary its responsivity R(λ) and the effective area (characteristics given by the PD producer). So the current Id is given by 3.27.
Id= Aef
Z
S(λ)R(λ)dλ (3.27)
Finally, to calculate the noise normal distribution σ2 represented by 3.28, it’s necessary the electron charge q, the current Id and the bandwidth B.
σ2 = 2qIdB (3.28)
Thereby the current I in a PD (Figure 3.22) is given by 3.29.
I ∼ N (Id, σ2) (3.29)
This is the way to represent the noise in the PDs depending on the amount of light that target’s it and the datasheet information. However, we decide to introduce noise in
Figure 3.20: Both real and simulated results overlap.
the system using the information described above and the Signal-to-Noise Ratio (SNR). This implementation allowed us to easily manage the amount of noise in the system and its influence on the position estimation. As mentioned before, the light source was modelled as a single point and with an omnidirectional radiation pattern, so in this case the current in the PD will be related with its illuminated area.
3.4.2
Implementation
Knowing that the PD’s noise has normal distribution and using the knowledge from the previous section, a possible way to implement noise in the simulator is using the SNR. In this case, the SNR equation 3.30 can be obtained using 3.28 and 3.27. Using a random normal distribution centred in Id and a variance σ it is easy to obtain random intensities
based on the SNR, Id and σ.
SN R = σ 2 I2 d = 2qB Id (3.30) So, given the white LED standard luminous flux (aprox. 500 lux) it is possible to pro-ceed to the next level, vary the SNR and observe the response of the simulator estimating the position.
3.4.3
Test Procedure
In the tests, we decide to vary the SNR from 1 to 150 dB in three different structures, set with Nparallels x Nmeridians (6x24, 8x32 and 10x40). This structures have a relation 1:4, because we were using a hemispherical dome (Figure 3.23) we need four times more meridians than parallels to cover it. The light position was set in (2.05, 1.99, 5) and four
Table 3.5: Comparison between the elevation and azimuth from experience and the vali-dation framework
Position Physical Values Simulated FOV = 10 Simulated FOV=5 Elevation Azimuth Elevation Azimuth Elevation Azimuth
(0;0) 90 - 90 - 90 -(0;0.5) 79 0 79.46 0 79.46 0 (0;1.0) 68.35 0 69.04 0 74.11 0 (0.5;0) 79.1 90 79.46 90 79.46 90 (0.5;0.5) 79.07 48.93 78.41 45 74.06 45 (0.5;1.0) 68.35 28.83 68.66 30 63.52 30 (1.0;0) 68.1 89.42 69.04 90 74.11 90 (1.0;0.5) 68.35 68.84 68.66 60 63.52 60 (1.0;1.0) 62.01 46.26 62.73 45 63.44 45 (1.5;0) 59.9 90 58.81 90 63.52 90 (1.5;0.5) 57.79 74.23 57.91 73.89 63.52 70 (1.5;1.0) 57.79 59.88 57.97 60 52.94 60 (0.5;-0.5) 78.55 45.55 78.41 45 74.06 45 (0.5;-1.0) 68.35 36.4 68.66 30 63.52 30 (1.0;-0.5) 68 64.71 68.66 60 63.52 60 (1.5;-0.5) 57.79 74.32 57.91 73.89 63.52 70
different field of view (40◦, 30◦ 20◦ and 10◦) were established. We tried to choose a light position where the alignment with the sensor was cancelled, i.e, when the elevation angle between the robot and the light corresponded to a PD position. If this problem wasn’t cancelled, the error associated was significantly reduced, giving a false result.
For each value of SNR we obtained 1000 different values of intensity based on random normal distribution. With that information we estimated the same position several times. Thereafter, we calculated the error using 3.6 where x and y were zero, because the robot was placed at the origin, x0 and y0 were the estimated position. Finally we calculate the maximum, the average and the minimum value of error for each situation.
3.4.4
Results analysis
In this section we present the results from the experiments described previously. The results were used to compare different configurations and their response to noise.
The figures 3.24, 3.25 and 3.26 show the error in three different configurations (6x24, 8x32 and 10x40), where the dashed line represents the maximum and minimum error and continuous line the average error. It is interesting to notice that Figure 3.25 present a smaller error comparing to the others and for all FOVs. This result can indicate that some configurations are more appropriated than others. Then we fixed the FOV value and compare the response of each structure to that field of view.
Figure 3.21: Map of points with the results from real and simulated scenario. smaller error is obtained when the FOV is 40◦ (Figure 3.30) compared with others (Figure 3.27, Figure 3.28 and Figure 3.29), concluding that with more information in several PDs the error is smaller. The SNR evaluation showed the limit of noise influence (between 10 dB and 60 dB) in the position estimation, after that value the error was associated to the algorithm.
Table 3.6: The average error of all configuration with the different FOVs
FOV Conf 6x24 8x32 10x40 40 0.0534 0.0056 0.0403 30 0.1148 0.0084 0.1299 20 0.7801 0.0445 0.1803 10 0.7801 0.0489 0.4052
3.5
Chapter Remarks
Using the prototype developed in [17] we were able to estimate its position using a simple algorithm and simple trigonometry. The prototype presented several limitations, such as,
Figure 3.22: Photo-Detector current.
Figure 3.23: Hemispherical dome with meridians and parallels represented.
the number of PDs, their FOV and its lack of flexibility. Regarding this, come the idea to create a simulation environment for VLP to overcome this limitation. This simulator allowed us to test different configurations with the same structure, varying the FOV, the number of sensors and their elevation angle. To prove the viability of the simulation environment, we compared its results with the result from the first experiment and with results provided by [17]. Even though we detected differences the position was very close to each other. Finally, a noise model was implemented on the simulator. We only considered the noise in the PDs and since they present normal distribution it could be implemented based on its current, variance and SNR. In case of changing the sensor, it’s necessary to verify if this implementation is still applicable. At this moment, it is possible to understand the importance of the FOV and the number of sensors to estimate the position using this approach and the necessity to verify if exist a better configuration for this scenario.
Figure 3.24: The error of a structure 6x24 with different FOV varying the SNR.
Figure 3.26: The error of a structure 10x40 with different FOV varying the SNR.
Figure 3.28: The three different configuration with a FOV of 20◦.
Chapter 4
Conclusion and Future Work
4.1
Conclusion
The initial aim of this work was to estimate the position of a robot platform using Visible Light Communication. We verified that was possible to estimate the position using the prototype even with its principal limitation: the lack of flexibility. Thereby, the number of sensors and their FOV could not be changed. Even with this constrains we achieved an average error of 10 cm. The results show that this structure can be used for VLP.
To overcome the prototype’s limitation a simulation environment was created. With it, we used the homogeneous transformation matrix (HTM) to represent the environment entities and the mathematical representation of the sensor (photo-diode) and the light bulb (LED). This allowed the creation of a flexible environment where it is easy to change the number of sensors, their elevation angle and FOV, as needed. The results show the viability of implementing VLP using a simple sensor based on a set of photo-diodes yielding a low-cost solution for visible light positioning.
To validate the simulation, two tests were performed. The first one was to re-create an experiment done by [17], obtaining a sensor response over a line similar to the real one. The second was to estimate the robot’s location as in section 3.1. The estimated positions were close to the real experiment, even without noise.
A noise model was implemented based on the PD current, its noise variance and the Signal-to-Noise Ratio (SNR). The results show an error of few centimeters with an SNR of 30 dB, reinforcing the viability of implementing VLP using a simple sensor, based on a set of photo-diodes distributed over a hemispherical dome and how error changes with the amount of noise. After testing the error in 3 different configurations (6x24, 8x32 and 10x40), when subject to noise we noticed that 8x32 presents a smaller error compared to the others. Also, we analysed how the field of view influenced this configurations by changing it to 10◦, 20◦, 30◦ and 40◦ in each. We concluded that the photo-diodes field of view (FOV) is important when the position is estimated. The sensors FOV should be big enough to intercept others in order to prevent blind spots but not too big since it would lead to errors because all sensors would receive signal. We also concluded that in
the studied configurations, the 40◦ FOV presents a lower error. This can be an interesting study subject for future work.
4.2
Future Work
Regarding the results, we present some ideas that can be developed in future work. By building a simple structure where the FOV and the number of PDs can be easily changed or with a single PD and a two step-motor to give more freedom to the PD to search for the light, would facilitate the experiment. Also, it would be important to focus on the different configurations and why one presents better results or configure new sensors in the simulator and verify which one is more appropriate.