연구 20

Isaac Lab에서 tensorboard로 결과를 visualize 하는 법

강화학습을 할 때, reward, episode 길이 등의 학습 정보를 그래프를 통해 시간에 따라 어떻게 변했는지 시각적으로 보기 위해서, tensorboard라는 것을 사용할 수 있다. 이 tensorboard는 ubuntu 22.04 기준 pip으로 간단하게 설치할 수 있다.pip install tensorboard 설치가 되었다면, tensorboard를 보기 위해 아래 코드만 terminal에 입력하면 된다. 학습 정보가 저장된 폴더 경로만 알면, 그 학습에 대한 정보를 그래프를 통해 시각적으로 볼 수 있다.tensorboard --logdir   Isaac lab에서 이 폴더 경로 찾는 방법isaac lab에서 기본으로 제공해주는 train.py로 학습을 시키면, isaaclab 폴더의 logs..

연구/Isaac Lab 2025.01.13

Isaac Sim 설치

Isaac Sim을 설치하기 위해, NVIDIA Omniverse를 먼저 설치하고 그 안에서 Issac Sim을 설치하여 실행한다. 설치 순서NVIDIA Omniverse Launcher 설치설치된 omniverse-launcher-linux.AppImage 실행NVIDIA 로그인 및 경로 설정Omniverse Launcher 안에서 Cache, Nucleus 설치Omniverse Launcher 안에서 Isaac Sim 설치Isaac Sim 실행NVIDIA Omniverse Launcher 설치아래 링크로 이동하여 정보를 적고 다음 페이지로 이동.자신의 환경에 맞는 Omniverse Launcher 설치https://www.nvidia.com/ko-kr/omniverse/download/ Omniver..

연구/Isaac Lab 2024.08.07

stable baselines 3 사용법 기초

stable baselines3는 강화학습을 할 수 있게 해주는 툴이다.다음 공식 documents를 참고하였다.https://stable-baselines3.readthedocs.io/en/master/index.htmlInstallationubuntu를 기준으로 다음을 terminal에 입력하여 간단히 설치할 수 있다.pip install stable-baselines3Overviewstable baselines3의 코드는 크게 다음과 같이 나눌 수 있다.환경(env) 생성model 생성model 학습학습된 model 저장학습된 model 불러오기학습된 model을 이용하여 동작 실행 환경(env) 생성# gym에 있는 example 환경으로 만들기env = gym.make("CartPole-v1",..

연구/강화학습 2024.04.19

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

움직이는 유체에는 크게 {압력에 의한 힘, 중력, 점성 응력} 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

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

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

[Introduction] 속도장의 성질

유체는 많은 입자들의 집합체이기 때문에 하나의 입자를 관찰하는 것보다 전체 입자에 대한 해석이 더 유용하다. 즉, 유동문제는 유체의 성질을 위치와 시간에 대한 함수로 구하는 것을 목표로 한다. 속도장 3차원 상에서 전체 입자의 속도를 위치와 시간에 대한 벡터 함수로 표현한다면 다음과 같다. 3차원 상의 위치 x,y,z가 함수에 의해 시간 t에 따라 구해진다. 이 식은 다시 u,v,w에 의하여 다음과 같이 정의될 수 있다. 사실상, 속도를 결정짓게 되면 유동문제가 풀린 것과 같다. 이 속도장으로부터 다른 성질들이 직접적으로 구해질 수 있기 때문. 가속도장 가속도는 뉴턴의 법칙에 의해 속도를 시간에 대해 미분한 것이다. 벡터 함수로 표현한 위의 속도를 시간에 대해서 미분하면 연쇄법칙에 의해 다음과 같이 전개..

연구/유체역학 2024.02.21