Skip to content

SLAM and Mapping

Simultaneous localization and mapping estimates the vehicle’s trajectory and a map of its surroundings from the same measurements, closing loops when a place is revisited so that the correction propagates backward through the whole trajectory. Almost none of it has flown. The exceptions are the ISS free flyers, and even there the map is built on the ground and the onboard problem is reduced to localization against it [1][2].

The obstruction is arithmetic, not doctrine. A pose graph grows with time and with the number of vehicles, loop closure candidates grow faster still, and each candidate costs a scan or image registration. On four robots covering 6 km of the Kentucky Underground limestone mine, only 0.5 percent of the loop closure candidates could be computed within the available budget [4].

Mars rover flight computers have never had that budget. The Yutu-2 team states the case directly: given the limited online processing capability, precise navigation localization was performed at the teleoperation center rather than onboard [8]. Perseverance’s Rover Compute Element is a pair of 133 MHz RAD750s, and even the single global map match its successor performs was moved off it onto the helicopter base station’s Snapdragon board [10].

What flew instead was a ground-side photogrammetric pipeline plus a periodic frame reset. Yutu-2’s dead reckoning runs onboard and gives real-time position and attitude, while visual positioning runs at the Beijing teleoperation center in near real time and is more accurate: the two agree to within centimeters to decimeters over the 10 m or less between neighboring waypoints, and disagreed by more than 1 m when the rover slipped badly, with the visual solution taken as correct [8]. The visual solution establishes an observation equation from ASIFT feature points and solves it by bundle adjustment, with an imaging strategy designed around the scale and rotation change between waypoints seen from a 1.5 m camera height: image at raised pitch from the previous site, then select the image at the current site with the smallest angle to it. Digital elevation and orthophoto models at 0.02 m resolution are produced routinely at each waypoint from Navcam and Hazcam imagery, over a 0.03 m descent-image orthophoto model of the landing area [8]. Absolute localization covers the equivalent Mars practice.

Maximum likelihood range map matching was implemented onboard the Rocky 7 Mars rover prototype and evaluated against real Sojourner data [6]. A local occupancy map from rover stereo is matched against a global occupancy map built earlier from lander or rover imagery, with orientation assumed known from a gyrocompass, accelerometers or a sun sensor, so only a two-dimensional translation is searched. The search is hierarchical over a discretized pose space with recursive pruning of cells that cannot contain the maximum, and the depth dimension is removed by high-pass filtering rather than searched. Position error was much smaller than a meter, against the roughly 91 m average error of the mountain-bearing localization systems of the period [6]. The published limitation is the input data, not the algorithm: Sojourner stereo range was poor outside the central part of the image because of fish-eye lens miscalibration, and only a handful of positions had enough downlinked data to test.

The same group’s multi-resolution mapping combined surface, descent and orbital imagery into one framework, refining descent camera motion by tracking features under an epipolar constraint with Levenberg-Marquardt, then recovering depth by correlating onto virtual planar surfaces with sum-of-squared-differences and subpixel interpolation [7]. On Silver Lake field data, 8 descent images spanning altitudes of 1086 m down to 8 m, and a localization test using 11 descent images against 14 rover stereo pairs at three rover stations, rover positions came within 1 m of the GPS estimate overall and below 5 cm about 5 m from the center of the descent sequence. Depth recovery is numerically unstable at the epipole, which for pure descent is the image center, because the correlation curves there are flat. Registration of descent imagery to orbital imagery was attempted with mutual information, which failed, and replaced with entropy alignment; the search remains a brute-force sweep over six degrees of freedom of camera pose. All of it ran on the ground.

Astrobee separates the two halves of SLAM. The sparse feature map of the module interior is built offline from imagery using SURF, which is expensive, and the onboard problem is matching incoming navigation images against it, described in free flyer guidance [1]. AstroLoc2 changed the matching half: DBoW2 selects candidate map images, covisibility graph queries add neighbors of the surviving candidates plus the highest-scoring map image from the previous iteration, and matching uses TEBLID features with 512 bit descriptors instead of BRISK, with CLAHE histogram equalization applied to navigation images to raise the feature count in dim areas of the station [2]. Matches are pruned by a Hamming distance threshold and Lowe’s ratio test, outliers removed by RANSAC essential matrix estimation, and the image registered by RANSAC perspective-n-point.

