포스트

Data-Driven Modeling and Rendering of Force Responses from Elastic Tool Deformation 리뷰

Data-Driven Modeling and Rendering of Force Responses from Elastic Tool Deformation 리뷰

Abdulali, Arsen, Ruslan Rakhmatov, Tatyana Ogay, and Seokhee Jeon. “Data-Driven Modeling and Rendering of Force Responses from Elastic Tool Deformation.” Sensors 18.1 (2018): 237.

도입

숟가락 끝을 책상에 대고 손잡이를 누르면 숟가락이 휘면서 손에 반작용 힘이 전달된다. 같은 거리만큼 누르더라도 숟가락의 어느 부분이 닿았는지, 어떤 방향으로 눌렀는지에 따라 힘은 달라진다. 도구가 크게 휘어서 다른 부분까지 책상에 닿으면 힘의 변화도 복잡해진다. 이 연구에서는 이러한 탄성 도구의 변형에서 발생하는 힘을 햅틱 장치로 재현한다. 실제 도구를 누르면서 접촉 위치와 변형 상태, 반작용 힘을 기록하고, 이 데이터로 학습한 모델이 가상 도구의 상태에 맞는 힘을 출력하도록 한다.

배경

선행 연구였던 god-object 방법에서는 실제 장치의 입력 점과 가상 환경에서 허용되는 접촉 위치를 구분해 반작용 힘 반환에 사용했다. 입력 점이 이 가상 물체 내부로 들어가더라도 god-object는 표면에 남기고, 입력 점과 god-object의 위치 차이를 계산해 반작용 힘을 구했다.

Proxy 방법에서는 이 god-object 방법에서 재질을 다루지 못하는 점을 개선해 복잡한 표면과 마찰, 점성, 강성, 질감 등을 다루었다. voxel sampling 방법에서는 조작하는 물체를 point shell로 표현하고, 여러 접점에서 발생하는 힘과 토크를 합산하여 6자유도 강체 조작을 처리했다. voxel sampling 방법은 proxy 방법과 달리 다시 강체만을 다루었지만 6자유도 처리를 고속으로 수행할 수 있었다.

주요한 개선

이 연구에서는 복잡한 물리 계산을 수행하지 않고, 사전에 데이터를 수집해 모델을 학습시켜 힘을 추정하도록 했다. 이렇게 하여 도구의 변형이 복잡해도, 입력과 출력 사이의 관계를 모델이 학습한 범위 내에서 처리할 수 있다.

도구의 접촉과 변형 상태를 6차원 표현으로 입력

연구에서는 최초 순간의 접촉 위치 3차원 벡터와 변형 상태 3차원 벡터를 결합해 한 데 처리했다. 두 벡터는 모두 도구의 로컬 좌표계에서 표현한다.

\[\mathbf{u} = \langle \mathbf{p}, \mathbf{v} \rangle = \langle p_x,p_y,p_z,v_x,v_y,v_z \rangle\]

$\mathbf{p}$ 는 도구 표면에서 처음 접촉한 위치이다. $\mathbf{v}$ 는 도구가 변형되지 않았다고 가정했을 때의 최초 접촉점과, 환경 표면에 고정해 둔 최초 접촉점 사이의 차이이다. 논문에서는 이를 translation vector라고 명명했다.

이 표현을 사용하면 도구 전체의 변형된 형상을 구하지 않고도, 최초 접촉점과 현재 도구의 위치·자세로 모델 입력을 구성할 수 있다. 또한 글로벌 좌표계의 특정 위치에 종속되지 않으므로, 기록 장치와 렌더링 장치에서 좌표계를 변환하여 같은 모델을 사용할 수 있다.

* 여기서 6차원 입력은 전체 처리 과정에서 6차원 입력을 그대로 사용하는 것이 아닌데다, 3자유도 힘과 3자유도 토크 값을 결합한 6자유도 값이 아니라는 점에서 앞선 voxel sampling 연구에서의 6자유도 값과 구분해야 한다. 이 연구에서 출력하는 값은 도구 원점에서의 3차원 힘 벡터이다. 토크는 모델 출력에 포함되지 않는다.

