Robotics education · Educação em robótica
English · Português · Guided tour / Visita guiada · Validation / Validação
EN: Did the exercise communicate its observations and return to staging?
PT: O exercício comunicou as observações e retornou à base?
| Goal · Objetivo | Where to go · Por onde começar |
|---|---|
| Understand a real example · Entender um exemplo concreto | Walkthrough / Roteiro |
| Reproduce and compare · Reproduzir e comparar | Evidence tour / Visita às evidências |
| Inspect the checks · Inspecionar as verificações | Validation record / Registro de validação · CI |
| Explore in the browser · Explorar no navegador | Public demonstration / Demonstração pública |
Example result · Resultado do exemplo: The complete exercise returns with all three markers reported; the communication-gap case preserves one unreported observation. / O exercício completo retorna com os três marcadores comunicados; o caso com falha de comunicação preserva uma observação não comunicada.
Try a comparison · Experimente uma comparação
EN: Compare complete-exercise and communication-gap; inspect the journal entries behind the final score.
PT: Compare complete-exercise e communication-gap; inspecione os registros que compõem a pontuação final.
A turn-based exercise desk for robotics education in search-and-rescue training. Plan movement, observe training markers, manage communication gaps, and return to staging. Every decision becomes an inspectable journal entry.
Preparation improves when learners can explain the consequences of a decision. This project gives firefighters, rescue educators, and robotics students a repeatable software exercise for discussing observation, communication, resource limits, and return planning.
This repository is a working software prototype in a development program centered on the Unitree Go2 PRO. It contributes to firefighter education, search planning, and search-and-rescue robotics training. The implementation, examples, and test suite provide a reviewable software baseline for the next stage of controlled hardware work.
The exercise turns a proposed robotics training program into a working teaching tool: learners choose a route, separate observations from transmitted reports, and account for the journey back. A supported Go2 PRO could later provide a physical demonstration platform in a prepared, non-hazardous training space, with a qualified operator using supported controls. The software journal would support discussion; it does not send commands to the robot.
An instructor runs the learning-centre exercise and asks why an observation remained unreported in a communication gap. A later Go2 PRO demonstration could reproduce a small set of marked stations in a closed classroom course. The instructor would compare the learner’s software plan with the supervised demonstration, without exposing the consumer platform to fire, smoke, collapse, or live rescue operations.
Hardware access matters: the standard PRO does not include secondary development in Unitree's comparison table. Custom integration therefore requires written vendor confirmation or a supported development configuration. The software currently has no device adapter. Official Go2 configuration reference, checked September 10, 2026.
Read the Go2 PRO hardware roadmap for the proposed setup, measurements, acceptance criteria, and integration boundaries.
| Capability | Implementation |
|---|---|
| Three exercise environments | Learning centre, workshop, and community hall, with connected zones and explicit restrictions. |
| Decision and resource model | Standard or deliberate movement, one-time searches, communication checks, and a relay placement option. |
| Transparent debrief | Observation, reporting, return, and reserve components produce an explainable teaching score. |
| Replay verification | An exported action sequence is replayed through the same rules; impossible actions are rejected. |
| Instructor-ready materials | Facilitator guide, worked scenario, public model assumptions, and a versioned report contract. |
- Move from Entry point to Foyer, then Assembly hall.
- Search the hall. Marker C is observed, but the location has a communication gap.
- Return to the foyer and send the observation.
- Return to the entry point, finish, and read why partial coverage affects the debrief.
Use Node.js 22 or newer. No dependency installation, keys, or account is required.
git clone https://github.com/galafis/rescue-scenario-lab.git
cd rescue-scenario-lab
npm test
npm run examples
npm startOpen http://127.0.0.1:4173. The included development server listens only on your machine. Set the PORT environment variable if that port is already in use. The demo is a static application; it can also be hosted by any ordinary static web server. Open it over HTTP, rather than directly from a file, so browser modules load correctly.
The following code runs against the software module, without a robot:
import { SCENARIOS, replay, debrief } from './src/mission.js';
const scenario = SCENARIOS[0];
const state = replay(scenario, [{ type: 'move', to: 'foyer', pace: 'standard' }, { type: 'end' }]);
console.log(debrief(scenario, state).returned); // falseOpen examples/complete-exercise.json for a complete input you can import through the demo. The technical design documents accepted inputs, outputs, and assumptions.
src/mission.js Pure domain logic and validation
src/app.js Browser interaction and rendering
src/browser.js Import, export, and text escaping
test/ Behavioral regression tests
examples/ Synthetic, versioned JSON examples
docs/ Architecture, evaluation, and facilitator material
scripts/serve.mjs Local static development server
.github/workflows/ Linux and Windows checks on Node 22 and 24
The current suite includes 26 automated tests. Run npm test for the behavioral suite or npm run test:coverage for a local coverage report. The workflow runs the same suite on Linux and Windows with Node 22 and 24. See validation notes for the tested properties and remaining review work.
This is a fictional teaching exercise with synthetic markers and arbitrary time and energy units. It does not command equipment, certify operational readiness, predict battery endurance, or prescribe actions for live emergencies.
This is an independent project by Gabriel Demetrios Lafis. It does not claim endorsement by a hardware vendor, university, emergency service, or clinical organization. Institutional contact: [email protected].
Accessible Route Lab · Inclusive Session Studio
The projects form a small portfolio for accessible mobility research, rescue education, and inclusive activity planning. They share a commitment to inspectable software and clear limits on demonstrated capability.
See CONTRIBUTING.md and SECURITY.md. The source and documentation are available under the MIT license. Suggestions from people with lived experience and relevant practitioners are especially welcome.
Abrir demonstração · Arquitetura · Guia do projeto · Roteiro de desenvolvimento com Go2 PRO
Ambiente educacional por turnos para discutir decisões de busca, comunicação, limites de recursos e retorno ao ponto de apoio. Cada ação gera um registro verificável, e o resultado pode ser exportado e reproduzido.
É um protótipo funcional de software em um programa de desenvolvimento direcionado ao Unitree Go2 PRO. Sua contribuição está ligada a educação de bombeiros, planejamento de buscas e treinamento de robótica para busca e salvamento. A implementação, os exemplos e a suíte de testes formam uma base de software verificável para a próxima etapa de trabalho controlado com o equipamento.
O exercício transforma a proposta de treinamento em robótica em uma ferramenta educacional funcional: os participantes escolhem uma rota, distinguem observações de relatos transmitidos e consideram o retorno. Um Go2 PRO com suporte poderia ser usado posteriormente em demonstrações físicas, em espaço preparado e sem exposição a perigos, por um operador qualificado usando controles suportados. O diário do software serviria à discussão; ele não envia comandos ao robô.
Exemplo concreto: Um instrutor executa o cenário do centro educacional e discute por que uma observação não foi transmitida em uma área sem comunicação. Uma demonstração posterior com o Go2 PRO poderia reproduzir algumas estações demarcadas em um percurso fechado de sala de aula. O instrutor compararia o plano no software com a demonstração supervisionada, sem expor a plataforma de consumo a fogo, fumaça, desabamento ou resgate real.
Acesso ao equipamento: a configuração PRO padrão não inclui desenvolvimento secundário na tabela da Unitree. Integrações personalizadas dependem de confirmação escrita do fabricante ou de uma configuração de desenvolvimento suportada. Este software ainda não possui adaptador para o robô. Consulte a referência oficial de configurações Go2, verificada em 10 de setembro de 2026.
| Capacidade | Implementação |
|---|---|
| Três ambientes de exercício | Centro educacional, oficina e espaço comunitário, com áreas conectadas e restrições explícitas. |
| Modelo de decisões e recursos | Movimentação normal ou deliberada, buscas únicas, checagem de comunicação e posicionamento de repetidor. |
| Análise transparente | A pontuação separa observação, transmissão, retorno e preservação da reserva. |
| Reprodução verificável | A sequência exportada passa novamente pelas regras do exercício; ações impossíveis são rejeitadas. |
| Material para instrutores | Guia de facilitação, exemplo completo, premissas públicas e contrato de relatório com versão. |
- Saia de Entry point para Foyer e depois Assembly hall.
- Faça a busca. O marcador C é observado, mas a área está sem comunicação.
- Volte ao foyer e transmita a observação.
- Retorne ao ponto inicial, finalize e analise os componentes da pontuação.
A demonstração e a documentação oferecem inglês e português. Use Language / Idioma para alternar a interface sem reiniciar o experimento. Todos os exemplos são sintéticos.
Requisito: Node.js 22 ou superior. Não é necessário instalar dependências, fornecer chaves ou criar uma conta.
git clone https://github.com/galafis/rescue-scenario-lab.git
cd rescue-scenario-lab
npm test
npm run examples
npm startAbra http://127.0.0.1:4173. O servidor de desenvolvimento aceita conexões apenas da própria máquina. Se a porta estiver ocupada, configure a variável de ambiente PORT. A aplicação também pode ser publicada em um servidor comum de arquivos estáticos. Use HTTP, em vez de abrir o HTML diretamente como arquivo, para permitir o carregamento dos módulos.
Este código executa o módulo do protótipo e não envia comandos ao equipamento:
import { SCENARIOS, replay, debrief } from './src/mission.js';
const scenario = SCENARIOS[0];
const state = replay(scenario, [{ type: 'move', to: 'foyer', pace: 'standard' }, { type: 'end' }]);
console.log(debrief(scenario, state).returned); // falseO arquivo examples/complete-exercise.json é um exemplo completo para importar pela demonstração. A documentação de arquitetura explica formatos, resultados e premissas.
| Caminho | Finalidade |
|---|---|
src/mission.js |
Regras do domínio e validação, independentes da interface |
src/app.js |
Interações e apresentação no navegador |
src/browser.js |
Importação, exportação e tratamento de texto |
test/ |
Testes de comportamento e regressão |
examples/ |
Entradas JSON sintéticas e reproduzíveis |
docs/ |
Arquitetura, avaliação e material de facilitação |
scripts/serve.mjs |
Servidor estático de desenvolvimento local |
.github/workflows/ |
Verificações em Linux e Windows, com Node 22 e 24 |
A suíte atual contém 26 testes automatizados. Execute npm test para reproduzir a suíte, ou npm run test:coverage para gerar um relatório local de cobertura. O status de cada commit pode ser consultado na aba Actions.
A suíte cobre recursos insuficientes, comunicação indisponível, posicionamento de repetidor, áreas excluídas, buscas duplicadas, estados finais, retorno, cálculo da pontuação e reprodução exata do diário. O exemplo completo incluído alcança 100/100 pelas regras publicadas.
As notas de validação distinguem as verificações de software das avaliações ainda necessárias com tecnologias assistivas, participantes e profissionais.
Os cenários e marcadores são fictícios. Tempo e energia usam unidades arbitrárias, sem correspondência com a autonomia do Go2 PRO. O sistema não controla equipamentos, não certifica preparo operacional e não orienta ações em emergências reais.
- Disponível: software funcional, demonstração, testes, exemplos e documentação.
- Proposto: revisão participativa e avaliação por profissionais da área, com procedimentos adequados de consentimento e privacidade.
- Etapa de equipamento: acesso ao Go2 PRO, confirmação dos recursos suportados e demonstrações físicas controladas.
- Dependente de desenvolvimento e validação adicionais: qualquer integração programática ou uso com participantes que envolva equipamento físico.
Projeto independente de Gabriel Demetrios Lafis. Contato institucional: [email protected]. Não representa endosso de fabricante, universidade, serviço de emergência ou organização clínica.
Contribuições são bem-vindas conforme CONTRIBUTING.md. Consulte SECURITY.md para relatar vulnerabilidades. Código e documentação estão sob a licença MIT.
Projetos relacionados: Accessible Route Lab, Rescue Scenario Lab e Inclusive Session Studio.
Use Language / Idioma in the demo header to switch between English and Portuguese. Changing the display language preserves the current experiment. Only the language preference is saved automatically. JSON identifiers and state codes remain stable. Worked examples and expected results provide reproducible inputs and explicit numerical checks.
Use Language / Idioma no cabeçalho para alternar inglês e português. A troca preserva o experimento atual. Apenas a preferência de idioma é salva automaticamente. Identificadores JSON e códigos de estado permanecem iguais. Os exemplos comentados e resultados esperados oferecem entradas reproduzíveis e verificações numéricas explícitas.