본문 바로가기
Autonomous Vehicle/Theory of Robotics

[번역/요약] Autonomous Navigation : Particle Filter 알아보기

by kim.jeff 2020. 8. 9.

로컬리제이션 방법 중 하나인 파티클 필터에 대해서 알아보도록 하겠습니다. 

 

매틀랩에서 진행하고 있는 강의 영상중 파티클필터에 대한 영상을 번역하고 해석하면서 관련 내용을 요약, 정리하도록 하겠습니다. 영상을 함께 시청하시는것이 더 효율적일것이라고 생각합니다. 글의 맨 밑에 링크되어 있습니다 :)

 


Estimate position and orientattion of a mobile robot using a particle filter

파티클 필터를 활용한 모바일 로봇의 위치와 방향정보 예측

 

  로컬리제이션에 대해서 알아봅시다. 한 사무실에서 돌아다니고 있는 터틀 봇이 있습니다. 이 로봇은 자신이 어디 있는지 모릅니다. 방안 어디에도 위치할 수 있겠죠. 이 터틀 봇이 라이다 센서를 통해서 포인트 클라우드를 가져옵니다. 일자의 포인트들이 입력되었다고 가정해 봅시다. 포인트를 이용해서 특징점 매칭을 이용하여 로봇이 어디 있는지 알아낼 수 있지만, 정확히 어디있는지는 알기가 어렵습니다. 이러한 경우에서 파티클 필터는 포인터들을 분석하여 어디에 있을 확률이 높은지를 판단합니다.

  데드레코닝이라는 개념을 알 필요가 있습니다. 데드레코닝(DEADRECKONING)은 미래의 위치를 과거의 위치로 부터 측정된 상관관계를 통해서 알아내는 방법입니다. 예를 들어 속도와 방향이 될 수 있겠죠. 데드 레코닝은 짧은 시간 내에 매우 많은 속도로 많은 수로 성공적으로 진행될 수 있습니다. 환경과의 상관관계를 확인하죠. IMU센서를 통해서 속도와 방향을 얻어올 수 있습니다. 하지만 노이즈 때문에 오차가 쌓이게 되고 다시 바로잡아줘야 할 필요가 있습니다. 데드 레코닝에 대해서 더 설명이 필요하다면, 센서 퓨전이라는 이름의 비디오를 더 확인하세요. https://bit.ly/37T9BRT

 

Understanding Sensor Fusion and Tracking, Part 3: Fusing a GPS and an IMU to Estimate Pose Video

This video describes how we can use a GPS and an IMU to estimate an object’s orientation and position. We’ll go over the structure of the algorithm and show you how the GPS and IMU both contribute to the final solution.

www.mathworks.com

 

  우리는 위치를 알아낼 두개의 방법을 알고 있습니다. 노이즈가 많이 섞여있는 라이다 센서에서 원래 갖고 있던 환경정보와 매칭을 통해서 위치를 알아내는 방법이 첫 번째이고, 노이즈가 많이 섞여있는 오도메트리 데이터(데드레코닝)을 로봇이 어떻게 움직이는지 측정하는 방법이 두 번째입니다. 칼만 필터에 친숙하다면, 노이즈가 많이 껴있는 측정 데이터를 어떻게 이용할지 알 수 있을 것입니다. 친숙하지 않다면 다음의 영상을 확인하세요.

https://bit.ly/314rLia

 

Understanding Kalman Filters

Discover real-world situations in which you can use Kalman filters. Kalman filters are often used to optimally estimate the internal states of a system in the presence of uncertain and indirect measurements. Learn the working principles behind Kalman filte

