Ir al contenido principal

Simulador de robots gratis en línea · Blockly · Gemelo digital

Programa un robotpara cortar el cabello.Cada movimiento se comprueba primero.

HCR es un estudio académico sobre un Hair Cutting Robot. Los participantes combinan bloques para guiar un Service Robot de cinco articulaciones por un peinado de vóxeles. Un gemelo digital comprueba cada movimiento y rechaza cualquiera que pueda tocar la cabeza.

El cliente funciona en el navegador y un servicio Rust reproduce y puntúa los programas enviados. No hace falta un robot físico; la dificultad cambia según el rendimiento de cada participante.

O descargar la aplicación de escritorio para macOS, Windows y Linux. Resulta útil cuando el aula no tiene Wi-Fi.

Corte corto definidoEn ejecución
  1. shoulderRoll15°
  2. shoulder72°
  3. elbow10°
  4. elbow−48°
  5. baseYaw−30°
  6. baseYaw
  7. baseYaw30°
  8. wrist−20°
Finalización57.6
CortarConservar

Por qué

La enseñanza de robótica no escala

Un brazo, un estudiante

Un brazo robótico real es caro, solo sirve a un estudiante cada vez y exige supervisión docente.

Un curso, un ritmo

Una sola secuencia para toda la clase aburre a quien avanza rápido y desanima a quien necesita más tiempo.

Los errores salen caros

En el equipo real, un ángulo incorrecto causa una colisión. Por seguridad, a menudo se impide que los principiantes lo manejen.

El ciclo

Programa, comprueba y puntúa. Cambia un número y vuelve a intentarlo

Tres pasos; el tercero te devuelve al primero. Ese ciclo constituye toda la lección.

  1. 1Programar

    Arrastra bloques, no escribas sintaxis

    El modo Servo tiene tres bloques: ángulo absoluto, espera y repetición. Cutter Grid añade seis direcciones globales y distancias enteras, compiladas en un plan articular determinista antes de ejecutar.

    Ángulos de servo · movimientos Cutter Grid · espera (0–5000 ms) · repetir (1–20×)

  2. 2Comprobar

    El gemelo digital lo ejecuta primero

    Antes de mover el brazo, el programa recorre un modelo geométrico de la cabeza. Se rechaza cualquier movimiento que la invada; el brazo conserva la última postura segura y se señala el bloque responsable.

    Contacto por barrido continuo · determinista, sin motor físico

  3. 3Puntuar

    Una puntuación, no una nota

    Equivocarse solo cuesta otro intento. Se puntúan la similitud con el peinado objetivo, la concisión del programa y su tiempo estimado.

    0.60 completion + 0.25 efficiency + 0.15 time

La garantía

Todos los retos se pueden completar.

Dibujar primero el corte y confiar en que el brazo pueda alcanzarlo no funciona. Un reto inicial pedía cortar 91 piezas de cabello cuando el brazo solo alcanzaba 20. Era imposible, pero el nivel no avisaba al estudiante.

Ahora el solucionador actúa primero. Cada objetivo candidato se barre por el espacio articular sin colisiones y pasa a un solucionador de referencia; si este no puede completarlo, se descarta al generarlo y nunca se presenta. La solución fija el coste y el tiempo de referencia del nivel.

Uno de los primeros retos dibujados a mano

Cabello solicitado por el nivel91
Cabello al alcance del brazo20

El reto era imposible de completar, pero la pantalla no lo indicaba. Un estudiante podía confundir fácilmente ese fallo de diseño con un error propio.

Adaptación

Un nivel para cada estudiante, no uno para toda la clase

Tras cada intento, la plataforma vuelve a estimar el progreso y elige un reto adecuado. Si resulta fácil, sube la dificultad; si cuesta, retrocede un nivel.

