2014년 8월 19일 화요일

VFF(Virtual Force Field), VFH(Vector Field Histogram)

VFF(Virtual Force Field), VFH(Vector Field Histogram)

 VFF또는 APF(Artificial Potential Field)는 가상 중력 벡터장 정도로 번역해서 사용된다. 기본적인 개념은 국소지역에서 장애물을 회피하기 위해서는 장애물에서 밀어내는 힘이 발생하고, 목적지에서 당기는 힘이 발생되는 단위 벡터장을 만드는 것이다. 벡터장위의 로봇은 물이 아래로 흐르는 것처럼 자연스럽게 목적지로 인도된다.

VFF
원본이미지: http://www-personal.umich.edu/~johannb/vff&vfh.htm
 VFF 방법의 약점은 좁은 통로와 같이 장애물이 빈번하게 자리 잡고 있는 지역을 통과해야 하는 경우에 척력의 힘이 교차하기 때문에 아래 그림 처럼 진동하는 성향을 보인다는 것이다.

VFH
원본이미지: http://www-personal.umich.edu/~johannb/vff&vfh.htm
 그 대안이 VFH이다. 그림에서 보는 것처럼 극좌표로 형성된 히스토그램의 굴곡에서 계곡으로 진행하면 장애물이 가장 없는 방향으로 진행하는 것이 되고 그 중에서 목적지와 가장 가까운 방향을 선택하면 된다.


VFH
원본이미지: http://www-personal.umich.edu/~johannb/vff&vfh.htm

VFH
원본이미지: http://www-personal.umich.edu/~johannb/vff&vfh.htm

어떻게 갈 것인가?(How do I get there? - Path planning)

어떻게 갈 것인가?(How do I get there? - Path planning)


 어디를 가고 있는지, 어디에 있는 문제가 해결되고 나면 정말로 지능화된 행동을 취할 수 있는 필요조건을 갖춘 셈이다. 정보만 있다고 이동을 할 수 있는 것은 아니니 어떻게 갈 것 인가의 문제가 대두된다. Path planning은 Localization과 Mapping문제와는 조금 다른 성향을 가지는데, 실제로 운동을 하기 때문에 로봇의 움직임을 제어 해야하고, 실험실내의 환경이 아니라면 위험한 상황이 발생할 수 있기 때문이다.

 다른 분야의 연구와 마찬가지로 다른 전제 조건이 주어진 상태에서 출발된 개념이 많다. 크게는 국소지역에서 장애물을 회피 주행하는 기법과 출발점과 도착점이 주어졌을 경우 최단거리를 계산하는 방법으로 나누어 볼 수 있으며 몇 가지 대표적인 방법에 대해서만 소개한다.

드라마 '카이스트'와 VFF

 VFF를 우리나라에서 일반인들에게 친숙하게(?) 만든 것은 드라마 '카이스트'에서 였을 것이다.

 당시 모래시계로 이름을 알린 김정현씨가 게으른 천재 느낌으로 출연하는데, 로봇 축구에서 상대 로봇을 회피해서 골을 넣은 방법을 회의하는 장면이 나온다. 그 때 김정현씨가 외치는 말 "Magnetic force field!" 정확한 대사는 기억이 나지 않지만 비슷한 느낌으로 말했던 것 같다.
 장애물에서는 척력(repulsive force)이 발생하고 목적지에서는 인력(attractive force)가 발생하는 방법을 사용하면 되지 않냐고 말한다. 사실 드라마의 배경이 되었던, 카이스트의 전자과의 김종환 교수는 우리나라 로봇축구를 세계에 알린 인물이다. 실제로 그 연구실에서 기법을 개발했던 사람은 어떤 기분이 들었을까? VFF(Virtual Force Field)를 우리나라에서 처음 만든 것은 아니지만 로봇 축구에 실제 적용으로 당시에 많은 호응을 얻었던 것으로 기억한다.
 의학, 법학과 관련된 드라마는 많지만 공학에 관련된 드라마는 그리 많지 않다. 미국의 'Big bang theory'의 출연자들이 차기작을 엄청난 거액의 출연료로 계약한 사례를 보면 우리도 공학분야로도 충분히 재미있는 작품을 만들 수 있을 거라는 기대가 든다.(출연자의 계약 금액이 드라마의 질과 반드시 비례하지는 않지만 인기가 반영된 결과라는 추정에서) 꼭 미국식 nerd 개그가 아니라도 말이다.

