curriculum
플래너 선택 / 그룹·블록·정책 설정
자가학습을 만들 플래너를 선택하고, 좌측 패널에서 블록을 그룹에 배정한 뒤 체크포인트별 학습 설정·모션 노이즈·그룹 정책을 구성합니다.
최근 확인 버전: v5.0.0
자가학습을 시작하려면 먼저 플래너를 선택해 자가학습을 만들고, 좌측 패널에서 블록을 그룹으로 묶은 뒤 각 그룹의 학습 설정·노이즈·정책을 정합니다.
플래너 선택
페이지를 처음 열면 헤더에 로봇 마스코트와 스스로 배우는 로봇 타이틀, 그리고 플래너 선택 드롭다운만 보이는 빈 상태입니다.

-
헤더의 플래너 선택 드롭다운에서 플래너를 고릅니다.
플래너를 선택하면 해당 플래너의 자가학습이 자동으로 만들어집니다(이미 있으면 그대로 불러옵니다). 처음 만들어질 때는 그룹 한 개가 자동 생성되고, 플래너의 모든 체크포인트가 그 그룹에 들어갑니다.

플래너를 선택하면 화면이 좌측 설정 패널과 우측 롤아웃·대시보드 패널로 채워집니다. 좌측 패널은 플래너 · 디바이스 · 그룹 정책 세 개의 탭으로 구성됩니다.
플래너 탭 — 블록을 그룹에 배정
플래너 탭에는 이 플래너의 블록이 위에서 아래로 나열됩니다(읽기 전용 — 여기서 블록을 편집하지는 않습니다). 그룹에 속한 블록은 부제에 그룹 색상의 칩으로 그룹 이름이 표시되어, 같은 색 칩끼리 한 그룹임을 한눈에 알 수 있습니다. 그룹에 배정되지 않은 모션 블록은 미배정으로, timesleep처럼 설정 대상이 아닌 블록은 블록 종류가 표시됩니다. 설정할 수 있는 블록(체크포인트·모션)에만 톱니 아이콘이 붙어 있고, 누르면 블록 설정 다이얼로그가 열립니다.

그룹은 무슨 역할을 하나요?
그룹은 자가학습이 성공과 실패를 판정하는 단위입니다. 한 번의 롤아웃에서 그룹에 속한 체크포인트가 전부 성공해야 그 그룹이 한 번 "성공"한 것으로 세고, 하나라도 실패하거나 끝까지 도달하지 못하면 그룹 전체가 "실패"가 됩니다. 진급 목표(성공 + 교정 개수), 성공률 통계, 자동 재학습이 모두 이 그룹 단위로 돌아갑니다. 따라서 체크포인트를 어떻게 묶느냐가 곧 **"무엇을 한 번의 성공으로 볼 것인가"**를 정하는 셈입니다.
묶는 기준은 체크포인트들이 서로 의존하는지 여부입니다.
- 의존 체크포인트 → 같은 그룹 — 하나가 실패하면 나머지가 무의미해지는, 이어진 한 과제. 예를 들어 잡기 → 놓기는 잡기에 실패하면 놓기를 시도하는 것 자체가 의미 없으므로 같은 그룹에 둡니다. 그러면 잡기는 성공했지만 놓기에서 실패한 시행이 통째로 실패로 처리되어, 끝까지 해낸 경우만 성공으로 집계됩니다.
- 독립 체크포인트 → 다른 그룹 — 서로 영향을 주지 않는 별개의 과제. 예를 들어 사과를 잡아 놓기와 배를 잡아 놓기는 각각 따로 성공/실패를 세고 따로 학습해야 하므로 서로 다른 그룹으로 나눕니다. (그리고 각 그룹 안에서는 다시 그 과제의 잡기·놓기 체크포인트가 의존 관계로 함께 묶입니다.)
한편 데이터 저장은 그룹 판정과 별개로 체크포인트별로 이뤄집니다. 그룹이 실패한 롤아웃이라도 그 안에서 성공한 체크포인트의 에피소드는 자기 success 데이터로 저장되고, 실패한 체크포인트만 실패 저장 확률에 따라 저장됩니다. 즉 그룹은 성공/실패를 세고 진급을 판단하는 단위이고, 데이터는 체크포인트마다 모입니다.
블록은 두 종류로 나뉘고, 종류에 따라 설정 다이얼로그의 내용이 다릅니다.
체크포인트 블록 — 학습 설정
체크포인트 블록의 톱니 아이콘을 누르면 그룹 배정과 체크포인트별 학습 설정을 정하는 다이얼로그가 열립니다.

