{"title": "Hierarchical Linear/Constant Time SLAM Using Particle Filters for Dense Maps", "book": "Advances in Neural Information Processing Systems", "page_first": 339, "page_last": 346, "abstract": "", "full_text": "Hierarchical Linear/Constant Time SLAM\n\nUsing Particle Filters for Dense Maps\n\nAustin I. Eliazar\n\nRonald Parr\n\nDepartment of Computer Science\n\nDuke University\n\nDurham, NC 27708\n\n{eliazar,parr}@cs.duke.edu\n\nAbstract\n\nWe present an improvement to the DP-SLAM algorithm for simultane-\nous localization and mapping (SLAM) that maintains multiple hypothe-\nses about densely populated maps (one full map per particle in a par-\nticle \ufb01lter) in time that is linear in all signi\ufb01cant algorithm parameters\nand takes constant (amortized) time per iteration. This means that the\nasymptotic complexity of the algorithm is no greater than that of a pure\nlocalization algorithm using a single map and the same number of parti-\ncles. We also present a hierarchical extension of DP-SLAM that uses a\ntwo level particle \ufb01lter which models drift in the particle \ufb01ltering process\nitself. The hierarchical approach enables recovery from the inevitable\ndrift that results from using a \ufb01nite number of particles in a particle \ufb01lter\nand permits the use of DP-SLAM in more challenging domains, while\nmaintaining linear time asymptotic complexity.\n\n1 Introduction\n\nThe ability to construct and use a map of the environment is a critical enabling technology\nfor many important applications, such as search and rescue or extraterrestrial exploration.\nProbabilistic approaches have proved successful at addressing the basic problem of local-\nization using particle \ufb01lters [6]. Expectation Maximization (EM) has been used success-\nfully to address the problem of mapping [1] and Kalman \ufb01lters [2, 10] have shown promise\non the combined problem of simultaneous localization and mapping (SLAM).\n\nSLAM algorithms ought to produce accurate maps with bounded resource consumption per\nsensor sweep. To the extent that it is possible, it is desirable to avoid explicit map correcting\nactions, which are computationally intensive and would be symptomatic of accumulating\nerror in the map. One family of approaches to SLAM assumes relatively sparse, relatively\nunambiguous landmarks and builds a Kalman \ufb01lter over landmark positions [2, 9, 10] .\nOther approaches assume dense sensor data which individually are not very distinctive,\nsuch as those available from a laser range \ufb01nder [7, 8]. An advantage of the latter group is\nthat they are capable of producing detailed maps that can be used for path planning.\n\nIn earlier work, we presented an algorithm called DP-SLAM [4], which produced ex-\ntremely accurate, densely populated maps by maintaining a joint distribution over robot\nmaps and poses using a particle \ufb01lter. DP-SLAM uses novel data structures that exploit\nshared structure between maps, permitting ef\ufb01cient use of many joint map/pose particles.\n\n\fThis gives DP-SLAM the ability to resolve map ambiguities automatically, as a natural part\nof the particle \ufb01ltering process, effectively obviating the explicit loop closing phase needed\nfor other approaches [7, 12].\n\nA known limitation of particle \ufb01lters is that they can require a very large number of parti-\ncles to track systems with diffuse posterior distributions. This limitation strongly affected\nearlier versions of DP-SLAM, which had a worst-case run time that scaled quadratically\nwith the number of particles. In this paper, we present a signi\ufb01cant improvement to DP-\nSLAM which reduces the run time to linear in the number of particles, giving multiple map\nhypothesis SLAM the same asymptotic complexity per particle as localization with a single\nmap. The new algorithm also has a more straightforward analysis and implementation.\n\nUnfortunately, even with linear time complexity, there exist domains which require infea-\nsibly large numbers of particles for accurate mapping. The cumulative effect of very small\nerrors (resulting from sampling or discretization) can cause drift. To address the issue of\ndrift in a direct and principled manner, we propose a hierarchical particle \ufb01lter method\nwhich can speci\ufb01cally model and recover from small amounts of drift, while maintaining\nparticle diversity longer than in typical particle \ufb01lters. The combined result is an algorithm\nthat can produce extraordinarily detailed maps of large domains at close to real time speeds.\n\n2 Linear Time Algorithm\n\nA DP-SLAM ancestry tree contains all of the current particles as leaves. The parent of\na given node represents the particle of the previous iteration from which that particle was\nresampled. An ancestry tree is minimal if the following two properties hold:\n\n1. A node is a leaf node if and only if it corresponds to a current generation particle.\n2. All interior nodes have at least two children.\n\nThe \ufb01rst property is ensured by simply removing particles that are not resampled from the\nancestry tree. The second property is ensured by merging parents with only-child nodes. It\nis easy to see that for a particle \ufb01lter with P particles, the corresponding minimal ancestry\ntree will have a branching factor of at least two and depth of no more than O(P ).\nThe complexity of maintaining a minimal ancestry tree will depend upon the manner in\nwhich observations, and thus maps, are associated with nodes in the tree. DP-SLAM dis-\ntributes this information in the following manner: All map updates for all nodes in the\nancestry tree are stored in a single global grid, while each node in the ancestry tree also\nmaintains a list of all grid squares updated by that node. The information contained in\nthese two data structures is integrated for ef\ufb01cient access at each cycle of the particle \ufb01lter\nthrough a new data structure called an map cache.\n\n2.1 Core Data Structures\n\nThe DP-SLAM map is a global occupancy grid-like array. Each grid cell contains an ob-\nservation vector with one entry for each ancestry tree node that has made an observation of\nthe grid cell. Each vector entry is an observation node containing the following \ufb01elds:\n\nopacity a data structure storing suf\ufb01cient statistics for the current estimate of the opacity\n\nof the grid cell to the laser range \ufb01nder. See Eliazar and Parr [4] for details.\n\nparent a pointer to a parent observation node for which this node is an update. (If an\nancestor of a current particle has seen this square already, then the opacity value\nfor this square is considered an update to the previous value stored by the ancestor.\nHowever, both the update and the original observation are stored, since it may not\nbe the case that all successors of the ancestor have made updates to this square.)\n\n\fanode a pointer to the ancestry tree node associated with the current opacity estimate.\n\nIn previous versions of DP-SLAM, this information was stored using a balanced tree. This\nadded signi\ufb01cant overhead to the algorithm, both conceptual and computational, and is no\nlonger required in the current version.\n\nThe DP-SLAM ancestry tree is a basic tree data structure with pointers to parents and\nchildren. Each node in the ancestry tree also contains an onodes vector, which contains\npointers to observation nodes in the grid cells updated by the ancestry tree node.\n\n2.2 Map cache\n\nThe main sacri\ufb01ce that was made when originally designing DP-SLAM was that map ac-\ncesses no longer took constant time, due to the need to search the observation vector at a\ngiven grid square. The map cache provides a way of returning to this constant time ac-\ncess, by reconstructing a separate local map which is consistent with the history of map\nupdates for each particle. Each local map is only as large as the area currently observed,\nand therefore is of a manageable size.\n\nFor a localization procedure using P particles and observing an area of A grid squares,\nthere is a total of O(AP ) map accesses. For the constant time accesses provided by the\nmap cache to be useful, the time complexity to build the map cache needs to be O(AP ).\nThis result can be achieved by constructing the cache in two passes.\n\nThe \ufb01rst pass is to iterate over all grid squares in the global map which could be within\nsensor range of the robot. For each of these grid squares, the observation vector stores\nall observations made of that grid square by any particle. This vector is traversed, and\nfor each observation, we update the corresponding local map with a pointer back to the\ncorresponding observation node. This creates a set of partial local maps that store pointers\nto map updates, but no inherited map information. Since the size of the observation vector\ncan be no greater than the size of the ancestry tree, which has O(P ) nodes, the \ufb01rst pass\ntakes O(P ) time per grid square.\nIn the second pass we \ufb01ll holes in the local maps by propagating inherited map information.\nThe entire ancestry tree is traced, depth \ufb01rst, and the local map is checked for each ancestor\nnode encountered. If the local map for the current ancestor node was not \ufb01lled during the\n\ufb01rst pass, then the hole is patched by inheritance from the ancestor node\u2019s parent. This will\n\ufb01ll any gaps in the local maps for grid squares that have been seen by any current particle.\nAs this pass is directly based on the size of the ancestry tree, it is also O(P ) per grid square.\nTherefore, the total complexity of building the map cache is O(AP ).\nFor each particle, the algorithm constructs a grid of pointers to observation nodes. This\nprovides constant time access to the opacity values consistent with each particle\u2019s map.\nLocalization now becomes trivial with this representation: Laser scans are traced through\nthe corresponding local map, and the necessary opacity values are extracted via the point-\ners. With the constant time accesses afforded by the local maps, the total localization cost\nin DP-SLAM is now O(AP ).\n\n2.3 Updates and Deletions\n\nWhen the observations associated with a new particle\u2019s sensor sweep are integrated into the\nmap, two basic steps are performed. First, a new observation is added to the observation\nvector of each grid square which was visited by the particle\u2019s laser casts. Next, a pointer to\neach new observation is added to this particle\u2019s onodes vector. The cost of this operation is\nobviously no more than that of localization.\n\nThere are two situations which require deleting nodes from the ancestry tree. The \ufb01rst is\n\n\fthe simple case of removing a node from which the particle \ufb01lter has not resampled. Each\nancestor node maintains a vector of pointers to all observations attributed to it. Therefore,\nthese entries can be removed from the observation vectors in the global grid in constant\ntime. Since there can be no more deletions than there are updates, this process has an\namortized cost of O(AP ).\nThe second case for deleting a node occurs when a node in the ancestry tree which has\nan only child is merged with that child. This involves replacing the opacity value for the\nparent with that of the child, and then removing that child\u2019s entry from the associated grid\ncell\u2019s observation vector. Therefore, this process is identical to the \ufb01rst case, except that\neach removal of an entry from the global map is preceded by a single update to the same\ngrid square. Since the observation vector at each grid square is not ordered, additions to\nthe vector can be done in constant time, and does not change the complexity from O(AP ).\n\n3 Drift\n\nA signi\ufb01cant problem faced by current SLAM algorithms is that of drift. Small errors\ncan accumulate over several iterations, and while the resulting map may seem locally con-\nsistent, there could be large total errors, which become apparent after the robot closes a\nlarge loop. In theory, drift can be avoided by some algorithms in situations where strong\nlinear Gaussian assumptions hold [10]. In practice, it is hard to avoid drift, either as a\nconsequence of violated assumptions or as a consequence of particle \ufb01ltering. The best\nalgorithms can only extend the distance that the robot travels before experiencing drift. Er-\nrors come from (at least) three sources: insuf\ufb01cient particle coverage, coarse precision, and\nresampling itself (particle depletion).\n\nThe \ufb01rst problem is a well known issue with particle \ufb01lters. Given a \ufb01nite number of\nparticles, there will be unsampled gaps in the particle coverage of the state space and the\nproximity to the true state can be as coarse as the size of these gaps. This is exacerbated by\nthe fact that particle \ufb01lters are often applied to high dimensional state spaces with Gaus-\nsian noise, making it impossible to cover unlikely (but still possible) events in the tails of\ndistribution with high particle density. The second issue is coarse precision. This can occur\nas a result of explicit discretization through an occupancy grid, or implicit discretization\nthrough the use of a sensor with \ufb01nite precision. Coarse precision can make minor per-\nturbations in the state appear identical from the perspective of the sensors and the particle\nweights. Finally, resampling itself can lead to drift by shifting a \ufb01nite population of parti-\ncles away from low probability regions of the state space. While this behavior of a particle\n\ufb01lter is typically viewed as a desirable reallocation of computational resources, it can shift\nparticles away from the true state in some cases.\n\nThe net effect of these errors can be the gradual accumulation of small errors resulting from\nfailure to sample, differentiate, or remember a state vector that is suf\ufb01ciently close to the\ntrue state. In practice, we have found that there exist large domains where high precision\nmapping is essentially impossible with any reasonable number of particles.\n\n4 Hierarchical SLAM\n\nIn the \ufb01rst part of the paper, we presented an approach to SLAM that reduced the asymp-\ntotic complexity per particle to that of pure localization. This is likely as low as can rea-\nsonably be expected and should allow the use of large numbers of particles for mapping.\nHowever, the discussion of drift in the previous section underscores that the ability to use\nlarge numbers of particles may not be suf\ufb01cient, and we would like techniques that de-\nlay the onset of drift as long as possible. We therefore propose a hierarchical approach to\nSLAM that is capable of recognizing, representing, and recovering from drift.\n\n\fThe basic idea is that the main sources of drift can be modeled as the cumulative effect\nof a sequence of random events. Through experimentation, we can quantify the expected\namount of drift over a certain distance for a given algorithm, much in the same way that we\ncreate a probabilistic motion model for the noise in the robot\u2019s odometry. Since the total\ndrift over a trajectory is assumed to be a summation of many small, largely independent\nsources of error, it will be close to a Gaussian distribution.\n\nIf we view the act of completing a small map segment as a random process with noise, we\ncan then apply a higher level \ufb01lter to the output of the map segment process in an attempt\nto track the underlying state more accurately. There are two bene\ufb01ts to this approach.\nFirst, it explicitly models and permits the correction of drift. Second, the coarser time\ngranularity of the high level process implies fewer resampling steps and fewer opportunities\nfor particle depletion. Thus, if we can model how much drift is expected to occur over a\nsmall section of the robot\u2019s trajectory, we can maintain this extra uncertainty longer, and\nresolve inaccuracies or ambiguities in the map in a natural fashion.\n\nThere are some special properties of the SLAM problem that make it particularly well\nsuited to this approach. In the full generality of an arbitrary tracking problem, one should\nview drift as a problem that affects entire trajectories through state space and the complete\nbelief state at any time. Sampling the space of drifts would then require sampling perturba-\ntions to the entire state vector. In this fully general case, the bene\ufb01t of the hierarchical view\nwould be unclear, as the end result would be quite similar to adding additional noise to\nthe low level process. In SLAM, we can make two assumptions that simplify things. The\n\ufb01rst is that the robot state vector is highly correlated with the remaining state variables,\nand the second is that we have access to a low level mapping procedure with moderate\naccuracy and local consistency. Under these assumptions, the the effects of drift on low\nlevel maps can be accurately approximated by perturbations to the endpoints of the robot\ntrajectory used to construct a low level map. By sampling drift only at endpoints, we will\nfail to sample some of the internal structure that is possible in drifts, e.g., we will fail to\ndistinguish between a linear drift and a spiral pattern with the same endpoints. However,\nthe existence of signi\ufb01cant, complicated drift patterns within a map segment would violate\nour assumption of moderate accuracy and local consistency within our low level mapper.\n\nTo achieve a hierarchical approach to SLAM, we use a standard SLAM algorithm using\na small portion of the robot\u2019s trajectory as input for the low level mapping process. The\noutput is not only a distribution over maps, but also a distribution over robot trajectories.\nWe can treat the distribution over trajectories as a distribution over motions in the higher\nlevel SLAM process, to which additional noise from drift is added. This allows us to use\nthe output from each of our small mapping efforts as the input for a new SLAM process,\nworking at a much higher level of time granularity.\nFor the high level SLAM process, we need to be careful to avoid double counting evi-\ndence. Each low level mapping process runs as an independent process intialized with an\nempty map. The distribution over trajectories returned by the low level mapping process\nincorporates the effects of the observations used by the low level mapper. To avoid double\ncounting, the high level SLAM process can only weigh the match between the new obser-\nvations and the existing high level maps. In other words, all of the observations for a single\nhigh level motion step (single low level trajectory) must be evaluated against the high level\nmap, before any of those observations are used to update the map. We summarize the high\nlevel SLAM loop for each high level particle as follows:\n\n1. Sample a high level SLAM state (high level map and robot state).\n\n2. Perturb the sampled robot state by adding random drift.\n\n3. Sample a low level trajectory from the distribution over trajectories returned by the low\n\nlevel SLAM process.\n\n4. Compute a high level weight by evaluating the trajectory and robot observations against the\n\n\fsampled high level map, starting from the perturbed robot state.\n\n5. Update the high level map based upon the new observations.\n\nIn practice this can give a much greater improvement in accuracy over simply doubling\nthe resources allocated to a single level SLAM algorithm because the high level is able to\nmodel and recover from errors much longer than would be otherwise possible with only\na single particle \ufb01lter.\nIn our implementation we used DP-SLAM at both levels of the\nhierarchy to ensure a total computational complexity of O(AP ). However, there is reason\nto believe that this approach could be applied to any other sampling-based SLAM method\njust as effectively. We also implemented this idea with only one level of hierarchy, but\nmultiple levels could provide additional robustness. We felt that the size of the domains on\nwhich we tested did not warrant any further levels.\n\n5 Implementation and Empirical Results\n\nOur description of the algorithm and complexity analysis assumes constant time updates to\nthe vectors storing information in the core DP-SLAM data structures. This can be achieved\nin a straightforward manner using doubly linked lists, but a somewhat more complicated\nimplementation using adjustable arrays is dramatically more ef\ufb01cient in practice. A careful\nimplementation can also avoid caching maps for interior nodes of the ancestry tree.\n\nAs with previous versions of DP-SLAM, we generate many more particles than we keep at\neach iteration. Evaluating a particle requires line tracing 181 laser casts. However, many\nparticles will have signi\ufb01cantly lower probability than others and this can be discovered\nbefore they are fully evaluated. Using a technique we call particle culling we use partial\nscan information to identify and discard lower probability particles before they are eval-\nuated fully. In practice, this leads to large reduction in the number of laser casts that are\nfully traced through the grid. Typically, less than one tenth of the particles generated are\nresampled.\nFor a complex algorithm like DP-SLAM, asymptotic analysis may not always give a\ncomplete picture of real world performance. Therefore, we provide a comparison of ac-\ntual run times for each method on three different data logs. The particle counts pro-\nvided are the minimum number of particles needed (at each level) to produce high-quality\nmaps reliably. The improved run time for the linear algorithm also re\ufb02ects the bene\ufb01ts\nof some improvements in our culling technique and a cleaner implementation permit-\nted by the linear time algorithm. The quadratic code is simply too slow to run on the\nWean Hall data. Log \ufb01les for these runs are available from the DP-SLAM web page:\nhttp://www.cs.duke.edu/\u02dcparr/dpslam/. The results show a signi\ufb01cant prac-\ntical advantage for the linear code, and vast improvement, both in terms of time and number\nof particles, for the hierarchical implementation.\n\nLog\nloop5\nloop25\nWean Hall\n\nQuadratic\n\nParticles Minutes\n55\n1345\nN/A\n\n1500\n11000\n120000\n\nLinear\n\nHierarchical\n\nParticles Minutes\n14\n690\n2535\n\n1500\n11000\n120000\n\nParticles (high/low) Minutes\n12\n289\n293\n\n200/250\n2000/3000\n2000/3000\n\nFinally, in Figure 1 we include sample output from the hierarchical mapper on the Wean\nHall data shown in our table. In this domain, the robot travels approximately 220m before\nreturning to its starting position. Each low level SLAM process was run for 75 time steps,\nwith an average motion of 12cm for each time step. The nonhierarchical approach can pro-\nduce a very similar result, but requires at least 120,000 particles to do so reliably. (Smaller\nnumbers of particles produced maps with noticeable drifts and errors.) This extreme dif-\nference in particle counts and computation time demonstrates the great improvement that\ncan be realized with the hierarchical approach. (The Wean Hall dataset has been mapped\n\n\fFigure 1: CMU\u2019s Wean Hall at 4cm resolution, using hierarchical SLAM. Please zoom in\non the map using a software viewer to appreciate some of the \ufb01ne detail.\n\nsuccessfully before at low resolution using a non-hierarchical approach with run time per\niteration that grows with the number of iterations [8].)\n\n6 Related Work\n\nOther methods have attempted to preserve uncertainty for longer numbers of time steps.\nOne approach seeks to delay the resampling step for several iterations, so as to address\nthe total noise in a certain number of steps as one Gaussian with a larger variance [8]. In\ngeneral, look-ahead methods can \u201cpeek\u201d at future observations to use the information from\nlater time steps to in\ufb02uence samples at a previous time step [3]. The HYMM approach[11]\ncombines different types of maps. Another way to interpret hierarchical SLAM is in terms\nof a hierarchical hidden Markov model framework [5]. In a hierarchical HMM, each node\nin the HMM has the potential to invoke sub-HMMs to produce a series of observations. The\nmain difference is that in hierarchical HMMs, there is assumed to be a single process that\ncan be represented in different ways. In our hierarchical SLAM approach, only the lowest\nlevel models a physical process, while higher levels model the errors in lower levels.\n\n7 Conclusions and Future Research\n\nWe have presented a SLAM algorithm which is the culmination of our efforts to make\nmultiple hypothesis mapping practical for densely populated maps. Our \ufb01rst algorithmic\naccomplishment is to show that this requires no more effort, asymptotically, than pure lo-\ncalization using a particle \ufb01lter. However, for mapping, the number of particles needed can\nbe large and can still grow to be unmanageable for large domains due to drift. We therefore\ndeveloped a method to improve the accuracy achieveable with a reasonable number of par-\nticles. This is accomplished through the use of a hierarchical particle \ufb01lter. By allowing an\nadditional level of sampling on top of a series of small particle \ufb01lters, we can successfully\nmaintain the necessary uncertainty to produce very accurate maps. This is due to the ex-\nplicit modeling of the drift, a key process which differentiates this approach from previous\nattempts to preserve uncertainty in particle \ufb01lters.\n\nThe hierarchical approach to SLAM has been shown to be very useful in improving DP-\nSLAM performance. This would lead us to believe that similar improvements could also be\n\n\frealized in applying this to other sampling based SLAM methods. SLAM is perhaps not the\nonly viable application for hierarchical framework for particle \ufb01lters. However, one of the\nkey aspects of SLAM is that the drift can easily be represented by a very low dimensional\ndescriptor. Other particle \ufb01lter applications which have drift that must be modeled in many\nmore dimensions could bene\ufb01t much less from this hierarchical approach.\n\nThe work of Hahnel et al. [8] has made progress in increasing ef\ufb01ciency and reducing\ndrift by using scan matching rather than pure sampling from a noisy proposal distribution.\nSince much of the computation time used by DP-SLAM is spent evaluating bad particles, a\ncombination of DP-SLAM with scan matching could yield signi\ufb01cant practical speedups.\n\nAcknowledgments\n\nThis research was supported by SAIC, the Sloan foundation, and the NSF. The Wean Hall\ndata were gracriously provided by Dirk Hahnel and Dieter Fox.\n\nReferences\n\n[1] W. Burgard, D. Fox, H. Jans, C. Matenar, and S. Thrun. Sonar-based mapping with mobile\n\nrobots using EM. In Proc. of the International Conference on Machine Learning, 1999.\n\n[2] P. Cheeseman, P. Smith, and M. Self. Estimating uncertain spatial relationships in robotics. In\n\nAutonomous Robot Vehicles, pages 167\u2013193. Springer-Verlag, 1990.\n\n[3] N. de Freitas, R. Dearden, F. Hutter, R. Morales-Menendez, J. Mutch, and D. Poole. Diagnosis\nby a waiter and a Mars explorer. In IEEE Special Issue on Sequential State Estimation, pages\n455\u2013468, 2003.\n\n[4] A. Eliazar and R. Parr. DP-SLAM 2.0.\n\nAutomation (ICRA), 2004.\n\nIn IEEE International Conference on Robotics and\n\n[5] Shai Fine, Yoram Singer, and Naftali Tishby. The hierarchical hidden markov model: Analysis\n\nand applications. Machine Learning, 32(1):41\u201362, 1998.\n\n[6] Dieter Fox, Wolfram Burgard, Frank Dellaert, and Sebastian Thrun. Monte carlo localization:\n\nEf\ufb01cient position estimation for mobile robots. In AAAI-99, 1999.\n\n[7] J. Gutmann and K. Konolige.\n\nIn IEEE\nInternational Symposium on Computational Intelligence in Robotics and Automation (ICRA),\npages 318\u2013325, 2000.\n\nIncremental mapping of large cyclic environments.\n\n[8] Dirk Hahnel, Wolfram Burgard, Dieter Fox, and Sebastian Thrun. An ef\ufb01cient fastslam al-\ngorithm for generating maps of large-scale cyclic environments from raw laser range measure-\nments. In Proceedings of the International Conference on Intelligent Robots and Systems, 2003.\n[9] John H. Leonard, , and Hugh F. Durrant-Whyte. Mobile robot localization by tracking geometric\nbeacons. In IEEE Transactions on Robotics and Automation, pages 376\u2013382. IEEE, June 1991.\n[10] M. Montemerlo, S. Thrun, D. Koller, and B. Wegbreit. FastSLAM 2.0: An improved parti-\ncle \ufb01ltering algorithm for simultaneous localization and mapping that provably converges. In\nIJCAI-03, Morgan Kaufmann, 2003. 1151\u20131156.\n\n[11] J. Nieto, J. Guivant, and E. Nebot. The HYbrid Metric Maps (HYMMS): A novel map rep-\nresentation for denseSLAM. In IEEE International Conference on Robotics and Automation\n(ICRA), 2004.\n\n[12] S. Thrun. A probabilistic online mapping algorithm for teams of mobile robots. International\n\nJournal of Robotics Research, 20(5):335\u2013363, 2001.\n\n\f", "award": [], "sourceid": 2904, "authors": [{"given_name": "Austin", "family_name": "Eliazar", "institution": null}, {"given_name": "Ronald", "family_name": "Parr", "institution": null}]}