POSTECHIAN 기사 보기
[2021 봄호] 3-자율 주행차의 핵심, SLAM
- 작성시각 2021-04-30 07:02:22
2021 SPRING 기획특집 3
자율 주행차의 핵심, SLAM
Development of Evs and Self-Driving Cars
앞서 자율 주행차 개발의 조건인 전기차의 모터와 배터리 성능을 높이는 방법에 대해 알아보았습니다.
하지만 이것이 자율 주행차에 필요한 전부는 아닌데요.
자율 주행차가 스스로 상황을 인식하고 장애물을 피해 움직일 수 있게 만드는 기술 또한 필요합니다.
그러면 지금부터 ‘자율 주행차의 두뇌이자 컨트롤 타워’라고 할 수 있는 SLAM에 대해 알아봅시다!
하지만 이것이 자율 주행차에 필요한 전부는 아닌데요.
자율 주행차가 스스로 상황을 인식하고 장애물을 피해 움직일 수 있게 만드는 기술 또한 필요합니다.
그러면 지금부터 ‘자율 주행차의 두뇌이자 컨트롤 타워’라고 할 수 있는 SLAM에 대해 알아봅시다!
SLAM이란?
일반적인 자동차와 자율 주행차의 가장 큰 차이점은 상황 판단과 결정의 주체입니다. 일반적인 자동차는 운전자가 자신의 시각 정보를 바탕으로 상황을 판단하여 가속, 감속, 방향 조작 등의 결정을 내립니다. 하지만 자율 주행차는 운전자의 개입 없이 그러한 작업을 기계가 스스로 수행해야 합니다. 이를 위해 SLAMSimultaneous Localization and Mapping이 쓰입니다. SLAM은 기계가 주변의 환경을 인식하여 그 공간의 지도를 작성함과 동시에 자신의 위치를 파악하는 기술입니다. 센서 등의 정보 수집 장치를 통해 외부 상황을 인식하고 정해진 알고리즘을 거쳐 결과를 도출합니다. 따라서 SLAM은 자율 주행에 핵심적인 역할을 하게 됩니다.
SLAM을 이용해 주변의 장애물을 인식하는 자율 주행차
자신의 위치를 xt, 주변의 지도를 mt라고 해 봅시다. 주어진 정보를
바탕으로 xt와 mt의 근삿값을 추론하는 것이 SLAM의 목적입니다. 컨트롤 변수(기계의 조작과 관련된 변수)를 u, 센서 관측 변수를
o, 관측 시간 간격을 t라 두고, 아래에 있는 SLAM의 통계 모델을 살펴봅시다.
$$P(x_t|o_{1:t}, u_{1:t}, m_t)=\sum_{m_{t-2}}P(o_t|x_{t}, m_t, u_{1:t}) \sum_{m_{t-1}}P(x_t|x_{t-1}) P(x_{t-1}|m_t, o_{1:t-1}, u_{1:t})$$
$$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-1}|o_{1:t-1}, m_{t-1}, u_{1:t})$$
위의 두 수식은 서로 연관되어 있습니다. 따라서 이 식들을 각각 독립적으로 계산할 수는 없고, 함께 고려하여 추론해야 합니다. 이러한 통계 모델의 수식을 해결하는 과정에서는 EM(Expectation Maximization) 알고리즘이 사용됩니다.
EM 알고리즘은 통계 모델의 수식을 정확하게 풀 수 없을 때, 최대 가능도Maximum Likelihood를 구하는 방법입니다. 최대 가능도는 말 그대로 가능도의 최댓값이며, 가능도는 표본을 바탕으로 모수(모집단의 특성)를 찾는 것과 관련이 있습니다. 모수는 우리가 모르는 값이고, 최대한 모수와 가까운 값을 추정하는 것이 궁극적인 목표인 것이죠. 우리가 관측할 수 있는 표본값들의 분포가 모수적 분포, 즉 모집단의 특성을 따른다고 가정하면 표본으로부터 가능도를구할수있습니다.표본을 $x_1, x_2, x_3 ,..., x_n$이라고할때 이들의 분포가 $f(x)$라는 모수적 분포를 따른다면, 그때의 모수 θ에 대한 가능도는 다음과 같습니다.
$$L(\theta;x_1, x_2, x_3, ..., x_n) = f(x_1; \theta)f(x_2; \theta)f(x_3; \theta)...f(x_n; \theta)$$
가능도를 최대로 만드는 모수 θ의 값을 추정하는 것이 EM 알고리즘입니다. SLAM에서는 EM 알고리즘을 통해 가능도가 최대가 되게 하는 모수 $x_t$와 $m_t$를 추정해 냅니다. 즉, 자신의 위치를 파악하고 주변의 지도를 작성하는 것입니다.
시각적 SLAM의 작동 과정
SLAM의 대표적인 종류에는 시각적 SLAM이 있습니다. 시각적 SLAMVisual SLAM은 카메라로 획득한 영상을 사용해 연속적인 이미지 프레임을 분석하고 특정한 점을 추적하는 원리로 작동합니다. 이러한 점은 3차원 상에서 특정 좌표를 가지며, 포인트 클라우드 라고 불립니다. 시각적 SLAM은 여러 포인트 클라우드 사이의 삼각 측량 [각주 1]을 통해 자신의 위치를 측정하고, 또 주변 환경의 지도까지 작성합니다. 포인트 클라우드를 추적하기 위해서는 이미지 프레임 내의 물체를 모델링해야 합니다.
시각적 SLAM의 포인트 클라우드
시각적 SLAM은 연속적인 이미지 프레임을 분석하기 때문에 한 지점을 나타내는 포인트 클라우드가 각 프레임별로 존재합니다. 카메라의 이동에 따라 프레임별로 포인트 클라우드의 위치가 어긋날 수 있으므로 이를 정렬할 필요가 있습니다. 이러한 정렬 과정에서 사용되는 알고리즘이 ICP(Iterative Closest Point)입니다. ICP는 기존 데이터에 현재 데이터를 추가할 때 사용됩니다. 각 데이터들에 대해 최단 거리에 위치한 점을 이용하여 연관성을 찾고, 그에 따라 현재 데이터를 이동하거나 회전하여 기존 데이터에 추가하는 것입니다. ICP는 정렬에 필요한 이전 및 현재 프레임의 포인트 클라우드를 입력으로 받아들입니다. 입력을 바탕으로 최적화된 6-DoF Camera Pose 행렬 [각주 2]을 출력하게 됩니다.
ICP 적용 전후 비교
ICP의 출력은 TSDF(Truncated Signed Distance Field)에 사용됩니다. ICP를 통해 정렬한 포인트 클라우드를 바탕으로 물체를 모델링하는데, 이때 사용되는 알고리즘이 TSDF입니다. TSDF는 물체의 표면을 기준으로 하여 각 픽셀별로 숫자를 부여합니다. 물체의 표면 위에 존재하면 0으로, 표면 바깥쪽에서는 1 이하의 양수로, 표면 안쪽에서는 -1 이상의 음수로 표현합니다. 숫자의 부호가 바뀌는 교차점을 찾으면 물체의 테두리를 찾을 수 있고, 해당 물체를 시각적으로 모델링할 수 있게 되는 것이죠.
SDF의 예시
SLAM의 한계점과 극복 방안
SLAM은 현재 자율 주행차뿐만 아니라 로봇 청소기 등 여러 분야에서 사용되고 있지만 아직 완벽한 기술은 아닙니다. 앞서 SLAM의 통계 모델 수식에서 알아보았던 것과 같이, SLAM은 확률에 의존하여 위치($x_t$)와 지도($m_t$)의 근삿값을 찾는 알고리즘입니다. 따라서 오차가 전혀 발생하지 않을 수는 없습니다. SLAM은 매 순간 순차적으로 결과값을 추정하는데, 이때 오차가 한번 발생하면 그 오차는 시간이 지나면서 누적됩니다. 이럴 경우 잘못되거나 왜곡된 데이터가 나오게 됩니다. 이러한 오류를 줄여, 보다 정확한 데이터 생성이 가능하게 만드는 과정을 번들 조정이라고 합니다. 오차 발생 문제를 해결하는 방법은 장소의 특징적인 표지물의 정보를 키 프레임[각주 3] 으로 기억해 놓은 후, 이후에 이 특징을 기준으로 스캔하여 위치 추정의 오류를 최소화하는 것입니다.
지금까지 자율 주행차의 핵심 기술인 SLAM에 대해서 알아보았습니다!
내연 기관차의 성능을 따라잡지 못해 외면받아왔던 전기차였지만, 모터와 배터리의 발전을 통해 내연 기관차 시장을 위협하는 라이벌로 성장했습니다.
게다가 지금 이 순간에도 정교하고 안전한 자율 주행 알고리즘을 만들기 위한 노력이 계속되고 있습니다.
몇 년 전까지만 해도 상상만 했었던 자율 주행차를 현재는 도로에서도 볼 수 있는데요.
언젠가는 미래의 사람들이 “사람이 직접 운전을 했던 적도 있었어요?”라고 깜짝 놀라는 날이 오지 않을까요?
[각주]
[1] 삼각 측량; 삼각형의 한 변의 길이와 두 각을 알면, 나머지 두 변의 길이를 알 수 있다는 원리를 이용한 위치 측량 방법
[2] 6-DoF Camera Pose 행렬; 카메라의 이동을 전체 좌표계로 변환하는 행렬
[3] 키프레임; 모든 정보를 담고 있어서 가장 중심이 되는 프레임
[참고문헌]
1. Zhaoyang Lv, 『Visual SLAM 』, BORG lab, 2014
2. 「모바일 디바이스에서의 SLAM」. 『대한민국특허청 공개특허공보』. 2019.02.15
3. 강준오, 이용창(2020). “복층 건물 실내외 역설계를 위한 UAV 및 LiDAR SLAM 조합 효용성 검토”. 한국국토정보공사 「지적과 국토정보」 제50권 제2호 p. 69-79.
4. 「SLAM 맵들로부터의 광역 위치인식」. 『대한민국특허청 공개특허공보』. 2014.04.29
[1] 삼각 측량; 삼각형의 한 변의 길이와 두 각을 알면, 나머지 두 변의 길이를 알 수 있다는 원리를 이용한 위치 측량 방법
[2] 6-DoF Camera Pose 행렬; 카메라의 이동을 전체 좌표계로 변환하는 행렬
[3] 키프레임; 모든 정보를 담고 있어서 가장 중심이 되는 프레임
[참고문헌]
1. Zhaoyang Lv, 『Visual SLAM 』, BORG lab, 2014
2. 「모바일 디바이스에서의 SLAM」. 『대한민국특허청 공개특허공보』. 2019.02.15
3. 강준오, 이용창(2020). “복층 건물 실내외 역설계를 위한 UAV 및 LiDAR SLAM 조합 효용성 검토”. 한국국토정보공사 「지적과 국토정보」 제50권 제2호 p. 69-79.
4. 「SLAM 맵들로부터의 광역 위치인식」. 『대한민국특허청 공개특허공보』. 2014.04.29

-
ALIMI 25기 전자전기공학과 장준
-
편하게 질문해주세요~
기사 모아 보기