Thesis (Diplom) 
Indoor Localization of Mobile Devices Based on Wi-Fi Signals Using Raytracing Supported Algorithms
Place and Date of Creation
Turn right 90°Turn left 90°
  
  
  
  
  
 
Download single image
 

5.2. Modules 71call chain:HMMLocalizer().evaluateMeasurements(ms)self.decoder.decode(ms). Dur-ing the first call, the high level representation of the measurements that are instancesof theMeasurements()class is interpolated to adjust the number of RSSI readingsto the constraints of the employed(5, 5, 3) transition model. This has to be donesince the coverable distance between two succesive RSSI vectors would be limitedto jump over two voxels. Afterwards, the measurements are additionally convertedinto an efficient indexable ndarray.The decoding process indecode(), implements the Viterbi Algorithm described insection 2.5.2 with the designed pruning technique described in section 4.3.1.4. Tokeep track of the best hypotheses during the decoding of the RSSI values for a time-frame, the SkipList[19] datastructure is employed. This datastructure represents apermanently sorted list with efficient insertions of new members.After decoding the unpruned state space, which is essentially composed of multipletight loops over the measurements ndarray and the ndarray of the probabilities, threePython lists representing the localization results for the online, averaged online andoffline variant are returned.For the offline variant of the resulting sequence, the backtracking ndarrayback_trackis employed which links each location hypothesis to its predecessor hypothesis. Thisndarray dominates the memory consumption of the algorithm due to its T × S com-plexity, if T is the number of timeframes and S the number of locations. Therefore,the ndarray stores onlyint8values, which represent the link by its transition in-dex which is of the range 0.. 75 for the(5, 5, 3) transition model. If the transitionmodel would be of higher complexity, and exceed 256 jump possibilities, the memoryconsumption would be doubled as anint16address space becomes necessary.Particle FilterThe Python side of the PF algorithm, in the form of thePFLocalizer()class,is very similar to the describedHMMLocalizer(). Contrary to the HMM case, notransition probabilities are generated from the scene geometry. Only the voxelizedrepresentation of the geometry is constructed that is later used for rejecting particlesthat interfere with that structure. The other difference is given by the missing inter-polation step of the RSSI readings, as constraints like the(5, 5, 3) HMM transitionmodel are not given.ThePFLocalizer()prepares a pool of values for a three dimension Gaussian thatare used in a round-robin scheme during the particle spawning or sampling process.This spawning is a part of the simulation of the modelled stochastic process which isimplemented as the Cython sibling classParticleFilter(). This class is initializedwith and ndarray containg emission probabilities, the sampling pool and the vox-elized representation of blocked zones. All three ndarrays are used during decodingthe RSSI sequence.To efficiently keep track of the top N hypothesized locations for a single timeframe,the SkipList datastructure is used similar as in the HMM case. The top N hypothe-sized locations of a time frame are used for calculating the averaged online predictionof a location.