www.mathworks.com

  부정확한(노이지 데이터) 라이다 데이터와 부정확한 오도메트리 데이터들은 가우시안 필터를 활용할 필요가 있습니다. 칼만필터가 적용된 위치 데이터조차도 가우시안 필터가 적용될 필요성이 있을 수도 있습니다.

  당신이 로봇이라고 생각한다면 파티클 필터가 어떻게 적용되는지 알수 있습니다. 빈 방이 있습니다.  당신이 라이다를 통해서 다음과 같은 데이터를 취득했다고 합시다. 많은 벽들이 보일것이고 코너와 문 가까이에 있지 않을 확률이 큽니다. 왜냐하면 직선의 데이터를 취득했으니까요.

  그렇다면 이와같은 곳에서의 정보를 취득했을 확률이 크겠군요. 이것을 시각화한다면 이와 같은 그림이 그려질 것입니다. 노란색의 위치가 있을 확률이 큰 곳입니다. 

 

  만약 이곳이 실제로 당신이 있는곳이라고 생각해봅시다. 이곳에서 돌아다니면서 여기가 어디인지 확인한다고 생각해봅시다. 왼쪽으로 가다가 코너를 만나면 돌고 또 코너를 만나면 돌 겁니다. 하지만 문을 보았을 때, 현재까지의 데이터를 이제 조각처럼 모아서 맵을 만들 수 있을 겁니다. 

 

  이와 같은 데이터가 취득될 곳은 사실 이곳 한 곳밖에 없습니다. 따라서 아까 있던 위치와 우리가 왔던 위치를 예측할 수 있게 됩니다. 이와 같은 과정을 어떻게 프로그램화할 수 있을까요? 바로 파티클 필터와 이와 같은 역할을 프로그래밍할 수 있습니다. 

 

  실제 위치에서의 데이터를 통해서 동일하게 분포된 있을 확률이 있는 위치기반 그래프가 다음과 같습니다. x와 y가 랜덤 하게 분포된 위치입니다. 

  현재 들어오는 라이다 데이터를 통해서 현재 로봇이 있는 위치를 맵에 따라서 50개 혹은 1000개 혹은 그 이상을 예측합니다. 그중 비슷한 것을 골라냅니다. 그리고 골라낸 데이터를 기반으로 다시 어디 있을지 예측합니다. 로봇이 움직이면서 라이다 데이터를 취득하고 움직이면서 오도메트리 정보를 취득합니다.

 

  코너를 만났을 때 코너는 방에 4개밖에 없기 때문에 많은 정보를 취득했다고 할 수 있습니다. 지금까지 취득된 데이터들 중에서 다시 어느 위치가 가장 가능성이 있는지 다시 골라냅니다. 아직은 코너가 여러 개 더 있기 때문에 확실하게 어디 있다고 말할 수 없겠지요. 다시 여러 집단의 데이터를 취득하면서 어디 있을지 예측합니다. 이와 같은 구조의 반복으로 현재 있는 위치가 수렴하게 됩니다.

 

  AMCL은 컴퓨팅 파워를 낭비하지 않는 좋은 파티클 필터 중 하나의 방법입니다. 자세한 사항은 다음의 링크에서 확인하세요. https://www.stats.ox.ac.uk/~doucet/doucet_johansen_tutorialPF2011.pdf

 

  파란색들의 점들이 바로 파티클들입니다. 필터를 통해서 많은 파티클들 중 자신의 위치가 어디 있는지 확인할 수 있는 것이지요. 시간이 지날수록 오른쪽의 사진과 같이 수렴하는 것이지요.


  이와 같이 파티클들이 무엇인지 필터를 통해서 파티클들을 어떻게 분류해내는지 알아보았습니다. 다음에는 칼만필터라는 개념을 영상을 통해서 요약하고 번역하는 과정을 통해서 공부하는 시간을 갖고, AMCL의 관련 예제를 직접 실행시켜보는 과정을 해보도록 하겠습니다. 

 

<출처 및 참고문헌>

https://www.youtube.com/watch?v=NrzmH_yerBU&feature=youtu.be&fbclid=IwAR0Gt2LGFQzYjnOHyvNBZL2PcRjiCG2YxQ1F2Cj8fVMLkYFg9qBtT5OU_5w