전체 글 썸네일형 리스트형 [SLAM][En] Errors and Jacobian Derivations for SLAM Part 1 1. Introduction This post explains the definition of various errors used in SLAM and the Jacobian derivations for nonlinear optimization. The errors covered in this post are: Reprojection error \begin{equation} \begin{aligned} \mathbf{e} & = \mathbf{p} - \hat{\mathbf{p}} \in \mathbb{R}^{2} \end{aligned} \end{equation} Photometric error \begin{equation} \begin{aligned} \mathbf{e} & = \mathbf{I}_{.. 더보기 [En] Vim - Useful plugins and C++/Python development environment 1. Introduction This post explains how to build C++/Python development environment through Vim editor on Linux. In this post, vim's code navigations plugin used youcompleteme and vim-lsp, and youcompleteme was a uniquely powerful code navigation plugin in vim before the vim-lsp came out in 2016. However, as vim-lsp supporting various programming languages appeared, both are now widely used. As o.. 더보기 [SLAM][En] Notes on Formula Derivation and Analysis of the VINS-mono This post is the study note on Yibin Wu's "Formula Derivation and Analysis of the VINS-mono" paper. If you see something wrong or needs to be corrected, please comment, and I will check it later. 1. Introduction Visualizing the camera and IMU coordinate system is as follows. Both sensors are fixed on a single board, and calibrating the board yields the extrinsic parameter $\mathbf{T}^{b}_{C}$, w.. 더보기 [SLAM] 에러와 자코비안 정리(Errors and Jacobians) 정리 Part 2 7. IMU measurement errorIMU measurement 에러를 구하기 위해서는 우선 IMU preintegration 기법과 error-state 모델링에 대해 알아야 한다. 전반적인 IMU measurement 에러 기반 최적화 과정을 표현한 그림은 위와 같다. [1]-[6] 순서대로 보면 된다. 보다 자세한 내용은 [SLAM] Formula Derivation and Analysis of the VINS-mono 내용 정리를 참조하면 된다. NOMENCLATURE of IMU measurement error $\alpha_{b_{k+1}}^{b_{k}} \in \mathbb{R}^{3 \times 1}$: $t \in [b_{k}, b_{k+1}]$ 시간 동안 누적된 위치의 관측값 .. 더보기 [SLAM] 에러와 자코비안 정리(Errors and Jacobians) 정리 Part 1 arXiv preprintEnglish version Notes on Various Errors and Jacobian Derivations for SLAMThis paper delves into critical concepts and meticulous calculations pertinent to Simultaneous Localization and Mapping (SLAM), with a focus on error analysis and Jacobian matrices. We introduce various types of errors commonly encountered in SLAM, includiarxiv.org 1. Introduction본 포스트에서는 SLAM에서 사용하는 다양한 에러에 대.. 더보기 [SLAM] VINS-mono 논문 리뷰 (+ IMU preintegration) 본 포스팅은 Yibin Wu의 "Formula Derivation and Analysis of the VINS-Mono" 페이퍼를 주로 참고하여 작성하였다.1. Introduction카메라와 IMU 좌표계를 시각화하면 다음과 같다. 두 센서는 단일 보드에 고정되어 있으며 보드를 캘리브레이션하면 두 센서 사이의 상대 포즈인 외부 파라미터(extrinsic paramter) $\mathbf{T}^{b}_{C}$를 구할 수 있다. NOMENCLATURE행렬은 굵은(bold) 대문자로 표기한다 e.g., $\mathbf{R}$벡터는 굵은 소문자로 표기한다 e.g., $\mathbf{a}$스칼라는 일반 소문자로 표기한다 e.g., a벡터 변환과 관련된 좌표계는 위첨자$^{a}$와 아래첨자$_{a}$로 표기한다 e.. 더보기 Quaternion kinematics for the error-state Kalman filter 내용 정리 Part 3 5.Error-state kinematics for IMU-driven systems5.1 Motivation본 섹션에서는 에러 상태 방정식(error-state equations)을 통해 노이즈와 bias가 포험된 IMU의 가속도와 각속도를 표현하는 방법에 대해 설명한다. 이 때, 회전 표기법은 Hamilton 쿼터니언을 사용하였다. 일반적으로 가속도와 각속도는 IMU 센서를 통해 입력받으며 이를 누적하여 포즈를 추적하는 방법을 dead-reckoning이라고 한다. Dead-reckoning은 시간에 따라 에러가 누적되어 드리프트되는 현상이 발생하므로 이러한 문제를 해결하기 위해 일반적으로 카메라나 GPS 센서 정보를 퓨전하여 사용한다.Error-state Kalman Filter(ESKF)는 앞서 .. 더보기 [SLAM] 파티클 필터(Particle Filter) 개념 정리 본 포스트는 Claus Brenner의 SLAM 강의 중 Chapter E: Particle Filter 부분을 정리한 자료이다. Claus Brenner의 SLAM 강의는 [1]에서 볼 수 있다. Particle filter를 이해하는데 필요한 기반 지식은 확률 이론(Probability Theory) 개념 정리 포스팅을 참조하면 된다. Kalman filter (KF, EKF, ESKF, IEKF)에 대해 알고 싶으면 칼만 필터(Kalman Filter) 개념 정리 포스트를 참조하면 된다. Introduction 본 포스트에서는 Robot Localization에 사용하는 파티클 필터에 대한 내용을 다룬다. 따라서 맵의 크기와 Landmark의 좌표는 모두 알고 있다고 가정한다. 또한 Landmark.. 더보기 Quaternion kinematics for the error-state Kalman filter 내용 정리 Part 2 3 Quaternion conventions. My choice3.1 Quaternion flavors쿼터니언은 다양한 표기법이 존재한다. 일반적으로 다음과 같이 4개의 선택지가 존재한다.실수부와 허수부를 어디에 둘 것인가에 따라\begin{equation} \mathbf{q} = \begin{bmatrix} q_{w} \\ \mathbf{q}_{v} \end{bmatrix} \quad \text{vs.} \quad \mathbf{q} = \begin{bmatrix} \mathbf{q}_{v} \\ q_{w} \end{bmatrix} \end{equation}쿼터니언 대수학을 어떻게 정의하느냐에 따라\begin{equation} ij = -ji = k \quad \text{vs.} \quad ji = -.. 더보기 Quaternion kinematics for the error-state Kalman filter 내용 정리 Part 1 본 포스트는 Joan Solà의 "Quaternion kinematics for the error-state Kalam filter (2017)" 페이퍼를 정리한 포스트이다. 이는 Quaternion과 SO(3) 군, Error-state Kalman filter 모델링에 대해 자세히 나와있어서 SLAM을 공부할 때 이론적인 부분을 참고하면 좋은 페이퍼이다.1 Quaternion Definition and properties1.1 Definition of quaternion두 개의 복소수 $A = a+bi, C=c+di$가 주어졌을 때 이를 $Q=A+Cj$와 같이 구성하고 $k \triangleq ij$로 정의하면 $Q$는 쿼터니언 공간 $\mathbb{H}$ 안에 존재하는 수가 된다.\begin{equ.. 더보기 [MVG] Stereo Camera Calibration 예제코드 및 설명 (C++) 해당 내용은 공부 목적으로 작성된 글입니다. 잘못된 부분이나 수정할 부분이 있다면 댓글이나 메일로 알려주시면 확인 후 수정하도록 하겠습니다. 본 포스트는 MVG part2 의 내용 중 "Image Rectification" 부분을 활용하여 두 이미지가 있을 때 이를 Stereo Camera Calibration(= Stereo Rectification) 수행하는 내용에 대해 리뷰한다. 또한 실제 스테레오 카메라를 캘리브레이션하는 방법에 대해서도 설명한다. 예제 코드는 우분투 18.04 환경에서 테스트하였으며 cmake 3.16, opencv 4.2, eigen 3.3.7 버전을 사용하여 정상적으로 작동하는 것을 확인하였다. 예제 코드는 링크를 클릭하여 다운로드하면 된다. Stereo Camera Cali.. 더보기 [MVG] Scene Plane-based Homography 예제코드 및 설명 (C++) 해당 내용은 공부 목적으로 작성된 글입니다. 잘못된 부분이나 수정할 부분이 있다면 댓글이나 메일로 알려주시면 확인 후 수정하도록 하겠습니다. 본 포스트는 MVG part2 에서 설명한 "Computing given the homography induced by a plane" 부분을 활용하여 homography와 fundamental matrix를 구하는 내용에 대해 리뷰한다. 예제 코드는 우분투 18.04 환경에서 테스트하였으며 cmake 3.16, opencv 4.2, eigen 3.3.7 버전을 사용하여 정상적으로 작동하는 것을 확인하였다. 예제 코드는 링크를 클릭하여 다운로드하면 된다. Scene Plane-based Homography Input Image Setup 실제 월드 상에서 평면이 존.. 더보기 [MVG] Vanishing Point-based Metric Rectification 예제코드 및 설명 (C++) 해당 내용은 공부 목적으로 작성된 글입니다. 잘못된 부분이나 수정할 부분이 있다면 댓글이나 메일로 알려주시면 확인 후 수정하도록 하겠습니다. 본 포스트는 MVG part1 에서 설명한 "Vanishing points and vanishing lines" 부분을 활용하여 metric rectification을 수행한 해당 github을 C++ 코드로 구현한 내용을 리뷰한다. 예제 코드는 우분투 18.04 환경에서 테스트하였으며 cmake 3.16, opencv 4.2, eigen 3.3.7 버전을 사용하여 정상적으로 작동하는 것을 확인하였다. 예제 코드는 링크를 클릭하여 다운로드하면 된다. Vanishing Point-based Metric Rectification Input Image Setup 실제 월.. 더보기 [MVG] Zhang's Calibration 예제코드 및 설명 (C++) 해당 내용은 공부 목적으로 작성된 글입니다. 잘못된 부분이나 수정할 부분이 있다면 댓글이나 메일로 알려주시면 확인 후 수정하도록 하겠습니다. 본 포스트는 MVG part1 에서 설명한 Zhang's method(ICCV 1999)[1] 부분을 C++ 코드로 구현한 내용을 리뷰한다. 예제 코드는 우분투 18.04 환경에서 테스트하였으며 cmake 3.16, opencv 4.2, eigen 3.3.7 버전을 사용하여 정상적으로 작동하는 것을 확인하였다. 예제 코드는 링크를 클릭하여 다운로드하면 된다. Zhang's Calibration Input Image Setup 20mm 간격으로 구성된 7x9 체커보드를 인쇄하여 평평한 보드에 붙인 후 다양한 각도에서 촬영한 5장의 사진을 준비한다. 간단한 예제 구현을.. 더보기 [MVG] Affine & Metric Rectification 예제코드 및 설명 (C++) 해당 내용은 공부 목적으로 작성된 글입니다. 잘못된 부분이나 수정할 부분이 있다면 댓글이나 메일로 알려주시면 확인 후 수정하도록 하겠습니다. 본 포스트는 MVG part1에서 설명한 "Recovery of affine and metric properties from images" 부분을 C++ 코드로 구현한 내용을 리뷰한다. 예제 코드는 우분투 18.04 환경에서 테스트하였으며 cmake 3.16, opencv 4.2, eigen 3.3.7 버전을 사용하여 정상적으로 작동하는 것을 확인하였다. 예제 코드는 링크를 클릭하여 다운로드하면 된다. Affine & Metric Recfitication 일반적으로 현실에 존재하는 물체를 이미지 평면 상에 프로젝션(촬영)하는 경우 직선의 성질만 보존될 뿐 평행한 성.. 더보기 이전 1 2 3 4 5 6 7 다음