Simultaneous localization and mapping: Difference between revisions

Content deleted Content added
m See also: Why the small text?
Todo
Tags: Reverted references removed Visual edit Mobile edit Mobile web edit
Line 1:
'''Simultaneous{{Short localizationdescription|Computational technique used by robots and mapping'''autonomous vehicles}} ('''SLAM''') is the computational problem of constructing or updating a map of an unknown environment while simultaneously keeping track of an [[Intelligent agent|agent]]'s ___location within it. While this initially appears to be a [[chicken or the egg]] problem, there are several [[algorithm]]salgorithms known to solve it in, at least approximately, tractable time for certain environments. Popular approximate solution methods include the [[particle filter]], extended [[Kalman filter]], covariance intersection, and GraphSLAM. SLAM algorithms are based on concepts in [[computational geometry]] and [[computer vision]], and are used in [[robot navigation]], [[robotic mapping]] and [[odometry]] for [[virtual reality]] or [[augmented reality]].
{{Short description|Computational navigational technique used by robots and autonomous vehicles}}
[[File:Stanley2.JPG|thumb|[[Stanley (vehicle)|2005 DARPA Grand Challenge winner Stanley]] performed SLAM as part of its autonomous driving system.]]
[[File:RoboCup Rescue arena map generated by robot Hector from Darmstadt at 2010 German open.jpg|thumb|A map generated by a SLAM Robot]]
 
SLAM algorithms are tailored to the available resources and are not aimed at perfection but at operational compliance. Published approaches are employed in [[self-driving car]]scars, [[unmanned aerial vehicle]]svehicles, [[autonomous underwater vehicle]]svehicles, [[Rover (space exploration)|planetary rovers]], newer [[domestic robot]]srobots and even inside the human body.
'''Simultaneous localization and mapping''' ('''SLAM''') is the computational problem of constructing or updating a map of an unknown environment while simultaneously keeping track of an [[Intelligent agent|agent]]'s ___location within it. While this initially appears to be a [[chicken or the egg]] problem, there are several [[algorithm]]s known to solve it in, at least approximately, tractable time for certain environments. Popular approximate solution methods include the [[particle filter]], extended [[Kalman filter]], covariance intersection, and GraphSLAM. SLAM algorithms are based on concepts in [[computational geometry]] and [[computer vision]], and are used in [[robot navigation]], [[robotic mapping]] and [[odometry]] for [[virtual reality]] or [[augmented reality]].
 
SLAM algorithms are tailored to the available resources and are not aimed at perfection but at operational compliance. Published approaches are employed in [[self-driving car]]s, [[unmanned aerial vehicle]]s, [[autonomous underwater vehicle]]s, [[Rover (space exploration)|planetary rovers]], newer [[domestic robot]]s and even inside the human body.
 
== Mathematical description of the problem ==
Line 12 ⟶ 8:
:<math> P(m_{t+1},x_{t+1}|o_{1:t+1},u_{1:t}) </math>
 
