Study/SLAM tutorial

    [SLAM] ICP, Registration of PointCloud

    이번 포스팅은 Registration, ICP(Iterative Closest Point)에 대해서 다뤄보겠습니다. Registration이란 source points, target points가 주어졌을 때 두 pointcloud사이의 관계(R|T)를 계산하는 방법입니다. ICP란 두 pointcloud 사이의 correspondences가 주어져 있지 않을 때 Point들을 Registration하는 방법입니다. optimal solution이 존재하기 않기 때문에 pointcloud의 관계를 잘 estimation하는 것이 중요합니다. Lidar SLAM의 대부분은 이 ICP를 응용 발전한 케이스가 많습니다. ICP는 많은 computation cost를 요하기 때문에 real-time을 추구하는 ..

    [SLAM] 6. Bundle Adjustment

    이번 SLAM tutorial 에서는 BundleAdjustment에 대해 포스팅하겠습니다. 앞서 5번째 SLAM tutorial 포스팅에서는 nonlinear optimization에 대해서 설명하였습니다. BA(Bundle Adjustment)는 nonlinear optimization을 사용하는 대표적인 application입니다. Intro 우선 bundle adjustment를 언제 왜 사용하는지부터 살펴보겠습니다. 이를 위해 앞장에서 설명한 것들을 다시 overview해보겠습니다. mono-cam의 경우라하면, 연속된 이미지 두장을 통해 initialization을 합니다. 이 과정에서 Essential Matrix 혹은 Fundamental Matrix를 통해 두 image사이의 R|T 즉,..

    [SLAM] 5. Optimization, 비선형 최적화

    이번 SLAM tutorial 에서는 최적화 관련하여 포스팅하겠습니다. 최적화(혹은 수치해석)은 SLAM에서 backend부분에 쓰이는데, MAP point를 이용하여 optimization 후 odometry의 accuracy를 높이는데 보통 활용됩니다. 조금 더 구체적으로 센서 및 real world에서는 noise가 존재하는데 이 때문에 camera 센서를 통해 얻은 이미지로 odometry를 구하더라도 정확한 GT값을 얻기는 힘듭니다. visual SLAM에서는 camera가 여러 시퀀스에서 이미지를 얻습니다. 그 과정에서 한 지점을 여러 번 관찰하게 되고 이를 최적화를 사용하여 노이즈를 최소화하게 됩니다. Optimization 위키피디아의 정의를 보면 optimization이란 집합 위에서 정..

    [SLAM] 4. 3D-2D geometry, Triangulation, PnP

    안녕하세요. 후니대디입니다. 지난번에는 2D-2D geometry로 Essential Matrix, Fundamental Matrix에 관해 다루어봤습니다. 즉, Two view가 존재할때 (stereo 혹은 sequenced frame) two view간의 관계를 설명해보았습니다. [SLAM] 3. 2D-2D geometry, Epipolar Geometry 안녕하세요. 후니대디입니다. 이번 포스팅은 2D-2D (two view) camera geometry에 대해서 살펴보겠습니다. Camera Model 시작하기전에 camera model 먼저 살펴보겠습니다. 3D world의 points를 2D image plane에 매핑하는 jaehoon-daddy.tistory.com 이번에는 3D-2D geo..

    [SLAM] 3. 2D-2D geometry, Epipolar Geometry

    안녕하세요. 후니대디입니다. 이번 포스팅은 2D-2D (two view) camera geometry에 대해서 살펴보겠습니다. Camera Model 시작하기전에 camera model 먼저 살펴보겠습니다. 3D world의 points를 2D image plane에 매핑하는 프로세스에서 언급한 camera model을 사용합니다. 기본적으로 camera model은 pinhole model입니다. (광각렌즈 등을 사용하면 pinhole model에 맞지 않습니다.) pinhole camera model을 통해 카메라의 intrinsic parameter를 구할 수 있습니다. 아래는 pinhole camera model 사진입니다. 빛의 직진성, 그리고 핀홀에만 빛이 투과된다는 가정에서 이루어집니다. i..

    [SLAM] 2.리군, 리대수(Lie Group, Lie Algebra)

    안녕하세요. 후니대디입니다. Lie Group, Lie Algebra에 대해서 포스팅하겠습니다. Lie라는 이름이 지어진 이유는 Lie Group에 대한 이론을 정립한 수학자 이름이 Sophus Lie이기 때문입니다. 리군,리대수는 사실 이해하기 굉장히 난해합니다. 최대한 핵심만 추려서 적어보겠습니다. 정 의 리군(Lie Group)은 discrete하지 않은, 즉 continuous한 그룹이면서 smooth manifold인 집합을 말합니다. smooth와 continuous라는 단어에서 알 수 있다시피 미분가능한 그룹입니다. 예를 들면 좌표변환이 time domain상에서 연속적으로 발생한다고 하면 해당 좌표의 평면상의 한점은 연속적으로 변하게 됩니다. 갑자기 사라졌다가 나타나지 않고 smooth한 ..

    [SLAM] 1. 3D Rigid Body Transformation, 좌표계 변환

    안녕하세요. 후니대디입니다. 이번에는 3D 좌표계와 좌표계 변환에 대해서 포스팅하겠습니다. Fixd RPY axis angle 3차원 공간을 기준으로 알아보기 전에 쉽게 2차원 공간부터 살펴보죠. 위의 그림은 xy평면에서 z축 기준으로 하는 2차원 회전행렬(rotation matrix)을 표현한 것입니다. 만약 기존의 xy평면의 (a,b)라는 점(혹은 벡터)가 있다고 하면, z축으로 세타만큼 이동한 좌표에서는 (a,b)는 회전행렬과 (a,b)벡터의 곱셈을 통해 나온(a`,b`)라고 표현할 수 있습니다. 어떻게 보면 절대적인 (a,b)의 점이 이동한 것이 아닌 coordinate마다 해당 좌표를 표현하는 방법이 달라진 것 뿐입니다. 이동행렬(translation)은 linear한 움직임으로 위와 같이 덧셈..

    [SLAM] 0. SLAM / SfM 이란?

    안녕하세요. 후니대디입니다. SLAM 시리즈 첫번째로 SLAM의 개념부터 전체적인 pipeline을 포스팅하겠습니다. 정 의 SLAM은 Simultaneous Localization and Mapping 의 줄임말이고, SfM은 structure from motion의 줄임말입니다. SLAM을 단어 그대로 해석해보면 위치추정 및 지도화를 동시에 한다? 라고 할 수 있습니다. 즉, 사전정보가 없는 공간에서 특정센서를 이용하여 위치를 tracking하고 주변 정보를 mapping하는 것을 의미합니다. 특별히 camera 센서를 이용한다면 visual SLAM이라고 명명하고 여기서는 visual SLAM을 중심으로 설명하겠습니다. SfM은 camera센서를 통해 움직이면서 모은 frame들을 가지고 다시 re..