# Data Augmentation & Collection Strategy (VLA Model)

**작성일시**: 2026-02-28 12:28  
**작성자**: Antigravity (Assistant)

---

## 1. 현재 증강(Augmentation) 파이프라인의 치명적 한계

현재 `mobile_vla_h5_dataset.py`에서 적용 중인 증강 기법(`ColorJitter`, `RandomCrop`)에는 두 가지 중대한 오류가 있어, 켜져 있을 경우 모델의 조향 방향감을 급감시키는 원인이 됩니다.

1. **공간 불일치 (Spatial Disconnect)**  
   - ❌ `RandomCrop`에 의해 시각적 이미지 내의 장애물 위치는 바뀌었지만, 라벨 정답(Action 조향각)은 바뀌지 않고 원본 그대로 유지됨. 모델이 환각을 배우게 됩니다.
2. **시간 단절 (Temporal Inconsistency)**  
   - ❌ `ColorJitter`가 매 프레임(t)마다 무작위로 다르게 걸리면서, 한 주행(Trajectory) 안에서 화면이 계속 번쩍이며 일관성이 파괴됩니다. 시계열 파악을 방해합니다.

**✅ 결론**: 코드 단에서 "시계열 윈도우(Window Sequence) 전체에 동일한 증강 파라미터를 적용하는 로직"으로 변경하기 전까지는, 설정에서 `use_color_jitter: false`, `use_random_crop: false`로 **모두 끄고 훈련하는 것이 압도적으로 유리합니다.**

---

## 2. 모바일 VLA에 알맞은 H5 프레임 수집 전략

### 왜 고정형 18프레임을 쓰면 안 되는가?
1. **의미 없는 정지 학습 방지**: 이미 목표에 도달해 방향 전환이 끝난 뒤에 남은 수 초 동안 억지로 프레임을 채우게 되면, 모델이 "아무 행동이나 무작위로 내뱉는" 노이즈를 배우게 됩니다.
2. **미완성 동작 방지**: 코너가 깊은 곳에서 18프레임이 넘어가면 녹화가 중간에 짤려 "절반만 꺾고 멈추는" 엉터리 에피소드가 만들어집니다.

### 가변 에피소드(Episode) 기반의 수집 요령
RoboKosMos / BaseRoboVLM 아키텍처는 이미 다양한 길이의 폴더(가변 프레임)를 소화하고, 알아서 8프레임(Window Size)으로 쪼개서(`sliding window`) LSTM에 먹이도록 완벽하게 코딩되어 있습니다.

* **Start(시작)**: 로봇이 기본 정렬 상태에서 지시를 받고 움직이기 시작하려는 찰나 (Intent 발현)
* **Action(수행)**: 부드럽고 끊김 없는 단일 행동 궤적 기록
* **Stop(종료)**: 로봇이 코너/장애물을 완전히 극복하고, **자연스럽게 목표 구역에서 행동을 멈췄을 때 즉시 컷(Cut)**

**✅ 결론**: 기계적인 타이머를 바라보지 마시고, **로봇이 지시된 동작 1개를 온전히 완수하는 그 "자연스러운" 길이(통상 10~40 프레임) 그대로 가변 저장(Variable Length Recording)**하는 것이 모바일 VLA 지능을 가장 극적으로 올리는 방법입니다.
