Introduction to SLAM (Cyrill Stachniss)

2021. 12. 20.
#SLAM

Cyrill Stachniss ๊ต์ˆ˜๋‹˜์˜ ๊ฐ•์˜๋ฅผ ์ •๋ฆฌํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. Youtube

What is SLAM?

๋กœ๋ด‡์˜ ์œ„์น˜์™€ ํ™˜๊ฒฝ์˜ ๋งต์„ ๋™์‹œ์— ๊ณ„์‚ฐ ํ•˜๋Š”๊ฒƒ

  • Localization : ๋กœ๋ด‡์˜ ์œ„์น˜๋ฅผ ์ถ”์ •
  • Mapping : ์ง€๋„๋ฅผ ์ œ์ž‘
  • SLAM : Localization๊ณผ Mapping์„ ๋™์‹œ์— ํ•˜๋Š” ๊ฒƒ

์ •ํ™•ํ•œ Mapping ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋‹ค๋ฉด Localization์ด ์‰ฌ์›€
์ •ํ™•ํ•œ Localization ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋‹ค๋ฉด Mapping์ด ์‰ฌ์›€
โ†’ ๋‘˜ ๋‹ค ํ•ด์•ผ๋˜๊ธฐ ๋•Œ๋ฌธ์— SLAM์ด ์–ด๋ ต๋‹ค.

Localization Example

๋กœ๋ด‡์˜ ์œ„์น˜๋ฅผ ์ฃผ์–ด์ง„ Landmark๋กœ ๋ณด์ •

๋ณ„ : Landmark
ํฐ์ƒ‰ ๋™๊ทธ๋ผ๋ฏธ : ์‹ค์ œ ๋กœ๋ด‡์˜ ์œ„์น˜
ํšŒ์ƒ‰ ๋™๊ทธ๋ผ๋ฏธ : ์ธ์ง€๋œ ๋กœ๋ด‡์˜ ์œ„์น˜

localization

Mapping Example

๋žœ๋“œ๋งˆํฌ๋ฅผ ๋กœ๋ด‡์˜ ์œ„์น˜๋ฅผ ํ†ตํ•ด ์ถ”์ •

ํฐ์ƒ‰ ๋™๊ทธ๋ผ๋ฏธ : ๋กœ๋ด‡์˜ ์œ„์น˜
๋…ธ๋ž€ ๋ณ„ : ์‹ค์ œ Landmark
ํšŒ์ƒ‰ ๋ณ„ : ์ธ์ง€๋œ Landmark

mapping

SLAM Example

๋กœ๋ด‡์˜ ์œ„์น˜์™€ Landmark๋ฅผ ๋ชจ๋‘ ์ถ”์ •

Loop Closure๋ฅผ ํ†ตํ•ด Error ๋ณด์ • ๊ฐ€๋Šฅ

slam

The SLAM Problem
  • chicken-or-egg problem
    โ†’ a map is needed for localization
    โ†’ a pose estimate is needed for mapping
x+y=1x + y = 1

Definition of the SLAM Problem

  • ์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ
    • The robotโ€™s control
      u1:T={u1,u2,u3,...,uT}u_{1:T} = \{u_1, u_2, u_3, ..., u_T\}
    • Observations
      z1:T={z1,z2,z3,...,zT}z_{1:T} = \{z_1, z_2, z_3, ..., z_T\}
  • ์›ํ•˜๋Š” ๊ฒƒ
    • Map of the environment
      mm
    • Path of the robot
      x0:T={x0,x1,x2,...,xT}x_{0:T} = \{x_0, x_1, x_2, ..., x_T\}

Probabilistic Apprsoaches

robotโ€™s motion๊ณผ observations์˜ ๋ถˆํ™•์‹ค์„ฑ(uncertainty)๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ํ™•๋ฅ  ์ด๋ก (probability theory)์„ ์‚ฌ์šฉ

๋”ฐ๋ผ์„œ SLAM Problem์€ ๋‹ค์Œ์˜ ์‹์œผ๋กœ ํ‘œํ˜„์ด ๊ฐ€๋Šฅ

p(x0:T,mโˆฃz1:T,u1:T)p(x_{0:T}, m | z_{1:T}, u_{1:T})

pp ๋Š” probabilistic distribution์„ ์˜๋ฏธ

Graphical Model

graphical model ๋ณ€์ˆ˜๋“ค๊ฐ„์˜ dependency๋ฅผ ํ‘œํ˜„ํ•จ

ํ™”์‚ดํ‘œ๋Š” ์–ด๋””์„œ ์–ด๋””๋กœ impact๋ฅผ ์ฃผ๋Š”์ง€ ์˜๋ฏธ
ex) utu_t์™€ xtโˆ’1x_{t-1}๊ฐ€ ํ˜„์žฌ ์œ„์น˜ xtx_t์— ์˜ํ–ฅ์„ ์คŒ

