isaac sim 튜토리얼
2023. 12. 24.

1번 참고

 

What Is Isaac Sim? — Omniverse IsaacSim latest documentation

NVIDIA Omniverse™ Isaac Sim is a robotics simulation toolkit for the NVIDIA Omniverse™ platform. Isaac Sim has essential features for building virtual robotic worlds and experiments. It provides researchers and practitioners with the tools and workflow

docs.omniverse.nvidia.com

2번 참고

 

시뮬레이션 하고 싶다. #4-1 [Isaac Gym Environments for Legged Robots-Anymal]

#1 Intro https://github.com/leggedrobotics/legged_gym GitHub - leggedrobotics/legged_gym: Isaac Gym Environments for Legged Robots Isaac Gym Environments for Legged Robots. Contribute to leggedrobotics/legged_gym development by creating an account on GitHu

want-study.tistory.com

3번 참고

 

[Omniverse] 옴니버스에서 시뮬레이션 하기

옴니버스 Isaac Sim에서 시뮬레이션을 하는 방법이다 나의 경우 리눅스 환경에서 HoliCity 맵을 사용했고 체계적으로 크롤링하는 시뮬레이션을 진행했다 옴니버스 다운 NVIDIA Omniverse Enterprise 라이선

hjkim5004.tistory.com

4번 참고

 

[NVIDIA Omniverse] Isaac Sim 설치

💡아이작 심(Isaac Sim) NVIDIA Omniverse Platform의 로봇 시뮬레이션 툴킷이다. 주로 로봇 개발 및 테스트를 위해 사용한다. 아이작 심의 시뮬레이션 환경을 활용하여 인공지능의 테스트 및 합성 데이터

challenge-sam.tistory.com

 


기타 1

 

Training a Classifier — PyTorch Tutorials 2.2.0+cu121 documentation

Note Click here to download the full example code Training a Classifier This is it. You have seen how to define neural networks, compute loss and make updates to the weights of the network. Now you might be thinking, What about data? Generally, when you ha

pytorch.org

기타 2

 

TorchVision 객체 검출 미세조정(Finetuning) 튜토리얼

