티스토리 뷰

Modeling, learning, perception, and control methods

for deformable object manipulation

저자 : Hang Yin, Anastasia Varava, Danica Kragic

논문 : https://www.science.org/doi/epdf/10.1126/scirobotics.abd8803

작성 : 이해구

다양한 물체가 단순 강체가 아닌 힘(중력포함)에 따라 쉽게 변할 수 있다. 이런 물체들을 다루는 것은 분명 다양한 어플리케이션에 필요하지만 여러 분야들이 통합되어야지만 잘 될 수 있어 강체를 다루는 것보다 적게 연구되었었다. 다양한 분야가 발전하면서 기존에 제약을 해결할 인사이트를 제공해주고 있다. 논문에서는 변형 가능한 물체에 대한 학습과 제어의 관점에 대해 리뷰한다.

Physics-Based Modeling of Deformable opbjects

변화 가능한 물체의 다이나믹스는 파티클이나 매쉬를 사용해서 기하학적으로 표현된다. 파티클의 모션은 뉴턴의 2번째 법칙으로 힘과 가속도의 관계로 표현될 수 있다.

이산적으로 표현하냐 연속적으로 표현하냐의 차이가 있다. 각 파티클들의 상태를 아래와 같은 수식으로 표현할 수 있다.

힘의 경우에는 2가지로 나눠진다. external force의 경우 중력과 외력을 포함하고 있으며, 제약이 있는 시스템의 경우에 state boundary condition와 같은 것으로 제약을 뒀다. internal force의 경우 변형에 대한 파라미터에 대한 내부적인 힘을 표현한다.

내부 힘을 표현하는 게 당연하게도 매우 중요하다. 이런 힘들이 모두 정해지면 명시적인(explicit) Euler integration으로 시뮬레이션을 진행하면 된다. 시뮬레이션의 안정성을 위해서는 작은 step size로 적분할 수 있어야 한다. Euler integration 대신 Runge-Kutta 같은 방법을 사용하여 정확도를 높일 수도 있다.

반대로 implicit 한 integration 방식인 Backward Euler method를 사용할 수도 있다. 물론 프로그래밍이 복잡해지고 시간이 더 걸리겠지만, 연결 된 상태가 동역학적인 제약 조건들에 대해 덜 발산하기 때문에 안정성을 가질 수 있다.

Explicit과 Implicit integration에 대한 내용을 위키피디아를 참고하자.