Applying [[Bayes' rule]] gives a framework for sequentially updating the ___location posteriors, given a map and a transition function <math>P(x_t|x_{t-1})</math>,
 
:
:<math>P(x_t | o_{1:t},u_{1:t},m_t) = \sum_{m_{t-1} } P(o_{t}|x_t, m_t,u_{1:t}) \sum_{x_{t-1}} P(x_t|x_{t-1}) P(x_{t-1}|m_t, o_{1:t-1},u_{1:t}) /Z</math>
 
Similarly the map can be updated sequentially by
 
:
:<math>P(m_t | x_t,o_{1:t},u_{1:t}) = \sum_{x_t} \sum_{m_t} P(m_t | x_t, m_{t-1}, o_t,u_{1:t} ) P(m_{t-1},x_t | o_{1:t-1},m_{t-1},u_{1:t})</math>
 
Like many inference problems, the solutions to inferring the two variables together can be found, to a local optimum solution, by alternating updates of the two beliefsbelifs in a form of an [[expectation–maximization algorithm]].
 
== Algorithms ==
Statistical techniques used to approximate the above equations include [[Kalman filter]]s and [[particle filter]]s (the algorithm behind Monte Carlo Localization). They provide an estimation of the [[posterior probability distribution|posterior proability distribution]] for the pose of the robot and for the parameters of the map. Methods which conservatively approximate the above model using [[covariance intersection]] are able to avoid reliance on statistical independence assumptions to reduce algorithmic complexity for large-scale applications.<ref>{{cite conference|last1= Julier|first1=S.|last2=Uhlmann|first2=J.|title=Building a Million-Beacon Map.|conference=Proceedings of ISAM Conference on Intelligent Systems for Manufacturing|year=2001|doi=10.1117/12.444158}}</ref> Other approximation methods achieve improved computational efficiency by using simple bounded-region representations of uncertainty.<ref>{{cite conference|last1= Csorba|first1=M.|last2=Uhlmann|first2=J.|title=A Suboptimal Algorithm for Automatic Map Building.|conference=Proceedings of the 1997 American Control Conference|year=1997|doi=10.1109/ACC.1997.611857}}</ref>
 
[[Set estimation|Set-membership techniques]] are mainly based on [[interval propagation|interval constraint propagation]].<ref>
Line 32 ⟶ 28:
url=http://www.ensta-bretagne.fr/jaulin/paper_reder_ieee_tro.pdf|doi=10.1109/TRO.2008.2010358|s2cid=15474613}}
</ref><ref>
{{cite journal|last1=Jaulin|first1=L.|
title=Range-only SLAM with occupancy maps; A set-membership approach|
journal=IEEE Transactions on Robotics|volume=27|issue=5|pages=1004–1010|
Line 38 ⟶ 34:
url=http://www.ensta-bretagne.fr/jaulin/paper_dig_slam.pdf|doi=10.1109/TRO.2011.2147110|s2cid=52801599}}
</ref>
They provide a set which encloses the pose of the robot and a set approximation of the map. [[Bundle adjustment]], and more generally [[maximum a posteriori estimation]] (MAP), is another popular technique for SLAM using image data, which jointly estimates poses and landmark positions, increasing map fidelity, and is used in commercialized SLAM systems such as Google's ARCore which replaces their prior augmented reality computing platform named Tango, formerly ''Project Tango''. MAP estimators compute the most likely explanation of the robot poses and the map given the sensor data, rather than trying to estimate the entire posterior probability.
==cal mapsure the conn(i.erather treaally acctroaches hactric SLAM algmname=cummins>
 
{{cite journaljou
New SLAM algorithms remain an active research area,<ref name=":0">{{Cite journal|last1=Cadena|first1=Cesar|last2=Carlone|first2=Luca|last3=Carrillo|first3=Henry|last4=Latif|first4=Yasir|last5=Scaramuzza|first5=Davide|last6=Neira|first6=Jose|last7=Reid|first7=Ian|last8=Leonard|first8=John J.|date=2016|title=Past, Present, and Future of Simultaneous Localization and Mapping: Toward the Robust-Perception Age|journal=IEEE Transactions on Robotics|language=en-US|volume=32|issue=6|pages=1309–1332|arxiv=1606.05830|bibcode=2016arXiv160605830C|doi=10.1109/tro.2016.2624754|issn=1552-3098|hdl=2440/107554|s2cid=2596787}}</ref> and are often driven by differing requirements and assumptions about the types of maps, sensors and models as detailed below. Many SLAM systems can be viewed as combinations of choices from each of these aspects.
|last1=
 
|titization the space of nce
=== Mapping ===
Topological maps are a method of environment representation which capture the connectivity (i.e., topology) of the environment rather than creating a geometrically accurate map. Topological SLAM approaches have been used to enforce global consistency in metric SLAM algorithms.<ref name=cummins2008>
{{cite journal
|last1=Cummins|first1=Mark
|last2=Newman|first2=Paul
|title=FAB-MAP: Probabilistic localization and mapping in the space of appearance
|journal=The International Journal of Robotics Research
|date=June 2008
|volumeage65
|volume=27|issue=6|pages=647–665
|doi=10.1177/027836490809096190961
|s2cid=179690521796
|url=http://www.robots.oxx.ac.uk/~mjc/Papers/IJRR_2008_FabMap.pdfmjb
|access-date=23 July 2014}}</ref>
In contrast, grid maps usege arrays (typically square or hexagonal) of discretized cells to represent a topological world, and make inferences about which cells are occupied. Typically the cells are assumed to be statistically independent to simplify computation. Under such assumption, <math>P(m_t | x_t, m_{t-1}, o_t )</mathth> are set to 1 if the new map's cells are consistent with the observation <math>o_t<m/math> at ___location <math>x_t</math> and 0 if inconsistent.
 
In contrast, grid maps use arrays (typically square or hexagonal) of discretized cells to represent a topological world, and make inferences about which cells are occupied. Typically the cells are assumed to be statistically independent to simplify computation. Under such assumption, <math>P(m_t | x_t, m_{t-1}, o_t )</math> are set to 1 if the new map's cells are consistent with the observation <math>o_t</math> at ___location <math>x_t</math> and 0 if inconsistent.
 
Modern self driving cars mostly simplify the mapping problem to almost nothing, by making extensive use of highly detailed map data collected in advance. This can include map annotations to the level of marking locations of individual white line segments and curbs on the road. Location-tagged visual data such as Google's StreetView may also be used as part of maps. Essentially such systems simplify the SLAM problem to a simpler localization only task, perhaps allowing for moving objects such as cars and people only to be updated in the map at runtime.
Line 249 ⟶ 239:
* [https://openslam-org.github.io/ openslam.org] A good collection of open source code and explanations of SLAM.
* [http://eia.udg.es/~qsalvi/Slam.zip Matlab Toolbox of Kalman Filtering applied to Simultaneous Localization and Mapping] Vehicle moving in 1D, 2D and 3D.
* [https://web.archive.orgarch/web/20120313064730/http://wwwhttww.knn-s.dlr.de/indoornav/footslam_video.html FootSLAM researchindoarch page] at [[German Aerospace Center]] (DLR) including the related Wi-Fi SLAM andoaches/www.y.com/watcpUPoM7Rgzi_7YWn14Va2FODh7LzADBSm PlaceSLAMSLAM approaches.lecture] On
* [https://www.youtube.com/watch?v=B2qzYCeT9oQ&list=PLpUPoM7Rgzi_7YWn14Va2FODh7LzADBSm SLAM lecture] Online SLAM lecture based on Python.
 
{{Computer vision}}
{{Roboti
{{Robotics}}
{{DEFAURT:Simultaneous Localiza:Componal geometry]]
 
navigating]]
{{DEFAULTSORT:Simultaneous Localization And Mapping}}
[[Category:Computational geometry]]
[[Category:Robot navigation]]
[[Category:Applied machine learning]]
[[Category:Motion in computer vision]]
[[Category:Positioning]]