Full SLAM vs. Online SLAM

  • Full SLAM : estimate the entire path
    • p(x0:T,mโˆฃz1:T,u1:T)p(x_{0:T}, m | z_{1:T}, u_{1:T})
    • ์œ„์˜ Graphical Model์ด Full SLAM์„ ์˜๋ฏธ
  • Online SLAM : seeks to recover only the most recent pose
    • p(xt,mโˆฃz1:t,u1:t)p(x_t, m | z_{1:t}, u_{1:t})

Graphical Model of Online SLAM

์ด์ „๊นŒ์ง€์˜ pose๋“ค๋กœ marginalizingํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธ

marginal probability : ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ์ฃผ๋ณ€ ํ™•๋ฅ ์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋”ํ•ด์„œ ๊ตฌํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธ

p(xt+1,mโˆฃz1:t+1,u1:t+1)=โˆซ...โˆซp(x0:t+1,mโˆฃz1:t+1,u1:t+1)ย dxtย ...ย dx0\begin{align*} &p(x_{t+1}, m | z_{1:t+1}, u_{1:t+1}) = \\ &\int ... \int p(x_{0:t+1}, m | z_{1:t+1}, u_{1:t+1})\ dx_{t}\ ...\ dx_0 \end{align*}

Full SLAM์˜ ๊ฐ’์„ ๋ชจ๋‘ ๋”ํ•ด์„œ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

Why is SLAM a Hard Problem

  1. Robot path and map are both unknown

    • ๋‘˜ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์ •ํ™•ํ•˜๋‹ค๋ฉด ๋‹ค๋ฅธ unkown data์˜ uncertainty๊ฐ€ ์ค„์–ด๋“ ๋‹ค.
      โ†’ ๋ฐ˜๋Œ€๋กœ ๋งํ•˜๋ฉด ๋‘˜ ๋‹ค ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋ ค์›€์„ ์˜๋ฏธ
  2. known vs. unknown correspondence

    • ์šฐ๋ฆฌ๊ฐ€ ๋ณด๋Š” ๋žœ๋“œ๋งˆํฌ๋“ค์„ ๋ชจ๋‘ uniqueํ•˜๊ฒŒ ๊ตฌ๋ณ„ํ•˜๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•จ
      โ†’ ํŒ๋‹จ์„ ์ž˜๋ชปํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๋‹ค.

โˆด Data Association Problem

data association : ๊ฐ„๋‹จํžˆ ์„ค๋ช…ํ•˜์ž๋ฉด ๋กœ๋ด‡์ด ์–ด๋– ํ•œ pose๊ฐ€ ์žˆ์„ ๋•Œ, ๋ณผ ์ˆ˜ ์žˆ๋Š” landmark๋“ค์„ ๋งค์นญ์‹œํ‚ค๋Š” ์ž‘์—…

  • Mapping between observations and the map is unknown
    • ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ data association์„ ํ†ตํ•ด uncertainty๋ฅผ ๋‚ฎ์ถ”๋ ค๊ณ  ํ•จ
  • Picking wrong data associations can have catastrophic consequences
    • ๋งŒ์•ฝ data association์ด ์ž˜๋ชป๋์„ ๊ฒฝ์šฐ robot์ด ์›€์ง์ด ๋ชจ๋“  path์— ๋Œ€ํ•œ ํŒ๋‹จ์ด ์ž˜๋ชป๋  ์ˆ˜ ์žˆ์Œ

why hard 3

Three Traditional Paradigms

  1. Kalman filter
    • to estimate robot position and the landmark position
  2. Particle filter
    • get rid of the Gaussian assumption about the world
  3. Graph-Based
    • least squares formulation
    • ์š”์ฆ˜์— ๋งŽ์ด ์‚ฌ์šฉ๋จ
    • ๊ฐ•์˜์—์„œ ์ด ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃฐ ๊ฒƒ์ž„

Motion and Observation Model

motion observation model

Motion Model

  • describes the relative motion of the robot
  • ์ด์ „ ์œ„์น˜์™€ ํ˜„์žฌ ์›€์ง์ž„์„ ํ†ตํ•ด ํ˜„์žฌ ์œ„์น˜๋ฅผ ๊ตฌํ•œ๋‹ค.
    p(xtโˆฃxtโˆ’1,ut)p(x_{t} | x_{t-1}, u_{t})

Observation model

  • relates measurements with the robotโ€™s pose
  • ํ˜„์žฌ์œ„์น˜(์™€ map)์„ ์ด์šฉํ•ด landmark์˜ ์œ„์น˜๋ฅผ ๊ตฌํ•œ๋‹ค.
    p(ztโˆฃxt)p(z_{t} | x_{t})