Sistema de Mapeamento Indoor
Documentação técnica completa do sistema de posicionamento indoor da See U: arquitetura, sensores, algoritmos, APIs e guia de implementação.
Navegação Rápida
Visão Geral
Introdução ao sistema de mapeamento
O que é o Sistema de Mapeamento Indoor See U?
O sistema de mapeamento indoor da See U é uma plataforma avançada de posicionamento em ambientes fechados que combina 6 camadas de tecnologias de sensoresatravés de algoritmos de fusão de dados para fornecer localização precisa onde GPS não funciona.
Diferente de soluções tradicionais que dependem apenas de Wi-Fi ou Bluetooth, nosso sistema utiliza uma abordagem multi-modal que inclui:
- Geolocalização Magnética: Impressão digital magnética única de cada edifício
- Wi-Fi RTT: Medição de tempo de ida e volta para distâncias precisas
- Bluetooth LE: Beacons para pontos de referência e POIs
- Sensores Inerciais: Dead reckoning com IMU de alta precisão
- Visão Computacional: SLAM e reconhecimento de marcadores
- GNSS: Transição suave indoor-outdoor
Precisão de 1-2 metros em 99% dos casos, essencial para navegação segura
Atualização de posição em tempo real com latência inferior a 100 milissegundos
Fusão de múltiplas tecnologias para máxima confiabilidade e precisão
Arquitetura do Sistema
Estrutura e componentes principais
Componentes da Arquitetura
1. Camada de Coleta de Dados (Data Collection Layer)
Responsável por coletar dados brutos de todos os sensores do dispositivo em tempo real.
- • Drivers de sensores nativos (iOS/Android)
- • Gerenciamento de taxa de amostragem
- • Buffer de dados para processamento em lote
- • Sincronização de timestamps
2. Camada de Pré-Processamento (Preprocessing Layer)
Filtra, normaliza e prepara dados dos sensores para algoritmos de fusão.
- • Filtros de ruído (Low-pass, High-pass)
- • Calibração automática de sensores
- • Detecção e remoção de outliers
- • Normalização e padronização
3. Camada de Fusão de Sensores (Sensor Fusion Layer)
Combina dados de múltiplos sensores usando algoritmos avançados de fusão.
- • Particle Filter para fusão probabilística
- • Extended Kalman Filter para suavização
- • Ponderação adaptativa de sensores
- • Detecção de contexto (indoor/outdoor)
4. Camada de Posicionamento (Positioning Layer)
Calcula e refina a posição final do usuário no mapa.
- • Matching de posição com mapa (Map Matching)
- • Snap to path (ajuste para rotas válidas)
- • Detecção de andar/nível
- • Correção de deriva (Drift correction)
5. Camada de Navegação (Navigation Layer)
Calcula rotas e fornece instruções de navegação turn-by-turn.
- • A* Pathfinding com pesos de acessibilidade
- • Geração de instruções por áudio
- • Recalculo dinâmico de rotas
- • Alertas de proximidade de POIs
6. Camada de Interface (Interface Layer)
APIs e interfaces para aplicações consumirem os dados de posicionamento.
- • REST API para aplicações web
- • SDK nativo (iOS/Android)
- • WebSocket para atualizações em tempo real
- • Webhooks para eventos de posição
Camadas de Sensores
Detalhamento técnico de cada camada
Geolocalização Magnética
Mede o campo magnético terrestre e as anomalias causadas por estruturas metálicas. Cada edifício possui uma "impressão digital" magnética única.
Especificações Técnicas:
- Taxa de amostragem: 50-100 Hz
- Resolução: 0.01 µT
- Calibração automática contínua
- Compensação de interferências
Wi-Fi RTT (Round-Trip Time)
Mede o tempo de ida e volta do sinal Wi-Fi para calcular distâncias precisas até access points. Requer suporte a Wi-Fi RTT no dispositivo e APs.
Especificações Técnicas:
- Protocolo: IEEE 802.11mc (Wi-Fi RTT)
- Frequência: 2.4 GHz e 5 GHz
- Latência: < 100ms
- Mínimo 3 APs para triangulação
Bluetooth Low Energy (BLE)
Beacons BLE transmitem sinais que permitem calcular proximidade e direção. Ideal para POIs específicos e waypoints.
Especificações Técnicas:
- Protocolo: BLE 5.0+
- RSSI (Received Signal Strength)
- Bateria: 2-5 anos
- Alcance: até 100 metros
IMU (Inertial Measurement Unit)
Sensores inerciais detectam movimento, rotação e mudanças de altitude. Essencial para dead reckoning entre pontos de referência.
Especificações Técnicas:
- Acelerômetro: ±16g, 400 Hz
- Giroscópio: ±2000°/s, 400 Hz
- Barômetro: precisão de 0.5m (andar)
- Fusão de sensores: Kalman Filter
Visão Computacional (CV)
Câmera identifica características visuais, marcadores AR, QR codes e placas para correção de posição e mapeamento SLAM.
Especificações Técnicas:
- SLAM: Simultaneous Localization and Mapping
- Feature detection: ORB, SIFT
- AR markers: ArUco, QR codes
- Processamento: TensorFlow Lite
GNSS/GPS (Outdoor)
Posicionamento por satélite para áreas externas e transição indoor-outdoor. Usado para inicialização e correção de deriva.
Especificações Técnicas:
- Multi-GNSS: GPS, GLONASS, Galileo, BeiDou
- A-GPS para inicialização rápida
- Detecção automática indoor/outdoor
- Fusão com outros sensores
Algoritmos
Processamento e inteligência do sistema
Particle Filter (Monte Carlo)
Algoritmo probabilístico que usa milhares de "partículas" para estimar a posição mais provável do usuário baseado em múltiplas leituras de sensores.
Kalman Filter (Extended)
Filtro recursivo que estima o estado de um sistema dinâmico a partir de medições ruidosas. Usado para suavizar trajetórias e prever posições futuras.
A* Pathfinding
Algoritmo de busca de caminho que encontra a rota mais curta entre dois pontos considerando obstáculos e pesos (acessibilidade, preferências).
SLAM (Simultaneous Localization and Mapping)
Constrói um mapa do ambiente enquanto simultaneamente rastreia a localização do dispositivo dentro desse mapa usando visão computacional.
Machine Learning (Neural Networks)
Redes neurais treinadas para reconhecer padrões de sensores, prever posições, classificar ambientes e melhorar precisão ao longo do tempo.
Dead Reckoning
Estima posição baseada em posição anterior, velocidade e direção. Usado quando sinais externos não estão disponíveis.
Fluxo de Processamento
Coleta de Dados
Sensores coletam dados brutos em tempo real
Pré-Processamento
Filtragem, calibração e normalização
Fusão de Sensores
Particle Filter combina todas as fontes
Kalman Filter
Suavização e predição de trajetória
Map Matching
Ajuste para rotas válidas no mapa
Posição Final
Entrega para aplicação via API
API REST
Endpoints e integração
Base URL
/api/v1/positioningObtém posição atual do dispositivo
Parâmetros:
device_idvenue_idfloor/api/v1/navigation/routeCalcula rota entre dois pontos
Parâmetros:
origindestinationaccessibility_mode/api/v1/venues/{id}/mapRetorna mapa do local
Parâmetros:
venue_idfloorformat/api/v1/poisLista pontos de interesse próximos
Parâmetros:
latlngradiuscategory/api/v1/tracking/updateEnvia dados de sensores para processamento
Parâmetros:
sensor_datatimestampdevice_idExemplo de Requisição
curl -X POST https://api.seeu.app/v1/navigation/route \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"origin": {
"lat": -23.550520,
"lng": -46.633308,
"floor": 1
},
"destination": {
"lat": -23.551234,
"lng": -46.634567,
"floor": 2
},
"accessibility_mode": true
}'Guia de Implementação
Como integrar o sistema
1. Requisitos do Sistema
iOS
- • iOS 14.0 ou superior
- • Swift 5.5+
- • CoreLocation framework
- • CoreMotion framework
- • ARKit (opcional)
Android
- • Android 8.0 (API 26) ou superior
- • Kotlin 1.7+
- • Google Play Services
- • Sensor API
- • ARCore (opcional)
2. Instalação do SDK
iOS (CocoaPods)
pod 'SeeUMapping', '~> 1.0'
Android (Gradle)
implementation 'app.seeu:mapping:1.0.0'
3. Inicialização
// Swift
import SeeUMapping
let mapping = SeeUMapping(apiKey: "YOUR_API_KEY")
mapping.configure(
venueId: "shopping-center-xyz",
enableMagneticPositioning: true,
enableWiFiRTT: true,
enableBLE: true
)
mapping.startPositioning { result in
switch result {
case .success(let position):
print("Lat: \(position.lat), Lng: \(position.lng)")
case .failure(let error):
print("Error: \(error)")
}
}4. Navegação
mapping.calculateRoute(
from: currentPosition,
to: destination,
accessibilityMode: true
) { route in
mapping.startNavigation(route: route) { instruction in
// Instruções turn-by-turn
print(instruction.text)
speakInstruction(instruction.audio)
}
}