칼만 필터와 베이지안 필터 in python 저장소 일부분을 번역했습니다.
rlabbe 이 분이 책이랑 같이 내용들을 공개해 놓으셨고
아래가 책 pdf 버전과 깃헙 저장소 주소 입니다.
drive.google.com/open?id=0By_SW19c1BfhSVFzNHc0SjduNzg
https://github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python
칼만 필터와 베이즈 필터는 무엇일까요?
우리가 사용하는 센서들은 노이즈가 존재하며, 우리가 사는 곳은 데이터로 가득합니다. 우리는 센서로 측정하고 추적을 하고 싶지만 센서는 노이즈로 인해 완벽한 정보를 주지는 않습니다. 자동차에 GPS가 장착됬을때를 생각해보면 도로위에 같은 지점에 서있더라도 gps는 조금씩 다른 위치에 있다고 알려줄 겁니다.
이런 단순한 상황만 봐도 해결방법은 간단합니다. 읽은 데이터로 부터 서로다른 가중치를 주고 그들의 평균을 구하면 정확한 값을 구하게 됩니다. 하지만 이 센서의 노이즈가 아주 심하다거나 데이터를 수집하기 힘든 환경인 경우 어떻게 해야할까요? 날아가는 비행체의 위치를 추적한다고 하거나 드론에 사용할 오토파일럿을 만드는 경우 들도 생각해봅시다. 저는 컴퓨터 비전을 연구하다보니 영상으로 움직이는 물체를 추적해야 합니다. 하지만 컴퓨터 비전 알고리즘들은 노이즈가 심하고 신뢰할수 없는 결과를 만들어내요.
이 책은 이러한 필터 문제들을 푸는 방법들을 알려줄겁니다. 저는 다양한 알고리즘들을 사용할거지만 모두 베이지안 확률 bayesian probability에 기반합니다. 베이지안 확률을 간단히 정리하자면 이전의 정보를 이용해서 실제와 비슷한 값을 구하는데 사용되비다.
제가 당신에게 지금 차의 머리 방향을 묻는다면 어떻게 대답해야 할지 모를겁니다. 아마 1도에서 360도 사이의 수가 되겠지만, 2초 전에 차의 해딩이 243도 이고, 2초가 지난후에도 차가 회전하지 않았다면 이전 보다는 신뢰할수 있는 예측값을 구할수 있을 겁니다. 이런식으로 이전 정보로 현재나 미래의 정보를 보다 정확하게 추정을 할수 있게 됩니다.
여기에 베이지안 확률이 사용됩니다. 중요한 개념으로 불확실성 uncertain이 있으며, 측정 값을 얼마나 신뢰 할수 있는지에 따라서 신뢰도를 바꾸어 갈겁니다. 칼만 필터와 베이지안 필터는 노이즈와 시스템의 동작 그리고 센서 값을 사용해서 가장 신뢰할수 있는 시스템의 상태를 추정해 나갑니다.
이제 우리는 움직이는 물체를 추적하는 중이고, 센서가 갑자기 물체의 방향이 바뀌었다고 알려줍니다. 실제로 회전이 발생한 걸가요? 그 데이터가 노이즈를 가지고 있는 걸가요? 이는 시스템에 따라 고려해볼수 있는데 만약 이물체가 제트 파이터라면 갑자기 조종해서 바꾼 것이라고 볼수 있지만, 일직선으로 지나가는 기차인 경우에는 노이즈를 무시해도 될겁니다. 더 나아가 우리는 센서의 정확도에 따라서 신뢰도를 바꿀수 있으며, 이 신뢰도는 이전 정보와 우리가 알고있는 시스템에 대한 정보 그리고 센서의 특성에 의존하게 될겁니다.
칼만 필터는 루돌프 에밀 칼만이 최적화 문제를 수학적으로 풀기 위해 만들었으며 달에 갈때 아폴로 미션에서 처음 사용되었습니다. 그리고 이 기술은 현제 수많은 분야에서 사용되고 있습니다. 칼만 필터는 비행체나 잠수함, 크루즈 미사일 등에서 사용되고 있으며 월 스트리트 역시 시장을 예측하는데도 사용하며 로봇, IoT 등 다양한 환경에서 사용되는 중입니다.
'로봇 > 로봇' 카테고리의 다른 글
칼만, 베이즈 필터 - 파티클 필터 개요와 몬테카를로 방법 (0) | 2020.06.20 |
---|---|
파이썬 로보틱스 - 위치추정, 확장 칼만 필터 (0) | 2020.06.20 |
파이썬 로보틱스 - 칼만 필터 기초 파트 2 (0) | 2020.06.19 |
파이썬 로보틱스 - 칼만 필터 기초 파트 1 (0) | 2020.06.18 |
파이썬 로보틱스 (1) | 2020.06.18 |