복잡한 변형이 만드는 힘을 실측 데이터로 학습

같은 도구에서도 접촉 위치나 누르는 방향에 따라 유효 강성이 달라질 수 있다. 도구가 더 휘면서 여러 부분이 표면에 닿거나, 도구의 일부가 다른 부분과 접촉하면 힘이 비선형적으로 변할 수도 있다.

이 연구는 입력 $\mathbf{u}$ 와 측정한 힘 $\mathbf{f}$ 사이의 관계를 radial basis functions network(RBFN)로 학습한다. 따라서 각 상황마다 별도의 강성 식을 설계하지 않아도, 기록된 데이터에 포함된 비선형적인 힘의 변화를 모델에 반영할 수 있다.

논문에서는 다중 접촉, 자기 충돌, 구름 접촉을 지원할 수 있다고 설명한다. 여기서 다중 접촉과 자기 충돌을 지원한다는 것은 각 접촉의 위치와 반작용 힘을 별도로 계산한다는 의미는 아니다. 변형이 발생했을 때 도구 원점에 전달된 힘을 학습하고 재현하는 것이기 때문에, 학습하지 않은 임의의 접촉 배치까지 정확하게 처리한다고 해석해서는 안된다.

충돌 검출과 힘 추정을 분리해 처리

렌더링에서는 충돌 모델로 최초 접촉점을 찾고, 햅틱 모델로 힘을 추정한다. 동시에 시각적으로 표시하는 메시도 별도로 준비한다. 이 구조에서는 힘을 계산하기 위해 시각 메시 전체의 변형을 기다릴 필요가 없다. 구현에서는 힘을 1000 Hz로 갱신하고, 시각 렌더링은 별도의 스레드에서 60 Hz로 실행하도록 했다.

상세 사항

최초 접촉점과 translation vector

이 방법은 도구가 평평한 강체 표면과 접촉하고, 접촉 중 미끄러지지 않는다고 가정한다. 접촉이 시작되는 순간에는 다음의 두 점이 일치한다.

  • 로컬 최초 접촉점 $\mathbf{p}$ 는 도구의 로컬 좌표계에 고정한다.
  • 전역 최초 접촉점 $\mathbf{p}’$ 는 환경 표면의 글로벌 좌표계에 고정한다.

이후 손잡이를 움직이면, 변형되지 않은 도구를 기준으로 잡은 로컬 최초 접촉점은 도구의 위치, 자세를 따라 이동한다. 하지만 전역 최초 접촉점은 같은 위치를 유지한다.

여기서 유래되는 차이를 이용하여, 두 점을 같은 좌표계로 표현, 차이를 구하면 변형 상태를 나타내는 벡터를 얻을 수 있다.


도구의 로컬 좌표를 전역 좌표로 옮기는 회전 행렬을 $R$, 도구 원점의 글로벌 좌표를 $\mathbf{t}$, 글로벌 좌표에 고정한 최초 접촉점을 $\mathbf{c}$ 라고 할 때, 현재 도구 좌표계에서 전역 최초 접촉점 $\mathbf{p}’_{\mathrm{local}}$ 는 다음과 같이 계산할 수 있다.

