본 포스트는 필자가 생각하는 SLAM 엔지니어 역량 점검 체크리스트입니다. 좋은 질문을 찾을 때마다 지속적으로 내용을 업데이트하려고 합니다. 더 좋은 질문이나 답변 내용이 있으면 댓글로 알려주시면 감사하겠습니다.
A. Frontend - VO, VIO
- ORB-SLAM2에서 Initialization 프로세스에 대해서 설명하시오.
- ORB-SLAM2의 Intialization 과정에서 사용된 방법이 2가지가 있는데 2가지가 어떤 차이점이 있는가?
-
더보기(Fundamental Matrix \& Homography를 사용하여 초기화하는 이유)
-
- DSO, ORB-SLAM2 모두 키프레임 기반으로 SLAM을 수행하는데 키프레임 방식을 사용하는 이유는 무엇인가?
- DSO에서 Intialization 과정이 어떻게 되는가?
- ORB-SLAM2에서 추가적으로 성능을 개선할 수 있는 방법에 대해서 설명해본다면?
- ORB feature에 대해서 설명하시오.
- Visual SLAM에서 멀리에 위치한 Feature들이 전체적인 성능에 영향을 준다고 생각하는가?
- 멀리 있는 Feature들이 왜 안 좋은지에 대해서 이론적으로 설명할 수 있는가?
- 카메라와 LiDAR 센서의 장단점과 각각 상호보완할 수 있는 방법에 대해 설명하면?
- indirect vs direct 방식의 장단점을 얘기해줄 수 있는지?
- Hough Transform을 알고 있는지?
B. Frontend - LO, LIO
- LiDAR PointCloud는 개수가 매우 많은데 이를 효율적으로 탐색하는 자료구조를 알고 있는지?
- LiDAR SLAM에서 64채널 LiDAR가 아닌 16채널이나 다른 LiDAR를 사용한다면 어떤 문제점이 있을것으로 예상되는지?
C. Backend
- Loop Closing 프로세스는 정확히 어떻게 발생하는 것인지?
- Loop Detection은 모든 키프레임들을 전부 검사한 후 판단하는 것인지?
D. Multiple view geometry
- Essential matrix $\mathbf{E}$, Fundamental matrix $\mathbf{F}$란 무엇인가?
- $\mathbf{F}$ 행렬는 역행렬을 구할 수 있는가?
- $\mathbf{x}'^{\intercal}\mathbf{F}\mathbf{x}=0$에서 $\mathbf{F}\mathbf{x}$가 의미하는 것은 무엇인가?
- Essential Matrix Decomposition에 대해 설명하시오.
- Essential Matrix를 분해하면 해가 몇 개가 나오는지 알고 있는가?
- 8-Points Algorithm 같은 것을 보면 Ax=0과 같은 시스템의 문제를 푸는데 실제로 어떻게 푸는지 알고 있는가?
- Homography는 무엇인가?
- 스테레오 카메라 캘리브레이션에 대해서 설명해보시오.
- intrinsic, extrinsic 캘리브레이션에 대해 각각 설명해보시오
- 캘리브레이션 중 나오는 $\mathbf{R},\mathbf{t}$의 기준좌표계는 어디인가?
- $\mathbf{R},\mathbf{t}$와 Fundamental Matrix 사이의 관계는 어떻게 되는가?
- 카메라 픽셀 좌표계 변환 공식 (Pinhole Camera Model)을 설명하시오.
- 월드 카메라 좌표계 변환 행렬 (Transformation Matrix)을 설명하시오.
- PnP 알고리즘에 대해 설명하시오.
- 시간동기화를 더 잘 맞출 수 있는 방법에 대해 고민해 본 적이 있는가?
- Visual SLAM에서 멀리에 위치한 Feature들이 전체적인 성능에 영향을 준다고 생각하는가?
- 멀리 있는 Feature들이 왜 안좋은지에 대해서 이론적으로 설명할 수 있는가?
E. Optimization
- 비선형함수의 최적화 방법을 설명하시오.
- Jacobian이란 무엇인가?
- SLAM에서 Error function 최적화 과정을 설명하시오.
- Gauss-Newton과 Levenberg-Marquardt 방법의 차이점이 무엇인가?
- Huber function이 어떤식으로 outlier의 역할을 완화해줄 수 있는가?
- g2o를 사용하는 graph-based slam 알고리즘들이 결국에는 최적화를 수행하는데 최적화 공식을 자세히보면 확률과도 밀접하게 연관되어 있다. 이에 대해서 설명할 수 있는가?
- Hessian을 풀 때 ($\mathbf{H}\Delta\mathbf{x} = -\mathbf{b}$) 가장 문제가 되는 부분은 어디인가?
- $\mathbf{H}^{-1}$를 구하는 대신 다른 방법으로 구할 수 가 있는데 다른 방법들을 알고 있는지?
- Cholesky Decomposition를 언제 사용할 수 있는가?
- Fix-lag Optimization하는 경우 Marginalization을 수행하는데 이를 하는 이유가 무엇인가?
- Newton Method가 문제를 풀기 위해 가정하는 것은?
- Graph-based Optimization vs Filter-based Optimization의 가장 큰 차이점을 말해주 수 있는가?
- Graph-based Optimization에 대해서 설명할 수 있는가?
- Iterative하게 풀기 위해서는 초기에 가지고 있어야 하는 것들이 어떤 것들이 있는가?
- GN에서 $\Delta \mathbf{x}$ 는 어떻게 구하는지?
F. Probability theory
- Recursive bayes filter를 설명하시오.
- Kalman filter의 전체적인 프로세스에 대해 설명하시오.
- Information matrix란 무엇인가?
- Information matrix 초기값은 어떻게 선정하는가?
- Information matrix가 identity라는 의미는 어떤 의미인가?
- Covariance는 무엇인가?
- $\mathbf{A}$ 행렬을 통해 covariance는 어떻게 구하는가?
- Covariance와 eigenvector와는 어떤 관련이 있는가?
- Covariance는 어떻게 만드는가?
- Covariance를 구하는 과정을 프로그래밍한다면 어떻게 할 것인지?
- Covariance와 Information matrix의 차이점이 무엇인지 알고 있는지?
- Information Matrix는 어떤 정보들을 encoding하고자 하는 것인지? (Info mat이 어떤 의미인지?)
G. Spatial representation
- 회전행렬 $\mathbf{R}$의 DOF는 몇인가?
- 변환행렬 $\mathbf{T}=\begin{bmatrix} \mathbf{R} & \mathbf{t} \\ \mathbf{0} & 1 \end{bmatrix}$에서 마지막 행이 $[\mathbf{0} \ 1]$인 이유에 대해 설명하시오.
- 오일러 각도의 짐벌락 현상에 대해 설명하시오.
- 쿼터니언이 회전 연산자로 작용하기 위해서 필요한 조건에 대해 설명하시오.
H. Linear algebra
- 함수가 선형적이다 라는 말의 의미는 무엇인가?
- $\mathbf{Ax}=0$에서 $\mathbf{x}$를 어떻게 구하는가?
- $\mathbf{A}$의 nullspace를 어떻게 찾는지 알고 있는가?
- PCA의 알고리즘의 흐름도를 설명하시오.
- PCA에서 $\mathbf{A}$ 행렬에는 어떤 값들이 들어가는가?
- 해당 $\mathbf{A}$ 행렬을 어떻게 eigendecomposition하는가?
- SVD랑 eigendecomposition 간의 상관관계를 알고 있는가?
I. Lie theory
- SE3 based Optimization을 하는 이유를 설명하시오.
- Lie algebra se3(=twist)를 이용해서 업데이트를 하는 것의 장점은 무엇인가?
- manifold는 무엇인가?
- se3로 변환해서 업데이트를 하는 이유는 무엇인가?
- trangential space로 가는 이유는 무엇인가?
- Lie algebra-based optimization이 제약조건으로부터 자유롭다는 말은 어떤 의미인가?
J. Programming
- 시간복잡도와 공간복잡도의 개념을 설명하시오.
- 실시간으로 동작하는 자율주행시스템에서 시간복잡도와 공간복잡도가 어떤 의미가 있는가?
- 자율주행시스템에서 공간복잡도는 어떤 의미가 있는가?
- PointCloud로 인해 메모리가 부족한 경우 어떻게 시스템을 구성할 것인지?
- 메모리 대신 하드디스크에 데이터를 저장할 경우 어떻게 효율적으로 데이터를 관리할 것인가?
'Curated' 카테고리의 다른 글
[Curated] SLAM 논문 리뷰 모음 (+ VO, VIO, LO, LIO) (1) | 2024.01.28 |
---|---|
[Curated] SLAM 유튜브 채널 (1) | 2023.07.04 |
[Curated] SLAM 입문자를 위한 로드맵 가이드 (7) | 2023.06.14 |
[Curated] Download Archive (0) | 2023.01.21 |
[Curated] SLAM 연구 및 논문 자료정리 (~20) (0) | 2022.01.05 |