AMCL (Adaptive Monte Carlo Localization)

About_work·2024년 4월 4일
0

robot

목록 보기
11/14
  • 종종 Particle Filter Localization이라고도 불림
  • 로봇이 자신의 위치를 추정하는 데 사용하는 확률적 접근 방식
  • AMCL은 비선형 시스템(로봇의 위치와 주변 인지 환경 변화를 선형 모델링 할 수 없음)과 비가우시안 노이즈(로봇 센싱 데이터의 노이즈는 비 가우시안 노이즈임)에 효과적으로 대응할 수 있으며, 특히 복잡한 환경에서 로봇의 위치를 추적하는 데 유용
    • AMCL은 확률적 particle filter을 이용하기 때문에, 이러한 환경에 효과적으로 대응 가능

1. AMCL의 기본 개념:

  • AMCL은 여러 가지 "가설" 또는 "파티클"을 사용하여 로봇의 위치를 추정
    • 각 파티클은 로봇이 있을 수 있는 특정 위치와 방향을 나타냄
    • 각 파티클은, 가중치(혹은 신뢰도)을 가지고 있다.

2. 작동 원리:

2.1. 초기화:

  • 파티클들은 로봇이 있을 가능성이 있는 위치에 무작위로 분포
  • localization 알고리즘이 있는 로봇에서는, localization result에서 gaussian noise 등으로 여러 파티클을 생성하는 방법 등으로 초기화 가능

2.2. 모션 업데이트 (Motion Update):

  • 로봇이 움직일 때, 각 파티클은 로봇의 모션 모델을 기반으로 업데이트
  • 모션 모델: 로봇의 현재 상태(위치와 방향)와 이동 명령(예: v, w 등)을 입력으로 받아, 새로운 상태를 예측
    • RK4 등으로, 미래 위치를 예측하여 particle 업데이트 가능
    • 이 때, 이동 명령(예: v, w 등)에 guassian noise를 추가하여 불확실성을 모델링

2.3. 측정 업데이트 (Measurement Update): A.K.A. 가중치 업데이트

  • 로봇의 센서로부터 새로운 측정값이 들어오면, 각 파티클의 가중치를 업데이트
  • 이 가중치는 파티클이 실제 로봇의 상태를 얼마나 잘 나타내는지를 반영하며, 센서 모델을 통해 계산
    • 센서 측정값과 파티클이 예측한 값이 일치할수록 높은 가중치를 받음
  • 아래 글에서는, RGBD 센서를 사용하는 경우의 측정 업데이트 과정을 자세히 설명
2.3.1. 센서 데이터의 처리와 global 좌표계 변환
  • 데이터 처리:
    • RGBD 센서로부터 얻은 데이터는 먼저 필터링 및 전처리 과정을 거쳐 노이즈를 제거
    • 예: 깊이 이미지에서 불완전한 데이터(예: 너무 가깝거나 너무 먼 거리의 데이터)를 제거
2.3.2. 각 파티클에서 서버의 글로벌 맵으로부터 얻은 2D 로컬 맵과, 실제 센서 측정으로 얻은 2D 로컬 맵을 비교하는 과정
  • 유사도 측정:
    • 예측된 2D 로컬 맵과 실제 2D 로컬 맵 사이의 유사도 측정
    • 이를 위해 다양한 메트릭이 사용, 가장 단순한 형태로는 유클리드 거리, 맨해튼 거리
    • 더 복잡한 메트릭으로는 교차 엔트로피, 뮤투얼 인포메이션(Mutual Information) 등이 사용
  • ICP(Iterative Closest Point) 스캔 매칭 알고리즘:
    • 두 맵 간의 최소 거리를 반복적으로 줄여나가며, 최적의 매치를 찾는 방식
    • ICP는 두 데이터 세트 간의 변환(위치와 회전)을 찾아내는 데 주로 사용
  • NCC(Normalized Cross-Correlation) 스캔 매칭 알고리즘:
    • 두 맵 간의 상관 관계를 측정하여 유사도를 계산
    • 높은 상관 계수는 두 맵이 잘 일치함을 나타냄

2.4. 리샘플링 (Resampling):

  • 파티클들 중에서 가중치에 기반하여, 무작위로 새로운 세트의 파티클을 선택
  • 이 과정은 높은 가중치를 가진 파티클들을 복제하고 낮은 가중치를 가진 파티클들을 제거

2.5. 적응성 (Adaptiveness):

  • AMCL은 파티클의 수를 동적으로 조절하여, 로봇의 위치에 대한 확신이 높을 때는 파티클의 수를 줄이고, 확신이 낮을 때는 파티클의 수를 늘림
  • 이는 계산 효율성을 향상시키고, 다양한 환경과 상황에 대응할 수 있게 함
profile
새로운 것이 들어오면 이미 있는 것과 충돌을 시도하라.

0개의 댓글