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.
- shoulderRoll15°
- shoulder72°
- elbow10°
- elbow−48°
- baseYaw−30°
- baseYaw0°
- baseYaw30°
- wrist−20°
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.
- 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×)
- 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
- 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
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.
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.