전체 글 67

[유체 내의 압력분포] 유체에 작용하는 힘

움직이는 유체에는 크게 {압력에 의한 힘, 중력, 점성 응력} 3가지의 힘을 생각할 수 있다. 이 3가지 힘 중 2가지는 앞 글 (점성, 압력과 압력구배 )에서 식을 구하였고, 중력은 다음과 같이 구할 수 있다. 위의 식을 적분 하여 단위 부피에 작용하는 중력을 아래 식으로 구할 수 있다. 최종적으로, 단위 유체에 작용하는 이 3가지 힘은 다음 식으로 나타낼 수 있고, 이 단위 유체에 작용하는 힘은 뉴턴 제 2법칙에 의해 ρ(단위 체적당 질량= 밀도)와 이 단위 유체의 가속도 a의 곱으로 다음과 같이 나타낼 수 있다. 이때, 만일 유체가 정지상태에 있거나 일정속도로 흐른다면 정수력학적 분포라고 하며, 이때 a=0, 점성응력= 0 이므로 위 식은 다음과 같이 나타낼 수 있다.

연구/유체역학 2024.04.04

[유체 내의 압력분포] 압력과 압력구배

압력은 방향을 가지는 벡터가 아니다. 압력의 차이는 힘을 만들어내지만, 압력 자체는 힘이 아니다. 다음 그림은 어떤 매우 작은 크기의 정지 유체에 대하여, 2차원으로 나타낸 것이다. 정지 유체는 1단원에서 설명한 바에 따라, 전단응력이 없다. 일반적인 상황에서를 보기 위해 전단응력은 없으나, 압력 px, pz, pn이 각 면에서 다를 수도 있다고 가정한다. 또한, 정지 유체라 가속도가 없으므로 x, z 방향 모두에서 각각의 힘의 합이 0이어야 한다. 위 그림에서 x, z 방향으로 벡터를 분해해서 나타내보면 각각 다음과 같다. 또한, 위 그림의 기하적 성질으로 인해 다음을 구할 수 있다. 이 두 가지를 대입하여 정리하면 다음과 같다. 매우 작은 부피(점)을 가정했기 때문에 Δz -> 0 으로 다음과 같이 ..

연구/유체역학 2024.04.03

[Position Based Dynamics] 3.3. Constraint Projection (1)

Gauss-Seidel-type Iteration(GS)를 그대로 사용할 때 문제점 더보기 Gauss-Seidel-type Iteration(GS)을 그대로 사용할 때는 다음과 같은 문제점이 있다. 3N개의 unknown position component에 대해 M개의 방정식을 해결해야 하는데 (N개의 position, M개의 constraint) M ≥ 3N이면 over-determined, M ≤ 3N이면 under-determined. 방정식들이 일반적으로 비선형(GS는 선형 풀이법) 방정식이 아닌 부등식을 풀어야 할 때도 존재함. 다음의 예시를 통해 GS를 그대로 사용할 때의 문제점을 살펴보자. p : position vector Δp : correction vector, constraint을 만..

SAME: Skeleton-Agnostic Motion Embedding for Character Animation

이 논문은 SIGGRAPH2023에 발표된 논문으로, 다음 링크에서 논문 원본을 볼 수 있다. 논문 : https://dl.acm.org/doi/10.1145/3610548.3618206 유튜브 링크 : https://www.youtube.com/watch?v=FlxXvRKzBFs 요약 이 논문의 핵심 contribution은 다양한 skeleton 구조를 가진 캐릭터 간의 동작 전환, 분류, 재구성 등을 skeleton 구조에 구애받지 않고 수행할 수 있는 새로운 framework인 SAME의 개발이다. 원래는 정해진 skeleton인 캐릭터에 대해서만 학습하고 이에 맞는 캐릭터에 대한 동작에 즉 다양하게 생긴(다양한 skeleton을 가진) 캐릭터들이라도 이 모양에 구애받지 않고 동작을 만들 수 있다..

Learning Physically Simulated Tennis Skills from Broadcast Videos

이 논문은 SIGGRAPH2023에 발표된 논문으로, 다음 링크에서 논문 원본을 볼 수 있다. 논문 : https://research.nvidia.com/labs/toronto-ai/vid2player3d/data/tennis_skills_main.pdf 유튜브 링크 : https://www.youtube.com/watch?v=ZZVKrNs7_mk 요약 이 논문은 테니스 방송 비디오에서 얻은 많은 테니스 경기 data로부터 다양하고 복잡한 테니스 기술을 학습하는 시스템을 제시하였다. 큰 틀은 아래 그림과 같은데, input인 방송 비디오로부터 저수준 모방 정핵과 고수준 모방 정책, motion embedding 기술을 결합한 계층적 모델을 사용한다. 최종적으로 이 시스템은 물리적으로 시뮬레이션된 캐릭터가..

