본문으로 이동

무료 온라인 로봇 시뮬레이터 · Blockly · 디지털 트윈

로봇을 프로그래밍해머리를 다듬으세요.모든 동작은 먼저 안전 검사를 거칩니다.

HCR은 Hair Cutting Robot 학술 연구입니다. 참여자는 블록을 조합해 5관절 Service Robot으로 복셀 헤어스타일을 다듬습니다. 디지털 트윈이 각 동작을 먼저 검사하고, 머리에 닿을 수 있는 움직임은 실행하지 않습니다.

클라이언트는 브라우저에서 실행되고 Rust 서비스가 제출된 프로그램을 재생해 채점합니다. 실제 로봇은 필요하지 않으며, 도전 난이도는 참여자의 성과에 맞춰 달라집니다.

또는 데스크톱 앱 다운로드 는 macOS, Windows, Linux를 지원합니다. 교실에 Wi-Fi가 없을 때 유용합니다.

깔끔한 짧은 머리실행 중
  1. shoulderRoll15°
  2. shoulder72°
  3. elbow10°
  4. elbow−48°
  5. baseYaw−30°
  6. baseYaw
  7. baseYaw30°
  8. wrist−20°
완성도57.6
자를 부분남길 부분

필요성

로봇 교육은 확장하기 어렵습니다

로봇 팔 하나에 학생 한 명

실물 로봇 팔은 비싸고 한 번에 한 학생만 사용할 수 있으며 교사의 감독도 필요합니다.

하나의 과정, 하나의 진도

학급 전체가 같은 순서로 배우면 빠른 학생은 지루해하고 어려움을 겪는 학생은 포기하기 쉽습니다.

실수의 대가가 큽니다

실물 장비에서는 잘못된 각도가 충돌로 이어지므로 초보자에게 조작 기회를 주지 않는 것이 가장 안전해집니다.

학습 순환

작성하고, 검사하고, 채점하세요. 숫자 하나를 바꿔 다시 시도합니다

세 번째 단계가 다시 첫 단계로 이어집니다. 이 반복이 학습의 핵심입니다.

  1. 1프로그램

    문법 대신 블록 끌어놓기

    서보 모드에는 절대 각도 설정, 대기, 반복의 세 블록이 있습니다. 인증된 Cutter Grid 연습은 6개 고정 세계 방향과 정수 거리를 추가하고 실행 전에 결정론적 관절 계획으로 컴파일합니다.

    서보 각도 · Cutter Grid 이동 · 대기(0~5000ms) · 반복(1~20회)

  2. 2검사

    디지털 트윈이 먼저 실행

    로봇 팔을 움직이기 전에 같은 프로그램을 머리의 기하 모형에서 연속 검사합니다. 머리 안으로 들어갈 동작은 거부하고 마지막 안전 자세를 유지하며 원인 블록을 표시합니다.

    연속 스윕 접촉 검사 · 결정론적 · 물리 엔진 없음

  3. 3채점

    성적이 아닌 점수

    실수해도 다시 시도하면 됩니다. 목표 머리 모양과의 일치도, 프로그램의 간결성, 예상 실행 시간으로 점수를 계산합니다.

    0.60 completion + 0.25 efficiency + 0.15 time

풀이 가능성 보장

모든 도전 과제는 반드시 완료할 수 있습니다.

목표 머리 모양을 먼저 그린 뒤 로봇 팔이 닿기를 바라는 방식은 통하지 않습니다. 초기 과제 하나는 팔이 20개에만 닿을 수 있는데도 머리카락 91개를 요구했습니다. 완료할 수 없는 과제였지만 학습자에게 아무 안내도 없었습니다.

이제 풀이기를 먼저 실행합니다. 후보 목표를 충돌 없는 관절 공간에서 훑은 뒤 기준 풀이기에 넘기며, 완료할 수 없는 목표는 생성 단계에서 제외해 출제하지 않습니다. 얻은 해는 해당 단계의 기준 비용과 기준 시간이 됩니다.

초기에 직접 만든 도전 과제

단계가 요구한 머리카락91
로봇 팔이 닿을 수 있는 머리카락20

과제 자체를 완료할 수 없었지만 화면에는 아무 설명도 없었습니다. 학생은 설계 결함을 자신의 실패로 쉽게 오해할 수 있습니다.

적응형

학급 전체가 아닌 학생별 맞춤 난이도

매 시도 후 학습 상태를 다시 추정해 다음 과제를 고릅니다. 여유 있게 완료하면 난도를 높이고, 어려워하면 한 단계 낮춥니다.

능력치 θ
로봇 프로그래밍 숙련도를 logit 척도로 나타내며 프로그램을 재실행할 때마다 갱신합니다.
3PL이 아닌 2PL
정답 머리 모양을 추측으로 만들 수 없으므로 추측 모수를 0으로 고정하고 잡음에서 세 번째 모수를 추정하지 않습니다.
문항 선택
현재 θ의 Fisher 정보량으로 과제를 정렬한 뒤 노출을 제한해 같은 소수 문항이 비슷한 수준의 모든 학생에게 반복되지 않게 합니다.
부분 점수
점수는 연속값입니다. 능력 추정치를 갱신하기 전에 각 문항의 숙달 기준을 중심으로 원점수를 재매핑하고 원래 값도 함께 보관합니다.
보정
새 과제는 잠정 상태로 시작하며 충분한 응답으로 난이도를 다시 적합할 때까지 노출을 제한하고 공식 능력 갱신에서 제외합니다.
현재는 단일 θ
현재 버전은 능력을 하나의 종합값으로 다루고 보고를 위해 각 응답에 차원 태그를 기록합니다. 진정한 다차원 모형은 향후 과제이며 현재 기능이 아닙니다.

