09참가자 AWS 배포예상 약 25분, 별도 일정
웹 화면과 발표 시나리오
시점·재생·텔레메트리·모바일·발표 모드로 데모를 구성합니다.
참가자 AWS 배포 트랙, 예상 약 25분입니다. 공개 HTTPS와 agentcore 플래너가 준비되어 있어야 합니다.
화면을 조작하는 순서와 결과를 설명하는 근거를 준비합니다. 저장된 시뮬레이션 기록 재생, 새 모델 계획, 새 물리 실행을 각각 보여 줍니다.
1. 발표할 배포 확인
set -euo pipefail
cd "$ROBOT_LAB"
test -f infra/workshop-binding.json
python3 -B scripts/deploy.py status --stack app \
> .local/evidence/app-status.json
export ROBOT_URL="$(python3 -c 'import json; print(json.load(open(".local/evidence/app-status.json"))["outputs"]["PublicUrl"])')"
curl --fail --silent --show-error --max-time 30 "$ROBOT_URL/readyz"
브라우저에서 출력된 본인 공개 주소를 엽니다. 나눔스퀘어, 네이비 #232f3e 헤더, 파란 #0972d3 작업 버튼과 주황 #ff9900 강조색을 유지합니다. 로봇 팔의 Franka 표기는 사용한 Panda 모델의 제조사 표기이며, 서비스 이름 Robot Atlas와 구별합니다.
2. 시연 구성 예시
설명 분량은 약 3분을 편성 예시로 삼고, 실제 모델 응답·물리 계산 대기와 질문에 따라 조정합니다.
| 순서 | 화면 조작 | 설명과 확인 |
|---|---|---|
| 1 | 물건 옮기기 선택 → 시연 시작 → 일시정지 | 준비된 기록을 재생 중이며 지금 모델을 호출한 것이 아님 |
| 2 | 가까이 보기, 위에서 보기, 관절과 그리퍼 펼치기 | 접촉·관절·그리퍼 값은 해당 기록의 물리 상태 |
| 3 | AI에게 작업 지시 → 아래 한국어 지시 입력 → 계획 생성 | 세 action의 물체 순서와 tower 목적지를 실행 전에 확인 |
| 4 | 배치 123 입력 → 실행 → 완료 후 결과 재생 | 새 배치에서 MuJoCo가 실제 계산한 결과 |
| 5 | 실행 결과 열기, 마지막 프레임·체크 항목 확인 | 놓인 뒤 지지·안정성·목표 오차를 확인하고 JSON 보관 |
AI 작업 지시창에 입력할 문장은 다음과 같습니다. 셸 명령이 아닙니다.
파란 상자, 빨간 상자, 주황 상자 순서로 3단으로 쌓아줘
기다리는 동안 이미 성공했다고 설명하지 않습니다. 물리 계산 시간과 화면 기록 길이도 서로 다릅니다. 준비된 기록이 30초 이상이어도 계산의 벽시계 시간은 그와 같을 필요가 없습니다.
3. 조작 확인
- 드래그·스크롤로 시점을 바꾸고 기본 시점으로 돌아옵니다.
- 재생 위치를 중간으로 옮겨 일시정지한 상태의 접촉 정보와 관절을 살펴봅니다.
- 0.5×·1×·2×·4×는 기록 재생 속도이며 물리 계산 설정을 바꾸지 않음을 확인합니다.
- 발표 모드로 패널을 정리하고 Esc로 빠져나옵니다.
- 휴대폰 폭에서 작업 선택 서랍을 열어 색상별 분류를 선택한 뒤 닫습니다.
- “빨간 상자만 오른쪽 트레이로 옮겨줘”를 계획하면 action이 한 개인지 확인하고, 실행 후 다른 두 상자가 원위치에 남는지 봅니다.
Space는 입력 중인 폼이나 포커스가 있는 버튼에서 해당 요소의 동작을 할 수 있습니다. 단축키가 의도한 대상에 적용되는지 확인하며 발표합니다.
4. 결과 JSON의 근거 확인
브라우저에서 내려받은 본인의 실행 JSON을 작업 공간의 .local/evidence/에 저장합니다. 파일 이름을 입력해 검사합니다. API 쿠키·CSRF 토큰을 다운로드 자료에 추가하지 않습니다.
cd "$ROBOT_LAB"
read -r -p "내가 다운로드한 실행 JSON의 파일 경로: " ROBOT_REPLAY
export ROBOT_REPLAY
.venv/bin/python - <<'PY'
import json, os
from pathlib import Path
replay = json.loads(Path(os.environ["ROBOT_REPLAY"]).read_text())
summary = {
"engine": replay["engine"], "seed": replay["seed"],
"status": replay["status"], "metrics": replay["metrics"],
"failedChecks": [c["name"] for c in replay["checks"] if not c["passed"]],
"frames": len(replay["frames"]), "duration": replay["duration"],
"learning": replay["provenance"]["learning"],
}
print(json.dumps(summary, ensure_ascii=False, indent=2))
assert summary["engine"] == "MuJoCo"
assert summary["learning"] == "none"
assert summary["status"] == "succeeded" and summary["metrics"]["success"]
assert not summary["failedChecks"]
PY
검사가 실패하면 그 실행을 실패 사례로 설명하고 원인을 조사합니다. 화면 캡처만으로 물체 지지나 안정성을 증명하지 않습니다. 자동 브라우저 검사는 11장에서 수행합니다.
발표에서 구분할 내용
“모델이 허용된 물체와 목적지를 선택하고, 제어기가 관절을 움직이며, MuJoCo가 접촉 결과를 계산합니다”라고 설명할 수 있습니다. 이 시연으로 카메라 인식, 학습된 운동 정책, 실물 로봇이나 sim-to-real 성능을 검증한 것은 아닙니다.
별도 Isaac Sim 과정으로 진행해도 어떤 엔진의 결과를 재생하는지 표시해야 합니다. MuJoCo 기록을 Isaac Sim 실행 결과로 바꾸어 설명하지 않습니다.
실패 시 재개
| 증상 | 확인 |
|---|---|
| 빈 작업대·모델 로딩 오류 | GLB·scene.json·기록 파일 응답, WebGL, Console 오류 |
| 새 명령 뒤 이전 실행이 표시 | 선택한 배치·run ID·계획 순서, 지연 응답 처리 |
| 모바일 버튼이 화면 밖 | 390px 안팎 폭, 폼/서랍의 스크롤과 키보드 |
| 429 또는 대기 | 실행 중인 다른 요청을 확인하고 끝난 뒤 재시도 |
| API 오류 | 발표를 성공으로 계속하지 않고 상태·오류 코드와 시각 기록 |
완료 체크리스트
- 기록 재생 → 새 계획 → 새 실행 → 결과 검증을 구분해 시연했습니다.
- 시점·탐색·재생 속도·관절·발표 모드·모바일을 확인했습니다.
- 파랑 우선 쌓기와 빨간 상자 한 개 옮기기를 구분했습니다.
- 결과 JSON과 관측한 제한을 보관했습니다.
AI CLI 카드: 09. 발표 · 다음: 10. 운영
AI CLI 프롬프트 카드
아래 프롬프트를 복사해 실습 EC2에서 선택한 Codex, Kiro CLI, Claude Code의 대화 입력창에 붙여넣습니다. Markdown 카드 다운로드
선택한 AI CLI의 대화 입력창에 붙여넣으세요. 세 도구가 같은 프롬프트를 사용합니다.
Robot Atlas 워크숍 09장의 발표 리허설을 도와주세요.
ROBOT_REPO/workshop/chapters/09-presentation.md와 ROBOT_LAB의 실제 UI 코드를 읽으세요.
할 일:
- 본인 배포 주소와 readyz를 확인합니다.
- 기록 재생→새 모델 계획→새 물리 실행→결과 검증을 구분한 약 3분 분량의 발표 메모를 작성합니다. 모델 응답·물리 계산 대기와 질문에 따라 조정합니다.
- 시점·일시정지·탐색·재생 속도·관절·그리퍼·접촉·발표 모드·모바일 조작을 점검합니다.
- 파랑 우선 3단 쌓기와 빨간 상자만 옮기기의 action 수·순서를 실행 전에 확인합니다.
- 내려받은 본인 JSON에서 engine, seed, metrics, checks, 마지막 pose를 확인합니다.
- 발표 메모와 검증 범위는 참가자 app의 .local/evidence에 보관합니다.
표현:
Franka는 Panda 모델의 제조사 표기이며 서비스 브랜드 Robot Atlas와 구분합니다.
LLM은 제한된 작업 계획을 선택하고, 관절 제어기와 MuJoCo가 물리 동작을 수행합니다.
카메라 인식, 학습된 운동 정책, 실물 로봇, sim-to-real 검증을 했다고 말하지 마세요.
저장된 MuJoCo 재생을 새 실행이나 Isaac Sim 결과라고 표현하지 마세요.
캡처만으로 물리적 지지·안정성을 입증하지 마세요.
작업 경계:
운영 루트·다른 참가자·원본 교재는 읽기만 합니다.
UI 수정이 별도 요청되지 않았다면 나눔스퀘어, 네이비/파랑/주황 색상과 레이아웃을 유지하세요.
실습 결과를 성공으로 고치거나 장애를 규칙 모드로 숨기지 마세요.
기존 실행 중에는 불필요한 모델·물리 요청을 중복 제출하지 마세요.
확인한 주소·조작·JSON 근거·관측한 제한·미확인 항목을 보고하세요.
읽기 기록
읽음 표시는 이 브라우저에만 저장됩니다.
실제 실습 결과는 터미널에서 확인하세요.