점유 격자 지도(Occupancy grid)

Occupancy grid mapping

점유 격자 지도

 이동 로봇의 지도 작성에 대해 관심을 가지기 시작한 시절(1980년대 후반)에는 현재보다 센서와 프로세서의 성능이 현저히 낮았다. 센서들은 물리적인 모델을 잘 따라오지 못했고, 바퀴의 인코더로부터 얻을 수 있는 오도메트리(Odometry) 정보는 그 불확실성을 더하게 만들었다.

 그러한 상황에서 확률 기반의 지도 작성 방법을 가장 이상적으로 적용할 수 있는 현실적인 방법이었을 것이다. 여기서 다시 한 번 베이지안 추론 방법이 적용된다.



 각 셀의 점유 확률을 구하는 것이 목적이며, 사전 정보가 없는 미확인 지역에 대해서는 0.5의 사전 확률로 채운다. 그림에서 보인 것은 초음파 센서의 확률 모델인데, 이것이 현재 로봇 위치에서 취득된 값에 대한 우도(Likelihood)가 된다. 초음파 센서는 편각 15도를 가지는 원뿔형태로 방사되는 특징을 가지고 있다. 그러므로 초음파 센서가 인식한 거리는 방사각 만큼의 불확실성을 가지고 있다는 의미가 있다.

이미지 원본: www.frc.ri.cmu.edu

 Metric mapping은 실제 거리 정보에 대해 알고 있으므로 경로 계획에도 중요한 자산이 된다.

어디를 가고 있는가?(Where am I going? - Mapping)


어디를 가고 있는가?(Where am I going? - Mapping)


 어디를 가고 있는가?라는 문제를 해석하기 위해서는 반드시 자기 위치 인식이 필요하다. 이동 로봇의 플랫폼에 장착되어 있을 거리 센서와 영상 정보들은 최초 설정된 글로벌 좌표가 아닌 현재 구동중인 위치를 기준으로 결과를 얻을 수 있기 때문이다.


 \(x_t\)에서 취득한 센서 정보는 \(x_t\)좌표에 대한 것이며, 글로벌 좌표 \(X_g, Y_g\)로 변환해야 하나의 지도에서 관측량을 정의할 수 있다. 불운하게도, 이 과정에서 로봇의 이동 변위에 대한 오차 때문에 정확한 위치에 기입하지 못하는 경우가 생길 수 있다.(이 부분은 Dead reckoning이 가지고 있는 치명적인 단점이다. 관성항법에서도 비슷한 문제를 경험할 수 있는데, 절대 위치를 보정할 수 있는 GPS가 있기 때문에 다행이 특수한 경우가 아니면 큰 문제가 발생하지 않는다.)

 더욱이, 초기에 로봇의 위치를 측정하는 기준은 고가의 센서가 아니라 바퀴에 달린 엔코더에 의존하는 경우가 많았고, 센서의 정확도도 현재보다 더욱 부정확했기 때문에 다시 한 번 확률 기반의 지도 작성 방법이 제안되었다.

 환경 지도를 작성하는 방법론의 관점에서 크게 
  • 위상 지도(Topological mapping)
  • 격자 지도(Metric mapping)
로 분류하여 볼 수 있는데, 위상 지도는 에지와 노드로 구성된 그래프로 중요한 지점과 그 연결정를 가지고 있는 형태의 지도를 말한다. 반대로 격자 지도는 일반적으로 3차원 공간을 2차원 평면에 투영한 형태의 지도를 말한다. Metric이란 수식어에서 알 수 있는 것처럼 각 지점 간의 거리를 스케일로부터 얻을 수 있다.

격자 지도를 대표하는 방법은 Occupancy grid이다.

베이지안 추정 필터(Bayesian recursive filter)


