curriculum-v2
플래너 선택 / 그룹·블록·정책 설정
자가학습 V2를 만들 플래너를 선택하고, 좌측 패널에서 블록을 그룹에 배정한 뒤 체크포인트별 데이터셋 그룹·학습 설정·모션 노이즈·그룹 승급 정책(성공률)을 구성합니다.
최근 확인 버전: v5.0.0
자가학습 V2를 시작하려면 먼저 플래너를 선택해 자가학습을 만들고, 좌측 패널에서 블록을 그룹으로 묶은 뒤 각 그룹의 데이터셋 그룹·학습 설정·노이즈·승급 정책을 정합니다.
플래너 선택
페이지를 처음 열면 헤더에 로봇 마스코트와 스스로 배우는 로봇 타이틀, 그리고 플래너 선택 드롭다운만 보이는 빈 상태입니다.
/docs/curriculum-v2/v2-01-empty.png플래너 미선택 빈 상태 — 헤더 스스로 배우는 로봇, 플래너 선택 드롭다운, 안내 문구
-
헤더의 플래너 선택 드롭다운에서 플래너를 고릅니다.
플래너를 선택하면 해당 플래너의 자가학습이 자동으로 만들어집니다(이미 있으면 그대로 불러옵니다). 처음 만들어질 때는 그룹 한 개가 자동 생성되고, 플래너의 모든 체크포인트가 그 그룹에 들어갑니다.
스크린샷 누락/docs/curriculum-v2/v2-02-overview.png플래너 선택 후 — 좌측 플래너 탭, 우측 롤아웃/학습 컨트롤 바와 그룹 대시보드
플래너를 선택하면 화면이 좌측 설정 패널과 우측 롤아웃·대시보드 패널로 채워집니다. 좌측 패널은 플래너 · 디바이스 · 그룹 정책 세 개의 탭으로 구성됩니다.
플래너 탭 — 블록을 그룹에 배정
플래너 탭에는 이 플래너의 블록이 위에서 아래로 나열됩니다(읽기 전용 — 여기서 블록을 편집하지는 않습니다). 그룹에 속한 블록은 부제에 그룹 색상의 칩으로 그룹 이름이 표시되어, 같은 색 칩끼리 한 그룹임을 한눈에 알 수 있습니다. 그룹에 배정되지 않은 모션 블록은 미배정으로, timesleep처럼 설정 대상이 아닌 블록은 블록 종류가 표시됩니다. 설정할 수 있는 블록(체크포인트·모션)에만 톱니 아이콘이 붙어 있고, 누르면 블록 설정 다이얼로그가 열립니다.
/docs/curriculum-v2/v2-03-tab-planner.png플래너 탭 — 블록 리스트, 각 블록의 톱니 아이콘과 그룹 색상 칩
그룹은 무슨 역할을 하나요?
그룹은 자가학습이 성공과 실패를 판정하는 단위입니다. 한 번의 롤아웃에서 그룹에 속한 체크포인트가 전부 성공해야 그 그룹이 한 번 "성공"한 것으로 세고, 하나라도 실패하거나 끝까지 도달하지 못하면 그룹 전체가 "실패"가 됩니다. 진급(성공률), 성공률 통계, 학습 대상이 모두 이 그룹 단위로 돌아갑니다. 따라서 체크포인트를 어떻게 묶느냐가 곧 **"무엇을 한 번의 성공으로 볼 것인가"**를 정하는 셈입니다.
묶는 기준은 체크포인트들이 서로 의존하는지 여부입니다.
- 의존 체크포인트 → 같은 그룹 — 하나가 실패하면 나머지가 무의미해지는, 이어진 한 과제. 예를 들어 잡기 → 놓기는 잡기에 실패하면 놓기를 시도하는 것 자체가 의미 없으므로 같은 그룹에 둡니다. 그러면 잡기는 성공했지만 놓기에서 실패한 시행이 통째로 실패로 처리되어, 끝까지 해낸 경우만 성공으로 집계됩니다.
- 독립 체크포인트 → 다른 그룹 — 서로 영향을 주지 않는 별개의 과제. 예를 들어 사과를 잡아 놓기와 배를 잡아 놓기는 각각 따로 성공/실패를 세고 따로 학습해야 하므로 서로 다른 그룹으로 나눕니다. (그리고 각 그룹 안에서는 다시 그 과제의 잡기·놓기 체크포인트가 의존 관계로 함께 묶입니다.)
한편 데이터 저장은 그룹 판정과 별개로 체크포인트별로 이뤄집니다. 그룹이 실패한 롤아웃이라도 그 안에서 성공한 체크포인트의 에피소드는 자기 success 데이터로 저장되고, 실패한 체크포인트만 실패 저장 확률에 따라 저장됩니다. 즉 그룹은 성공/실패를 세고 진급을 판단하는 단위이고, 데이터는 체크포인트마다 모입니다.
블록은 두 종류로 나뉘고, 종류에 따라 설정 다이얼로그의 내용이 다릅니다.
체크포인트 블록 — 데이터셋 그룹 · 학습 설정
체크포인트 블록의 톱니 아이콘을 누르면 그룹 배정, 데이터셋 그룹, 체크포인트별 학습 설정을 정하는 다이얼로그가 열립니다.
/docs/curriculum-v2/v2-07-block-settings-checkpoint.png체크포인트 블록 학습 설정 다이얼로그 — 그룹, 데이터셋 그룹, Base 데이터셋, 하이퍼파라미터, 판정 조건
-
그룹을 정합니다.
- 그룹 변경 — 다른 그룹이 존재할 때, 이 체크포인트를 다른 그룹으로 옮깁니다.
- 그룹 분리 — 같은 그룹에 다른 멤버가 더 있을 때, 이 체크포인트만 떼어 새 그룹 이름으로 새 그룹을 만듭니다.
-
데이터셋 그룹을 지정합니다.
이 블록의 롤아웃이 남기는 성공 / 실패 / 교정 데이터가 저장될 묶음입니다. 한 데이터셋 그룹에는 success · failure · dagger 데이터셋이 역할별로 하나씩 들어가며, 여러 블록이 같은 데이터셋 그룹을 선택해 데이터를 공유할 수 있습니다.
- 데이터셋 그룹 (드롭다운) — 이미 만든 그룹을 고릅니다. 목록 항목에는 그룹에 모인 성공·실패·교정 에피소드 수가 함께 표시됩니다.
- 새 그룹 — 새 데이터셋 그룹을 만듭니다. 누르면 이름 입력 다이얼로그가 열립니다.
스크린샷 누락/docs/curriculum-v2/v2-08-dataset-group-select.png데이터셋 그룹 선택 — 드롭다운 옵션(성공/실패/교정 개수), 새 그룹 버튼
-
체크포인트별 학습 설정을 채웁니다.
학습 시 사용할 설정입니다.
- Base 데이터셋 (다중 선택) — 학습 시 데이터셋 그룹의 수집분과 함께 합쳐 쓸 기준 데이터셋입니다. 자가학습이 수집한 데이터셋은 목록에서 제외됩니다.
- 학습 하이퍼파라미터 — 배치 크기 등 학습에 쓸 값입니다. V2는 무한 step 학습이므로 step 수는 여기서 입력하지 않으며(학습 시작 시점에 배포 주기로 관리), 학습 서버 URL도 학습 시작 다이얼로그에서 입력합니다.
-
판정 조건을 정합니다.
롤아웃에서 체크포인트의 성공/실패를 가르는 기준입니다.
- 최초 길이 제한 (기본 600) — 실패로 취급할 최대 스텝 수입니다. 이 스텝 안에 성공 신호를 얻지 못하면 실패로 판정합니다.
- 길이 제한 rate (기본 1.5) — 다음 스테이지의 길이 제한 = 현재 스테이지 성공 에피소드의 평균 길이 × rate로 계산됩니다.
- 성공 임계값 (기본 0.5) — 정책의 성공 점수가 이 값을 넘으면 성공으로 봅니다.
- 성공 데이터 다운샘플 — 성공 데이터를 N 프레임당 1프레임만 유지해 기록합니다(마지막 프레임은 항상 보존).
모션 블록 — 노이즈 설정 (계단식)
모션 블록의 톱니 아이콘을 누르면 영향을 줄 그룹과 노이즈를 정하는 다이얼로그가 열립니다.
/docs/curriculum-v2/v2-06-block-settings-motion.png모션 블록 설정 다이얼로그 — 영향 줄 그룹, 6축 노이즈 step-up/offset, 예상 노이즈 프리뷰
노이즈는 모션 블록이 로봇을 데려다 놓는 위치·자세를 매 롤아웃마다 조금씩 무작위로 흔드는 값입니다. 구체적으로는 joint_position·query_pose 블록이 도달한 뒤 엔드이펙터(EE)를 노이즈만큼 밀어 주고, move_relative_ee 블록의 상대 이동 벡터에 노이즈를 더합니다. 그 결과 체크포인트 정책이 일을 시작하는 출발 조건(예: 팔이나 대상 물체의 위치)이 롤아웃마다 달라집니다.
노이즈가 필요한 이유는 두 가지입니다.
- 일반화 — 노이즈가 0이면 매번 똑같은 자리에서만 데이터가 쌓여, 학습한 정책이 그 한 조건에서만 잘 동작합니다. 출발 위치를 무작위로 흩뜨리면 다양한 조건의 성공 데이터가 모이고, 정책이 위치 변화에 강건해집니다.
- 난이도 상승(계단식) — V2의 노이즈는 스테이지가 한 단계 오를 때마다
step_up만큼 계단식으로 커집니다. V1처럼 성공률에 연속 비례하는 것이 아니라, 성공률이 목표에 도달해 다음 스테이지가 열릴 때마다 한 칸씩 넓어집니다.
노이즈는 고정된 변위가 아니라 매 롤아웃마다 새로 뽑는 랜덤 값이라는 점에 유의하세요. 같은 설정이라도 시행마다 흔들리는 방향과 크기가 달라집니다.
-
영향 줄 그룹을 선택합니다.
이 모션 블록의 노이즈를 어느 그룹의 난이도로 다룰지 정합니다. 비워 두면 미배정 상태가 됩니다.
-
노이즈 step-up / offset 을 6축으로 입력합니다.
위치 3축(x, y, z)과 회전 3축(ax, ay, az) 각각에 대해 step-up과 offset을 정합니다.
- 스텝업 노이즈 (스테이지당 증가량) — 다음 스테이지로 올라갈 때마다 더해지는 증가폭입니다. 단계가 오를수록 랜덤 범위가 계단식으로 넓어집니다.
- 노이즈 offset — 스테이지 0의 기본 랜덤 범위입니다(단계와 무관하게 항상 더해짐).
실제 노이즈는 매 롤아웃마다 ±(|offset| + |step_up| × stage_index) 사이의 균일 랜덤으로 다시 샘플됩니다.
-
예상 노이즈 프리뷰로 범위를 확인합니다.
현재 입력값으로 예상되는 노이즈 ± 최댓값이 6축별로 표시되어(스테이지 1단계 진행 시 기준), 저장 전에 실제 범위를 가늠할 수 있습니다.
디바이스 탭 — 로봇·센서 켜기
디바이스 탭에는 이 플래너가 사용하는 로봇과 센서가 나열됩니다. 각 항목의 토글로 로봇·센서를 켜고 끄며, 상태는 색으로 표시됩니다(커스텀 디바이스는 토픽 켜짐/꺼짐 상태로 보입니다).
/docs/curriculum-v2/v2-04-tab-device.png디바이스 탭 — 로봇과 센서 목록, 토픽 켜짐/꺼짐 상태
그룹 정책 탭 — 승급 정책 (성공률)
그룹 정책 탭에서는 그룹을 선택해 승급(진급) 정책과 데이터 저장 정책을 정합니다. V2의 승급은 누적 개수가 아니라 현재 스테이지의 성공률을 기준으로 합니다.
/docs/curriculum-v2/v2-05-tab-policy.png그룹 정책 탭 — 그룹 선택과 승급 정책(목표 성공률·최소 롤아웃 수·실패 저장 확률) 폼
-
그룹을 선택합니다.
정책은 그룹별로 따로 저장됩니다.
-
승급 정책 값을 정합니다.
- 목표 성공률 (0~1) (기본 0.8) — 현재 스테이지의 성공률(= 성공 / (성공 + 실패))이 이 값에 도달하면 노이즈 정책을 갱신하며 다음 스테이지로 진급합니다.
- 최소 롤아웃 수 (기본 10) — 성공률 판정에 필요한 최소 롤아웃 횟수입니다. 통계가 안정될 때까지 진급을 미루는 안전장치입니다.
- 실패 저장 확률 (예: 0.3) — 실패한 에피소드를 failure 데이터셋에 저장할 확률입니다. 성공/실패 카운트 자체는 이 확률과 무관하게 항상 갱신됩니다.
-
저장을 눌러 정책을 적용합니다.
설정을 마쳤으면 롤아웃·학습 실행 / 모니터 / 교정 / 진급으로 넘어갑니다.