본문 바로가기

Enginius/Robotics

Pedestrian motion modelling papers


로보틱스에서 사람의 움직임을 예측하는 것은 매우 중요한 일이다. 예를 들어 무인 자동차를 만들었는데 위의 그림과 같은 일이 일어나면 안되지않겠는가. 사실 이는 비젼 쪽에서도 매우 중요한 일이기도 하다. 감시 카메라와 같은 경우, 사람의 움직임을 track할 때, 이 사람의 미래 위치에 대해 대략적인 prior distribution을 안다면 전체적인 알고리즘이 훨씬 가벼워질 수 있기 때문이다. 




1. Kim, Sujeong, et al. "Predicting pedestrian trajectories using velocity-space reasoning." Algorithmic Foundations of Robotics X. Springer Berlin Heidelberg, 2013. 609-623. 

 

 위의 논문은 사람의 움직임을 아래와 같은 시스템으로 모델링을 한 후에, 

$$ x_{t+1} = f(x_t) + w_d$$

$$ z_t = h(x_t) + w_m $$

 Dynamic model에 해당하는 '$f()$'를 RVO 시뮬레이터로 대체한 Adaptation motion model을 제안한다. 여기서 RVO는 Reciprocal Velocity Obstacles의 약자이다. Reciprocal은 상호간의 란 의미를 갖는 단어이다.. 

위의 그림이 해당 알고리즘의 전체 흐름을 나타낸다. 여기서 RVO 시뮬레이터가 중요한데, 의미는 간단하다.

어떤 로봇의 선호 속도 '$v_{pref}$'가 있을 때, 해당 로봇의 속도는 충돌이 일어나지않는 속도의 범위 내에서 '$v_{pref}$'와 가장 가까운 '$v$'를 고른다. 


그리고 이를 Bayesian으로 확장해서 해당 속도가 가질 수 있는 분포 (또는 이를 이용해서 위치가 가질 수 있는 분포) 를 표현하게 하는 것이 BRVO이다. 

이를 그림으로 표현해보면 위와 같은데 (a)가 RVO 시뮬레이터의 동작을 나타내고, (b)가 가질 수 있는 위치의 분포를 나타낸다. 이러한 분포가 들어왔을 때 Ensemble Kalman Filter를 통해서 이동 궤적을 구하면 (State Estimation) 끝이다. State는 위치와 속도를 나타낸다. 




2. Luber, Matthias, et al. "Socially-aware robot navigation: A learning approach." Intelligent Robots and Systems (IROS), 2012 IEEE/RSJ International Conference on. IEEE, 2012.


 이 논문 역시 간단하다. 

1. 사람들의 행동을 보고 relative motion behavior를 구한다. 

2. 구한 행동들을 바탕으로 cost를 구한다. 

3. cost를 최적화하는 A* 알고리즘 (Theta*)을 통해서 로봇의 행동을 구한다. 


결국 여기서 말하는 학습 기반이란 것은 이 cost를 구하는 과정을 나타낸다. 좀 더 수식을 써보면 relative motion prototype (RMP) '$R_{i, j}$'는 '$i$'번째와 '$j$'번째 사람 사이의 상대 동작을 나타내고 당순히 둘 사이의 거리의 변화를 의미한다. 

$$ d_{i, j}(t) = || z_i(t) - z_j(t) ||$$

$$ R_{i, j} = | d_{i, j}(t_s), ... , d_{i, j}(t_e) | $$

이고, 이는 '$t_s$'에서 '$t_e$'까지의 행동을 의미한다. 


물론 모은 시간이 데이터마다 다를 것이다. 이를 Dynamic Time Warping (DTW)로 일정하게 만든 후에, clustering을 한다. Hierarchical agglomerative clustering with average linkage를 썼다는데 이게 무엇인지는 중요하지 않을 것 같다. 여기서 Asymmetric DTW를 제안하였다. 


결국  RMP는 해당 상황에 사람의 행동을 의미한다. 그리고, 특정 데이터들이 들어왔을 때, 기존에 갖고 있는 RMP 중에 현재와 제일 비슷한 것을 찾은 후 (Bayesian Information Criterion을 이용)에 해당 RMP에서 행동한것과 같이 행동을 한다. 물론 time scale 문제가 있으므로 DTW를 해준다. 

=> 이렇게 구한 RMP를 기준으로 각도에 대한 cost map을 만들고, 이를 Theta* 란 알고리즘을 이용해서 푼다. 

=> Cost map이 update되면 replan한다....???!?!? 