The ratio test carries a calibration that does not come from a spacecraft. Accepting a match only when the nearest descriptor is closer than 0.8 times the second nearest rejects 90 percent of false matches at a cost of under 5 percent of correct ones, a figure measured against a database of about 40,000 keypoints from 112 handheld and synthetically warped photographs of ordinary indoor and outdoor scenes under random rotation and scale change, up to 30 degrees of viewpoint tilt and 1 to 2 percent added image noise [11]. Correct matching stays above 50 percent only out to about 50 degrees of planar viewpoint tilt, and the descriptor is normalized against affine intensity change only, so a cast shadow or a saturated pixel falls outside what the invariance covers, a limit stated in the original characterization without being quantified. A module interior supplies the near-planar surfaces and the bounded viewpoint change the 0.8 threshold was tuned against; low sun angle regolith and shadowed terrain do not [11].

The number of database images queried is adjusted at runtime against the recent map matching success rate, increasing when the rate falls below a threshold and decreasing when it rises above one, and the keypoint detection threshold is scaled by the same rule with the scale factors driven toward unity as the keypoint count approaches its bounds [2]. The free flyer runs its entire estimator on one processor core, so the number of database images queried is itself a controlled variable [1][2].

Measured over a public dataset of 10 ISS activities, matching against the prebuilt map [2]:

Map matcherATE RMSEAverage success rateAverage runtimeRuntime standard deviation
AstroLoc20.193 m0.550.708 s0.173 s
AstroLoc0.216 m0.460.250 s0.078 s

Source: [2], Table I. The adaptive matcher spends 2.4 times longer on the harder free-flying sequences than on the testing sequences, against 1.4 times for the fixed matcher, which is the intended behavior: map matching runs in its own process and the localizer holds position by relative odometry between updates, so a slower matcher with a higher success rate is preferred [2], the same division of labor between a fast relative estimator and a slow absolute fix that the Mars rovers use [10].

The cost of full SLAM, measured on the same data

Section titled “The cost of full SLAM, measured on the same data”

The comparison that explains the architecture is the runtime table, all figures on a 3.4 GHz AMD Ryzen 9 5950X with 32 GB of RAM rather than on flight hardware [2]:

LocalizerAverage runtime
AstroLoc245.37 ms
AstroLoc52.37 ms
DSO77.20 ms
SC-SfMLearner77.56 ms
DROID-SLAM136.64 ms
ORB-SLAM3258.24 ms
DF-VO540 ms

Source: [2], Table IV. ORB-SLAM3, which performs online bundle adjustment instead of using a prebuilt map, is 5.7 times slower than AstroLoc2 and more accurate by 2.2 percent. Astrobee’s own budget makes that trade one-sided: its single Snapdragon core runs roughly 10 times slower than an Intel i9-9980HK at 2.4 GHz and is shared with the rest of the robot’s software [1]. Adding time-of-flight depth is the same argument at smaller scale. Point-to-point correspondence estimation from time-of-flight intensity images takes about 12 ms, against about 110 ms for ICP on the same data, and the cheaper one gives lower error on two of three activities [2].

On the intravehicular datasets the odometry front end costs tens of milliseconds [2], while the candidate revisits to be tested grow quadratically with trajectory length and with the number of vehicles [4].

Detection at frame rate, on aerial imagery

Section titled “Detection at frame rate, on aerial imagery”

A visual loop closure detector built for a future Mars Science Helicopter uses DBoW2 over a vocabulary trained on Mars simulation imagery, with candidate frames required to share a minimum number of words, island grouping over temporally adjacent candidates, and a geometric consistency check [3]. The 10^6 word vocabulary was trained on about 30,000 synthetic Mars images covering an 8 km by 8 km area. Two check configurations were compared over 1000 overlapping and 19,000 non-overlapping simulated images: brute-force matching with a five-point essential matrix in RANSAC gave the best recall at 100 percent precision, and direct-index matching with a rotational consistency check came second at sub-millisecond runtime, which was selected because the saved time buys more consistency checks [3].

Evaluated on real Ingenuity data, flights 7 to 19 stitched into one 3276 m trajectory at 7.2 to 13.4 m above ground level, the database held 882 keyframes at the end and overall recall was 41.3 percent with no false positives [3]. Recall was 72.9 percent, 51 of 70 possible closures, in the one region with strong texture where the image pairs were minutes apart, and 31.9 and 30.5 percent in two regions whose pairs were taken about 5 and 7 months apart, one of them after a sand storm. Restricted to pairs meeting the 65 percent image overlap the system needs at fixed altitude, overall recall is 67.9 percent [3]. Substituting the stock ORB-SLAM vocabulary at the same 10^6 word size produced histograms with 21 percent fewer distinct words and generated a false positive [3]. The Ingenuity figures are the only loop-closure recall numbers measured on imagery returned from another body [1].

