Skip to content

About

EN: Search-and-rescue training prototype; Unitree Go2 PRO roadmap. PT: Protótipo de treinamento em busca e salvamento; plano de desenvolvimento com o Unitree Go2 PRO.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Robotics education · Educação em robótica

Workflow illustration: Training exercise → Decisions and journal → Facilitator debrief

Checks 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?

Start here · Comece aqui

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.

English

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.

Why this exists

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.

Unitree Go2 PRO research direction

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.

A concrete Go2 PRO example

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.

What works today

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.

Try it in two minutes

  1. Move from Entry point to Foyer, then Assembly hall.
  2. Search the hall. Marker C is observed, but the location has a communication gap.
  3. Return to the foyer and send the observation.
  4. Return to the entry point, finish, and read why partial coverage affects the debrief.

Run locally

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 start

Open 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.

Executable example

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); // false

Open examples/complete-exercise.json for a complete input you can import through the demo. The technical design documents accepted inputs, outputs, and assumptions.

Project structure

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

Verification

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.

Status and boundaries

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].

Related open projects

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.

Contributing and license

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.


Português

Abrir demonstração · Arquitetura · Guia do projeto · Roteiro de desenvolvimento com Go2 PRO

O que é este projeto

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.

Direção de pesquisa com o Unitree Go2 PRO

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.

Funcionalidades implementadas

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.

Experimente em dois minutos

  1. Saia de Entry point para Foyer e depois Assembly hall.
  2. Faça a busca. O marcador C é observado, mas a área está sem comunicação.
  3. Volte ao foyer e transmita a observação.
  4. 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.

Executar localmente

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 start

Abra 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.

Exemplo executável

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); // false

O arquivo examples/complete-exercise.json é um exemplo completo para importar pela demonstração. A documentação de arquitetura explica formatos, resultados e premissas.

Organização do repositório

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

Testes e verificação

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.

Estado atual e próximos passos

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.

  1. Disponível: software funcional, demonstração, testes, exemplos e documentação.
  2. Proposto: revisão participativa e avaliação por profissionais da área, com procedimentos adequados de consentimento e privacidade.
  3. Etapa de equipamento: acesso ao Go2 PRO, confirmação dos recursos suportados e demonstrações físicas controladas.
  4. Dependente de desenvolvimento e validação adicionais: qualquer integração programática ou uso com participantes que envolva equipamento físico.

Autoria, colaboração e licença

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.

Voltar ao início

Language and reproducible examples · Idioma e exemplos reproduzíveis

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.

About

EN: Search-and-rescue training prototype; Unitree Go2 PRO roadmap. PT: Protótipo de treinamento em busca e salvamento; plano de desenvolvimento com o Unitree Go2 PRO.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages