본문 바로가기

전체 글

칼만 필터(Kalman Filter) 개념 정리 (+ KF, EKF, ESKF, IEKF, IESKF) Part 1 본 포스트는 필자가 Kalman filter 공부하면서 배운 내용을 정리한 포스트이다.다음 포스팅 칼만 필터(Kalman filter) 개념 정리 Part 2에서 더 많은 내용을 확인할 수 있다.Kalman filter를 이해하는데 필요한 기반 지식은 확률 이론(Probability Theory) 개념 정리 포스팅을 참조하면 된다.Particle filter에 대해 알고 싶으면 파티클 필터(Particle Filter) 개념 정리 포스팅을 참조하면 된다.arXiv preprintEnglish version Notes on Kalman Filter (KF, EKF, ESKF, IEKF, IESKF)The Kalman Filter (KF) is a powerful mathematical tool widely.. 더보기
선형대수학 (Linear Algebra) 개념 정리 Part 2 본 포스트에서는 주로 행렬대수학과 관련된 내용을 다룬다.선형대수학 (Linear Algebra) 개념 정리 Part 1은 일반적인 선형대수학의 내용을 다룬다.확률 이론에 대한 내용을 알고싶으면 확률 이론(Probability Theory) 개념 정리 포스트를 참조하면 된다. Chapter 6 - Matrix algebraIdentity matrix항등행렬(Identity Matrix)는 대각성분이 전부 1이고 나머지 성분이 전부 0인 $n\times n$ 크기의 정방행렬을 의미한다. 일반적으로 $\mathbf{I} \in \mathbb{R}^{n\times n}$ 으로 표현한다.\begin{equation}\begin{aligned}\mathbf{I} = \begin{bmatrix} 1 & 0 & 0 \.. 더보기
[SLAM] Optical Flow와 Direct Method 개념 및 코드 리뷰 본 포스트에서는 optical flow와 direct method의 개념을 리뷰한다. direct method 관련 내용은 [4]에서 대부분의 내용을 참고했다.Optical flowOptical flow는 시간 경과에 따른 이미지 간 픽셀 이동을 계산하는 알고리즘을 말한다. Opticalflow는 이미지의 밝기 변화를 기반으로 알고리즘을 계산하기 때문에 다음과 같은 key assumption들이 존재한다  1. 밝기 항상성 (brightness consistency) : 어떤 물체의 픽셀은 프레임이 바뀌어도 그 값이 변하지 않아야 한다. gray 영상의 경우 추적하고 있는 물체의 픽셀 밝기는 변하지 않는다고 가정한다.  2. 작은 움직임 (small motion) : 영상 내에서 움직임은 그다지 빠르지 .. 더보기
[SLAM] Bundle Adjustment 개념 리뷰 본 포스트는 공부 목적으로 작성하였습니다. 혹시 보시는 도중 잘못된 부분이나 개선할 부분이 있다면 댓글이나 메일주시면 확인 후 수정하도록 하겠습니다. 본 포스트에서는 feature-based VO를 기반으로 reprojection 에러를 최소화하여 bundle adjustment(BA)를 수행하는 과정에 대해 설명한다. Bundle adjustment 두 개의 이미지 사이의 매칭점 쌍들이 주어진 경우 8-point 알고리즘을 사용하여 fundamental matrix $\mathbf{F}$를 추정할 수 있다. 만약 캘리브레이션된 카메라의 경우 $\mathbf{F}$를 통해 essential matrix $\mathbf{E}$를 구할 수 있다. \begin{equation} \begin{aligned} \.. 더보기
[SLAM] g2o - Alternative Parameterizations 논문 섹션 리뷰 본 포스트는 공부 목적으로 작성하였습니다. 혹시 보시는 도중 잘못된 부분이나 개선할 부분이 있다면 댓글이나 메일주시면 확인 후 수정하도록 하겠습니다. 해당 포스트는 앞서 pdf 파일로 정리했던 자료를 포스팅한 글입니다. 자세한 내용은 다음 링크를 통해 확인해주세요. https://www.facebook.com/groups/slamkr/permalink/894277280931917/ 본 포스트에서는 g2o 논문의 여러 섹션 중 "B. Alternative Parameterizations" 부분을 리뷰한다. 해당 부분은 A Tutorial on Graph-Based SLAM 논문에서 "C. Least Squares on a Manifold" 부분을 봐야 정확한 이해가 가능해서 해당 부분을 코드와 같이 리뷰한.. 더보기
[SLAM] g2o example 코드 리뷰 본 포스트는 공부 목적으로 작성하였습니다. 혹시 보시는 도중 잘못된 부분이나 개선할 부분이 있다면 댓글이나 메일주시면 확인 후 수정하도록 하겠습니다. 해당 포스트는 앞서 pdf 파일로 정리했던 자료를 포스팅한 글입니다. 자세한 내용은 다음 링크를 통해 확인해주세요. https://www.facebook.com/groups/slamkr/permalink/943685952657716/ 본 포스트에서는 g2o example 폴더에 있는 예제 코드를 리뷰한다. 예제 코드를 통해 g2o 코드를 사용하여 최적화하는 방법을 익힐 수 있다. data_fitting/circle_fit 위와 같은 초록색 점들의 분포가 있을 때, 해당 데이터를 가장 잘 표현하는 원의 중점과 반지름을 구하시오. (정답: 회색 점선) This.. 더보기
[SLAM] Visual LiDAR Odometry and Mapping (V-LOAM) 논문 리뷰 본 포스트는 공부 목적으로 작성하였습니다. 혹시 보시는 도중 잘못된 부분이나 개선할 부분이 있다면 댓글이나 메일주시면 확인 후 수정하도록 하겠습니다. 해당 포스트는 앞서 pdf 파일로 정리했던 자료를 포스팅한 글입니다. 자세한 내용은 다음 링크를 통해 확인해주세요. https://www.facebook.com/groups/slamkr/permalink/862881467404832/ 본 포스트는 DEMO와 LOAM의 저자가 ICRA 2015에 게재한 논문인 "Visual-Lidar Odometry and Mapping: Low-Drift, Robust, and Fast" (V-LOAM) 논문을 리뷰한 포스팅이다. 해당 논문은 사실 상 DEMO + LOAM = V-LOAM과 같이 두 알고리즘을 퓨전한 논문이.. 더보기
[SLAM] Depth Enhanced Monocular Odometry (DEMO) 논문 리뷰 본 포스트는 공부 목적으로 작성하였습니다. 혹시 보시는 도중 잘못된 부분이나 개선할 부분이 있다면 댓글이나 메일주시면 확인 후 수정하도록 하겠습니다. 해당 포스트는 앞서 pdf 파일로 정리했던 자료를 포스팅한 글입니다. 자세한 내용은 다음 링크를 통해 확인해주세요. https://www.facebook.com/groups/slamkr/permalink/858942477798731/ 본 논문은 LOAM의 저자가 작성한 visual odometry 관련 논문이고 IROS 2014에 게재되었다. 해당 논문에서 설명하는 DEMO는 추후 LOAM과 결합하여 V-LOAM이 된다. 최근 Image + Depth가 있는 상태에서 visual odometry를 계산하는 방법들이 많이 연구되고 있다. 하지만 depth가 .. 더보기
[SLAM] Direct Sparse Odometry (DSO) 논문 및 코드 리뷰 (2) 4. Keyframes4.1. Inverse Depth UpdateTo be added4.2. Immature Point ActivationTo be added4.3. Sliding Window Optimization4.3.1. Error Function Formulation특정 프레임이 키프레임으로 결정되면 sliding window 내부의 키프레임들과 새로운 키프레임 사이에 에러함수를 업데이트해야 한다. 이 때, 키프레임 뿐만 아니라 이와 연결되어 있는 맵 상의 포인트들까지 같이 최적화하는 Local Bundle Adjustment (LBA)를 수행한다. 주목할 점은 하나의 맵포인트가 두 개의 키프레임(host, target)과 연결되어 최적화된다는 점이다. 여기서 host 키프레임은 해당 맵포인트를.. 더보기
[SLAM] Direct Sparse Odometry (DSO) 논문 및 코드 리뷰 (1) 본 포스트에서는 direct method 기반의 VO 알고리즘으로 유명한 DSO 논문을 리뷰한다. DSO 코드를 분석하면서 논문에서는 생략된 디테일한 부분들이 굉장히 많다는 것을 알게되었고 이미 잘 정리된 다른 분들의 자료를 참고하여 수식 유도부터 코드 리뷰까지 포함하는 정리본을 작성하게 되었다. 1. Initialization1.1 Calibrationdirect method는 밝기오차를 최적화하여 카메라의 포즈를 추정하기 때문에 이미지의 밝기 차이에 민감하다. SLAM에서 주로 사용하는 머신비전 카메라는 일반적으로 이미지의 밝기 변화에 따라 노출시간을 자동으로 조절하므로(auto exposure) 노출시간에 따른 밝기 변화가 심한 경우 direct method는 정상적으로 작동하지 않을 수 있다. 아.. 더보기
[SLAM] Lidar Odometry And Mapping (LOAM) 논문 리뷰 본 포스트는 공부 목적으로 작성하였습니다.혹시 보시는 도중 잘못된 부분이나 개선할 부분이 있다면 댓글이나 메일주시면 확인 후 수정하도록 하겠습니다.해당 포스트는 앞서 pdf 파일로 정리했던 자료를 포스팅한 글입니다. 자세한 내용은 다음 링크를 통해 확인해주세요.https://www.facebook.com/groups/slamkr/permalink/809268749432771/    본 논문은 6자유도 ($x,y,z,\theta_x, \theta_y, \theta_z$) 공간에서 2-axis LiDAR 센서가 생성하는 데이터로 Odometry와 Mapping을 실시간으로 계산하는 SLAM 알고리즘을 제안하였다. 기존의 방법들은 주로 offline에서 loop closure를 활용해 drift를 최소화한 3.. 더보기
[SLAM] Feature-based와 Direct method VO 개념 비교 본 포스트는 공부 목적으로 작성하였습니다. 혹시 보시는 도중 잘못된 부분이나 개선할 부분이 있다면 댓글이나 메일주시면 확인 후 수정하도록 하겠습니다. 해당 포스트는 앞서 pdf 파일로 정리했던 자료를 포스팅한 글입니다. 자세한 내용은 다음 링크를 통해 확인해주세요. https://www.facebook.com/groups/slamkr/permalink/1043277826031861/ 해당 포스트는 visual odometry 알고리즘에서 포즈를 계산하는 대표적인 두가지 방법인 feature-based와 direct method의 차이점에 대해 설명한다. feature-based는 ORB SLAM2 코드를 참조하여 작성하였고 direct method는 DSO 코드를 참조하여 작성하였다. 두 방법 모두 처음.. 더보기
WMIC 명령어를 활용한 시스템 분석 - 여러가지 명령어들 1 WMIC 명령어 1.1 os 관련 정보 출력 (간략하게) wmic os list brief /format:list 정보를 html 형식으로 출력해서 확인한다 wmic /output:osinfo.html os get /format:hform 시스템을 종료하거나 리부팅한다 wmic os where "status='ok'" call shutdown wmic os where "status='ok'" call reboot OS의 속성을 확인할 수 있다 (컬럼) wmic os get /? 1.2 cpu 관련 정보 출력 (간략하게) wmic cpu list brief /format:list 1.3 logicaldist 관련 정보를 확인한다 wmic logicaldisk where drivetype=3 get na.. 더보기
Powershell 명령어를 활용한 시스템 분석 - 여러가지 명령어들 1 Powershell 명령어 본 포스팅에 사용한 파워쉘 버전은 5.1버전이다. 1.1 Get-… 1.1.1 Get-Process 프로세스 정보를 확인한다 (gps) get-process [s] 로 시작하는 모든 프로세스를 확인한다 get-process [s]* 어떤 프로세스가 700개 이상의 핸들을 점유하고 있는 지 확인한다 get-process | where handles -gt 700 | sort cpu -descending workingset 메모리가 100M 이상인 프로세스를 확인한다 get-process | where-object {$_.workingset -gt 100mb} | sort pm -descending 프로세스 중 마지막 10개만 정렬해서 htm 문서화한다 get-process |.. 더보기
cmd 명령어를 활용한 시스템 분석 - 여러가지 명령어들 1 cmd 명령어 모든 cmd 명령어는 Windows + R키나 cmd 명령창에서 실행하실 수 있다. 추가적으로 sysinternals 와 nirsoft 명령어 목록도 포스팅에 작성하였다. 1.1 .msc 1.1.1 eventvwr.msc(이벤트뷰어) 1.1.2 gpedit.msc(로컬 그룹 정책 설정) 1.1.3 secpol.msc(로컬 보안 설정) 1.1.4 wmimgmt.msc(WMI 관리자) 1.1.5 certlm.msc (인증서관리자 - 로컬컴퓨터) 1.1.6 certmgr.msc(인증서관리자 - 현재사용자) 1.1.7 fsmgmt.msc(공유폴더) 1.1.8 lusrmgr.msc(로컬 사용자 및 그룹) 1.1.9 printmanagement.msc(프린터 관리) 1.1.10 wf.msc(방화벽.. 더보기