본 튜토리얼에서는 Penn-Fudan Database for Pedestrian Detection and Segmentation 데이터셋으로 미리 학습된 Mask R-CNN 모델을 미세조정 해 볼 것입니다. 이 데이터셋에는 보행자 인스턴스(instance, 역자주: 이미지

tutorials.pytorch.kr

 

 

 


 

설치하는 법

아이작심 설치는  4번 참고 보고 했다.
리눅스 버전이긴 하지만 윈도우와 크게 차이나지 않는다.

 

튜토리얼

 

Isaac Sim interface

시작하기

 

 

 

 

 

 

 

* 판은 면적으로 움직임
* 선은 라인으로 움직임

 

 

 

 

 

 

속성 패널
1번째: 움직임
2번째: 각도
3번째: 크기

 

 

 

 

 

 

 

 

 

 

 

로컬 및 세계 좌표 전환

 

 

 

 

뷰포트 탐색

F를 클릭

 

 

 

 

 

 

스테이지 및 속성 패널 사용 

Xform 클릭

 

 

 

 

 

 

 

 

 

 

* 디폴트 라이트는 도형을 끄고, 켤 수 있습니다. 시각효과 

 

 

 

작업공간 사용자 정의

*창(window) 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

요약

이 튜토리얼에서는 다음 주제를 다루었습니다.

  • Omniverse Isaac Sim에서 애플리케이션을 개발하기 위한 다양한 워크플로우
  • 각 워크플로를 사용하여 예제 실행

 

Isaac Sim workflow

 

 

 

 

 

 

 

 

 

 


GUI


환경설정

스테이지 속성 설정

 

 

 

 

 

물리 장면 만들기

 

 

create-> Physics-> Physics Scene

MBP Broadphase
: 수백 개의 강체와 로봇을 시뮬레이션하지 않는 한(GPU->MBP)

 

 

 

 

 

 

접지면 추가

여기서는 기본으로 그리드가 나왔는데, 



여기서 그리드 안 보이게 바꿀 수 있다.

 

 

조명

  1. 지상 평면이 아직 없는 경우 추가하여 빛의 반사를 볼 수 있습니다. 만들기 > 물리학 > 지표면 .
  2. Create > Light > Sphere Light 로 이동합니다 .

  1.  위로 이동하고 7단위 위로 이동하여 X 및 Y축 회전을 무효화하여 뒤집어 놓습니다.
  2. 속성  내에서 기본 > 색상 에서 색상 막대를 클릭하고 원하는 색상을 선택하여 색상을 변경하세요.
  3. 강도 Main > Intensity를 1e6 으로 변경합니다 . 
 

Main > Radius 를 0.05 로 , Shaping -> cone:angle 에서 스폿 범위를 45도로 제한 하고 Shaping -> cone:softness 에서 스포트라이트의 가장자리를 0.05로 부드럽게 만듭니다.

새 스포트라이트를 더 쉽게 볼 수 있도록 속성 탭으로 이동하여 Main > Intensity를 300 으로 설정하여 기본 조명의 강도를 줄입니다 .

* defaultlight는 모든 스테이지에 기본입니다. 인발런에 위치 해 있습니다.

 

 

 

 

* 번외

intensity-30000/300 차이

 

* 번외

반지름이 50m/0.05m의 차이

 


요약

이 튜토리얼은 물리 시뮬레이션 및 Omniverse Isaac Sim 테스트에 적합한 가상 세계를 생성하는 일련의 단계를 시작합니다. 다루는 주제는 다음과 같습니다.

  1. 지상 평면, 조명, 물리 장면을 추가합니다.

 

 

 


간단한 개체 추가
USDE 작업하기
간단한 물체 조립
캐릭터 및 셋트 추가
대화형 스크립트
오브젝트
OmniGraph: 일람 작지


개발 도구


Isaac Sim 환경 템플릿
프로젝트 노트북
Visual Studio Code로 대본
OmniGraph: Python 스크립트
OmniGraph: 사용자 정의 Python 노드
사용자 정의 함수: C++
OmniGraph: 사용자 정의 C++ 노드

 


해석 API


안녕하세요 세계
헬로월드
키티클릭 차기
매네먼트리 문서 차기
언리 문서 차기
언리 작업
데이터 트리 


장면 설정


URDF 가져오기
URDF 내보내기
MJCF 가져오기
ShapeNet 임포트 툴툴리안
리강 로봇
조인트 스크라이브 게임 튜닝
새 조작기 차기
로봇 외과적 조립


모션 설정


툴팁 토큰 설명 편집자
툴팁 RMPflow
툴팁 RRT
Lula 운동학 살행
툴팁 계획 살행기
새 조작기에 대한 RMPflow 구성
OmniGraph: 편애 물리스 컨트롤 노드
툴팁 모션


ROS / ROS 2


ROS 툴킷 (Linux에만 해당)
ROS 2 툴킷 (Linux 및 Windows)
  URDF 가져오기: Turtlebot
  ROS2 데시지네이트 함께 TurtleBot 구동
  ROS2 개발가
  카메라 데이터 시스
  ROS2 시계
  RTX 라이더 센서
  ROS2 방화 터널 및 오도메트리
  ROS2 네비게이션
  다중 로봇 ROS2 네비게이션
  ROS2 공동 제어: 환경 Python 스크립트
  모빌 오토
  툴킷의 애플리케이션의 ROS2 브리지
  ROS 2 Python 사용자 정의 메시지
  분할 홀드 생김기능 사용한 ROS 2 탈생
  ROS 2 사용자 정의 C++ OmniGraph 노드
  NVIDIA Isaac ROS GEM과의 인터페이스

 


멥핑


정맵 지도 생성
  환경 모드
  시작하기
  정맵 지도 생성
  정맵 지도 생성을 위해 Physx Lidar와 RTX Lidar 사용
  요약
  추가 항목


아이작 체육관


게임 및 시작하기
OmniIsaacGymEnvs에서 새 RL 에제 사용
RL용 환장 외력툴
RL에 대한 데미의 운작원리
Isaac Gym 미리보기 텔레스에 시정책 전송
텔레스 시작하기
인스턴스한 가능한 자산
안정적인 기술셋을 사용하는 사용자 정의 데미
안정적인 기술셋을 사용한 강화 학습
아이작 제도


복제기


게임 및 시작하기
황성 데이터 리퀘스터
오오리언 데이터 세트 생성
오픈AI 제대
Replicator Composer(더 이상 사용되지 않음)
오오리언 자체 정형 황성 데이터 생성
황성 데이터를 이용한 물건 자체 정형 모델링
SceneBlox를 사용한 황성 생성
아이작 시뮬레이션 황성 데이터 생성
작물 감지 황성 데이터 생성
시뮬레이션의 무작위화 - AMR 트랙
시뮬레이션의 무작위화 - UR10 팔레타이징
데이터 증대
무작위화 조건
유용한 조건


플러그인


Isaac Cortex: 개요
네트워크 설정자
도착 예: Peck 게임
연습: Franka 물속 스테이션
연습: UR10 쓰레기통 쌓기
ROS 동기화(Linux에만 해당)
Cortex 기반 황성 구축


Isacc Sim : NVIDIA Omniverse Platform의 robotics simulation toolkit이다.

Omniverse Kit : Omniverse 에서 제공하는 SDK로 Omniverse application과 microservice를 만드는 데 사용되는 toolkit이다.

Omniverse Nucleus : Isaac Sim은 NVIDIA Omniverse™ Nucleus를 사용하여 환경 및 로봇용 USD 파일과 같은 컨텐츠에 액세스한다. 옴니버스 핵 서비스는 옴니버스 아이작 심에서 가상 세계의 표현을 공유하고 수정할 수 있는 다양한 클라이언트 애플리케이션, 렌더러 및 마이크로 서비스를 제공한다.

USD(Universal Scene Description) : Pixar에서 만든 오픈소스 3D scene을 나타내는 파일 포맷이다.

USD에 대한 더 디테일한 사용법은 아래 링크를 참고한다.

https://developer.nvidia.com/usd/tutorials#prims

Xform : Omniverse에 있는 물체들의 위치를 설명하는 요소들을 말한다.

Isacc sim의 더 디테일한 world 혹은 환경 제작 툴은 아래 링크를 참고한다.

https://docs.omniverse.nvidia.com/app_create/app_create/overview.html

Rigid Body with Colliders Preset : 물체에 Rigid Body API와 Collision API를 연결해준다.(둘 중 하나만 연결하는 것도 가능하다)

OmniPBR : 유전체 및 비유전체 재료용 다중 로브 물리적 기반 재료

Omniverse의 자세한 Material 정보는 아래 링크를 참고한다.

https://docs.omniverse.nvidia.com/app_create/prod_materials-and-rendering/materials.html

Collect Asset : Nucleus에서 특정 asset(로봇이나 물체들)을 옮기면서 프로젝트를 하다보면 파일이 사라질 경우(missing or broken)가 생길 수 있다. 이때 scene에 있는 정보(라이브러리, 물체 정보 등)를 저장해주는 방식이다. 자세한 설명은 아래 링크를 참고한다.

https://docs.omniverse.nvidia.com/app_create/prod_extensions/ext_collect.html

Isaac Sim Workflows

GUI : Isaac Sim의 GUI를 사용하는 방법으로, World 제작, 로봇 조립, 센서 부착, ROS Bridge 시작등을 진행할 때 사용하기 편하다.

Extensions : GUI를 추가적으로 개발하거나, 개인적으로 작성한 application module 실행 혹은 실시간성이 보장되어야 하는 application이 필요할 때 사용하기 편하다.

Extension에 대한 추가 정보는 아래 링크를 참고한다.

https://docs.omniverse.nvidia.com/prod_extensions/prod_extensions/overview.html

Standalone Python : 대형 환경에서의 RL 혹은 simulation step이 조정되어야 하는 world 생성 및 수정에 사용하기 좋다. (Jupyter 및 ROS를 사용한다)

Interactive Scripting

Script Editor : Omniverse Kit 내부에 연결 된 Python editing 환경이다. Script를 실행하면 state를 수정할 수 있다.

REPL(Read-Evalutate-Print Loop) Extension : IPython과 Jupyer Notebook과 같이 programming shell을 통해 시뮬레이션 환경과 상호작용 할 수 있는 기능이다. (리눅스만 가능하다)

Core API : Omniverse Kit을 사용하여 모든 작업을 Python으로 작성할 수 있지만, 조금 더 쉬운 작업을 위해 모아둔 API이다.

Tips

튜토리얼 시작 전 Nucleus를 실행하여 로그인 해두자.

Issac Sim은 ROS1 Bridge가 default로 실행되어 있으니, ROS2를 사용하기 위해서는 ROS1을 끄고 해야한다.

ROS2 Joint Control 튜토리얼에서 Franka Panda Robot는 omniverse://localhost/NVIDIA/Assets/Isaac/2022.1/Isaac/Robots/Franka/ 경로에 있는 franka_alt_fingers.usd 파일을 원본으로 열어야 된다. Asset에서 가져오면 안된다.

Isaac_tutorial 등 ROS와 관련 된 패키지들은 ~/.local/share/ov/pkg/isaac_sim-2022.1.0/ros2_workspace 경로에 있다. 만약 기존 ros ws가 있다면, 내부 패키지들을 복사해서 가져와 사용하면 된다.

Turtlebot 예제를 할 때는 Use path 를 uncheck 하는 것, Target을 통해 Prim을 추가해주는 걸 잊지 말자.

ROS2 Joint Control 튜토리얼에서 Joint state publish, Subscribe 노드에서 targetPrim을 추가하는 걸 잊지말자.

 

 

 

'2023 > isaac sim' 카테고리의 다른 글

Ubuntu (Source) vs(Binary)  (0) 2024.01.16
(Xavier) SDK 5.12/20.04 Nitro ROS  (0) 2024.01.16
(window) humble #2  (0) 2024.01.13
(window) humble #1  (0) 2023.12.26
(window) humble #0  (0) 2023.12.26