Runtime per incoming navigation image averaged 24.3 ms on the simulated set and 19.4 ms on the Ingenuity set, the difference being that Martian terrain has less texture, both on a single thread of an AMD Ryzen 5 2600 [3]. The 30 Hz camera frame rate allows 33.3 ms. The target processor is a Snapdragon 820, within the same order of magnitude in single-thread rating, from which the authors project frame-rate operation. No measurement on the Snapdragon itself is published.

LAMP’s centralized multi-robot back end attaches a keyed lidar scan to each pose graph node and generates loop closure candidates from nodes within a Euclidean distance that scales with accumulated uncertainty [4]. Three prioritization modules then choose which candidates to register: a graph neural network predicting the uncertainty reduction from adding each closure, an observability score over the candidate scans, and a proximity heuristic, combined by round-robin so each module contributes equally. Feature-poor areas are dropped as candidates, which is what saves the computation.

Evaluated on four Team CoSTAR datasets, two Huskies over 2.5 km combined in a coal mine, two Huskies and a Spot over 1.5 km in an abandoned nuclear power plant, three Spots and a Husky over 1.2 km on the DARPA Subterranean Challenge Finals course, and four Huskies over 6 km in a limestone mine, prioritization gave a 51 percent mean reduction in median error against odometry alone and 75 percent against the unprioritized baseline [4]. Experiments ran both on a laptop with a 12-core Intel i7-8750H and on a 64-core AMD Ryzen Threadripper 3990X.

Dropping radio beacons converts loop detection from a search into a measurement. Range-aided loop closure uses ultra-wideband range measurements from beacons dropped by the robot to nominate candidates, then computes the relative transform geometrically, so the expensive registration runs only on candidates the radio already agrees about [5]. On a Husky A200 with a VLP-16 lidar and an Intel NUC 7i7DNBE at 4 by 1.9 GHz with 32 GB of RAM, carrying Decawave MDEK1001 UWB beacons with centimeter-order two-way ranging, run on data from the DARPA Subterranean Challenge Urban Circuit:

MethodMap error, meanMap error, sigmaOdometry error, meanLoop closure compute timeCandidatesAccepted
No loop closure0.661 m0.847 m4.34 mnonenonenone
Range factor only1.15 m1.56 m7.21 mnot reportednot reportednot reported
Range-aided loop closure0.434 m0.458 m3.18 m16.1 s4812, 25.0 percent
Geometric lidar only0.456 m0.444 m3.04 m339.5 s114535, 3.1 percent
Both in parallel0.489 m0.487 m3.29 mnot reportednot reportednot reported

Source: [5], Table I and Figure 12. The range-aided method matches geometric-only accuracy at under 5 percent of its scan matching cost and an eight-fold lower outlier rate. The parallel combination was the configuration run live during the DARPA event. Range factors used alone, without geometric verification, are worse than no loop closure at all, because sparsely deployed beacons leave a binary ambiguity that multilateration cannot resolve when the trajectory near the beacon is close to straight.

CADRE is the first flight program to build and merge maps across several rovers onboard, using a distributed database, a multi-resolution traversability pyramid and pose graph optimization over visual-inertial odometry and ultra-wideband ranging [9]. Three rovers and a base station share state, pose graph nodes and edges, and local traversability maps through an SQLite database over Microhard mesh radios at 1 Mbps aggregate, on a Qualcomm Snapdragon 821 with 4 GB of RAM and 32 GB of flash per rover. Pose optimization runs on the leader rather than on each rover, so the system is a data fusion layer rather than distributed SLAM. That work is covered under multi-robot coordination.

