Accessible route studies · Estudos de rotas acessíveis
English · Português · Guided tour / Visita guiada · Validation / Validação
EN: How do surface costs and clearance change a proposed route?
PT: Como custo de piso e folga alteram um percurso proposto?
| 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: Narrow passage: clearance 0 gives 7.5 model units of distance and cost 15; clearance 1 blocks the route. / Passagem estreita: folga 0 resulta em distância de 7,5 unidades do modelo e custo 15; folga 1 bloqueia a rota.
Try a comparison · Experimente uma comparação
EN: Import narrow-passage, compare clearance 0 and 1, then distinguish distance from weighted cost.
PT: Importe narrow-passage, compare folgas 0 e 1 e separe distância de custo ponderado.
An interactive workbench for studying how obstacles, surface cost, and platform clearance affect a route. Edit a synthetic map, compare constraints, inspect written directions, and replay the result in the browser.
Accessible mobility research begins with questions about people and space. This project makes a small, inspectable part of that work available now: comparing routes and understanding when a passage cannot accommodate a chosen footprint. The intended longer-term application includes supervised robotics research with blind and low-vision people.
This repository is a working software prototype in a development program centered on the Unitree Go2 PRO. It contributes to accessible mobility and supervised robotics research with blind and low-vision people. The implementation, examples, and test suite provide a reviewable software baseline for the next stage of controlled hardware work.
The simulator makes route assumptions inspectable before a physical trial: where the platform would travel, how much space its envelope needs, and why a passage fails. A supported Go2 PRO would allow a later operator-supervised comparison between a prepared course and the simulated map. The written directions are an interface experiment; they are not yet instructions from a robot to a person.
A facilitator reproduces a simple corridor in the map, varies clearance, and records the resulting route. After hardware access and an approved test protocol, an operator could compare the same closed course using manufacturer-supported controls. The comparison would document measured clearance, stopping behavior, and discrepancies. No participant would be asked to rely on the prototype for mobility.
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 |
|---|---|
| Deterministic route planning | Four-connected A* with Manhattan distance, stable tie-breaking, and configurable rough-surface cost. |
| Clearance experiments | Obstacle inflation using a conservative square envelope, including map-edge clearance. |
| Editable maps | Place obstacles, rough surfaces, start points, and destinations using a pointer or keyboard. |
| Inspectable results | Distance, direction changes, weighted cost, written compass directions, and step-by-step replay. |
| Portable experiments | Versioned JSON import/export, strict input validation, and three built-in scenarios. |
- Open Narrow passage. With the point footprint, the route passes through the opening.
- Set clearance to Small envelope. The route becomes unavailable.
- Select Open floor and widen the passage, or compare the other spaces.
- Use Next step to inspect movement, then export the experiment.
Use Node.js 22 or newer. No dependency installation, keys, or account is required.
git clone https://github.com/galafis/accessible-route-lab.git
cd accessible-route-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 { makeScenario, planRoute } from './src/planner.js';
const map = makeScenario('narrow-passage');
console.log(planRoute(map, { clearance: 0 }).status); // ready
console.log(planRoute(map, { clearance: 1 }).status); // blockedOpen examples/narrow-passage.json for a complete input you can import through the demo. The technical design documents accepted inputs, outputs, and assumptions.
src/planner.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 25 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 release is a working software simulation. It has no robot connection, live localization, obstacle sensor input, or validated guidance capability. Coordinates, surfaces, and route costs are synthetic. It is not suitable for directing a person through a physical environment.
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].
Rescue Scenario 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
Bancada interativa para estudar como obstáculos, superfícies e folga alteram uma rota. É possível editar um mapa sintético, comparar restrições, ler as instruções do percurso e reproduzir cada deslocamento no navegador.
É um protótipo funcional de software em um programa de desenvolvimento direcionado ao Unitree Go2 PRO. Sua contribuição está ligada a mobilidade acessível e pesquisa supervisionada em robótica com pessoas cegas ou com baixa visão. 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 simulador torna as premissas de uma rota verificáveis antes de um ensaio físico: por onde a plataforma passaria, quanto espaço seu envelope ocupa e por que uma passagem se torna inviável. Um Go2 PRO disponibilizado com suporte permitiria comparar, em uma etapa posterior e sob supervisão de um operador, um percurso preparado com o mapa simulado. As instruções textuais são um experimento de interface; ainda não são orientações emitidas por um robô para uma pessoa.
Exemplo concreto: Um facilitador reproduz um corredor simples no mapa, varia a folga e registra a rota resultante. Após acesso ao equipamento e definição de um protocolo de ensaio, um operador poderia comparar o mesmo percurso fechado usando controles suportados pelo fabricante. A comparação documentaria folga medida, comportamento de parada e divergências. Nenhum participante dependeria do protótipo para se locomover.
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 |
|---|---|
| Planejamento determinístico | A* com movimentos ortogonais, distância de Manhattan, desempate estável e custo configurável para superfícies irregulares. |
| Experimentos de folga | Expansão conservadora dos obstáculos por um envelope quadrado, incluindo as bordas do mapa. |
| Edição acessível | Obstáculos, piso irregular, início e destino podem ser alterados com ponteiro ou teclado. |
| Resultados verificáveis | Distância, mudanças de direção, custo ponderado, instruções textuais e reprodução passo a passo. |
| Experimentos portáteis | Importação e exportação JSON com versão, validação dos dados e três cenários incluídos. |
- Abra Passagem estreita. Com o envelope pontual, a rota atravessa a abertura.
- Selecione Envelope pequeno. A passagem fica indisponível.
- Use Piso livre para ampliar a abertura ou compare os outros mapas.
- Avance com Próximo passo e exporte o experimento.
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/accessible-route-lab.git
cd accessible-route-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 { makeScenario, planRoute } from './src/planner.js';
const map = makeScenario('narrow-passage');
console.log(planRoute(map, { clearance: 0 }).status); // ready
console.log(planRoute(map, { clearance: 1 }).status); // blockedO arquivo examples/narrow-passage.json é um exemplo completo para importar pela demonstração. A documentação de arquitetura explica formatos, resultados e premissas.
| Caminho | Finalidade |
|---|---|
src/planner.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 25 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 verifica continuidade das rotas, obstáculos, folga, rejeição de entradas inválidas, imutabilidade e determinismo. Também compara o planejador com uma busca em largura independente em 80 mapas gerados com semente fixa.
As notas de validação distinguem as verificações de software das avaliações ainda necessárias com tecnologias assistivas, participantes e profissionais.
Não há conexão com robô, localização ao vivo, leitura de sensores ou orientação física validada. Os mapas são sintéticos. Pessoas em movimento, incerteza dos sensores, aderência, inclinação, raio de giro e frenagem de emergência estão fora desta versão.
- 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.