Collaborative Pedestrian Mapping of Buildings Using Inertial Sensors and FootSLAM<br />Patrick Robertson<br />German Aerospace Center (DLR)<br />María García Puyol<br />DLR and University of Malaga<br />Michael Angermann<br />DLR<br />
Challenges for Indoor Navigation<br />Outdoor <br />Outdoor positioning for pedestrians and automobiles uses Global Navigation Satellite Systems (GNSS) <br />Maps readily available<br />Indoor<br />GNSS signals strongly disturbed <br />Combination of pedestrian dead reckoning with maps is advantageous<br />Existing maps are often imprecise, unavailable, obsolete, proprietary, and limited<br />Approaches:<br />Sensor Fusion, <br />Map Aiding,<br />FootSLAM<br />
FootSLAM - Simultaneous Localization and Mapping (SLAM) for pedestrians<br />FootSLAM converts raw human odometry (left) to maps of walkable areas (right)<br />
FootSLAM Map Representation<br />Regular 2D hexagon grid<br />Each edge of the hexagons is associated with a transition count that represents an estimate of the probability with which it was crossed<br />Resulting maps:<br />Map Posterior Distribution<br />“Maximum a posteriori” Map<br />
Collaborative Mapping Scenario<br />Use map for inertial based map assisted pedestrian navigation<br />Collaborative<br />FootSLAMprocessing<br />Map<br />Anonymized odometry data collected byvolunteers and / or users<br />Data may be used to refine the maps <br />
Motivation for Iterative “Turbo” FeetSLAM<br />Optimal multiple data set estimator is a trivial extension of FootSLAM, but would suffer from severe depletion (too many particles required)<br />Heuristic approach borrowed from Turbo Coding from comunications theory:<br />Decompose the problem into smaller ones<br />Iterative processing<br />Each processing stage feeds the other with “prior” information<br />For FootSLAM, the “prior” can be shown to be the maps from all other data sets correctly added together<br />Iterative processing: we can pre-process the prior maps during iterations (cooling, filtering …)<br />Similarities to simulated annealing<br />
How do we Combine Different Maps?<br />Different walks start in different locations and with different starting headings<br />Even when we run FootSLAM many times for the same data set and same starting conditions, the resulting map is never the same, and may be shifted, rotated or slightly scaled<br />An example with two data sets showing the need for transformation:<br />As humans, we would be very good at combining these two maps: we would rotate one until they both fit, then we would add them!<br />
Combining Two Maps<br />Transformation of one map so that they both “fit”<br /><ul><li>Transforming the map counts
Projection of the counts to match the hexagon grids
Correlate the transformed and fixed maps</li></ul>Find the transformation that gives the best “fit” (correlation) between the two maps<br />Combination of the two maps by simply adding the counts<br />
Transformation and Projection: Example<br />Transformation and projection is performed on an edge by edge basis<br />Transformation<br />
Projection of one edge: Finding the Target Hexagons<br />TARGET GRID<br />
Distance factor<br />Angular factor<br />How to Share the Counts among the Edges of the Target Hexagons<br />Distance weight<br />Angular weight<br />
Two Examples of Transformation and Projection<br />Rotation=0.5804 rad<br />X shift= -0.2m<br />Y shift= 1.2m<br />Scale factor=1.0<br />Rotation=0.0rad<br />X shift= 0.0m<br />Y shift= 0.0m<br />Scale factor=1.15<br />
Finding the best Transformation<br />To combine two individual maps, we need to find the best transformation for one of them to match the other<br />Try all different combinations of x and y shifts, rotation and scale factor values, and compute the resulting log-likelihood value of the transformation (see paper for details) <br />The maximum log-likelihood value best transformation <br />
Combining Two Maps<br />The combination of two maps after transformation and projection is achieved by simply adding the counts of their edges:<br />
Processing more that Two Maps<br />Also correlate the new combined map with the existing ones and proceed the same way<br />Obtain the combined map, add it to the pool and remove the two individual maps<br />Take all the maps pairwise and correlate them<br />Choose the pair that has the highest correlation<br />
Prior Map Generation: Weakening and Filtering<br />For each data set, a prior map is generated by adding the other maps (after being combined as shown before)<br />We process maps iteratively<br />A prior map can be weakened and filtered to control its influence on the FootSLAM map estimation process: <br />We want FeetSLAM to converge gradually to the “correct” total map<br />Weakening: dividing the counts by a prior map weakening factor >1<br />Spatial Filtering: spreading the counts over more hexagons<br />Start with a weak and strongly filtered map for early iterations<br />Make the map stronger and less filtered as iterations proceed<br />
Used at thenext iteration<br />Algorithm at each Iteration<br />Cooling &<br />Filtering<br />Data sets (walks)<br />Transformations T1…Tn from previous iteration<br />Starting Conditions SC1…SCn from previous iteration<br />Data Sets D1…Dn<br />Starting Conditions <br />SC1…SCn<br />Prior maps <br />P1…Pn<br />FootSLAM (Di)<br />Transform(SCi)<br />Individual Maps M1…Mn<br />Manually written SC (or GPS anchors)<br />Combination (M1…Mn)<br />Starting Conditions are applied to the Data before FootSLAM. Over iterations, Data is correctly aligned before FootSLAM. See video!<br />Total Map<br />Transform(Mi)<br />M1T…MnT<br />Add counts<br />Starting Conditions of FS maps SC1…SCn<br />Transform-ations T1…Tn<br />Prior maps P1…Pn<br />
Two scenarios<br />DLR<br />90000 particles<br />5 walks<br />37 hours for 10 iterations<br />Video<br />MIT<br />90000 particles<br />4 walks<br />42 hours for 10 iterations<br />Video<br />
Finish<br />Start<br />MIT Track 3 Raw Odometry<br />
DLR Data: Comparison with the true ground floor<br />The floor plan we originally usedas a ground truth was wrong!<br />… here<br />In the original plan this wall was…<br />
Comparison with the true ground floor<br />Total map<br />One of the maps<br />
Achievements and further work<br />Achievements<br />Presented a fully automated FeetSLAM implementation<br />Evaluated with two data sets<br />Total map is more complete than the individual ones<br />The maps become more precise and accurate over iterations<br />Individual maps that do not converge without a prior converge when using the information provided by other maps<br />Further work<br />Online and real-time map merging<br />GPS anchors<br />Improve mathematical basis for correlation function<br />Performance enhancements, computational requirements<br />Address 3D<br />
Characteristics of FootSLAM<br />Foot-mounted IMU sensor measures pedestrian odometry<br />Optionally GPS (for absolute reference)<br />Human motion modeled as a first order Markov process<br />Each particle estimates the pose + odometry errors + individual map<br />Hence: each particle tries a certain pose history – and estimates a “walkability” map based on this<br />Dynamic Bayesian Network for FootSLAM<br />
Collaborative Mapping<br />Collaborative FootSLAM FeetSLAM<br />Data sets that arise from different walks and that may or may not start and finish at the same point and that can overlap more or less<br />Current status: Non-real time approach (offline processing) <br />Collaborative mapping of airports, <br /> museums and other public buildings <br />Goals<br />Complete map of the “walkable areas”<br />Accurate individual maps<br />Adapt to changes in the environment (walls, furniture, etc)<br />The map is then used to let(other) pedestrians navigate using these maps<br />
Projection of the Counts<br />The transformation is performed to make one map match another<br />When comparing or adding two maps, we need them to be within the same coordinate system, that is, grid of hexagons<br />When we transform a map, its hexagons are usually not aligned with the hexagons of the target hexagon grid<br />We need to project the transformed map onto the target grid<br />x<br />y<br />
3. Comparison of two mapsAugmented Log-Likelihood value<br />Accounted for map: the map that <br />is transformed<br />Underneath map: the map that is<br /> fixed<br />Heuristic hexagoncorrelation term<br />Log FootSLAM weight<br />
Example of the log-likelihood function<br />α=0.8<br />β=0.04<br />
Parece que tiene un bloqueador de anuncios ejecutándose. Poniendo SlideShare en la lista blanca de su bloqueador de anuncios, está apoyando a nuestra comunidad de creadores de contenidos.
¿Odia los anuncios?
Hemos actualizado nuestra política de privacidad.
Hemos actualizado su política de privacidad para cumplir con las cambiantes normativas de privacidad internacionales y para ofrecerle información sobre las limitadas formas en las que utilizamos sus datos.
Puede leer los detalles a continuación. Al aceptar, usted acepta la política de privacidad actualizada.