Capacidad θ
Competencia para programar robots en escala logit, actualizada con cada programa reproducido.
2PL, no 3PL
No se puede acertar un corte por casualidad; el parámetro de adivinación se fija en cero y no se estima un tercer parámetro a partir del ruido.
Selección de ítems
Los retos se ordenan por información de Fisher en el θ actual y se limita su exposición para no repetir los mismos ítems entre estudiantes del mismo nivel.
Crédito parcial
Las puntuaciones son continuas. Antes de actualizar la estimación, el servicio reasigna cada puntuación alrededor del umbral de dominio del ítem y conserva también el valor original.
Calibración
Un reto nuevo comienza como provisional: se limita su exposición y no cuenta para actualizar la capacidad hasta reunir respuestas suficientes para reajustar su dificultad.
Un único θ por ahora
Esta versión usa un único valor compuesto de capacidad y registra etiquetas dimensionales en cada respuesta. Un modelo realmente multidimensional es trabajo futuro, no una capacidad actual.

Participación

Decide si quieres participar antes de comenzar

El cliente no crea una sesión del simulador ni un identificador de jugador hasta que la persona decide participar en el estudio.

Datos necesarios para el estudio

Blockly Program IR compilado, versión del reto, puntuación e identificadores técnicos de sesión o envío necesarios para reproducir y analizar el resultado.

Contexto opcional

El idioma principal se guarda como un código general, como zh o en, y el desfase UTC como un número de minutos. El botón «Participar» activa ambos; «Más opciones» permite desactivarlos por separado.

Datos que no recopilamos

No recopilamos huellas del navegador, nombres exactos de zonas horarias IANA, ubicaciones inferidas, identificadores publicitarios ni perfiles de seguimiento entre sitios.

Cómo describimos los datos

No afirmamos que los datos sean totalmente anónimos. Los registros del estudio pueden conservar identificadores de sesión y el servidor mantiene sus registros de seguridad habituales; por eso hablamos de datos desidentificados.

Modos

Practica a solas o compite con la sala

Práctica individual

Sin límite de tiempo: un entorno, un reto y tantos intentos como quieras.

  • Puedes ejecutar, pausar, reanudar, avanzar orden por orden, detener o reiniciar. El programa permanece después de reiniciar.
  • «Probar» evalúa el programa sin interfaz en milisegundos, en lugar de esperar a la animación.
  • Muestra u oculta la vista previa del peinado objetivo mientras trabajas.

Ronda competitiva

Toda la sala recibe el mismo reto al mismo tiempo.

  • Una ventana de tiempo fija, medida por el reloj del servidor y no por el de cada jugador.
  • Nadie ve puntuaciones, ni siquiera la propia, hasta que termina la ronda.
  • Puedes volver a enviar tantas veces como quieras; solo cuenta el mejor intento.
  • Los programas se reproducen en el servidor, así que un portátil más rápido no da ventaja.

Sin un backend configurado, el navegador puntúa las rondas contra bots programados. El menú, la sala y el marcador indican claramente que son prácticas. Puedes jugar sin conexión, pero una puntuación local nunca se presenta como resultado oficial.

Construido con Rust

Rust desde la reproducción en servidor hasta el firmware del robot

Rust no es una etiqueta decorativa en HCR: implementa el servicio de puntuación, el motor adaptativo, el protocolo y la pasarela embebida no_std.

Reproducción en el servidorProtocoloFirmware Rust (objetivo)
Explorar Rust en HCR

Arquitectura

Cuatro piezas, un protocolo

Simulator

HCR_Simulator_Frontend

React · TypeScript · Vite · React Three Fiber · Blockly

Toda la demostración se ejecuta en el cliente. Si no hay backend configurado, no realiza ninguna solicitud de red.

Service

hcr-backend

Rust · MQTT over WebSocket · HTTP binding

Reproduce programas en el servidor, ejecuta el banco adaptativo y gestiona los plazos y la clasificación de cada ronda.

Protocolo

hcr-backend/schema

hcr.v1 · JSON and CBOR

Cada mensaje viaja en un sobre y se correlaciona mediante ULID. Las versiones menores solo añaden campos; los receptores descartan lo que no reconocen en vez de fallar.

Hardware

hcr-fw

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

En el brazo físico de cinco servos, Rust controla el arranque, las rutas, HTTP/JSON y el estado de los servos; C++ queda tras una ABI C orientada a bytes. MQTT aún no está implementado.

Pruébalo

Programación adaptativa, juego, simulación y educación en una sola plataforma.

No hay que comprar un robot. Toda la clase puede aprender a la vez, cada estudiante a su nivel. Lee la información del estudio, decide si participas y abre el primer reto.