SLAM
SLAM (동시적 위치 추정 및 지도 제작) 에 관한 내용을 공유합니다.

-
EVO는 SLAM과 Odometry의 성능을 평가하기 위한 파이썬 패키지이다. 추정된 pose와 GT pose 간의 비교 및 분석을 수행하고, APE(Absolute Pose Error)와 RPE(Relative Pose Error)를 계산할 수 있다. APE는 전체 궤적에 대한 절대 위치 오차를 RMSE, mean 등으로 계산한 결과이고, RPE는 연속된 포즈 간의 상대적 오차를 계산함으로써 드리프트를 분석할 수 있다. https://github.com/MichaelGrupp/evo GitHub - MichaelGrupp/evo: Python package for the evaluation of odometry and SLAMPython package for the evaluation of odomet..
SLAM & Odometry 평가 방법 : EVOEVO는 SLAM과 Odometry의 성능을 평가하기 위한 파이썬 패키지이다. 추정된 pose와 GT pose 간의 비교 및 분석을 수행하고, APE(Absolute Pose Error)와 RPE(Relative Pose Error)를 계산할 수 있다. APE는 전체 궤적에 대한 절대 위치 오차를 RMSE, mean 등으로 계산한 결과이고, RPE는 연속된 포즈 간의 상대적 오차를 계산함으로써 드리프트를 분석할 수 있다. https://github.com/MichaelGrupp/evo GitHub - MichaelGrupp/evo: Python package for the evaluation of odometry and SLAMPython package for the evaluation of odomet..
2024.12.30 -
어쩌다 보니 SLAM 명가에 오게 된 건에 관하여 주요 용어 설명 1. Factor GraphFactor graph의 구조는 variable nodes와 factor nodes로 구성된다. variable node는 추정하고자 하는 상태 변수들을 나타낸다. 예를 들어 로봇의 위치와 방향, 랜드마크의 위치 등이 될 수 있다. Factor node는 이런 변수들 간의 확률적 관계나 제약 조건을 표현하며, 센서 측정치, 모션 모델, loop closing 제약 조건 등이 여기에 해당한다. 수학적으로 factor graph는 전체 시스템의 결합 확률 분포를 그래프 구조로 표현한다. 각 factor는 연결된 변수들에 대한 cost function으로 정의되며, 이런 함수들의 합을 최소화하는 것이 최적화의 목표가 ..
슬린이 탈출기 : 1. SLAM dictionary어쩌다 보니 SLAM 명가에 오게 된 건에 관하여 주요 용어 설명 1. Factor GraphFactor graph의 구조는 variable nodes와 factor nodes로 구성된다. variable node는 추정하고자 하는 상태 변수들을 나타낸다. 예를 들어 로봇의 위치와 방향, 랜드마크의 위치 등이 될 수 있다. Factor node는 이런 변수들 간의 확률적 관계나 제약 조건을 표현하며, 센서 측정치, 모션 모델, loop closing 제약 조건 등이 여기에 해당한다. 수학적으로 factor graph는 전체 시스템의 결합 확률 분포를 그래프 구조로 표현한다. 각 factor는 연결된 변수들에 대한 cost function으로 정의되며, 이런 함수들의 합을 최소화하는 것이 최적화의 목표가 ..
2024.12.30 -
https://github.com/koide3/glim GitHub - koide3/glim: GLIM: versatile and extensible range-based 3D localization and mapping frameworkGLIM: versatile and extensible range-based 3D localization and mapping framework - koide3/glimgithub.com https://arxiv.org/abs/2202.00242 Globally Consistent and Tightly Coupled 3D LiDAR Inertial MappingThis paper presents a real-time 3D mapping framework based on ..
3D Mapping을 위한 고성능 프레임워크 GLIM : 1. 설치 및 도커https://github.com/koide3/glim GitHub - koide3/glim: GLIM: versatile and extensible range-based 3D localization and mapping frameworkGLIM: versatile and extensible range-based 3D localization and mapping framework - koide3/glimgithub.com https://arxiv.org/abs/2202.00242 Globally Consistent and Tightly Coupled 3D LiDAR Inertial MappingThis paper presents a real-time 3D mapping framework based on ..
2024.12.11 -
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 -
Introduction SLAM은 State의 확률 분포를 Estimation하는 문제입니다. 우리는 이때 Markov 가정을 적용해서 내가 현재의 State 를 알기 위해서는1. 이 전 단계의 state와 2. 이 전 단계에서 현재의 state로 오기 위한 명령3. 현재의 state에서 주변 환경으로부터 획득한 정보이 세 가지의 값이 있으면 매 단계마다 state를 update 할 수 있습니다. 그래서 이러한 예측에 전통적으로 많이 사용되었던 Bayes 필터는 두 가지의 단계가 있습니다. 첫 번째는 Prediction, 두 번째는 Correction 인데요, Prediction 은 과거의 State와 Control을 이용해서 현재의 State를 예측하는 단계입니다. 어떤 예측을 수행했으면 내가 잘 예..
SLAM 에서의 Kalman filter : 콘셉트부터 EKF 까지Introduction SLAM은 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