위의 그림이 결과를 보여주는데, 왼쪽이 실제 사람의 이동 경로, 가운데와 오른쪽이 A*와 Theta*를 이용해서 푼 것을 나타낸다. 초록색 선이 RMP를 이용한 제안된 알고리즘이고, 붉은색은 baseline이다. Proxemics 이론을 썼다는데 정확한 설명은 없다. 





3. Yamaguchi, Kota, et al. "Who are you with and Where are you going?." Computer Vision and Pattern Recognition (CVPR), 2011 IEEE Conference on. IEEE, 2011.


CVPR 논문이다! 그만큼 복잡하다. 하지만 어렵진 않다. 

큰 그림만 보이자면, 엄청 복잡한 에너지 함수를 만들고, 파라미터를 데이터를 통해서 풀었다..가 전부인듯 하다. 물론 CVPR인만큼 수천개의 웹캠이 있는 상황에서 몰 해본다 모 이런 말이 있지만 사실 별거 없다. 

다른 것이랑 조금 차별화를 했다면 group의 정보를 explicit하게 나타낸다는 것이다. 즉 사람들을 하나하나 indexing했을 때 group이라는 index set을 명확히 latent variable로 가지고 있고, 최적화식에 포함시켰다. 

이 논문의 위의 에너지 함수가 전부이다. v가 속도, s가 상태를 의미한다. 상태는 물론 위치와 속도, 등의 정보를 가지고 있다. 

1. '$E_{damping}$'은 속도 변화를 최소화

2. '$E_{speed}$'는 원하는 속도와의 차이를 줄인다. 

3. '$E_{direction}$'은 goal까지 각도를 맞춘다. 

4. '$E_{attraction}$'은 group의 무게중심과 자신의 위치를 가깝게 한다. 

5. '$E_{group}$'은 group의 평균 속도와 현재 속도를 비슷하게 한다. 

6. '$E_{collision}$'은 충돌을 하지 않게 한다. 


딱 봐도 엄청 파라미터가 많이 필요하다. 이게 실제로 돌아가는게 더 신기하다.




4. Pellegrini, Stefano, et al. "You'll never walk alone: Modeling social behavior for multi-target tracking." Computer Vision, 2009 IEEE 12th International Conference on. IEEE, 2009.

위의 그림에서 파란색에 가까울 수록 좋은 방향을 의미하고, 흰 색 십자가가 실제로 선택된 방향을 의미한다. 


ICCV 논문이다. 이 논문은 생각보다 citation이 많다. 


이 논문에서는 Linear Trajectory Avoidance (LTA)를 제안한다. 


움직이고 있는 물체는 위치와 속도로 표현하고, 물체들의 에너지 함수를 설정하고, 이 함수를 최소로 하는 방향으로 물체들이 이동할 것을 가정한다. 위의 논문과 똑같지 않는가!!.. 


여튼 이 논문에서 가장 중요한 식은 다음과 같다. 

$$ E_i(v_i) = I_i(v_i) + \lambda_1 S_i(v_i) + \lambda_2D_i(v_i)  $$

'$i$'번째 움직이는 물체에 대한 에너지는 세 가지 term으로 이뤄진다. 

1. '$I(v)$'는 주변에서 있는 (일정 거리 내에 있는) 물체들 사이의 거리를 일정 값 이상으로 해주려고 만든 함수이다. 각 물체에 대해서 weighted sum의 꼴이고, weight는 물체 사이의 거리와 각도에 달려있다. 

2. '$S(v)$'는 원하는 속도와 현재 속도 사이의 차이를 최소로 하게 한다. 

3. '$D(v)$'는 목적지에 가깝게 가게 한다. 


여기서 역시 여러 파라미터가 필요한데 이는 유전 알고리즘 (GA)를 통해서 얻었다고만 되어있다. 

위의 그림이 이 알고리즘이 실제로 동작할 때 어떻게 쓰이나를 보여준다. 중간에 보이는 그림에서 x축이 각도를 의미하고, y축이 장애물 사이의 거리를 나타낸다. 




'Enginius > Robotics' 카테고리의 다른 글

ROS - Pioneer control using Gazebo simulator  (0) 2014.07.21
ROS 사용하기  (0) 2014.07.21
MICROSOFT ROBOTICS KINECT NAVIGATION EVENT CONTEST  (0) 2014.05.09
Arduino in Robot!  (0) 2014.04.04
Vector Field Histogram in Dynamic Environment  (0) 2014.03.24