SLAM
SLAM (동시적 위치 추정 및 지도 제작) 에 관한 내용을 공유합니다.
-
FAST SLAM 은 EKF-SLAM 과 비슷하게 Feature 를 이용해서 map 을 작성하는 SLAM 방식입니다. 다만 EKF 와는 달리, pose 의 가정을 Gaussian 으로 하지 않고 파티클 필터를 사용합니다. 이전 Monte-Carlo Localization 에서 state 로 두었던 것은 1차원, 혹은 2차원 상에서의 로봇의 pose 였습니다. 그런데 우리가 다루는 환경은 3차원이고, 차원의 갯수가 늘어날 수록 파티클 갯수도 지수적으로 증가하게 됩니다. 따라서 파티클 필터는 파티클의 갯수가 많지 않은 low-dimension 에서 잘 작동하는 것입니다. 그래서 EKF SLAM 에서처럼 state 를 정의한다면 너무나 많은 파티클들이 필요해집니다. 이것이 랜드마크까지 포함하고 있는 stat..
FAST-SLAM : Feature Based SLAM with Particle FiltersFAST SLAM 은 EKF-SLAM 과 비슷하게 Feature 를 이용해서 map 을 작성하는 SLAM 방식입니다. 다만 EKF 와는 달리, pose 의 가정을 Gaussian 으로 하지 않고 파티클 필터를 사용합니다. 이전 Monte-Carlo Localization 에서 state 로 두었던 것은 1차원, 혹은 2차원 상에서의 로봇의 pose 였습니다. 그런데 우리가 다루는 환경은 3차원이고, 차원의 갯수가 늘어날 수록 파티클 갯수도 지수적으로 증가하게 됩니다. 따라서 파티클 필터는 파티클의 갯수가 많지 않은 low-dimension 에서 잘 작동하는 것입니다. 그래서 EKF SLAM 에서처럼 state 를 정의한다면 너무나 많은 파티클들이 필요해집니다. 이것이 랜드마크까지 포함하고 있는 stat..
2024.05.10 -
Particle Filter 를 이용해서 Localization 을 하는 방식을 Monte-Carlo Localization 이라고 합니다. 지금까지는 칼만 필터를 사용했는데, 칼만 필터의 가장 기본적인 전제는 선형성과 가우시안 필터였습니다. 이 말은 확률 분포를 (랜드마크, 혹은 로봇이 있을 확률 등) 두 개의 파라미터로 표현할 수 있다는 것입니다. State 가 진행됨에 따라서 그 가우시안 분포가 계속 유지되게 하기 위해서는 선형성을 유지해야 했습니다. 다만 실제 세계에서는 선형적으로 State 가 바뀌는 경우가 잘 없기 때문에 EKF 등을 도입했습니다. 칼만 필터는 가우시안 분포를 사용하기 때문에 Parametric 한 방법이라고 말 할 수 있습니다. 그렇지만 이는 선형성을 가정했고, 아무리 EKF..
파티클 필터와 Monte Carlo LocalizationParticle Filter 를 이용해서 Localization 을 하는 방식을 Monte-Carlo Localization 이라고 합니다. 지금까지는 칼만 필터를 사용했는데, 칼만 필터의 가장 기본적인 전제는 선형성과 가우시안 필터였습니다. 이 말은 확률 분포를 (랜드마크, 혹은 로봇이 있을 확률 등) 두 개의 파라미터로 표현할 수 있다는 것입니다. State 가 진행됨에 따라서 그 가우시안 분포가 계속 유지되게 하기 위해서는 선형성을 유지해야 했습니다. 다만 실제 세계에서는 선형적으로 State 가 바뀌는 경우가 잘 없기 때문에 EKF 등을 도입했습니다. 칼만 필터는 가우시안 분포를 사용하기 때문에 Parametric 한 방법이라고 말 할 수 있습니다. 그렇지만 이는 선형성을 가정했고, 아무리 EKF..
2024.04.19 -
다음은 Ceres-Solver 튜토리얼 사이트 (http://ceres-solver.org/nnls_tutorial.html) 를 번역하고 추가적인 설명을 덧붙인 글입니다. Ceres Solver는 대규모 비선형 최적화 문제를 푸는 오픈소스 C++ 라이브러리이다. 구글 엔지니어들에 의해 개발되었고, 특히 컴퓨터 비전, 로봇공학 등의 분야에서 자주 사용된다. 이 라이브러리는 Levenberg-Marquardt, Dogleg, 및 이러한 방법을 확장한 Trust Region 방식과 같은 최적화 알고리즘을 제공한다. Ceres Solver의 주요 특징은 다음과 같다: 자동 미분 지원: 사용자는 비선형 함수의 수식을 제공하면 Ceres가 자동으로 미분을 계산한다. 이는 복잡한 함수에 대한 미분을 직접 계산할 필..
Ceres-Solver Tutorial : 최적화 문제를 푸는 라이브러리 (1)다음은 Ceres-Solver 튜토리얼 사이트 (http://ceres-solver.org/nnls_tutorial.html) 를 번역하고 추가적인 설명을 덧붙인 글입니다. Ceres Solver는 대규모 비선형 최적화 문제를 푸는 오픈소스 C++ 라이브러리이다. 구글 엔지니어들에 의해 개발되었고, 특히 컴퓨터 비전, 로봇공학 등의 분야에서 자주 사용된다. 이 라이브러리는 Levenberg-Marquardt, Dogleg, 및 이러한 방법을 확장한 Trust Region 방식과 같은 최적화 알고리즘을 제공한다. Ceres Solver의 주요 특징은 다음과 같다: 자동 미분 지원: 사용자는 비선형 함수의 수식을 제공하면 Ceres가 자동으로 미분을 계산한다. 이는 복잡한 함수에 대한 미분을 직접 계산할 필..
2024.04.17 -
IntroductionSLAM 은 State 의 확률 분포를 Estimation 하는 문제입니다. 우리는 이때 Markov 가정을 적용해서 내가 현재의 State 를 알기 위해서는 1. 이 전 단계의 state 와 2. 이 전 단계에서 현재의 state 로 오기 위한 명령 3. 현재의 state 에서 주변 환경으로부터 획득한 정보 이 세 가지의 값이 있으면 매 단계마다 state 를 update 할 수 있습니다. 그래서 이러한 예측에 전통적으로 많이 사용되었던 Bayes 필터는 두 가지의 단계가 있습니다. 첫 번째는 Prediction, 두 번째는 Correction 인데요, Prediction 은 과거의 State 와 Control 을 이용해서 현재의 State 를 예측하는 단계입니다. 어떤 예측을 수..
SLAM 에서의 Kalman filter : 콘셉트부터 EKF 까지IntroductionSLAM 은 State 의 확률 분포를 Estimation 하는 문제입니다. 우리는 이때 Markov 가정을 적용해서 내가 현재의 State 를 알기 위해서는 1. 이 전 단계의 state 와 2. 이 전 단계에서 현재의 state 로 오기 위한 명령 3. 현재의 state 에서 주변 환경으로부터 획득한 정보 이 세 가지의 값이 있으면 매 단계마다 state 를 update 할 수 있습니다. 그래서 이러한 예측에 전통적으로 많이 사용되었던 Bayes 필터는 두 가지의 단계가 있습니다. 첫 번째는 Prediction, 두 번째는 Correction 인데요, Prediction 은 과거의 State 와 Control 을 이용해서 현재의 State 를 예측하는 단계입니다. 어떤 예측을 수..
2024.03.31 -
초창기의 SLAM 은 주로 Filter 기반 (Kalman filter, Particle filter 등) 으로 수행되었지만 몇 년 전부터 Graph 기반 SLAM 으로 완전히 트렌드가 바뀌었습니다. Graph 기반 SLAM 에서 에러를 보정하기 위한 마지막 단계로 자주 수행되는 것이 Bundle Adjustment 입니다. Structure From Motion Structure from motion 은 2 장 이상의 이미지에서 대응점이 주어졌을 때, 3D 좌표와 카메라 파라미터 (여기서는 카메라 간의 Rotation / Translation) 을 구하는 것을 의미합니다. 이는 다음과 같은 과정으로 수행됩니다. 1. 같은 장면을 촬영한 이미지 여러 장을 모은다. 2. 특징점을 추출한다. (SIFT 등으..
Bundle Adjustment초창기의 SLAM 은 주로 Filter 기반 (Kalman filter, Particle filter 등) 으로 수행되었지만 몇 년 전부터 Graph 기반 SLAM 으로 완전히 트렌드가 바뀌었습니다. Graph 기반 SLAM 에서 에러를 보정하기 위한 마지막 단계로 자주 수행되는 것이 Bundle Adjustment 입니다. Structure From Motion Structure from motion 은 2 장 이상의 이미지에서 대응점이 주어졌을 때, 3D 좌표와 카메라 파라미터 (여기서는 카메라 간의 Rotation / Translation) 을 구하는 것을 의미합니다. 이는 다음과 같은 과정으로 수행됩니다. 1. 같은 장면을 촬영한 이미지 여러 장을 모은다. 2. 특징점을 추출한다. (SIFT 등으..
2023.07.03