\[\mathbf{p}'_{\mathrm{local}} = R^T(\mathbf{c}-\mathbf{t})\]

따라서 모델에 입력하는 translation vector $\mathbf{v}$ 는 다음과 같이 계산한다. 여기서 $\mathbf{p}$ 는 도구의 로컬 좌표계에서 최초 접촉점이다.

\[\mathbf{v}=R^T(\mathbf{c}-\mathbf{t})-\mathbf{p}\]

처음 접촉했을 때는 $\mathbf{v}=\mathbf{0}$ 이다. 이후 손잡이의 위치와 자세가 변하면 $\mathbf{v}$ 의 크기와 방향이 달라진다. 구름 접촉에서는 실제 접촉 위치가 바뀌더라도 최초에 정한 두 기준점의 관계를 계속 사용한다.


God-object에서도 두 점의 차이로 힘을 계산했지만, 이번 방법에서는 그 차이에 일정한 스프링 강성을 곱하지는 않았다. 최초 접촉 위치와 벡터를 함께 입력하여 학습된 비선형 힘을 구한다.

힘 보간

출력 축 $x$, $y$, $z$를 구분하는 첨자 $t$ 를 사용해, 힘의 각 성분 $f_t$ 를 다음과 같이 계산한다.

\[f_t(\mathbf{u}) = \sum_{j=1}^{N} w_{tj}\phi(\|\mathbf{u}-\mathbf{q}_j\|) + \sum_{k=1}^{L} d_{tk}g_k(\mathbf{u})\]

$\mathbf{q}j$ 는 RBF 중심, $w{tj}$ 는 가중치이다. 입력과 각 중심 사이의 거리를 RBF에 넣은 값을 가중 합산하고 다항식 항을 더한다. 이 연구에서는 cubic spline 커널 $\phi(r)=r^3$을 사용하며, 보간의 안정성을 위해 다항식 항을 포함한다.

가중치와 다항식 계수는 기록된 입력·출력으로 구성한 다음 선형 시스템에서 구한다.

\[\begin{bmatrix} \Phi & G \\ G^T & 0 \end{bmatrix} \begin{bmatrix} \mathbf{w}_t \\ \mathbf{d}_t \end{bmatrix} = \begin{bmatrix} \mathbf{f}_t \\ 0 \end{bmatrix}\]

여기서 $\Phi_{ij}=\phi(|\mathbf{u}i-\mathbf{u}_j|)$이고, $G{ik}=g_k(\mathbf{u}_i)$이다. 이 연구에서는 큰 보간 행렬을 처리하는 비용을 줄이기 위해 $l_1$ 최소화 기법인 SpaRSA를 사용한다고 설명한다. 힘의 세 성분은 각각 독립적으로 추정한다.

이 계산에서 RBFN 자체가 새롭게 제안된 것은 아니다. 기존 보간 방법에 탄성 도구의 접촉과 변형을 나타내는 입력 공간을 결합한 데 의미가 있다.

데이터 수집과 표본 선택

연구진은 힘 센서, 위치/자세를 측정하는 햅틱 장치, 접촉점을 측정하는 스마트폰 터치스크린을 결합해 데이터 수집에 사용했다.

힘과 위치 데이터에는 차단 주파수가 25 Hz인 Butterworth 저역 통과 필터를 적용했다. 따라서 1000 Hz로 데이터를 기록했음에도 고주파 진동까지 데이터를 수집한 것은 아니다. (25 Hz 이상의 고주파 진동은 인간이 느끼지 못하기 때문에 제거했다.)


수집한 데이터 전체를 RBFN에 입력하면 학습과 출력 계산의 비용이 커지는 문제가 있었다. 이에 연구진은 관련한 선행 연구에서 제안된 SMASS(Stimuli-Magnitude-Adaptive Sample Selection)를 사용해 표본을 선택했다.

SMASS는 힘의 크기에 대한 상대적인 차이를 고려하여 입력 공간을 나누고, 작은 힘이 발생하는 구간에서 더 많은 표본을 선택하게 하는 경향이 있는 선택법이다. 우리는 같은 절대값의 오차라도 약한 힘에서 힘의 차이를 더 쉽게 구별할 수 있다는 특성을 반영해, 힘이 약한 구간에서 더 많은 표본을 선택하도록 했다.

결론

이 연구에서는 최초 접촉 위치와 translation vector를 도구의 로컬 좌표계에서 표현하고, 이를 입력으로 실제 탄성 도구에서 측정한 힘을 학습했다. 이를 통해 대상 물체 전체의 변형을 매 순간 계산하지 않으면서도 비선형적인 힘을 1000 Hz로 출력할 수 있었다.

God-object와 proxy가 가상 환경에서 허용되는 접촉 상태를 찾고, voxel sampling이 복잡한 강체의 여러 접촉을 처리했다면, 이 연구는 변형되는 대상 물체가 손에 전달하는 힘을 실측 데이터를 근거로 처리했다는 점에서 특기할 수 있다.