softgym에 대하여

PyFleX는 시뮬레이션 라이브러리이다. 이 PyFleX에서 우리가 하고 싶은 강화학습을 하기 위해서는 PyFleX뿐 아니라 PyFleX에서 동작하는 환경을 만들고 환경에서 agent를 학습시켜야 한다. 하지만 이 방대한 PyFleX에서 어떻게 환경을 만들고 학습을 시킬지 막막한데, 기존에 PyFleX를 사용하여 강화학습을 진행한 softgym이라는 논문이 있었다. PyFleX에서 강화학습을 하기 위한 환경을 제공하는 softgym에 대해서 간단히 소개하려 한다. softgym 주소 https://github.com/Xingyu-Lin/softgym GitHub - Xingyu-Lin/softgym: SoftGym is a set of benchmark environments for deformable ..

연구/PyFleX 2024.03.29

[Introduction] 점성

압력, 온도, 밀도같은 양들은 유체의 열역학적 특성을 나타내는 1차 변수들이다. 이밖에도 유체역학적 특성을 나타내는 2차 변수들이 있다. 2차 변수의 대표적인 것은 점성(viscosity)이다. 점성(Viscosity) 점성은 유동에 대한 유체의 저항을 나타내는 정량적인 치수이다. 주어진 전단응력에 의해 생성된 유체 전단율을 결정한다. 점성이 낮은 유체에서보다 점성이 높은 유체에서 더 큰 저항을 받기 때문에 운동이 더 어렵다. 이 그림과 같이 전단응력τ이 작용하여 전단되는 유체요소를 보았을 때, 전단응력에 의해 위 표면은 아래 표면보다 상대적으로 δu만큼 큰 속력으로 움직이고, 전단변형각 δθ는 시간에 따라 계속적으로 커진다. 이 전단 응력과 전단변형률은 선형관계에 있다. 또한, 그림으로 부터 기하적으로..

연구/유체역학 2024.03.20

[Position Based Dynamics] 3.2. The Solver

Solver의 목적은 외력만 고려하여 움직인 position들에 추가로 constraint들을 만족하도록 하여 추가로 내력을 받은 것처럼 imitation하는 것이다. Solver에는 M개의 constraint와 M_coll개의 collision constraint가 입력으로 들어오고, 외력을 받아 움직인 position들이 p1,...,pN이 입력으로 들어온다. Solver는 모든 constraint를 충족하도록 외력만 고려한 position들을 수정하려고 한다. 결과적인 이 constraint들의 방정식 시스템은 비선형적이다. 부등식(inequality)에 대한 constraint는 부등식을 만드는데, 이러한 부등식와 일반적인 방정식들을 해결하기 위해 Gauss-Seidel-type iteration..

PyFleX scene에 대하여

pyflex에서는 Scene이라는 class를 통해 하고싶은 환경을 설정할 수 있다. 즉, 원하는 환경이 있다면 원하는 동작을 하는 scene을 만들어놓고 해당 scene을 pyflex에 setting 해주면 된다. 모든 scene들은 안에 있는 Scene class를 상위 class로 가지고, 자신의 header 파일에서 이 Scene class를 상속 받아 자신의 class를 선언한다. 새로운 Scene을 만드는 순서 PyFleX/bindings/scenes 폴더 안에 새로운 scene 헤더 파일을 만든다. 이 헤더 파일 안에서, 새로운 scene이 Scene class를 public으로 상속받게 struct를 선언해준다. my_scene class의 구성 요소들을 작성해준다(선언문, Initiali..

연구/PyFleX 2024.03.18

[Position Based Dynamics] 3.1. Algorithm Overview

이전 글에 이어서.. [Position Based Dynamics] Related Work Notation Dynamic object N개의 정점을 가짐 M개의 constraints를 가짐 임의의 i번째 정점은 질량 m_i, 위치 x_i, 속도 v_i를 각각 가짐 Constraints 임의의 j번째 constraint에 대해 Cardinality n_j : j번째 constraint의 명령을 받는 정점의 개수 Function C_j : constraint는 3차원이기 때문에 3n_j 차원에서 스칼라로 가는 함수 (j번째 constraint의 영향을 받는 정점들이 스칼라 값으로 바뀜) Stiffness parameter k_j ∈ [0 . . . 1] 라고 정의 Type은 equality or inequa..