References

  1. Soussan, R., Kumar, V., Coltin, B. and Smith, T. (2022). AstroLoc: An Efficient and Robust Localizer for a Free-Flying Robot. Source
    BibTeX
    @inproceedings{soussan2022astroloc,
      title = {AstroLoc: An Efficient and Robust Localizer for a Free-Flying Robot},
      author = {Soussan, Ryan and Kumar, Varsha and Coltin, Brian and Smith, Trey},
      booktitle = {2022 International Conference on Robotics and Automation (ICRA)},
      year = {2022},
      url = {https://ntrs.nasa.gov/citations/20220002537},
      doi = {10.1109/icra46639.2022.9811919},
      pages = {4106-4112}
    }
  2. Soussan, R., Moreira, M., Coltin, B. and Smith, T. (2025). AstroLoc2: Fast Sequential Depth-Enhanced Localization for Free-flying Robots. Source
    BibTeX
    @inproceedings{soussan2025astroloc2,
      title = {AstroLoc2: Fast Sequential Depth-Enhanced Localization for Free-flying Robots},
      author = {Soussan, Ryan and Moreira, Marina and Coltin, Brian and Smith, Trey},
      booktitle = {IEEE International Conference on Robotics and Automation (ICRA)},
      address = {Atlanta, Georgia},
      year = {2025},
      url = {https://ntrs.nasa.gov/citations/20250001870}
    }
  3. Dietsche, A., Ott, L., Siegwart, R. and Brockers, R. (2022). Visual Loop Closure Detection for a Future Mars Science Helicopter. dataverse.jpl.nasa.gov/dataset.xhtml
    BibTeX
    @misc{dietsche2022visual,
      title = {Visual Loop Closure Detection for a Future Mars Science Helicopter},
      author = {Dietsche, Alexander and Ott, Lionel and Siegwart, Roland and Brockers, Roland},
      howpublished = {Jet Propulsion Laboratory, California Institute of Technology, clearance CL22-3635},
      year = {2022},
      url = {https://dataverse.jpl.nasa.gov/dataset.xhtml?persistentId=doi:10.48577/jpl.J9ZX8P}
    }
  4. Denniston, C. E., Chang, Y., Reinke, A., Ebadi, K., Sukhatme, G. S., Carlone, L., Morrell, B. and Agha-mohammadi, A.-A. (2022). Loop Closure Prioritization for Efficient and Scalable Multi-Robot SLAM. Source
    BibTeX
    @inproceedings{denniston2022loop,
      title = {Loop Closure Prioritization for Efficient and Scalable Multi-Robot SLAM},
      author = {Denniston, Christopher E. and Chang, Yun and Reinke, Andrzej and Ebadi, Kamak and Sukhatme, Gaurav S. and Carlone, Luca and Morrell, Benjamin and Agha-mohammadi, Ali-akbar},
      booktitle = {IEEE International Conference on Robotics and Automation (ICRA)},
      year = {2022},
      url = {https://dataverse.jpl.nasa.gov/dataset.xhtml?persistentId=doi:10.48577/jpl.9EMOMS}
    }
  5. Funabiki, N., Morrell, B., Nash, J. and Agha-mohammadi, A.-A. (2020). Range-Constrained Pose-Graph-Based SLAM: Applications of Deployable Ranging Beacons for Unknown Environment Exploration. IEEE Robotics and Automation Letters, 1. Source
    BibTeX
    @article{funabiki2020range,
      title = {Range-Constrained Pose-Graph-Based SLAM: Applications of Deployable Ranging Beacons for Unknown Environment Exploration},
      author = {Funabiki, Nobuhiro and Morrell, Benjamin and Nash, Jeremy and Agha-mohammadi, Ali-akbar},
      journal = {IEEE Robotics and Automation Letters},
      volume = {6},
      number = {1},
      pages = {48--55},
      year = {2020},
      url = {https://dataverse.jpl.nasa.gov/dataset.xhtml?persistentId=doi:10.48577/jpl.V20BOO}
    }
  6. Olson, C. F. (1998). Maximum Likelihood Rover Localization by Matching Range Maps. Source
    BibTeX
    @inproceedings{olson1998maximum,
      title = {Maximum Likelihood Rover Localization by Matching Range Maps},
      author = {Olson, Clark F.},
      booktitle = {IEEE International Conference on Robotics and Automation},
      year = {1998},
      url = {https://dataverse.jpl.nasa.gov/dataset.xhtml?persistentId=hdl:2014/22801}
    }
  7. Olson, C. F., Matthies, L. H., Xiong, Y., Li, R., Ma, F. and Xu, F. (2001). Multi-resolution Mapping Using Surface, Descent and Orbital Images. Source
    BibTeX
    @inproceedings{olson2001multiresolution,
      title = {Multi-resolution Mapping Using Surface, Descent and Orbital Images},
      author = {Olson, Clark F. and Matthies, Larry H. and Xiong, Yalin and Li, Rongxing and Ma, Fei and Xu, Fengliang},
      booktitle = {International Symposium on Artificial Intelligence, Robotics and Automation in Space (i-SAIRAS)},
      address = {Montreal, Canada},
      year = {2001},
      url = {https://dataverse.jpl.nasa.gov/dataset.xhtml?persistentId=hdl:2014/12530}
    }
  8. Wang, J., Li, J., Wang, S., Yu, T., Rong, Z., He, X., You, Y., Zou, Q., Wan, W., Wang, Y., Gou, S., Liu, B., Peng, M., Di, K., Liu, Z., Jia, M., Xin, X., Chen, Y., Cheng, X., Feng, X., Liu, C., Han, S. and Liu, X. (2020). Computer Vision in the Teleoperation of the Yutu-2 Rover. Source
    BibTeX
    @inproceedings{wang2020computer,
      title = {Computer Vision in the Teleoperation of the Yutu-2 Rover},
      author = {Wang, J. and Li, J. and Wang, S. and Yu, T. and Rong, Z. and He, X. and You, Y. and Zou, Q. and Wan, W. and Wang, Y. and Gou, S. and Liu, B. and Peng, M. and Di, K. and Liu, Z. and Jia, M. and Xin, X. and Chen, Y. and Cheng, X. and Feng, X. and Liu, C. and Han, S. and Liu, X.},
      booktitle = {ISPRS Annals of the Photogrammetry, Remote Sensing and Spatial Information Sciences},
      volume = {V-3-2020},
      pages = {595--602},
      year = {2020},
      doi = {10.5194/isprs-annals-V-3-2020-595-2020}
    }
  9. Saboia, M., Rossi, F., Nguyen, V., Lim, G., Aguilar, D. and de la Croix, J.-P. (2024). CADRE MoonDB: Distributed Database for Multi-Robot Information-Sharing and Map-Merging for Lunar Exploration. Source
    BibTeX
    @inproceedings{saboia2024cadre,
      title = {CADRE MoonDB: Distributed Database for Multi-Robot Information-Sharing and Map-Merging for Lunar Exploration},
      author = {Saboia, Ma{\'i}ra and Rossi, Federico and Nguyen, Viet and Lim, Grace and Aguilar, Dustin and de la Croix, Jean-Pierre},
      booktitle = {International Conference on Autonomous Agents and Multiagent Systems (AAMAS)},
      address = {Auckland, New Zealand},
      year = {2024},
      url = {https://dataverse.jpl.nasa.gov/dataset.xhtml?persistentId=doi:10.48577/jpl.VNEPA2}
    }
  10. Verma, V., Nash, J., Saldyt, L., Dwight, Q., Wang, H., Myint, S., Biesiadecki, J., Maimone, M., Tumbar, A., Ansar, A., Kubiak, G. and Hogg, R. (2024). Enabling Long and Precise Drives for the Perseverance Mars Rover via Onboard Global Localization. Source
    BibTeX
    @inproceedings{verma2024enabling,
      title = {Enabling Long and Precise Drives for the Perseverance Mars Rover via Onboard Global Localization},
      author = {Verma, Vandi and Nash, Jeremy and Saldyt, Lucas and Dwight, Quintin and Wang, Haoda and Myint, Steven and Biesiadecki, Jeffrey and Maimone, Mark and Tumbar, Andrei and Ansar, Adnan and Kubiak, Gerik and Hogg, Robert},
      booktitle = {IEEE Aerospace Conference},
      address = {Big Sky, Montana},
      year = {2024},
      url = {https://www-robotics.jpl.nasa.gov/media/documents/2024_Global_Localization_IEEE_Aero.pdf}
    }
  11. Lowe, D. G. (2004). Distinctive Image Features from Scale-Invariant Keypoints. International Journal of Computer Vision, 2. Source
    BibTeX
    @article{lowe2004distinctive,
      title = {Distinctive Image Features from Scale-Invariant Keypoints},
      author = {Lowe, David G.},
      journal = {International Journal of Computer Vision},
      volume = {60},
      number = {2},
      pages = {91--110},
      year = {2004},
      doi = {10.1023/B:VISI.0000029664.99615.94},
      url = {https://www.cs.ubc.ca/~lowe/papers/ijcv04.pdf}
    }