Motion model과 Observation model은 로봇의 현재 상태와 센서 관측치를 바탕으로 로봇의 위치를 추정하는데 중요한 역할을 합니다.
motion model은 로봇이 특정한 입력을 받았을 때, 이전 상태에서 새로운 상태로 어떻게 이동할지를
확률적으로 나타내는 모델입니다. 이 모델은 로봇의 움직임에 관한 추정치를 제공합니다.
예를 들어 이렇게 motion model을 설정할 수 있습니다.
u는 움직임을 나타내는 control vector이고 v는 control vector의 noise입니다.
내 위치에서 어디로 가라고 넣고 그 입력의 noise를 포함하여 motion model을 정의할 수 있습니다.
이렇게 시간에 따른 움직임을 나타내는 수식을 motion model이라고 합니다.
왜 확률적으로 나타내나요?
저희가 명령을 아무리 정확하게 "10m가!"라고 줘도 정확히 로봇이 10m가는 것은 어렵습니다.
로봇이 흔들리거나 바퀴가 미끌어지거나 하는 등의 문제로 이동하는 거리가 달라질 수도 있기 때문에 확률적으로 표현하여 noise를 고려하여 계산할 수 있기 때문입니다.
Observation model은 로봇이 특정 위치에 있을 때, 주변 환경에 대해 센서를 통해 어떤 곽측을 할 가능성이 있는지를 나타내는 모델입니다. 이 모델은 로봇이 센서를 통해 얻는 정보를 바탕으로 현재 위치를 추정하는데 사용됩니다.
센서의 값들이 정확하지 않기 때문에 noise model을 첨가하여 확률적으로 관측 모델을 만듭니다.
Kalman filter 또는 Particle filter 같은 알고리즘에서 motion model을 통해 로봇의 이동을 예측하고 observation model이 센서 데이터와 비교하여 예측을 보정하는 방식으로 활용됩니다.
이 두 모델을 통해 센서나 이동과정에서 생기는 노이즈를 고려하고 더 정확한 위치추정이 가능해집니다.