본문 바로가기

전체 글

[SLAM] FAST-LIO2 논문 리뷰 (+ IKF, ikd-tree) 1. Introduction본 포스트에서는 FAST-LIO2 논문을 리뷰한다. FAST-LIO2는 HKU MaRS 연구실에서 22년도에 발표한 LIO 알고리즘으로 21년도에 발표한 FAST-LIO의 저널 버전이라고 할 수 있다. FAST-LIO2의 가장 큰 특징으로는 ikd-tree를 개발 및 적용하여 kNN 속도를 극적으로 향상시켰으며(kd-tree 대비 4% 시간 소요), 이에 따라 LOAM feature-based에서 Direct point registration 방식으로 LiDAR Odometry 방식이 변경된 것이다.  1.1. FAST-LIOFAST-LIO의 main contribution은 다음과 같다. 1. Iterated Kalman filter(IKF)를 사용하여 LiDA.. 더보기
[Curated] SLAM 엔지니어 역량 점검 체크리스트 질문 본 포스트는 필자가 생각하는 SLAM 엔지니어 역량 점검 체크리스트입니다. 좋은 질문을 찾을 때마다 지속적으로 내용을 업데이트하려고 합니다. 더 좋은 질문이나 답변 내용이 있으면 댓글로 알려주시면 감사하겠습니다. A. Frontend - VO, VIO ORB-SLAM2에서 Initialization 프로세스에 대해서 설명하시오. ORB-SLAM2의 Intialization 과정에서 사용된 방법이 2가지가 있는데 2가지가 어떤 차이점이 있는가? 더보기 (Fundamental Matrix \& Homography를 사용하여 초기화하는 이유) DSO, ORB-SLAM2 모두 키프레임 기반으로 SLAM을 수행하는데 키프레임 방식을 사용하는 이유는 무엇인가? DSO에서 Intialization 과정이 어떻게 되는.. 더보기
[PS] 알고리즘 문제 풀이 정리 문제는 다음 링크를 통해 확인할 수 있다. 백준: boj.kr/{문제 번호} 정올: jungol.co.kr/problem/{문제 번호} Basic I/O & Simulation Level1 - 개념 문제 BOJ 2557 Hello World Solution BOJ 11718 그대로 출력하기 Solution1, Solution2 BOJ 1000 A+B Solution BOJ 11720 숫자의 합 Solution BOJ 10953 A+B-6 Solution BOJ 2741 N찍기 Solution BOJ 2739 구구단 Solution BOJ 1924 2007년 Solution BOJ 10818 최소, 최대 Solution BOJ 4101 크냐? Solution BOJ 10871 X보다 작은 수 Solutio.. 더보기
[PS] 자료구조와 알고리즘 개념 정리 (Algorithm) Part 2 Algorithm Math Recursion 재귀(Recursion)는 함수가 자기 자신을 호출하여 문제를 해결하는 방식이다. 재귀로 문제를 푼다는 것은 귀납적인 방식으로 문제를 해결하겠다는 것과 동일하다. 올바른 재귀 함수는 반드시 특정 입력에 대해서는 자기 자신을 호출하지 않고 종료되어야 하는데 이를 보통 base condition이라고 한다. 또한 모든 입력은 base condition으로 수렴해야 한다. 재귀는 반복문으로 구현했을 때와 비교하여 코드는 간결하지만 메모리와 시간 측면에서는 일반적으로 손해를 본다. 재귀는 분할 정복 알고리즘, 트리 탐색 등에 널리 사용된다. Sort Bubble Sort 인접한 두 원소를 비교하여 정렬하는 방식으로, 시간 복잡도가 높아 실제로는 잘 사용되지 않는다. .. 더보기
[PS] 자료구조와 알고리즘 개념 정리 (Data Structure) Part 1 본 포스팅은 필자가 Problem Solving(PS)를 공부하면서 정리한 포스팅이다. Basic Base knowledge Computation speed 1. 채점용 서버는 일반적으로 1초에 1~5억번의 연산을 수행한다. 따라서 데이터가 $n=10000\sim20000$개 일 때 $O(n^2)$ 알고리즘은 제한시간 1초 내 통과하기 어렵다. Macro 1. C++11부터 #define 대신 constexpr을 사용할 수 있다. 2. register int는 int 자료형보다 미세하게 실행 속도가 빠르다. 이는 constexpr 로는 선언이 안되므로 항상 #define 으로 선언해줘야 한다. #define rnt register int 3. #define POWER(x) x*x 과 같이 선언하면 안된다.. 더보기
확률 이론(Probability Theory) 개념 정리 Part 2 - Random Process, Gaussian Process 확률 이론의 기본적인 내용에 대해 알고 싶으면 확률 이론(Probability Theory) 개념 정리 Part 1 포스팅을 참조하면 된다. NOMENCLATURE of Probability Theory확률(probability)는 $Pr(\cdot)$으로 표기한다.사건(event)은 대문자로 표기힌다. e.g., $A,B$이산 확률질량함수(pmf)와 연속 확률밀도함수(pdf)는 각각 $P(\cdot)$와 $p(\cdot)$으로 표기한다.확률변수(random variable)는 소문자로 표기한다. e.g., $x,y$확률의 파라미터는 사건(event)이고 pdf, pmf의 파라미터는 확률변수가 된다. e.g., $Pr(A), P(x), p(x)$Random Process랜덤 프로세스.. 더보기
추정 이론(Estimation Theory) 개념 정리 Part 3 - Bayesian Philosophy 10. The Bayesian Philosophy본 챕터에서는 지금까지 설명한 고전적인 추정 방법에서 벗어나 파라미터 $\theta$ 또한 하나의 확률 변수(random variable)로 보는 베이지안(Bayesian) 관점에 대하여 설명한다. 앞서 챕터 1에서 설명하였듯이 고전적인 관점과 베이지안 관점의 차이는 다음과 같다.\begin{equation}   \begin{aligned}  & \text{Frequentist: } \quad \underbrace{x[n]}_{\text{r.v.}} = \underbrace{\theta}_{\text{deterministic}}+ w[n] \\  & \text{Bayesian: } \quad \underbrace{x[n]}_{\text{r.v.}} =.. 더보기
추정 이론(Estimation Theory) 개념 정리 Part 2 - RBLS, BLUE, MLE, LSE, Exponential Familiy 5. General Minimum Variance Unbiased Estimation이전 섹션에서 CRLB를 통해 추정값이 efficient함을 알 수 있고 efficient한 추정값은 MVUE가 되는 것을 알 수 있었다. 그리고 선형 모델(linear model)을 사용하여 다양한 예제를 확인하였다. 하지만 만약 efficient한 추정값이 존재하지 않더라도 MVUE를 찾는 것에 관심이 있을 수 있다. 이번 섹션에서는 이러한 관심사를 확인할 수 있는 Rao-Blackwell-Lehmann-Scheffe(RBLS) 이론에 대해 배우고 이를 위한 충분통계량(sufficient statistics)의 개념에 대해 배운다. RBLS를 사용하면 많은 경우 단순히 pdf를 보는 것 만으로도 MVUE 인지 여부.. 더보기
추정 이론(Estimation Theory) 개념 정리 Part 1 - MVUE, CRLB 본 포스트는 필자가 추정 이론을 공부한 내용을 바탕으로 정리한 포스팅이다.  1. Introduction추정 이론(estimation theory)는 관측된 데이터를 바탕으로 모델의 파라미터나 상태를 예측하는 다양한 방법을 정리한 이론이다. 이는 데이터 분석, 신호처리, 기계학습, 금융, 로봇공학 등 다양한 분야에서 널리 쓰이고 있으며 주로 불확실성을 다루는 과정에서 정확한 결정을 내리기 위한 필수적인 도구로 사용된다. 추정 이론의 응용 분야는 매우 넓은데 통신에서는 신호의 품질을 추정하거나 기계학습에서는 데이터로부터 알고리즘의 파라미터를 결정하는데 사용된다. 또한 금융 분야에서는 시장의 미래 동향을 예측하기 위한 변수를 추정하는데 필수적으로 사용되고 있다.  1.1. The Mathemati.. 더보기
[Math] Useful Mathematical Identities, Tricks 정리 본 포스트에서는 수식을 유도할 때 자주 사용되는 수학적 성질 또는 트릭에 대하여 정리한다. 필자는 주로 SLAM과 관련된 분야에 대한 수식과 논문을 많이 접하기 때문에 이와 관련된 수식을 정리한다. Skew-symmetric matrix 3차원 벡터 $\mathbf{v} = [v_x, v_y, v_z]^{\intercal} \in \mathbb{R}^{3}$가 있을 때 이에 대한 반대칭 행렬을 $[\mathbf{v}]_{\times} = \begin{bmatrix} 0&-v_z&v_y \\ v_z & 0 & -v_x \\ -v_y & v_x & 0 \end{bmatrix}$라고 하면 다음과 같은 성질이 성립한다. \begin{equation} \boxed{ \begin{aligned} &[\mathbf{.. 더보기
[Curated] SLAM 논문 리뷰 모음 (+ VO, VIO, LO, LIO) 1. [SLAM] FAST-LIO2 논문 리뷰 (+ IKF, ikd-tree) [SLAM] FAST-LIO2 논문 리뷰 (+ IKF, ikd-tree) 1. Introduction 본 포스트에서는 FAST-LIO2 논문을 리뷰한다. FAST-LIO2는 HKU MaRS 연구실에서 22년도에 발표한 LIO 알고리즘으로 21년도에 발표한 FAST-LIO의 저널 버전이라고 할 수 있다. FAST-LIO2의 가장 큰 특 alida.tistory.com 2. [SLAM] VINS-mono 논문 리뷰 (+ IMU preintegration) [SLAM] VINS-mono 논문 리뷰 (+ IMU preintegration) pdf version is available here: Go to download 본 포스팅은 .. 더보기
[SLAM] ROVIO 논문 및 코드 리뷰 (+ IEKF) 1. Introduction to ROVIO ROVIO는 RObust Visual Inertial Odometry의 약자로 ETHZ의 ASL 연구실의 Bloesch et al.이 제안한 VIO 알고리즘이다. IROS 학회에 2015년에 처음 발표되었으며 이후 IJRR에 2017년 자세한 설명을 포함한 저널이 게재되었다. ROVIO는 MSCKF와 더불어 대표적인 필터링 기반 Tightly-coupled VIO이다. MSCKF와 가장 큰 차이점은 밝기 오차(photometric error)를 IEKF의 Update 과정에 사용한다는 점이다. 이를 통해 실시간 성능의 가벼우면서도 모션블러 및 텍스쳐가 적은 환경에 강인한 알고리즘을 제안하였다. 1.1. Loosely-coupled VIO vs Tightly-c.. 더보기
Autohotkey - 윈도우를 내 마음대로 컨트롤할 수 있는 매크로 프로그램 Introduction Autohotkey는 윈도우에서 필요한 기능을 복잡한 Visual C++을 통해 구현하지 않아도 비교적 빠르고 쉽게 구현할 수 있는 매크로 프로그램이다. Autohotkey 전용 프로그래밍 언어를 지원하는데 이를 통해 윈도우 내부의 다양한 함수들을 조작할 수 있고 생각할 수 있는 거의 모든 기능들을 간단하게 구현할 수 있다. 필자는 윈도우 11에서 사용하고 있으며 윈도우 10에서도 정상적으로 작동하는 것을 확인하였다. 필자가 현재(24.01) 사용하고 있는 Autohotkey 버전은 1.1 버전이다. Autohotkey 2.x 버전은 전용 에디터인 Scite4Autohotkey를 사용하기 어렵기 때문에 1.x 버전을 사용하고 있다. Autohotkey 프로그램은 구글링을 통해서 설.. 더보기
GPTs - alida assistant ChatGPT에서 alida 블로그 관련하여 궁금한 내용을 물어보면 질문에 답해주는 GTPs를 만들었습니다. 포스팅의 내용이 너무 길고 어느 곳에 원하는 정보가 있는지 알기 어려울 때 사용하시면 좋을 것 같네요. 또한 블로그를 보면서 궁금한 점이 있으면 alida assistant에 물어보면 도움을 얻으실 수 있을 것 같습니다 :-) https://chat.openai.com/g/g-irky3iafE-alida-assistant 더보기
확률 이론(Probability Theory) 개념 정리 Part 1 - Probability, Random Variable, Distribution 본 포스트는 필자가 확률 이론을 공부하면서 정리한 내용이다.랜덤 프로세스(Random Process), 가우시안 프로세스(Gaussian Process)에 대해 알고 싶으면 확률 이론(Probability Theory) 개념 정리 Part 2 포스팅을 참조하면 된다.선형대수학에 대해 알고 싶으면 선형대수학 (Linear Algebra) 개념 정리 Part1, 선형대수학 (Linear Algebra) 개념 정리 Part2 포스트를 참조하면 된다. Kalman filter (KF, EKF, ESKF)에 대해 알고 싶으면 칼만 필터(Kalman Filter) 개념 정리  포스트를 참조하면 된다.Particle filter에 대해 알고 싶으면 파티클 필터(Particle Filter) 개념 정리 포스트을 참.. 더보기