-
그룹을 정합니다.
- 그룹 변경 — 다른 그룹이 존재할 때, 이 체크포인트를 다른 그룹으로 옮깁니다.
- 그룹 분리 — 같은 그룹에 다른 멤버가 더 있을 때, 이 체크포인트만 떼어 새 그룹 이름으로 새 그룹을 만듭니다.
-
체크포인트별 학습 설정을 채웁니다.
진급 시 자동 재학습에 사용할 설정입니다.
- Base 데이터셋 (다중 선택) — 재학습 시 자가학습 수집분과 함께 합쳐 쓸 기준 데이터셋입니다. 자가학습이 수집한 데이터셋(
origin=curriculum)은 목록에서 제외됩니다. - 학습 서버 URL — 재학습을 수행할 학습 서버 주소입니다.
- 학습 하이퍼파라미터 — 에폭, 배치 크기 등 재학습에 쓸 값입니다.
- Base 데이터셋 (다중 선택) — 재학습 시 자가학습 수집분과 함께 합쳐 쓸 기준 데이터셋입니다. 자가학습이 수집한 데이터셋(
-
판정 조건을 정합니다.
롤아웃에서 체크포인트의 성공/실패를 가르는 기준입니다.
- 최초 길이 제한 (기본 600) — 실패로 취급할 최대 스텝 수입니다. 이 스텝 안에 성공 신호를 얻지 못하면 실패로 판정합니다.
- 길이 제한 rate (기본 1.5) — 다음 스테이지의 길이 제한 = 현재 스테이지 성공 에피소드의 평균 길이 × rate로 계산됩니다.
- 성공 임계값 (기본 0.5) — 정책의 성공 점수가 이 값을 넘으면 성공으로 봅니다.
- 성공 데이터 다운샘플 — 성공 데이터를 N 프레임당 1프레임만 유지해 기록합니다(마지막 프레임은 항상 보존).
모션 블록 — 노이즈 설정
모션 블록의 톱니 아이콘을 누르면 영향을 줄 그룹과 노이즈를 정하는 다이얼로그가 열립니다.

노이즈는 모션 블록이 로봇을 데려다 놓는 위치·자세를 매 롤아웃마다 조금씩 무작위로 흔드는 값입니다. 구체적으로는 joint_position·query_pose 블록이 도달한 뒤 엔드이펙터(EE)를 노이즈만큼 밀어 주고, move_relative_ee 블록의 상대 이동 벡터에 노이즈를 더합니다. 그 결과 체크포인트 정책이 일을 시작하는 출발 조건(예: 팔이나 대상 물체의 위치)이 롤아웃마다 달라집니다.
노이즈가 필요한 이유는 두 가지입니다.
- 일반화 — 노이즈가 0이면 매번 똑같은 자리에서만 데이터가 쌓여, 재학습한 정책이 그 한 조건에서만 잘 동작합니다. 출발 위치를 무작위로 흩뜨리면 다양한 조건의 성공 데이터가 모이고, 정책이 위치 변화에 강건해집니다.
- 난이도 상승 —
rate항은 그룹의 성공률에 비례해 커집니다. 즉 정책이 잘 풀어서 성공률이 올라갈수록 노이즈 범위가 저절로 넓어지고, 다음 롤아웃은 더 흩어진(더 어려운) 출발 조건을 다루게 됩니다. 이것이 자가학습이 난이도를 점진적으로 올리는 핵심 장치입니다.
노이즈는 고정된 변위가 아니라 매 롤아웃마다 새로 뽑는 랜덤 값이라는 점에 유의하세요. 같은 설정이라도 시행마다 흔들리는 방향과 크기가 달라집니다.
-
영향 줄 그룹을 선택합니다.
이 모션 블록의 노이즈를 어느 그룹의 난이도로 다룰지 정합니다. 비워 두면 미배정 상태가 됩니다.
-
노이즈 rate / offset 을 6축으로 입력합니다.
위치 3축(x, y, z)과 회전 3축(ax, ay, az) 각각에 대해 rate와 offset을 정합니다.
- 노이즈 rate — 성공률에 비례해 커지는 일반화 강도입니다. 성공률이 높아질수록 노이즈 범위가 넓어집니다.
- 노이즈 offset — 성공률과 무관하게 항상 더해지는 기본 랜덤 범위입니다.
실제 노이즈는 매 롤아웃마다 ±(성공률 × |rate| + |offset|) 사이의 균일 랜덤으로 다시 샘플됩니다.
-
예상 노이즈 프리뷰로 범위를 확인합니다.
현재 입력값으로 예상되는 노이즈 ± 최댓값이 6축별로 표시되어, 저장 전에 실제 범위를 가늠할 수 있습니다.
디바이스 탭 — 로봇·센서 켜기
디바이스 탭에는 이 플래너가 사용하는 로봇과 센서가 나열됩니다. 각 항목의 토글로 로봇·센서를 켜고 끄며, 상태는 색으로 표시됩니다(커스텀 디바이스는 토픽 켜짐/꺼짐 상태로 보입니다).

그룹 정책 탭 — Stage Mission
그룹 정책 탭에서는 그룹을 선택해 진급 목표와 데이터 저장 정책을 정합니다. V1의 진급은 누적 개수를 기준으로 합니다.

-
그룹을 선택합니다.
정책은 그룹별로 따로 저장됩니다.
-
Stage Mission 값을 정합니다.
- 목표 성공 + 교정 개수 — 그룹의 각 체크포인트가 (성공 + 교정) 개수가 이 값에 도달하면 미션을 달성한 것으로 보고 자동 재학습을 시작합니다.
- 실패 저장 확률 (예: 0.3) — 실패한 에피소드를 failure 데이터셋에 저장할 확률입니다. 성공/실패 카운트 자체는 이 확률과 무관하게 항상 갱신됩니다.
-
저장을 눌러 정책을 적용합니다.
설정을 마쳤으면 롤아웃 실행 / 모니터 / 교정 / 진급으로 넘어갑니다.