연구 참여

연구를 시작하기 전에 참여 여부를 선택하세요

참여자가 학술 연구에 참여하기로 선택하기 전에는 시뮬레이터 세션이나 플레이어 식별자를 만들지 않습니다.

연구에 필요한 데이터

재생, 채점, 분석에 필요한 Blockly 프로그램 IR, 도전 버전, 점수, 기술 세션 또는 제출 식별자입니다.

선택 배경 정보

기본 언어는 zh, en 같은 간단한 코드로, UTC 오프셋은 현재 분 단위 값으로만 기록합니다. ‘학술 연구 참여’를 누르면 둘 다 켜지며 ‘세부 설정’에서 각각 끌 수 있습니다.

의도적으로 수집하지 않는 정보

브라우저 지문, 정확한 IANA 시간대 이름, 추정 위치, 광고 식별자, 사이트 간 추적 프로필은 수집하지 않습니다.

데이터를 설명하는 방식

이 데이터를 완전 익명이라고 부르지 않습니다. 연구 기록에 세션 식별자가 남을 수 있고 서버도 일반 보안 로그를 보관하므로 비식별화 데이터라고 설명합니다.

모드

혼자 연습하거나 모두와 대결하세요

개인 연습

시간 제한 없이 작업 공간에서 원하는 만큼 도전할 수 있습니다.

  • 실행, 일시 정지, 재개, 명령별 한 단계 실행, 중지, 초기화를 할 수 있습니다. 초기화해도 프로그램은 그대로 남습니다.
  • ‘테스트’는 애니메이션을 재생하지 않고 프로그램을 몇 밀리초 안에 백그라운드로 평가합니다.
  • 작업 중 목표 머리 모양 미리 보기를 켜거나 끌 수 있습니다.

대결 라운드

방 안의 모든 참가자가 동시에 같은 과제를 받습니다.

  • 고정된 실제 시간 동안 진행하며 참가자 기기가 아닌 서버 시계를 기준으로 판정합니다.
  • 라운드가 끝날 때까지 본인 점수를 포함해 누구도 점수를 볼 수 없습니다.
  • 원하는 만큼 다시 제출할 수 있으며 최고 기록만 반영됩니다.
  • 프로그램을 서버에서 다시 실행하므로 더 빠른 컴퓨터가 유리하지 않습니다.

백엔드가 설정되지 않으면 브라우저가 스크립트 봇과의 대전을 채점합니다. 메뉴, 로비, 점수판에 연습 경기임을 분명히 표시합니다. 오프라인으로도 플레이할 수 있지만 로컬 점수를 공식 결과로 보여 주지는 않습니다.

Rust로 구축

서버 재실행부터 임베디드 로봇 펌웨어까지 Rust로 구현

HCR에서 Rust는 장식용 이름이 아닙니다. 채점 서비스, 적응형 엔진, 프로토콜 처리, no_std 임베디드 게이트웨이를 구현합니다.

서버 측 재실행프로토콜Rust 펌웨어(목표)
HCR의 Rust 살펴보기

기술 구성

네 구성 요소, 하나의 프로토콜

Simulator

HCR_Simulator_Frontend

React · TypeScript · Vite · React Three Fiber · Blockly

전체 데모 흐름은 클라이언트에서 실행됩니다. 백엔드가 설정되지 않으면 네트워크 요청을 전혀 보내지 않습니다.

Service

hcr-backend

Rust · MQTT over WebSocket · HTTP binding

서버에서 프로그램을 재생하고 적응형 문항 은행을 운영하며 라운드 마감 시간과 순위를 관리합니다.

프로토콜

hcr-backend/schema

hcr.v1 · JSON and CBOR

모든 메시지는 하나의 봉투에 담기며 ULID로 연결됩니다. 마이너 버전은 추가만 허용하고 수신 측은 모르는 내용을 오류 없이 버립니다.

하드웨어

hcr-fw

Rust (no_std) · ESP8266 · Arduino C++ as a hardware library

실물 5서보 로봇 팔에서 Rust가 시작 정책, 라우팅, HTTP/JSON, 서보 상태를 담당하고 C++는 바이트 중심 C ABI 뒤로 제한됩니다. 게이트웨이의 MQTT는 아직 구현되지 않았습니다.

체험하기

적응형 코딩, 게임, 시뮬레이션, 교육을 하나의 플랫폼에서 제공합니다.

로봇을 구입할 필요가 없습니다. 학급 전체가 동시에 각자에게 맞는 난도로 배울 수 있습니다. 연구 안내를 읽고 참여 여부를 정한 뒤 첫 과제를 시작하세요.