| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
ROBOTIS OpenMANIPULATOR(OMX)를 NVIDIA Isaac Sim에서 시뮬레이션하기 위한 Sim2Real 저장소입니다.
가짜연구소(Pseudo Lab) Sim2Real 팀에서 진행하는, 실제 로봇 팔(OpenMANIPULATOR)과 커스텀 3D 오브젝트를 Isaac Sim 가상 환경에 재현하여 Sim-to-Real 학습·검증 파이프라인을 구축하는 것을 목표로 합니다.
📋 프로젝트 통합 보고서 — NVIDIA 로봇 파운데이션 모델 스터디의 두 트랙(Cosmos 증강 기반 GR00T 파인튜닝 + Isaac Sim Sim2Real 시뮬레이션) 전 과정과 결과, 멤버 명단, 공개 산출물(모델· 데이터셋) 링크 포함
본 저장소(Sim2Real 시뮬레이션)는 NVIDIA 로봇 파운데이션 모델 스터디의 두 트랙 중 하나이며, 다른 한 트랙인 RFM 파인튜닝에서는 같은 태스크 (OMX "인형 집어 옮기기")를 실기 데이터로 다뤘습니다:
전 과정과 수치는 프로젝트 통합 보고서 참고.
| 구분 | 링크 | 내용 |
|---|---|---|
| 🤖 모델 | pseudolab/GR00T-N1.7-3B-OMX-PickupDolls | Cosmos 증강 데이터로 파인튜닝한 GR00T N1.7-3B 정책 (holdout 검증 최적 체크포인트, 모델 카드 포함) |
| 📊 데이터셋 | pseudolab/omx_f_PickUpDoll | OMX 텔레오퍼레이션 원본 시연 (LeRobot v2.1, 탑다운 카메라) |
| 📊 데이터셋 | pseudolab/omx_f_PickUpDollWith2Cam | 2카메라 추가 실측 시연 94 eps (60fps) |
| 🧩 시뮬레이션 | 본 저장소 Assets/ | Isaac Sim 씬 + 2D→3D 에셋 파이프라인 결과물 |
이 저장소는 크게 세 부분으로 나뉩니다.
| 디렉토리 | 내용 |
|---|---|
| Assets/ | Isaac Sim 시뮬레이션 에셋 (USD 씬, 3D 오브젝트) |
| Assets/Image_to_3D/ | 2D 사진에서 시뮬레이션용 3D 오브젝트를 생성하는 파이프라인 |
| open_manipulator/ | ROBOTIS OpenMANIPULATOR ROS 2 패키지 (로봇 모델·제어·MoveIt) |
NVIDIA-RFM-Lab/
├── Assets/
│ ├── Sim2Real.usd # Isaac Sim 메인 씬 (로봇 + 오브젝트 배치)
│ └── Image_to_3D/ # 2D → 3D 에셋 생성 파이프라인
│ ├── Images/ # 입력 이미지 (원본 + 전처리본)
│ └── mesh/ # 생성된 3D 모델 (.fbx / .usd + 텍스처)
└── open_manipulator/ # ROBOTIS OpenMANIPULATOR ROS 2 패키지
├── open_manipulator_description/ # URDF/Xacro 로봇 모델, 메시
├── open_manipulator_bringup/ # 실기·Gazebo 구동 launch
├── open_manipulator_moveit_config/ # MoveIt 모션 플래닝 설정
├── open_manipulator_gui/ # 조인트 제어 GUI
├── open_manipulator_teleop/ # 텔레오퍼레이션
├── open_manipulator_playground/ # 예제 노드 (궤적 제어 등)
├── open_manipulator_collision/ # 자가 충돌 검사
└── ros2_controller/ # 커스텀 ros2_control 플러그인
지원 로봇 모델: omx_f, omx_l(OpenMANIPULATOR-X), omy_3m, omy_f3m, omy_l100(OMY 시리즈).
Isaac Sim에서 여는 메인 USD 씬(USDC 바이너리)입니다. Sim2Real 실험의 시작점이 됩니다.
씬 구성
씬은 에셋을 경로 참조하므로, 저장소 구조를 유지한 채(에셋과 상대 경로가 깨지지 않게) 열어야 합니다.
여는 방법
대용량 바이너리(.fbx, 텍스처 .png)는 Git LFS로 관리됩니다. 클론 후 에셋이 비어 있다면 git lfs install && git lfs pull을 실행하세요.
다이소 인형(bear / chick / fish)을 실제 촬영한 사진에서 시뮬레이션용 3D 모델로 변환하는 파이프라인입니다.
원본 사진 → [ChatGPT Image 2.0] 전처리 → [Hunyuan 3D 1.1] 3D 생성 → [Meshy 6] Remesh → 최종 모델
오브젝트별 분기, 프롬프트, 결과물 비교 등 상세 내용은 Assets/Image_to_3D/README.md 를 참고하세요.
실제 로봇 제어와 URDF 모델의 출처가 되는 ROBOTIS 공식 ROS 2 패키지입니다. Isaac Sim 씬의 로봇 모델(URDF/메시)이 여기서 유래하며, 실기(Real) 측 제어에도 사용됩니다.
자세한 사용법과 공식 문서 링크는 open_manipulator/README.md 를 참고하세요.
주요 참조:
저장소 루트에서:
export HF_LEROBOT_HOME=<lerobot 홈> # omx_leader 캘리브레이션 json 이 있는 경로
PYTHONPATH=Simulation_Team/sim2real ~/IsaacLab/isaaclab.sh -p \
Simulation_Team/sim2real/sim_to_real_so101/scripts/omx_teleop_scene_direct.py \
--port /dev/ttyACM0 --robot_id omx_leader_arm --leader_type omxleader 캘리브레이션은 Simulation_Team/calibration/omx_leader/ 에 포함돼 있다. 새 PC 에서는 teleop 첫 실행 전에 이 두 json 을 lerobot 캘리브 경로로 복사한다:
mkdir -p $HF_LEROBOT_HOME/calibration/teleoperators/omx_leader
cp Simulation_Team/calibration/omx_leader/*.json \
$HF_LEROBOT_HOME/calibration/teleoperators/omx_leader/omx_leader_arm.json — 모터 homing/range (EEPROM 과 짝). 이 파일 없이 connect 하면 lerobot 이 factory 캘리브를 새로 만들며 모터 EEPROM homing 을 0 으로 덮어쓴다 — 반드시 먼저 복사.
omx_leader_arm_zero.json — zero 정렬(절대 매핑 기준). 시작 자세가 어긋나면 R → leader 를 화면 sim 자세에 맞춤 → Z 한 번으로 재정렬(자동 저장)한다.
파지 비교/디버그: --legacy_grip (그리퍼 개선 전 동작 재현), --no_leader (leader 없이 씬만), --zero_mode capture (시작 시 leader 자세를 zero 로 캡처).
씬은 기본으로 Simulation_Team/Assets/Sim2Real.usd 를 엽니다 (--usd 로 변경 가능).
시작 시 저장된 zero 정렬(json)과 UI 레이아웃을 자동 로드합니다.
녹화물은 기본 ~/sim2real/datasets/omx_scene_direct/episode_NNNN/ 에 저장됩니다 (--record_root 로 변경).
| 키 | 동작 |
|---|---|
| S | 에피소드 녹화 시작/종료 (종료 시 이름·메모 저장 다이얼로그) |
| C | 녹화 취소 (폴더는 __cancelled 로 보존) |
| R | world reset (오브젝트·로봇 시작 배치 복원) |
| Z | leader zero 재정렬 (sim 초기 자세에 leader 를 맞춘 뒤 누름) |
| P | 뷰포트 스크린샷 → 바탕화면 저장 |
| V | 화면 모드 순환: 메인 단독 → 2분할(메인+Free View) → 프리뷰 전면 |
| L | 현재 UI 레이아웃 저장 (다음 실행 시 자동 복원) |
리플레이는 OMX Recording 패널에서 에피소드 선택 후 Play (재생 전 자동 reset).
PYTHONPATH=Simulation_Team/sim2real python \
Simulation_Team/sim2real/sim_to_real_so101/scripts/omx_episodes_to_lerobot.py \
--episodes_root ~/sim2real/datasets/omx_scene_direct \
--repo_id <hf-user>/<dataset-name> --task_name "Pick toys into tray"녹화 에피소드(frames/*.png + trajectory.jsonl)를 워크샵 표준 LeRobotDataset (action / observation.state / observation.images.workspace)으로 변환합니다.
| Back | FazBrowse Home | New Git URL |