본문 바로가기

Study_ROS

About AMCL (Adpative Monte Carlo Localiztion)

728x90
  • Particle을 통해 Localization을 수행하는 알고리즘인 Monte Carlo Localization에서 적은 수의 Sample을 사용하여 수행 시간을 줄여 Real Time성을 높인 알고리즘
  • Particle Filter를 Mobile Robot의 Localization Problem에 적용시킨 것
    • Particle Filter는 대상 System에 확률 분포로 임의로 생성된 추정값을 Particle 형태로 나타내는시행 착오를 기반으로 한 Simulation을 통해 예측하는 기술
    • 이를 위해 Map상의 x, y, theta 좌표를 얻어와야 함
    • 초기 위치을 얻어온 후 Robot의 운동 Model과 확률에 근거하여 새로운 추정 위치와 자세로 이동해가며 실제 계측값에 따라 각 Particle에 Weight를 부여하여 점점 더 정확한 위치로 Noise를 줄이며 추정해나감
  • Bayes Filter의 일종
  • 주어진 지도에 대해 로봇의 위치를 추척

 

- 동작 과정

1. Initialization

  • 초기에는 로봇의 위치와 자세를 알 수 없으므로 N개의 Particle들을 임의로 뿌림

 

2. Prediction

  • 로봇이 이동함에 따라 로봇의 움직임을 기술한 System Model에 기초하여 로봇의 이동량에 Noise를 포함하여 각 Particle들을 이동시킴

 

3. Update

  • 연속적인 Sensor Data를 기반으로 각 Particle들이 존재할 확률을 계산하고 이를 반영하여 각 Particle의 Weight가 1이 되도록 Weight값을 갱신.
  • 이 갱신 후의 Particle 값은 Initialization에서 주어졌던 값이 Prediction과 Update를 거쳐 새로운 상태가 된다

 

4. Pose Estimation

  • N개의  모든 각 Particle들의 위치 및 자세인 x, y, θ와 Weight를 곱해 로봇의 추정 위치 계산

 

5. Resampling

  • 새로운 Particle을 생성하는 단계
  • Weight가 적은 Particle들을 제거하고 Weight가 높은 Particle을 중심으로 기존 Particle의 특성인 Particle의 위치 정보를 물려받은 새로운 Particle을 추가로 생성
  • 이 때 Particle의 개수 N은 그대로 유지
    • Particle Filter는 Sample의 개수가 충분하다면 Kalman Filter를 개선한 EKF보다 위치 추종이 정확하지만, 그 개수가 충분하지 않으면 정확하지 않을 수 있다
    • 이러한 부분을 개선하기 위한 접근법으로 Kalman Filter와 Particle Filter를 동시에 사용하는 방법인 RBPF(Rao - Blackselized Particle Filter) 기반의 SLAM도 일반적으로 사용디고 있다
  • 위의 2~5번 과정을 반복적으로 수행하며 Robot의 위치값을 추정
  • 즉 XY좌표 평면상에 로봇의 위치를 확률로 나타낸 Particle의 분포를 Sensor 계측값을 기반으로 갱신해 나가며 로봇의 위치 추측

 

 

 

-  ROS 상에서의 동작 과정

1. Initializaiton

  • Rviz 상의 2D Map상에 '2D Pose Estimate' 버튼을 통해 로봇의 초기 위치 지정

 

2. Prediction

  • teleop node 등을 통해 로봇을 천천히 이동시킴

 

3 ~ 5. 

  • Resampling 후 Weight가 높은 Particle 주변으로의 새로운 Particle들이 생성

Weight가 높은 Particle 주위로 새로운 Particle들이 생성된 모습

 

  • 위 과정을 위해 AMCL Node는 각 센서들의 계측값, 상대 좌표값(TF), 지도 등의 데이터를 수신받아야 함

 

관련 자료 : https://youngseong.tistory.com/140

 

[ROBOTIS ROS Courses] Ch11. SLAM과 Navigation

SLAM (Simultaneous Localization And Mapping) : 동시적 위치 추정 및 지도 작성 Robot이 미지의 임의 공간을 이동하며 주변을 감지하며 현재 위치를 추정하는 동시에 지도를 작성하는 방법 위치 추정에 사용

youngseong.tistory.com

 

 


참고 자료 : 

'Study_ROS' 카테고리의 다른 글

About Navigation on ROS  (0) 2023.07.17
Cartographer/Hector SLAM 사용법  (0) 2023.02.05
Ubuntu 20.04에 ROS Noetic 설치법  (0) 2023.01.21
[ROS] tf란?  (0) 2022.11.06
우분투에서 Arduino IDE를 통한 rosserial 사용법  (0) 2022.11.05