# Hybrid Positioning for Smart Spaces: Proposal and Evaluation
## 3 Review of Indoor Positioning Technologies  
Indoor positioning systems have been implemented thanks to different technologies. First, indoor systems started to use infrared signals [13], in which users are provided with badges that emit diffuse infrared signals and pre-installed infrared sensors detect emitters and report its approximate position. However, the usage of infrared implies interference from fluorescent lights and sunlight. To avoid these drawbacks, systems based in ultrasound signals [14; 15] started to replace them, using ultrasound tags in a similar fashion. Due to ultrasounds are unable to penetrate walls and suffer from reflection interference, radio-frequency signals were proposed as an improvement, sometimes in combination with ultrasound signals, in order to implement time-of-flight trilateration techniques. With these, user terminals send both kinds of signal simultaneously and usually the infrastructure is in charge of computing the difference in arrival times to each receiver to determine a quite accurate position. The previous positioning systems require the user to acquire additional hardware such as budges or tags. Therefore, more recent positioning systems [16] proposed the usage of hardware already present. Nowadays, everybody has a smartphone in the pocket, which are extremely equipped devices with good communication possibilities. Despite global navigation satellite systems like GPS, GLONASS, GALILEO and BEIDOU are also available in smartphones and offer enough accuracy for outdoors applications, satellite signals are too week to reach indoor spaces. Other radio-frequency technologies addressing general-purpose data communications, like Bluetooth, WiFi or 4G, among others, can be used for navigation purposes using a wide range of positioning algorithms. The most relevant algorithms exploiting wireless communications capabilities of mobile devices are summarized next:  
* Proximity: This is the simplest way to calculate the position. It uses RSSI values sensed from well-known base stations, such as WiFi access points or Bluetooth emitters, which are compared to a reference signal level to estimate its proximity. Usually the \(RSSI_{1m}\) value measured at one meter of distance is considered as the baseline. This algorithm has a very low computational cost, but offers low accuracy depending on the distance and obstruction to the access points or tags. * Triangulation: Triangulation uses the geometric properties of triangles to determine the location. It has two derivations: lateration and angulation. Techniques based on the measurement of the propagation time of signals (e.g., Time of Arrival (TOA), Round-Trip Time of Flight (RTOF), Time Difference of Arrival (TDOA) and even hybrid Time of Flight with Direction of Arrival (TOF-DOA) studied in [17]) and RSS-based methods are called lateration techniques [10; 11]. The Angle of Arrival (AOA) estimation technique is considered a representative example of an angulation technique. [PERSON] et al. [18] uses trilateration with BLE beacons distributed in hexagonal cells, for instance. * Fingerprinting: This is one of the most used algorithms in the literature. It is a two-phase algorithm that consists of, first, generating a radio-map with a set of reference points (fingerprints) with their RSSI measurements to surrounding transmitter like WiFi access points or Bluetooth LE tags. The second stage, which involves the real-time operation of the system, imply sensing the RSSI in communications with surrounding transmitters and then comparing with the fingerprints to find the nearest. Euclidean distance is the most usual method to search among fingerprints [19]. The output of the algorithm, i.e., the most similar fingerprint to current RSSI values, determines the position of the device. The density of reference points should consider a trade-off between accuracy and computational cost, as more reference points imply a better approximation at the expense of extra computational cost.