(https://en.wikipedia.org/wiki/Explicit_and_implicit_methods)

애니메이션 같은 경우에는 오프라인에서 여러 튜닝을 거쳐 생성되겠지만, 실제 로봇에 맞는 시스템은 강건하고 효율적인 시뮬레이션이며, 이는 실시간 트래킹이나 반복적인 제어 혹은 학습에 중요하다. 당연하게도 정확도가 안전이 중요한 시스템에는 중요할 수도 있다. 이를 위해 3가지의 다른 물리 모델과 시뮬레이터를 설명한다.

변화 가능한 물체의 모델링에 대한 방법은 총 3개로 설명한다.

  1. Mass Spring Systems
 

Mass Spring 시스템의 경우 변형 되는 물체를 네트워크 형태로 모델링 한다. 질량은 각 꼭지점들로 구성되고 스프링으로 서로 연결되어 있다. 꼭지점 사이간의 내부 힘은 스프링-댐퍼 관계로 정해진다. 또한 물체가 변하는 방향도 정해진다. implicit integration에서는 equality constraints들이 선형화되어 Newton Raphson 같은 방식으로 바로 풀릴 수 있다.

작은 물체용으로는 좋은 방식이지만, 복잡한 움직임(탄성)을 가지게 되면 어려워진다.

2. Position based dynamics (https://mmacklin.com/EG2015PBD.pdf)

위치 기반 다이나믹스는 파티클로 모델링하는 이산 시스템이다. 시뮬레이션은 내부 힘의 implicit integration으로 작동 되는데, 이때 내부 힘의 경우 홀로노믹 제약 조건이 있다. 홀로노믹 제약이란 구속 조건 식을 시간과 위치의 함수로만 표현 가능한 제약이다. 이때 홀로노믹 제약 조건은 시간과 Unilateral 제약 조건(물체 간의 관통을 고려하지 않는)을 포함하고 있을 수 있다.

https://en.wikipedia.org/wiki/Unilateral_contact

 

Kj의 경우 제약 조건의 강성을 뜻한다.

MSS랑 다르게, PBD의 경우 미래의 x 상태를 바로 업데이트하여 미래의 속도를 계산한다 ((xi+1 - xi)/dt). 이때 미래의 x 상태는 위 식을 제약조건으로 갖는 문제의 최적해가 된다.

PBD의 경우 Gauss-Seidel 같은 방법을 통해 제약 manifold에 예측 되는 미래 x 상태를 반복적으로 투영하면서 최적을 근사하여 푼다. 여기서도 당연하게 제약 파라미터인 세타가 유현한 행동을 좌지우지 한다. 또한 강성과 반복적인 투영으로 정확하게 실행됐는지가 중요하다.

위 첫번째 사진에서는 bending에 대한 제약 조건의 사진을 보여준다. 위에 첨부된 논문에서는 볼륨 보전, 접촉 마찰, 당김에 대한 효과들을 위한 다양한 제약조건들이 제안됐다. PBD를 한번 좀 더 이해하려면 위 논문을 보는 걸 추천 한다.

https://www.youtube.com/watch?v=jrociOAYqxA

 

해당 영상도 쉽게 PBD에 대한 내용을 잘 설명해준다.

PBD는 빠르고 우리가 완벽히 컨트롤할 수 있는 시뮬레이터로 안정성도 높다. 로보틱스에서는 로봇팔과 변하는 물체는 시뮬레이션하여 서로의 상호작용을 합쳐진 모델로 할 수 있다.

한계라 하면 힘에 대한 효과를 정확하게 시뮬레이션 하지 못한다는 거다. 그리고 강성 또한 적분 시간 스텝에 영향을 받는다. 이런 문제를 해결하는 방법이 나왔다.(https://matthias-research.github.io/pages/publications/XPBD.pdf) 그래도 PBD는 임펄스 업데이트에 주로 의존하고 물리적으로 현실직이지 않은 그럴 듯한 시각효과만 보여주는 경우가 많다. 물질에 대한 특성을 살리기도 어려워서, 특성을 찾기위해 튜닝과 파라미터를 찾는 작업들을 해야한다.

3. Continuum mechanics

 

CM은 연속적인 형태로 보다 정확한 물체의 변형을 표현해준다. 물체의 변형을 표현하다보면 물체의 초기 위치에 많은 관심을 가지게 된다. 이 초기위치를 rest shape이라 한다. 변형 필드(displacement field)의 그라디언트는 기존 요소의 기하학적 변형을 반영하게 된다. 결과적으로 모멘텀의 보전은 각 도메인 요소에 모두 적용되고(아래수식) 로우?는 물체의 밀도를, 단위 볼륨에 작용되는 body force를 말한다.

수식에서 시그마는 시메트릭 매트릭스인 스트레스 텐서이다. 그라디언트와 내적을 하면 스트레스 텐서는 작은 변형에 대한 내부 변형 효과를 표현할 수 있게 된다. 스트레스와 변형률은 2가지로 시뮬레이션 된다. 후크의 법칙이 적용가능한 물체와 young's 모듈과 Poisson's ratio를 고려하는 등방성 물체이다. strain 텐서 또한 아래와 같이 그라디언트 식으로 표현될 수 있다.

이때 P는 Green-Lagrange strain이다. (재료역학을 대충해서 뭔지 모르겠지만..) 각 방식에는 장,단점이 있다. 비선형성을 더 고려하려 한다면 Neo-Hookean model를 사용하는 방법도 있다. 그외 논문에서는 FEM이나 선형 FEM에 대한 내용들을 얘기한다. CM 방식으로 모델링을 하게 되면 정확도가 중요한 경우에 매우 정확한 시뮬레이션이 가능하게 해주며, 정확한 물리 해석을 통해 모델 파라미터도 찾을 수 있다. 일반 FEM은 많이 사용되고, 큰 변화에 대한 정확도가 그렇게 중요하지 않을 경우 로보틱스에서는 선형 FEM을 사용한다.

Physics-based Simulators

Simulation Open Framework Architecture (SOFA)라는 오픈소스가 있다.

https://github.com/sofa-framework/sofa

오래 됐는 데 아직도 코드 개발과 사용자가 있는 것 같다. 기계적 물체나 제약 조건과 충돌에 대한 커스텀 솔버를 디자인할 수 있게 해준다. built in mass spring 모델도 있다. 선형, corotational 선형 FEM이나 Neo-Hookean model들 또한 제공한다.

https://github.com/NVIDIAGameWorks/Phys

PhysX는 엔비디아의 게임엔진 오픈소스이다. PBD를 기반으로 한 옷 모델링이나 접촉 마찰 관련 내용도 다루고 있다. Haptic이나 힘 예측에 많이 사용됐다.

https://github.com/google-deepmind/mujoco

무조코는 rigid-linked 캐릭터들을 모델링하는 데 사용됐다. RL용으로도 많이 사용된다. 무조코는 convex soft contact 모델을 보여주고 높은 수렴율을 가지는 최적화를 제공한다. 상호작용 힘을 푸는 데 제약 조건 기반 접근법을 사용한다. 따라서 PBD랑 비슷한 형태이다.

https://github.com/bulletphysics/bullet3

Bullet은 충돌 감지나 멀티바디 시뮬레이션을 위한 오픈소스이다. 변형하는 바디와 상호작용을 시뮬레이션하기 위해 PBD를 기반으로 만들어졌다. corotational 과 Neo Hookean 물체 모델 또한 보여졌다. 로봇 모델링과 학습 용으로 편한 인터페이스를 제공한다.

리뷰 논문을 정리하다보니 좀 글이 길어져서 Modeling 파트, PERCEPTION 파트, Manipulation 파트로 나눠서 정리해보려 한다.다음 perception파트로 돌아오겠다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31