728x90

5.3.2 샘플링 알고리즘

 4.2.1장의 파티클 필터에서는 $x_t$, $u_t$, $x_{t-1}$를 계산하는 대신 모션 모델 p($x_t$ | $u_t$, $x_{t-1}$)로 샘플링을 해도 충분했었습니다. 이 조건부 밀도 확률로 샘플링하는건 밀도 확률을 계산하는것과 다른데, 샘플링에서는 $u_t$, $x_{t-1}$이 주어질때 동작 모델 p($x_t$ | $u_t$, $x_{t-1}$)에 대해서 임의의 $x_t$를 생성하게 됩니다. 하지만 밀도 함수를 계산시에 다른 평균으로부터 구한 $x_t$가 주어지면 p($x_t$ | $u_t$, $x_{t-1}$)를 따르는 $x_t$의 확률을 계산합니다.

 

표 5.3. 자세 샘플 알고리즘

- 위는 자세 $x_{t-1}$ = (x y $\theta$$)^T$와 제어 $u_t$ = (v $\omega$$)^T$로부터 샘플 자세 $x_t$ = (x' y' $\theta$'$)^T$를 구하는 알고리즘으로, 추가적인 임의의 값 $\hat{\gamma}$로 마지막의 방위가 동요됩니다. 여기서 $\alpha$ 1 ~ $\alpha$ 6까지는 동작 노이즈의 파리미터들이며, 샘플(b) 함수는 분포 b의 영평균으로부터 구한 샘플을 생성시킵니다. 이 함수는 표 5.4와 같습니다.

 

표 5.4 영평균, 분산 b를 따르는 근사 정규/삼각 분포로부터 샘플링 하는 알고리즘

- 여기서 함수 rand(x, y)는 구간 [x, y]에서 균일 분포를 따르는 난수 생성기가 됩니다.

 

 표 5.3의 샘플 동작 모델 속도 sample motion model velocity는 p($x_t$ | $u_t$, $x_{t-1}$)로부터 $u_t$와 $x_{t-1}$을 사용하여 임의의 샘플을 생성합니다. 여기서 $x_{t-1}$, $u_t$를 입력으로 하여 분포 p($x_t$ | $u_t$, $x_{t-1}$)를 따르는 임의의 자세 $x_t$를 만드는데, 2~4번째 줄은 동작 모델 기구학 에러 파라미터로 나타내는 노이즈로 인해 제어 파라미터를 동요시키게 되는데 이 노이즈 값들은 5 ~ 7줄에서 샘플의 새 자세를 만드는데 영향을 줍니다. 그래서 샘플링 과정은 예측 시에 제어 노이즈를 합치도록 물리적인 로봇의 동작 모델을 만들게 됩니다.

 

 

 그림 5.4는 샘플링 루틴의 결과로 여기서 샘플 동작 모델 속도로 500개의 샘플을 생성한 것을 볼 수 있습니다. 그림 5.3의 밀도와 한번 비교해서 보세요.

 

 그동안 많은 경우들에서 $x_t$가 주어질때 밀도를 계산하기 보다 $x_t$를 샘플링하는게 쉽다는 것을 볼 수 있었습니다. 이는 샘플이 물리적인 동작 모델의 전방향 시뮬레이션을 요구하기 때문인데, 가정 자세에 대한 확률을 계싼하기 위해서 물리적 동작 모델의 역을 계산하는게 필요하기 때문입니다. 파티클 필터는 점을 이용하여 구현함으로서 더 쉽게 수행할 수 있습니다.

 

 

 

300x250

+ Recent posts