베이지안 추정 필터(Bayesian recursive filter)


 기본적인 베이즈의 정리는 다음과 같다.


 확률론을 기반으로 한 로봇의 위치 추정 문제의 근본이 되는 개념이다.

 베이즈의 정리를 구체적으로 기술한 문서들은 많이 있으므로 기본적인 개념만 서술하면, 모르는 사후확률을 계산할 때 알고 있는 확률과 현재 상태에 대한 확률을 이용하는 개념이다. 가령 스팸메일로 추정되는 메일에는 "대리운전"이라는 문자가 포함되어 있을 확률을 알고 있다면, 해당 메일이 스팸메일일 확률을 계산할 수 있다는 식이다.

 이동 로봇처럼 연속된 상태를 갖는 경우에는 시간의 흐름에 대해서 재귀적으로 베이지안 추정을 적용할 수 있게 된다. 위치 추정뿐만 아니라 물체 인식/분류와 같은 분야에도 광범위하게 적용될 수 있는데, 최근엔 naive bayes라는 이름으로 적용되고 있다. 1700년대에 최초로 제안되었던 것을 생각하면 베이즈의 위대함을 느낄 수 있다.

 마르코프 체인과 함께 정리하면 다음 그림과 같다.



 베이지안 추정 필터의 원리를 재미있는 예로 소개한 것이 S. Thrun의 저서 Probabilistic Robotics에 있는데, 이것을 소개한다.

 문제 정의 : 로봇의 팔이 문을 여는 동작을 할 경우 문이 열릴 확률과 센서로 문이 열렸는지 감지했을 때 정말로 열려있을 확률을 알고 있을 때 문의 현재 상태에 대해서 베이지안 추론을 적용할 수 있는가?

 문제 적용 : 문의 현재 상태(열림, 닫힘)는 상태 벡터를 \(x_t\),  문에 대한 사전 확률은 \(x_{t-1}\)로 정의할 수 있다. 센서를 통해서 감지하는 문의 상태 우도(likelihood)는 \(p(z_t|x_t)\)가 된다.





몬테카를로 마르코프 위치 인식 방법(MCMC(Monte-Carlo Markov Chain) Localization)

몬테카를로 마르코프 위치 인식 방법

MCMC(Monte-Carlo Markov Chain) Localization


 이동 로봇이 어디선가 이동하고 있는데 현재 얻을 수 있는 정보는 거리 센서로부터 얻은 정보이거나 영상으로 부터 입력된 사진등일 경우 로봇의 현재 위치를 어떻게 추정하면 좋을까?
 바로 이전의 위치를 알고 있다면 순간이동을 하지 않는다면, 짧은 시간 내에서는 비슷한 위치에 있을 것임을 추론할 수 있다. 바로 이전의 위치를 정확하게 알 수 없다면, 확률적으로 가중치를 부여한 이전 위치에 대한 다음 위치를 마찬가지로 구해낼 수 있을 것이다.
  이것을 수식화하고 실제 구현을 통해 증명한 것이 Sebastian Thrun이다. Thrun은 현재에도 스탠포드 교수로 재직하면서 활발한 연구를 하고 있다. 구글 무인 자동차 연구 그룹의 수장으로 알려져 있다.

 마르코프 위치 인식에 대해서 이해하자면 베이지안 추정 필터에 대한 이해가 필요하다.

\( Pr(\xi^{(t)}|s^{(t)}) = \frac{Pr(s^{(t)}|\xi^{(t)})Pr(\xi^{(t)})}{Pr(s^{(t)})} \)

 확률론에서 마르코프 체인은 바로 다음의 상태는 과거의 상태가 현재까지 축적된 현재 상태에만 기인한다는 이론이다. 상식적으로도 그렇지 않은가? 로봇이 움직이는 다음 위치는 바로 이전 상태에만 관계가 있지, 그 보다 과거의 상태에 영향을 받을 이유는 없다.

 첨자들과 표기가 바뀌었지만 베이지안 추정 필터에서 소개한 것과 별반 다를 바 없는 식이다.

 실제 구현에서는 몬테카를로 기법을 여기에 함께 사용하는 이유는 연속(Continuous)신호를 표현한 수식을 구현하다 보면 필연적으로 데이터 분해능과 성능의 저하가 발생하기 때문이다. 몬테카를로 방법도 마찬가지로 반복의 횟수와 샘플의 갯수에 따라 성능의 차이가 있지만만, 충분히 많은 수의 샘플을 사용하면 만족할만한 정확도를 얻을 수 있다.

 다음 그림과 동영상은 실제로 Minerva에서 사용된 천정 영상과 Occupancy grid에 대한 위치 인식을 수행한 결과이다.