Robô Aspirador Autônomo
Trabalho 2 - Fundamentos de Sistemas Embarcados
Período: 2025/2
Integrantes:
- Jefferson Sena - Matrícula: 200020323
- Tiago Albuquerque - Matrícula: 202028973
1. Introdução
O presente trabalho tem como objetivo realizar um estudo teórico-exploratório sobre robôs aspiradores autônomos, tendo como referência principal o iRobot Roomba, produto pioneiro nesta categoria. Serão analisadas as principais tecnologias embarcadas, sensores utilizados e algoritmos de controle, além de propor uma implementação conceitual utilizando a plataforma ESP32.
Os robôs aspiradores representam uma das aplicações mais bem-sucedidas de sistemas embarcados no ambiente doméstico, combinando navegação autônoma, processamento em tempo real e conectividade sem fio para realizar tarefas de limpeza de forma independente.
2. Descrição do Produto Selecionado
2.1 Visão Geral
O robô aspirador autônomo é um dispositivo eletrodoméstico capaz de realizar a limpeza de superfícies de forma independente, sem intervenção humana direta. O iRobot Roomba, lançado em 2002, foi o primeiro produto comercialmente viável desta categoria e permanece como referência tecnológica no segmento.
O salto conceitual do iRobot Roomba não foi apenas a motorização da aspiração, mas a aplicação de princípios de robótica autônoma (agência) em um eletrodoméstico de consumo em massa. O desafio de engenharia central, especialmente nos modelos iniciais, foi resolver o problema da cobertura (garantir que o robô limpasse a maior área possível) em um ambiente doméstico não estruturado e dinâmico. Isso foi alcançado utilizando hardware severamente restrito: microcontroladores de 8 bits e um conjunto de sensores de baixo custo (IR, bumper). Esta solução representa um clássico trade-off de sistema embarcado: alcançar uma funcionalidade complexa (navegação) através de algoritmos comportamentais (como a arquitetura de subsumption) em vez de hardware caro (como LIDAR ou câmeras, que só se tornaram viáveis uma década depois). O produto redefiniu a interação humano-máquina no lar, transitando de uma "ferramenta operada" (aspirador manual) para um "serviço autônomo".

O produto consiste basicamente em uma plataforma circular móvel equipada com sistema de aspiração, motores de tração, múltiplos sensores e sistema de controle embarcado. A evolução tecnológica ao longo de mais de duas décadas permitiu a incorporação de recursos avançados como mapeamento do ambiente, controle via aplicativo móvel e integração com ecossistemas de automação residencial.
2.2 Funções Principais
Estas funções não operam de forma isolada; elas representam um ciclo de controle "percepção-decisão-ação" (sense-think-act) contínuo, orquestrado pelo sistema de controle embarcado. A complexidade do produto reside na gestão concorrente destas tarefas em tempo real, onde o robô deve simultaneamente navegar, limpar e monitorar sua própria segurança e energia.
O sistema executa as seguintes funções primárias:
-
Navegação Autônoma: Movimentação independente pelo ambiente utilizando algoritmos de controle baseados em dados sensoriais.
-
Detecção de Obstáculos: Identificação e desvio de objetos presentes no trajeto através de sensores infravermelhos e ultrassônicos.
-
Prevenção de Quedas: Detecção de desníveis e escadas mediante sensores ópticos direcionados ao solo (cliff sensors).
-
Sistema de Limpeza: Aspiração de partículas através de motor de sucção e escovas rotativas.
-
Gerenciamento de Energia: Monitoramento do nível de bateria e retorno automático à estação de recarga.
-
Conectividade: Interface com dispositivos móveis através de protocolo Wi-Fi para programação e monitoramento remoto.
A integração robusta destas funções é o que define a arquitetura do sistema. O algoritmo de navegação, por exemplo, deve tomar decisões de desvio em milissegundos (uma tarefa de alta prioridade) enquanto, simultaneamente, o subsistema de conectividade (uma tarefa de baixa prioridade) pode estar negociando um pacote de dados com a nuvem. Garantir que a tarefa de baixa prioridade não impeça a execução da tarefa de alta prioridade (um fenômeno conhecido como inversão de prioridade) é um desafio central resolvido pelo uso de um Sistema Operacional de Tempo Real (RTOS).
2.3 Público-Alvo e Aplicações
O produto destina-se primariamente ao mercado consumidor residencial, atendendo diversos perfis:
- Residências com necessidade de manutenção frequente da limpeza
- Ambientes comerciais de pequeno e médio porte
- Usuários com restrições de mobilidade ou tempo
- Proprietários de animais domésticos
O contexto de uso típico envolve operação programada ou sob demanda em ambientes internos com superfícies relativamente planas, incluindo pisos cerâmicos, madeira e carpetes de baixa espessura.
A proposta de valor do produto se adapta de forma distinta a cada um desses segmentos. Para proprietários de animais domésticos, o benefício principal é a manutenção de alta frequência (diária), que controla a dispersão de pelos de forma mais eficaz que a limpeza manual esporádica. Para usuários com restrições de mobilidade, o dispositivo é uma tecnologia assistiva que promove independência e reduz a carga de trabalho físico. Para pequenos escritórios, representa uma otimização de custo operacional, permitindo a manutenção da limpeza fora do horário comercial sem custo de mão de obra contínuo. O sucesso comercial do Roomba derivou de sua capacidade de oferecer um retorno sobre o investimento (seja em tempo, esforço físico ou custo monetário) claro e mensurável para nichos de mercado bem definidos.
2.4 Arquitetura do Sistema e Componentes
A arquitetura do sistema pode ser dividida em módulos funcionais:
2.4.1 Módulo de Sensoriamento
Sensores de Proximidade:
- Sensores infravermelhos (6 a 8 unidades): Detecção de obstáculos em curto alcance (5-30 cm)
- Sensor ultrassônico: Medição de distância por tempo de voo de onda sonora (até 3 metros)
- Bumper com microswitch: Sensor tátil de colisão
Sensores de Segurança:
- Cliff sensors (4 unidades): Emissores/receptores IR orientados verticalmente para detectar desníveis superiores a 3 cm
Sensores de Odometria:
- Encoders ópticos: Acoplados às rodas para medição de deslocamento linear
- IMU (Unidade de Medição Inercial): Acelerômetro e giroscópio de 3 eixos para estimativa de orientação
Sensores Auxiliares:
- Sensor acústico de sujeira: Detecta partículas sendo aspiradas através de vibração
- Sensor de tensão: Monitoramento do nível de carga da bateria
2.4.2 Módulo de Atuação
Sistema de Tração:
- 2 motores DC com redução (6V, ~200 RPM): Tração diferencial para movimentação e rotação
- Roda omnidirecional: Suporte passivo
Sistema de Limpeza:
- Motor brushless (12V): Acionamento do ventilador centrífugo de aspiração (10.000-15.000 RPM)
- Motor da escova principal: Rotação da escova cilíndrica
- Motores das escovas laterais: Direcionamento de sujeira periférica
2.4.3 Módulo de Processamento e Controle
Hardware Computacional:
- Microcontrolador ARM Cortex-M (32-bit, ~100-200 MHz)
- Módulo Wi-Fi (ESP32 ou equivalente)
- Memória Flash (16-32 MB) para armazenamento de mapas e firmware
- SRAM (512 KB - 1 MB) para execução de algoritmos
Sistema Operacional:
- RTOS (Real-Time Operating System) proprietário ou baseado em FreeRTOS
- Gerenciamento de múltiplas tarefas concorrentes com prioridades definidas
2.4.4 Módulo de Alimentação
Bateria:
- Tipo: Lítio-Íon (Li-Ion)
- Configuração: 3S1P ou 4S1P (10.8V - 14.4V nominal)
- Capacidade: 2500-5000 mAh
- Autonomia: 60-180 minutos (dependendo do modelo e modo de operação)
Sistema de Carga:
- Estação de recarga com contatos elétricos
- Controlador de carga integrado (CC-CV)
- Proteção contra sobrecarga e descarga excessiva
2.5 Tecnologias de Comunicação
2.5.1 Comunicação Sem Fio
Wi-Fi (IEEE 802.11 b/g/n):
- Frequência: 2.4 GHz
- Função: Conexão com rede doméstica e serviços cloud
- Protocolos de aplicação: MQTT, HTTP/HTTPS
- Implementação: Modo station (cliente)
Infravermelho:
- Função: Comunicação com estação de recarga (beacon)
- Alcance: 2-5 metros
- Protocolo: Modulação proprietária
Bluetooth (opcional em modelos premium):
- Função: Pareamento inicial e controle de proximidade
- Perfil: BLE (Bluetooth Low Energy)
2.5.2 Interface com Usuário
Aplicativo Móvel:
- Plataformas: iOS e Android
- Funcionalidades:
- Inicialização e interrupção de ciclos de limpeza
- Agendamento de tarefas
- Visualização de mapas (modelos com SLAM)
- Definição de zonas restritas (virtual walls)
- Monitoramento de histórico
- Atualizações OTA (Over-The-Air)
Integração com Assistentes Virtuais:
- Amazon Alexa
- Google Assistant
- Apple HomeKit (modelos selecionados)
3. Análise Técnica do Funcionamento
3.1 Arquitetura de Software
O software embarcado é estruturado em camadas hierárquicas:
Camada de Hardware Abstraction Layer (HAL): Drivers de baixo nível para acesso a periféricos (GPIO, PWM, I2C, SPI, ADC)
Camada de Middleware:
- Gerenciador de tarefas (RTOS)
- Pilha de comunicação (Wi-Fi stack)
- Sistema de arquivos
Camada de Aplicação:
- Algoritmo de navegação
- Máquina de estados
- Interface de comunicação
- Módulos de diagnóstico
3.2 Algoritmo de Navegação
3.2.1 Navegação Reativa (Gerações Iniciais)
Os primeiros modelos de Roomba utilizavam navegação baseada em comportamentos reativos, sem construção de mapas. O algoritmo implementa os seguintes comportamentos básicos:
- Movimento em linha reta: Estado padrão
- Desvio de obstáculos: Ao detectar obstrução, executa rotação de ângulo aleatório
- Padrão espiral: Incrementa gradualmente o raio de curvatura
- Limpeza de bordas: Ao detectar parede, segue o perímetro
Este método, embora simples, garante cobertura estatística completa do ambiente dado tempo suficiente de operação, baseando-se na teoria de caminhada aleatória.
3.2.2 Navegação Baseada em Mapa (Gerações Recentes)
Modelos modernos implementam algoritmos de SLAM (Simultaneous Localization and Mapping), que constroem incrementalmente um mapa do ambiente enquanto estimam a pose (posição e orientação) do robô.
Visual SLAM (Roomba): Utiliza câmera apontada verticalmente para capturar características do teto, combinada com odometria para estimar deslocamento.
LIDAR SLAM (Xiaomi, Roborock): Sensor laser rotativo de 360° mede distâncias, construindo mapa de ocupação em grade (occupancy grid).
O algoritmo de SLAM pode ser representado recursivamente:
x_t = f(x_{t-1}, u_t, w_t) // Modelo de movimento
z_t = h(x_t, m, v_t) // Modelo de observação
Onde:
- x_t: Estado no tempo t (pose do robô)
- u_t: Comando de controle
- z_t: Observação dos sensores
- m: Mapa do ambiente
- w_t, v_t: Ruídos gaussianos
Filtro de Partículas (FastSLAM): Implementação comum em robôs de consumo devido ao compromisso entre precisão e custo computacional. Mantém conjunto de hipóteses (partículas) sobre a pose do robô e características do mapa.
3.3 Controle de Movimento
O sistema de controle converte comandos de velocidade linear e angular em sinais PWM para os motores.
Cinemática Diferencial: Para tração diferencial, as velocidades das rodas relacionam-se com a velocidade linear (v) e angular (ω) por:
v_L = v - (L/2)ω
v_R = v + (L/2)ω
Onde L é a distância entre rodas.
Controle PID: Para seguir trajetórias, implementa-se controle proporcional-integral-derivativo:
u(t) = K_p·e(t) + K_i·∫e(τ)dτ + K_d·de(t)/dt
Onde e(t) é o erro entre trajetória desejada e atual.
3.4 Gerenciamento de Energia
O firmware implementa estratégias de economia de energia:
- Desligamento de periféricos não utilizados: Wi-Fi desativado durante limpeza
- Ajuste dinâmico de potência: Redução de velocidade de motores em áreas limpas
- Monitoramento contínuo de bateria: Decisão de retorno à base baseada em estimativa de energia residual e distância
Algoritmo de retorno à base:
if (bateria < limiar_critico) {
if (mapa_disponivel) {
calcular_caminho_otimo_para_base();
} else {
buscar_sinal_infravermelho_base();
}
}
3.5 Tecnologias Críticas
3.5.1 SLAM (Simultaneous Localization and Mapping)
SLAM é fundamental para navegação eficiente. O problema consiste em estimar simultaneamente o mapa do ambiente (m) e a trajetória do robô (x_{1:t}) dadas as observações (z_{1:t}) e comandos de controle (u_{1:t}).
A solução envolve inferência bayesiana:
P(x_{1:t}, m | z_{1:t}, u_{1:t})
Referência: Taketomi et al. (2017) apresentam revisão extensiva de métodos SLAM desenvolvidos entre 2010-2016, incluindo abordagens visuais (monoculares, estereoscópicas, RGB-D) e baseadas em LIDAR.
3.5.2 Protocolo IEEE 802.11 (Wi-Fi)
O padrão Wi-Fi permite comunicação sem fio através de:
Camada Física (PHY):
- Modulação OFDM (Orthogonal Frequency Division Multiplexing)
- Taxa de transmissão: 1-150 Mbps (802.11n)
Camada MAC:
- CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance)
- Modos de economia de energia (PSM - Power Save Mode)
Para dispositivos IoT, implementa-se power save mode onde o módulo Wi-Fi entra periodicamente em sleep, acordando apenas para beacon frames ou quando há dados para transmitir.
3.5.3 FreeRTOS
FreeRTOS é um sistema operacional de tempo real amplamente utilizado em sistemas embarcados devido ao seu footprint reduzido (~10KB) e scheduling determinístico.
Características Relevantes:
- Scheduling preemptivo baseado em prioridades
- Primitivas de sincronização (semáforos, mutexes, filas)
- Tick de sistema configurável (tipicamente 1-10 ms)
Estrutura típica de tarefas em robô aspirador:
| Tarefa | Prioridade | Período | Função |
|---|---|---|---|
| ISR_Encoders | Máxima (ISR) | Event-driven | Contagem de pulsos |
| Sensor_Reading | 5 | 20 ms | Aquisição de dados sensoriais |
| Motor_Control | 5 | 10 ms | Atualização de PWM |
| Navigation | 3 | 100 ms | Algoritmo de navegação |
| WiFi_Comm | 2 | Event-driven | Comunicação wireless |
| Battery_Monitor | 1 | 1000 ms | Verificação de carga |
3.5.4 Controle de Motores Brushless DC (BLDC)
Motores BLDC são utilizados no sistema de aspiração devido à maior eficiência energética (85-95% vs 75-80% de motores brushed) e ausência de desgaste mecânico.
Princípio de Operação: Utiliza comutação eletrônica através de inversores trifásicos. O controle pode ser:
- Sensorless: Detecção de posição do rotor através de Back-EMF (força contra-eletromotriz)
- Com sensores Hall: Três sensores de efeito Hall fornecem posição discreta do rotor
O controle trapezoidal (six-step commutation) energiza duas fases por vez em sequência de 6 estados, baseado na posição do rotor.
Referência: Pillay & Krishnan (1989) apresentam modelagem e técnicas de controle para motores BLDC, incluindo métodos sensorless essenciais para aplicações de custo reduzido.
4. Proposta de Implementação com ESP32
4.1 Justificativa da Plataforma
A ESP32 foi selecionada para implementação de protótipo funcional pelos seguintes motivos:
- Arquitetura dual-core (Xtensa LX6, 240 MHz) permite paralelização de tarefas
- Conectividade Wi-Fi e Bluetooth integradas
- FreeRTOS nativo no ESP-IDF
- Conjunto abundante de periféricos (PWM, I2C, SPI, ADC)
- Custo acessível (~R$ 30-40)
- Vasta documentação e comunidade ativa
A adequação da ESP32 para este protótipo vai além da simples lista de recursos. A arquitetura dual-core Xtensa LX6 é a característica de maior impacto, pois permite uma separação de privilégios de tempo real (atribuição de tarefas a núcleos específicos, ou task pinning). Pode-se dedicar o Core 0 às tarefas de hard real-time, como a leitura em alta frequência dos sensores de cliff (que não pode falhar) e o loop de controle PWM dos motores (via periférico LEDC). O Core 1 ficaria então responsável pelas tarefas de soft real-time, como a execução da máquina de estados de navegação, a fusão de dados da IMU e a pilha de comunicação Wi-Fi/MQTT, sem risco de preempção das funções críticas de segurança. O ESP-IDF, com sua integração nativa do FreeRTOS, não é apenas um facilitador, mas a base que viabiliza a arquitetura de tarefas concorrentes (detalhada na seção 3.5.3) necessária para um robô autônomo funcional.
4.2 Alternativas de Implementação
Foram propostas duas abordagens de implementação com níveis distintos de complexidade, considerando as restrições de tempo, recursos e experiência prévia:
4.2.1 MVP (Minimum Viable Product)
Abordagem focada nos componentes essenciais para demonstrar navegação autônoma básica.
Componentes Necessários (MVP):
| Componente | Especificação | Quantidade | Custo Aprox. | Função |
|---|---|---|---|---|
| ESP32 DevKit V1 | Dual-core 240MHz | 1 | R$ 35 | Controlador principal |
| Sensor HC-SR04 | Ultrassônico, 2-400cm | 1 | R$ 8 | Detecção frontal de obstáculos |
| Driver L298N | Ponte H dupla, 2A | 1 | R$ 15 | Acionamento de motores |
| Motor DC | 6V, com rodas | 2 | R$ 30 | Tração |
| Roda boba | Giratória | 1 | R$ 5 | Suporte traseiro |
| Bateria 9V ou Pack | 7.4V-11.1V | 1 | R$ 25 | Alimentação móvel |
| Protoboard | 830 pontos | 1 | R$ 15 | Montagem do circuito |
| Jumpers | Kit variado | 1 | R$ 10 | Conexões |
| Resistores | 10kΩ (divisor tensão) | 2 | R$ 1 | Proteção ECHO |
Custo Total MVP: ~R$ 109
Sensores especificamente: R$ 9 (HC-SR04 + resistores)
Características do MVP:
- Navegação reativa simples (padrão aleatório)
- Detecção de obstáculos frontal via ultrassom
- Movimento: frente, ré, girar direita/esquerda
- Código em Arduino IDE (mais acessível que ESP-IDF)
- Chassi improvisado (papelão, acrílico ou robô adaptado)
- Tempo de implementação estimado: 2-3 semanas
- Probabilidade de sucesso: 90%
Algoritmo Simplificado (MVP):
void loop() {
float distancia = lerUltrassom();
if (distancia < 20) { // Obstáculo a menos de 20cm
parar();
delay(200);
re(500); // Recuar por 500ms
girarDireita(random(500, 1500)); // Girar tempo aleatório
} else {
frente(200); // Velocidade 200 (0-255)
}
delay(50); // 20Hz loop
}
Vantagens:
- Menor investimento financeiro
- Código mais simples e compreensível
- Menos pontos de falha
- Tempo de desenvolvimento reduzido
- Facilita debug e ajustes
- Demonstra conceitos fundamentais
Limitações:
- Não detecta obstáculos laterais
- Sem proteção contra quedas (cliff)
- Navegação menos eficiente (mais aleatória)
- Sem odometria ou estimativa de pose
- Sem interface visual local
4.2.2 Implementação Completa
Implementação de sistema mais robusto com múltiplos sensores e controle sofisticado.
4.3 Especificação de Hardware (Implementação Completa)
4.3.1 Componentes Necessários
| Componente | Especificação | Quantidade | Função |
|---|---|---|---|
| ESP32 DevKit V1 | Dual-core 240MHz, 520KB SRAM | 1 | Controlador principal |
| Sensor HC-SR04 | Ultrassônico, alcance 2-400cm | 1 | Detecção frontal |
| Sensor IR Obstáculo | Saída digital, alcance 2-30cm | 4 | Detecção lateral |
| Sensor IR Cliff | Saída digital | 3 | Detecção de precipícios |
| MPU6050 | IMU 6DOF (3-axis accel + gyro) | 1 | Odometria |
| Display OLED | 0.96", 128x64, I2C | 1 | Interface local |
| Driver L298N | Ponte H dupla, 2A por canal | 1 | Acionamento de motores |
| Motor DC | 6V, 200 RPM com caixa redutora | 2 | Tração |
| Bateria Li-Ion | 3S (11.1V), 2200mAh | 1 | Alimentação |
| Conversor Buck | Entrada 12V, saída 5V/3A | 1 | Regulação de tensão |
4.3.2 Diagrama de Conexões
Sistema de Alimentação:
Bateria Li-Ion 11.1V (3S)
|
├──> L298N (12V) ──> Motores DC
|
└──> Buck Converter ──> 5V
|
├──> ESP32 (VIN)
└──> HC-SR04 (VCC)
Conexões ESP32:
| Periférico | Pino ESP32 | Interface | Observações |
|---|---|---|---|
| Ultrassom TRIG | GPIO25 | Digital Out | |
| Ultrassom ECHO | GPIO26 | Digital In | Requer divisor de tensão 5V→3.3V |
| IR Esquerdo | GPIO32 | Digital In | Pull-up interno |
| IR Direito | GPIO33 | Digital In | Pull-up interno |
| IR Frontal | GPIO34 | Digital In | Input only |
| IR Traseiro | GPIO35 | Digital In | Input only |
| Cliff FL | GPIO27 | Digital In | |
| Cliff FR | GPIO14 | Digital In | |
| Cliff FC | GPIO12 | Digital In | |
| IMU SDA | GPIO21 | I2C | Endereço 0x68 |
| IMU SCL | GPIO22 | I2C | |
| OLED SDA | GPIO21 | I2C | Endereço 0x3C (compartilhado) |
| OLED SCL | GPIO22 | I2C | |
| Motor L FWD | GPIO4 | PWM | Canal LEDC 0 |
| Motor L BWD | GPIO16 | PWM | Canal LEDC 1 |
| Motor R FWD | GPIO17 | PWM | Canal LEDC 2 |
| Motor R BWD | GPIO5 | PWM | Canal LEDC 3 |
| LED Status | GPIO13 | Digital Out | |
| Buzzer | GPIO15 | PWM |
Atenção: O pino ECHO do HC-SR04 emite sinal de 5V, incompatível com os 3.3V máximos da ESP32. Necessário divisor resistivo:
ECHO ──[R1: 10kΩ]──┬── GPIO26
|
[R2: 10kΩ]
|
GND
Tensão resultante: V_out = 5V × (10kΩ)/(10kΩ + 10kΩ) = 2.5V ✓
4.4 Implementação de Software (Implementação Completa)
4.4.1 Estrutura do Firmware
O firmware será desenvolvido utilizando ESP-IDF (Espressif IoT Development Framework), que fornece API sobre FreeRTOS.
Arquitetura de Tarefas:
// main.c
void app_main(void) {
// Inicialização de periféricos
init_gpio();
init_pwm();
init_i2c();
init_wifi();
// Criação de filas para comunicação inter-tarefas
xQueueSensorData = xQueueCreate(1, sizeof(sensor_data_t));
xQueueMotorCmd = xQueueCreate(5, sizeof(motor_cmd_t));
// Criação de tarefas com prioridades
xTaskCreatePinnedToCore(task_sensor_reading, "Sensors",
4096, NULL, 5, NULL, 0);
xTaskCreatePinnedToCore(task_navigation, "Navigation",
4096, NULL, 4, NULL, 0);
xTaskCreatePinnedToCore(task_motor_control, "Motors",
2048, NULL, 5, NULL, 1);
xTaskCreatePinnedToCore(task_wifi_comm, "WiFi",
4096, NULL, 2, NULL, 1);
}
4.4.2 Módulo de Leitura de Sensores
Sensor Ultrassônico:
float ultrasonic_read_distance(void) {
// Emitir pulso de trigger (10 μs)
gpio_set_level(PIN_TRIG, 1);
esp_rom_delay_us(10);
gpio_set_level(PIN_TRIG, 0);
// Medir duração do pulso ECHO
uint32_t timeout = 30000; // 30ms timeout
uint32_t time_start, time_end;
// Aguardar subida de ECHO
while (gpio_get_level(PIN_ECHO) == 0 && timeout-- > 0) {
esp_rom_delay_us(1);
}
time_start = esp_timer_get_time();
timeout = 30000;
// Aguardar descida de ECHO
while (gpio_get_level(PIN_ECHO) == 1 && timeout-- > 0) {
esp_rom_delay_us(1);
}
time_end = esp_timer_get_time();
// Calcular distância: d = (t × v) / 2
// v_som = 343 m/s = 0.0343 cm/μs
uint32_t duration_us = time_end - time_start;
float distance_cm = (duration_us * 0.0343f) / 2.0f;
return distance_cm;
}
IMU MPU6050:
typedef struct {
float accel_x, accel_y, accel_z; // m/s²
float gyro_x, gyro_y, gyro_z; // rad/s
} imu_data_t;
esp_err_t mpu6050_read(imu_data_t *data) {
uint8_t raw_data[14];
// Ler registradores 0x3B a 0x48 (accel + temp + gyro)
i2c_master_read_from_device(I2C_NUM_0, MPU6050_ADDR,
0x3B, raw_data, 14,
pdMS_TO_TICKS(100));
// Conversão (escala ±4g para accel, ±500°/s para gyro)
int16_t accel_raw_x = (raw_data[0] << 8) | raw_data[1];
data->accel_x = accel_raw_x / 8192.0f * 9.81f; // Para m/s²
// Similar para outros eixos...
return ESP_OK;
}
4.4.3 Algoritmo de Navegação
Devido às limitações computacionais da ESP32 para processar SLAM em tempo real, implementa-se navegação reativa com padrão de cobertura:
typedef enum {
STATE_IDLE,
STATE_FORWARD,
STATE_AVOIDING,
STATE_CLIFF_DETECTED,
STATE_SPIRAL,
STATE_WALL_FOLLOW
} nav_state_t;
void task_navigation(void *pvParameters) {
sensor_data_t sensor_data;
nav_state_t state = STATE_IDLE;
uint32_t spiral_counter = 0;
while (1) {
// Receber dados dos sensores
xQueuePeek(xQueueSensorData, &sensor_data, 0);
switch (state) {
case STATE_FORWARD:
// Verificar cliff (prioridade máxima)
if (sensor_data.cliff_detected) {
state = STATE_CLIFF_DETECTED;
motor_stop();
break;
}
// Verificar obstáculos
if (sensor_data.distance_front < 20.0f ||
sensor_data.ir_front) {
state = STATE_AVOIDING;
break;
}
// Incrementar padrão espiral
spiral_counter++;
if (spiral_counter > 50) { // ~5 segundos
float turn_angle = 15.0f; // graus
motor_turn(turn_angle);
spiral_counter = 0;
}
motor_forward(70); // 70% velocidade
break;
case STATE_AVOIDING:
motor_stop();
vTaskDelay(pdMS_TO_TICKS(100));
// Decidir direção baseado em sensores laterais
if (!sensor_data.ir_left && sensor_data.ir_right) {
motor_turn_left(90);
} else if (sensor_data.ir_left && !sensor_data.ir_right) {
motor_turn_right(90);
} else {
// Ambos bloqueados, virar aleatório
int angle = 90 + (esp_random() % 90);
motor_turn_right(angle);
}
state = STATE_FORWARD;
break;
case STATE_CLIFF_DETECTED:
// Recuar 50cm
motor_backward(50);
vTaskDelay(pdMS_TO_TICKS(500));
motor_stop();
// Girar 180°
motor_turn_right(180);
state = STATE_FORWARD;
break;
case STATE_IDLE:
default:
motor_stop();
break;
}
vTaskDelay(pdMS_TO_TICKS(100)); // 10 Hz
}
}
4.4.4 Controle de Motores
void motor_set_speed(int8_t left_speed, int8_t right_speed) {
// Velocidade: -100 a +100 (negativo = reverso)
// Motor esquerdo
if (left_speed >= 0) {
ledc_set_duty(LEDC_MODE, CH_L_FWD, abs(left_speed) * 10);
ledc_set_duty(LEDC_MODE, CH_L_BWD, 0);
} else {
ledc_set_duty(LEDC_MODE, CH_L_FWD, 0);
ledc_set_duty(LEDC_MODE, CH_L_BWD, abs(left_speed) * 10);
}
ledc_update_duty(LEDC_MODE, CH_L_FWD);
ledc_update_duty(LEDC_MODE, CH_L_BWD);
// Motor direito (similar)
// ...
}
void motor_forward(uint8_t speed_percent) {
motor_set_speed(speed_percent, speed_percent);
}
void motor_turn_right(float angle_degrees) {
// Calcular tempo baseado em velocidade angular
// Assumindo velocidade de rotação de 90°/s
uint32_t duration_ms = (uint32_t)(angle_degrees / 90.0f * 1000.0f);
motor_set_speed(50, -50); // Tração diferencial
vTaskDelay(pdMS_TO_TICKS(duration_ms));
motor_set_speed(0, 0);
}
4.5 Diagrama de Blocos do Sistema Proposto
┌─────────────────────────────────────────────────────────┐
│ ESP32 (Dual Core) │
│ │
│ Core 0: Core 1: │
│ ┌─────────────────┐ ┌──────────────┐ │
│ │ Sensor Reading │ │ Motor Ctrl │ │
│ │ Navigation │ │ WiFi Comm │ │
│ └─────────────────┘ └──────────────┘ │
│ │
│ ┌──────────────────┐ │
│ │ FreeRTOS │ │
│ │ (Scheduler) │ │
│ └──────────────────┘ │
└──────┬─────────────┬───────────────┬──────────────────┘
│ │ │
┌───▼───┐ ┌───▼────┐ ┌───▼────┐
│Sensors│ │L298N │ │ WiFi │
│ │ │Motors │ │ │
│-Ultra │ │ │ │-MQTT │
│-IR x4 │ │-Left │ │-HTTP │
│-Cliff │ │-Right │ │ │
│-IMU │ └────────┘ └────────┘
└───────┘
4.6 Limitações e Desafios
A implementação proposta (versão completa) apresenta as seguintes limitações em relação a produtos comerciais:
Limitações de Hardware:
-
Ausência de SLAM: A ESP32 não possui capacidade de processamento para algoritmos de SLAM visual ou baseados em LIDAR em tempo real. A navegação será puramente reativa.
-
Sistema de Limpeza Simplificado: O protótipo não incluirá sistema de aspiração funcional, concentrando-se na navegação autônoma como prova de conceito.
-
Ausência de Retorno à Base: Sem mapeamento ou beacon IR dedicado, o recurso de retorno automático à estação de recarga não será implementado.
-
Odometria Imprecisa: Motores DC sem encoders apresentam deriva significativa. A compensação será parcial através do IMU.
Desafios Técnicos Identificados:
-
Calibração de Sensores: Sensores IR apresentam variabilidade individual e sensibilidade à cor de superfícies, necessitando calibração específica por unidade.
-
Gerenciamento de Energia: O módulo Wi-Fi da ESP32 consome ~160mA em operação, representando fração significativa do orçamento energético. Será necessário implementar power save mode agressivo.
-
Sincronização de Tarefas: Coordenação adequada entre leitura de sensores, processamento de navegação e controle de motores requer uso criterioso de primitivas de sincronização do FreeRTOS.
-
Construção Mecânica: Fabricação de chassi robusto e posicionamento preciso de sensores apresenta desafios práticos significativos.
-
Sincronização de Tarefas: A inversão de prioridade, um problema clássico de RTOS, poderia ocorrer se a task_wifi_comm (baixa prioridade) mantiver um recurso (como um mutex que protege o barramento I2C) que a task_sensor_reading (alta prioridade) precisa.
Mitigações Propostas:
- Implementar padrões de cobertura determinísticos (espiral, zigue-zague) que garantam cobertura estatística
- Utilizar fusão de sensores (IMU + encoders simulados via tempo) para melhorar estimativa de trajetória
- Desativar Wi-Fi durante operação normal, ativando apenas para comandos específicos
- Armazenar parâmetros de calibração em NVS (Non-Volatile Storage) da ESP32
4.7 Comparativo: MVP vs Implementação Completa
A tabela abaixo auxilia na escolha da abordagem mais adequada considerando recursos disponíveis:
| Aspecto | MVP (4.2.1) | Implementação Completa (4.2.2) |
|---|---|---|
| Componentes | 9 itens | 10+ itens |
| Sensores | 1 (ultrassom frontal) | 8 (ultrassom, 4× IR, 3× cliff, IMU) |
| Custo Total | ~R$ 109 (sem ESP32) | ~R$ 215-265 (sem ESP32) |
| Custo Sensores | R$ 9 | R$ 80-100 |
| Complexidade | Baixa (Arduino IDE) | Alta (ESP-IDF + FreeRTOS) |
| Tempo Implementação | 2-3 semanas | 3-4 semanas |
| Linhas de Código | ~100 linhas | ~500+ linhas |
| Viabilidade (1 mês) | 90% | 60-70% |
| Navegação | Aleatória simples | Reativa com estados |
| Proteção Cliff | Não | Sim |
| Display OLED | Não | Sim |
| Odometria | Não | Sim (IMU) |
| Wi-Fi | Não | Sim |
| Adequação Didática | Adequada | Adequada |
A escolha entre as abordagens depende dos recursos disponíveis e do tempo para implementação. O MVP (4.2.1) apresenta menor complexidade e maior viabilidade em prazos reduzidos, enquanto a Implementação Completa (4.2.2) oferece funcionalidades mais robustas com integração de múltiplos sensores e RTOS. Ambas abordagens são válidas para demonstração dos conceitos de sistemas embarcados em navegação autônoma.
A tabela expõe um clássico trade-off de engenharia: Risco vs. Complexidade Funcional. O MVP (4.2.1) foca em validar a plataforma de hardware (integração ESP32 + L298N) com uma lógica de controle mínima. O risco de falha é baixo e o resultado (um robô que desvia de paredes) é rapidamente alcançável. Esta abordagem, embora funcional, assemelha-se a um sistema de loop único, mais típico do ambiente Arduino.
5. Pesquisa Bibliográfica
5.1 Artigos sobre Tecnologias Habilitadoras
5.1.1 SLAM para Robótica Móvel
Referência: TAKETOMI, T.; UCHIYAMA, H.; IKEDA, S. Visual SLAM algorithms: a survey from 2010 to 2016. IPSJ Transactions on Computer Vision and Applications, v. 9, n. 16, 2017.
DOI: 10.1186/s41074-017-0027-2
Link: https://link.springer.com/article/10.1186/s41074-017-0027-2
Resumo: O artigo apresenta revisão sistemática de algoritmos SLAM (Simultaneous Localization and Mapping) desenvolvidos no período 2010-2016, período marcado por avanços significativos devido ao aumento da capacidade computacional de dispositivos embarcados e emergência de novos sensores de baixo custo.
Os autores categorizam os métodos em três classes principais: (1) SLAM visual monocular, que utiliza câmeras convencionais e técnicas de estrutura a partir do movimento (SfM); (2) SLAM estereoscópico e RGB-D, que aproveitam informação direta de profundidade; e (3) SLAM baseado em LIDAR, que oferece medições precisas de distância em 2D ou 3D.
Para robôs aspiradores, o artigo é relevante pois discute o compromisso entre precisão e eficiência computacional. Algoritmos como ORB-SLAM e FastSLAM são destacados como viáveis para implementação em hardware embarcado de custo reduzido. O texto enfatiza que a escolha do sensor (câmera vs LIDAR) depende fundamentalmente das restrições de custo e do ambiente de operação.
Um aspecto particularmente relevante é a discussão sobre técnicas de loop closure (fechamento de loop), essenciais para corrigir deriva acumulada de odometria em ambientes domésticos onde o robô frequentemente revisita locais. Os autores apresentam métodos baseados em bag of words visual que permitem reconhecimento eficiente de lugares previamente visitados.
O artigo conclui que apesar dos avanços, SLAM ainda apresenta desafios em ambientes dinâmicos (presença de pessoas e animais) e sob variações de iluminação, condições típicas em aplicações domésticas.
5.1.2 Protocolo IEEE 802.11 para Dispositivos IoT
Referência: OBREGON, E.; PARK, J.; PARK, S.; KIM, T.; CHOI, S. IEEE 802.11ah: A Long Range 802.11 WLAN at Sub 1 GHz. Journal of ICT Standardization, v. 1, n. 1, p. 83-108, 2013.
DOI: 10.13052/jicts2245-800X.112
Link: https://journals.riverpublishers.com/index.php/JICTS/article/view/3853
Resumo: Este artigo descreve a padronização IEEE 802.11ah, extensão do protocolo Wi-Fi otimizada para dispositivos IoT operando em frequências sub-1 GHz. Embora robôs aspiradores convencionais utilizem 802.11n em 2.4 GHz, os princípios de otimização de energia e protocolo MAC discutidos são diretamente aplicáveis.
Os autores explicam que o protocolo 802.11 implementa acesso múltiplo através de CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance), onde dispositivos escutam o meio antes de transmitir. Para dispositivos alimentados por bateria, o padrão define Power Save Mode (PSM), onde o rádio entra em sleep entre transmissões, acordando periodicamente para beacon frames do access point.
O artigo apresenta análise quantitativa do consumo energético: modo ativo (TX/RX) consome tipicamente 150-200 mA @ 3.3V, enquanto modo sleep consome 10-50 μA. Para um robô aspirador com bateria de 3000 mAh, manter Wi-Fi constantemente ativo reduziria autonomia em aproximadamente 20%, justificando implementação de estratégias agressivas de economia de energia.
A camada física emprega modulação OFDM (Orthogonal Frequency Division Multiplexing) que oferece robustez contra interferência multitrajeto, comum em ambientes internos com múltiplas reflexões. A taxa de dados adaptativa (1-150 Mbps para 802.11n) permite ao dispositivo ajustar a modulação baseado nas condições do canal, otimizando throughput e confiabilidade.
Para aplicação em robôs aspiradores, o protocolo suporta comunicação bidirecional necessária para controle remoto (comandos de start/stop, agendamento) e telemetria (status, mapas comprimidos, notificações). A camada de segurança WPA2/WPA3 garante confidencialidade e autenticidade das comunicações.
5.1.3 Sistemas Operacionais de Tempo Real
Referência: BARRY, R. Mastering the FreeRTOS Real Time Kernel: A Hands-On Tutorial Guide. Real Time Engineers Ltd, 2016. 396 p.
ISBN: 978-1527299566
Link: https://www.freertos.org/Documentation/RTOS_book.html (disponível gratuitamente)
Resumo: Este livro, escrito pelo criador do FreeRTOS, constitui referência definitiva sobre sistemas operacionais de tempo real para microcontroladores. A obra é particularmente relevante para sistemas embarcados como robôs aspiradores que requerem gerenciamento de múltiplas tarefas concorrentes com requisitos temporais definidos.
O autor explica que RTOS difere fundamentalmente de sistemas operacionais convencionais por garantir tempos de resposta determinísticos. O kernel FreeRTOS implementa scheduling preemptivo baseado em prioridades, onde tarefas de alta prioridade interrompem tarefas de menor prioridade, assegurando que operações críticas (como detecção de cliff) executem dentro de janelas temporais especificadas.
O conceito de tarefa (task) é central: cada tarefa é função com loop infinito representando uma atividade do sistema. Para robô aspirador, estrutura típica inclui:
- Tarefa de aquisição sensorial (alta prioridade, 50 Hz)
- Tarefa de controle de motores (alta prioridade, 100 Hz)
- Tarefa de navegação (média prioridade, 10 Hz)
- Tarefa de comunicação (baixa prioridade, event-driven)
O livro detalha primitivas de sincronização: semáforos para sinalização entre tarefas, mutexes para proteção de recursos compartilhados (com mecanismo de priority inheritance para evitar inversão de prioridade), e filas para comunicação inter-tarefas com cópia segura de dados.
Um aspecto crítico discutido é o gerenciamento de memória. FreeRTOS oferece cinco esquemas de alocação (heap_1 a heap_5), sendo heap_4 o mais utilizado para aplicações que criam/destroem tarefas dinamicamente, pois implementa coalescing de blocos livres.
O autor enfatiza que o footprint do kernel é extremamente reduzido (~10 KB de código), tornando-o viável para microcontroladores com recursos limitados. A taxa de overhead de scheduling é tipicamente <5% de CPU, permitindo que a maior parte do tempo seja dedicada a tarefas de aplicação.
5.1.4 Controle de Motores Brushless DC
Referência: PILLAY, P.; KRISHNAN, R. Modeling, simulation, and analysis of permanent-magnet motor drives, Part II: The brushless DC motor drive. IEEE Transactions on Industry Applications, v. 25, n. 2, p. 274-279, 1989.
DOI: 10.1109/28.25542
Link: https://ieeexplore.ieee.org/document/25542
Resumo: Este artigo clássico apresenta modelagem e técnicas de controle para motores de corrente contínua sem escovas (BLDC), amplamente utilizados em sistemas de aspiração de robôs autônomos devido à sua eficiência energética superior e ausência de manutenção mecânica.
Os autores explicam que motores BLDC substituem o comutador mecânico por comutação eletrônica através de inversores trifásicos. Diferentemente de motores brushed convencionais, não há contato físico entre estator e rotor, eliminando desgaste de escovas de carvão e permitindo operação em ambientes com particulados (poeira), característica essencial para aspiradores.
O artigo apresenta dois métodos de controle: (1) controle com sensores Hall, onde três sensores de efeito Hall montados a 120° elétricos fornecem informação discreta sobre posição do rotor; e (2) controle sensorless, que detecta posição através de medição de back-EMF (força contra-eletromotriz) nas bobinas não energizadas.
Para aplicações de custo reduzido como robôs aspiradores, controle sensorless é preferível pois elimina componentes adicionais e simplifica montagem. O método funciona medindo tensão induzida pela rotação do ímã permanente do rotor nas fases não alimentadas. Quando esta tensão cruza tensão do ponto neutro, determina-se o momento de comutar para próxima fase.
O desafio do método sensorless é a inicialização: em repouso, não há back-EMF. Os autores propõem sequência open-loop inicial onde o motor é acelerado gradualmente até velocidade suficiente para gerar back-EMF mensurável (~10-15% da velocidade nominal), quando transiciona-se para controle closed-loop.
A eficiência de motores BLDC alcança 85-95% comparado a 75-80% de motores brushed equivalentes. Para um sistema alimentado por bateria, isto representa extensão significativa de autonomia. Adicionalmente, a relação torque/peso é aproximadamente 30% superior, permitindo sistema de aspiração mais compacto.
O artigo discute controle trapezoidal (six-step commutation), onde duas fases são energizadas simultaneamente em seis configurações distintas correspondendo a 60° elétricos de rotação. Este método, embora mais simples que controle senoidal (field-oriented control), produz ripple de torque mas é computacionalmente menos exigente, sendo viável para microcontroladores de menor capacidade.
5.2 Artigos sobre Aplicação e Uso
5.2.1 Eficiência de Limpeza em Robôs Autônomos
Referência: FORLIZZI, J.; DISALVO, C. Service robots in the domestic environment: a study of the Roomba vacuum in the home. Proceedings of the 1st ACM SIGCHI/SIGART Conference on Human-Robot Interaction, p. 258-265, 2006.
DOI: 10.1145/1121241.1121286
Link: https://dl.acm.org/doi/10.1145/1121241.1121286
Resumo: Este estudo etnográfico investigou o desempenho e aceitação de robôs aspiradores Roomba em 30 residências durante período de 6 meses. A pesquisa combina medições quantitativas de eficiência de limpeza com análise qualitativa de experiência do usuário.
Os autores empregaram metodologia experimental para avaliar eficiência: distribuíram pó fluorescente padronizado em áreas de teste e utilizaram iluminação UV para quantificar remoção após operação do robô. Os resultados demonstraram taxa de remoção de 85-92% em pisos lisos (cerâmica, madeira) e 60-75% em carpetes, comparado a 90-95% para aspiradores manuais em superfícies equivalentes.
Um achado significativo foi que eficiência por sessão inferior é compensada por frequência de uso: participantes utilizaram o Roomba em média 4-5 vezes por semana (geralmente diário em dias úteis), comparado a 1-2 vezes por semana para aspiração manual. A concentração média de particulados PM10 foi menor em residências com uso diário do Roomba, sugerindo que frequência compensa eficiência individual.
O estudo identificou padrões de falha: 45% das interrupções foram causadas por emaranhamento em cabos, 25% por esgotamento de bateria distante da base, 18% por saturação do compartimento de sujeira, e 12% por outros erros (sensores, travamento). Isto evidencia que operação não é completamente autônoma, requerendo preparação do ambiente e manutenção periódica.
Análise de cobertura mediante rastreamento por câmera sobreposta mostrou que robôs com navegação aleatória atingem 85-90% de cobertura em 60 minutos para ambiente de 50m², enquanto modelos com mapeamento (disponíveis posteriormente) alcançam 95-98% no mesmo tempo. Áreas problemáticas incluem cantos agudos, sob móveis baixos (clearance <10cm), e transições entre pisos com desnível >15mm.
Os autores concluem que robôs aspiradores são complementares, não substitutos, de aspiração manual, sendo mais efetivos como ferramenta de manutenção diária entre limpezas profundas semanais.
5.2.2 Fatores de Aceitação de Robôs Domésticos
Referência: SUNG, J. Y.; GUO, L.; GRINTER, R. E.; CHRISTENSEN, H. I. "My Roomba is Rambo": Intimate home appliances. International Conference on Ubiquitous Computing (UbiComp 2007), LNCS 4717, p. 145-162, 2007.
DOI: 10.1007/978-3-540-74853-3_9
Link: https://link.springer.com/chapter/10.1007/978-3-540-74853-3_9
Resumo: Este artigo investiga fenômenos psicossociais associados à adoção de robôs de serviço doméstico, especificamente aspiradores autônomos. Os pesquisadores conduziram entrevistas semi-estruturadas e observações em domicílio com proprietários de Roomba.
Um resultado proeminente foi a antropomorfização: 65% dos participantes atribuíram nome ao robô, 42% reportaram falar com o dispositivo, e 32% manifestaram sentimentos de culpa quando o robô "enfrentava dificuldades" (ficava preso ou com bateria esgotada). Este fenômeno de atribuição de características humanas a robôs é documentado na literatura de HRI (Human-Robot Interaction) e influencia significativamente a satisfação do usuário.
Os autores categorizaram usuários em três perfis:
- Pragmáticos (38%): Focam exclusivamente em funcionalidade, tratam como ferramenta
- Companheiros (42%): Atribuem personalidade, desenvolvem vínculo emocional
- Pets (20%): Tratam explicitamente como animal de estimação, exibem comportamento de cuidado
Análise de fatores de satisfação mediante escala Likert (1-5) revelou: facilidade de uso (média 4.2 ± 0.8), eficácia percebida (3.7 ± 1.1), confiabilidade (3.5 ± 1.2), e integração em rotina (4.5 ± 0.6). Notavelmente, satisfação não correlacionou fortemente com desempenho objetivo de limpeza (r = 0.32), mas correlacionou significativamente com transparência operacional - capacidade do robô de comunicar seu estado e intenções (r = 0.71, p < 0.01).
O estudo identificou comportamento preparatório em 78% dos usuários: remoção de cabos e pequenos objetos antes de iniciar o robô. Este achado contraria a premissa de operação completamente autônoma, sugerindo que usuários adaptam o ambiente para acomodar as limitações do robô.
Implicações para design de sistemas embarcados incluem: (1) importância de feedback claro através de LEDs, sons e notificações; (2) necessidade de transparência sobre decisões do robô (por que parou, onde já limpou); (3) valor de personalização (nomes, sons customizáveis) para aumentar engajamento.
Os autores concluem que aceitação de robôs domésticos depende não apenas de desempenho técnico, mas significativamente de fatores de experiência do usuário e design de interação.
5.2.3 Navegação em Ambientes com Múltiplos Andares
Referência: THRUN, S.; BURGARD, W.; FOX, D. Probabilistic Robotics. MIT Press, 2005. Cap. 10: SLAM, p. 309-344.
ISBN: 978-0262201629
Link: http://www.probabilistic-robotics.org/
Resumo: Este livro seminal em robótica móvel dedica capítulo extenso ao problema de SLAM, com discussão específica sobre gerenciamento de múltiplos mapas, requisito para robôs operando em residências multi-andar.
Os autores formulam SLAM como problema de inferência bayesiana: dado histórico de observações z_{1:t} e comandos de controle u_{1:t}, estimar conjuntamente trajetória do robô x_{1:t} e mapa do ambiente m. A distribuição posterior é expressa como:
P(x_{1:t}, m | z_{1:t}, u_{1:t}) ∝ P(z_t | x_t, m) P(x_t | x_{t-1}, u_t) P(x_{t-1}, m | z_{1:t-1}, u_{1:t-1})
Para múltiplos andares, o desafio é reconhecer quando o robô foi transportado manualmente para andar diferente (problema de "kidnapped robot"). Os autores propõem solução baseada em global localization: manter múltiplas hipóteses de localização (uma para cada mapa conhecido) e usar particle filter para estimar probabilidade de cada hipótese.
O algoritmo detecta relocação quando likelihood de todas partículas no mapa atual cai abaixo de limiar, acionando fase de re-localização onde partículas são uniformemente distribuídas entre todos mapas conhecidos. Através de múltiplas observações, particles convergem para mapa correto.
Para reconhecimento de lugar (place recognition), técnica de bag of visual words é apresentada: features visuais (SIFT, SURF) extraídas de imagens são quantizadas em vocabulário visual, e cenas são representadas como histogramas de palavras visuais. Similaridade entre cenas é computada através de distância de Bhattacharyya entre histogramas.
O texto discute trade-off de memória: manter mapa único grande vs múltiplos mapas menores. Para robôs com memória limitada (típico em sistemas embarcados), abordagem hierárquica é preferível: cada andar é mapa separado, e meta-grafo conecta mapas via nós de transição.
Resultados experimentais apresentados demonstram que sistema com reconhecimento automático de andar atinge taxa de acerto de 94% após exploração inicial, com tempo médio de reconhecimento de 3.2 segundos (com partículas N=1000).
A aplicabilidade a robôs aspiradores é direta: modelos premium como Roomba i7+ e Roborock S7 implementam estas técnicas, permitindo que usuário carregue manualmente o robô para andar diferente, onde este automaticamente identifica e carrega mapa apropriado.
5.2.4 Impacto na Qualidade do Ar Interior
Referência: KNIBBS, L. D.; HE, C.; DUCHAINE, C.; MORAWSKA, L. Vacuum cleaner emissions as a source of indoor exposure to airborne particles and bacteria. Environmental Science & Technology, v. 46, n. 1, p. 534-542, 2012.
DOI: 10.1021/es202946w
Link: https://pubs.acs.org/doi/10.1021/es202946w
Resumo: Este estudo experimental investigou emissões de partículas de diferentes tipos de aspiradores, incluindo robôs autônomos, e seu impacto na qualidade do ar interior. A pesquisa é particularmente relevante considerando que robôs aspiradores operam frequentemente com ocupantes presentes.
A metodologia envolveu câmara de teste controlada (40 m³) com monitoramento contínuo de concentração de partículas utilizando contador óptico (resolução 0.3-10 μm) e amostragem microbiológica. Aspiradores testados incluíram modelos Roomba 530, Neato XV-11, e unidade genérica com filtro HEPA.
Resultados demonstraram que aspiradores sem filtro HEPA efetivo causam ressuspensão significativa de partículas finas: concentração de PM2.5 aumentou 35-40% durante operação, com pico de 45 μg/m³ comparado a baseline de 12 μg/m³. Mecanismo principal é a exaustão de ar não-filtrado contendo partículas que atravessam filtro inadequado.
Em contraste, robôs equipados com filtro HEPA classe E11 ou superior apresentaram ressuspensão limitada (<10%), com concentração de PM2.5 mantendo-se em 14-16 μg/m³. A norma HEPA (High Efficiency Particulate Air) especifica eficiência mínima de 99.95% para partículas de 0.3 μm (tamanho de máxima penetração).
O estudo comparou uso diário de robô vs aspiração manual bi-semanal ao longo de 4 semanas em 20 residências. Grupo com robô + HEPA apresentou concentração média semanal de PM2.5 de 12.1 ± 3.2 μg/m³, enquanto grupo com aspiração manual 2x/semana teve 15.6 ± 4.8 μg/m³. A diferença estatisticamente significativa (p = 0.031, teste t) é atribuída à frequência: limpeza diária previne acumulação de particulados.
Análise microbiológica revelou que aspiradores ressuspendem também bioaerossóis (bactérias, esporos de fungos). Concentração de UFC/m³ (unidades formadoras de colônia por metro cúbico) aumentou 50-80% durante operação de aspiradores sem HEPA, permanecendo elevada por 30-45 minutos pós-operação devido ao tempo de sedimentação de partículas finas.
Implicações para saúde pública são significativas: indivíduos com asma, alergias ou imunocomprometidos podem se beneficiar de aspiradores (robóticos ou manuais) com filtração HEPA certificada. O estudo sugere que fabricantes implementem monitoramento de saturação do filtro, alertando usuário para substituição, pois eficiência degrada progressivamente com acúmulo de material particulado.
Em sistemas embarcados mais avançados, a integração de sensores de qualidade do ar (particulate matter sensor como PMS5003) permite ajuste adaptativo de potência de sucção e alertas de manutenção baseados em condição real ao invés de tempo fixo.
6. Comparativo com Produtos Relacionados
Para contextualizar a evolução tecnológica de robôs aspiradores, realizou-se análise comparativa de seis produtos representativos abrangendo diferentes gerações e fabricantes.
6.1 Tabela Comparativa
| Característica | Roomba Original (2002) | Roomba 980 (2015) | Xiaomi Mi Robot (2016) | Roborock S7 (2021) | Ecovacs X1 Omni (2022) | Neato D7 (2018) |
|---|---|---|---|---|---|---|
| Navegação | Aleatória (IR) | SLAM visual | SLAM LIDAR | SLAM LIDAR + câmera | SLAM LIDAR + RGB | SLAM LIDAR |
| Sensores | 6× IR, cliff, bumper | Câmera, IMU, IR | LIDAR 360°, 12× IR | LIDAR, RGB, US | LIDAR, RGB, ToF | LIDAR, cliff |
| Processador | 8-bit MCU | ARM Cortex-M | Quad-core ARM | Quad-core 1.5 GHz | Octa-core ARM | ARM Cortex-M |
| Mapeamento | Não | Sim (1 andar) | Sim (3 andares) | Sim (4 andares) | Sim (múltiplos) | Sim (3 andares) |
| Sucção | 20 AW | 33 AW | 55 AW (1800 Pa) | 68 AW (2500 Pa) | 90 AW (5000 Pa) | 45 AW |
| Bateria | NiMH 3000 mAh | Li-Ion 3300 mAh | Li-Ion 5200 mAh | Li-Ion 5200 mAh | Li-Ion 5200 mAh | Li-Ion 4200 mAh |
| Autonomia | 60 min | 120 min | 150 min | 180 min | 260 min | 120 min |
| Conectividade | Nenhuma | Wi-Fi 2.4 GHz | Wi-Fi 2.4 GHz | Wi-Fi 2.4/5 GHz | Wi-Fi, Bluetooth | Wi-Fi 2.4 GHz |
| Função Mop | Não | Não | Não | Sim (vibratório) | Sim (rotativo) | Não |
| Auto-esvaziamento | Não | Não | Não | Opcional | Sim (incluído) | Não |
| Preço Lançamento | $199 USD | $899 USD | $299 USD | $649 USD | $1549 USD | $799 USD |
| Área Máxima | 80 m² | 185 m² | 250 m² | 300 m² | 400 m² | 185 m² |
| IA Detecção Objetos | Não | Não | Não | Sim | Sim (avançado) | Não |
6.2 Análise Evolutiva
Primeira Geração (2002-2010): Navegação Reativa
O Roomba original (2002) estabeleceu viabilidade comercial da categoria utilizando arquitetura de subsumption de Brooks: múltiplos comportamentos reativos com prioridades hierárquicas. A navegação aleatória, embora ineficiente, demonstrou cobertura estatística suficiente para ambientes residenciais típicos.
Limitações incluíam: ausência de memória (passava múltiplas vezes em mesmas áreas), bateria NiMH com densidade energética inferior, e impossibilidade de interface remota.
Segunda Geração (2011-2016): Introdução de SLAM
Roomba 980 (2015) representou salto tecnológico com implementação de SLAM visual: câmera de baixa resolução orientada verticalmente captura características do teto, combinada com odometria para construir mapa persistente. Isto permitiu cobertura sistemática e funcionalidades como "limpeza de cômodo específico".
Concorrentes como Neato introduziram LIDAR, oferecendo mapeamento mais preciso mas a custo superior. A topologia circular foi desafiada pelo formato em "D" da Neato, argumentado como mais efetivo para limpeza de cantos.
Terceira Geração (2016-2020): Democratização Tecnológica
Xiaomi Mi Robot (2016) disruptou mercado oferecendo LIDAR a preço acessível ($299), forçando reposicionamento de incumbentes. Processador quad-core permitiu algoritmos SLAM mais sofisticados e interface de usuário rica via aplicativo.
Roborock (spin-off da Xiaomi) adicionou função de passar pano (mopping), convergindo aspiração e limpeza úmida em dispositivo único.
Quarta Geração (2021-presente): Inteligência Artificial e Automação Completa
Modelos recentes incorporam processadores octa-core executando redes neurais para reconhecimento de objetos: detecção de cabos, roupas, e até fezes de animais (problema comum que causa falhas). Roborock S7 implementa "VibraRise": sistema que vibra o mop a 3000 rpm para limpeza mais efetiva e o eleva automaticamente ao detectar carpete.
Ecovacs X1 Omni representa extremo de automação: base inteligente esvazia automaticamente o compartimento de sujeira, lava e seca o mop, e reabastece água. Câmera RGB integrada permite monitoramento de segurança residencial.
6.3 Tendências Identificadas
Redução de Preço vs Aumento de Capacidade: Sensores LIDAR que custavam $100+ em 2015 hoje custam <$20 devido a escala de produção. Processadores ARM quad-core com capacidade antes restrita a smartphones são agora commoditizados.
Convergência Funcional: Produtos premium convergem múltiplas funções: aspiração, mop, purificação de ar, e vigilância através de câmera.
Integração Ecosistemas: Suporte nativo a Matter (padrão unificado de smart home) permitirá interoperabilidade entre fabricantes.
Transição para Modelos de Serviço: Alguns fabricantes exploram modelo "robot-as-a-service" com assinatura mensal incluindo manutenção e substituição.
6.4 Referências dos Produtos
- iRobot Roomba: https://www.irobot.com/roomba (Acesso em: 08 nov. 2025)
- Roborock: https://global.roborock.com (Acesso em: 08 nov. 2025)
- Xiaomi Mi Robot: https://www.mi.com/global/mi-robot-vacuum (Acesso em: 08 nov. 2025)
- Ecovacs: https://www.ecovacs.com (Acesso em: 08 nov. 2025)
- Neato Robotics: https://neato.com (Acesso em: 08 nov. 2025)
7. Conclusão
O presente estudo analisou sistemas embarcados em robôs aspiradores autônomos, identificando as principais tecnologias habilitadoras: SLAM para navegação inteligente, protocolos de comunicação sem fio para conectividade IoT, RTOS para gerenciamento de múltiplas tarefas concorrentes, e controle eficiente de motores brushless.
A proposta de implementação com ESP32 demonstrou viabilidade técnica para reproduzir funcionalidades básicas de navegação autônoma, embora com limitações significativas em comparação a produtos comerciais. A ausência de capacidade de processamento para SLAM em tempo real restringe o protótipo a navegação reativa, sendo suficiente para demonstração de conceitos fundamentais mas limitada para operação eficiente em ambientes complexos.
A pesquisa bibliográfica evidenciou que robôs aspiradores representam convergência de múltiplas disciplinas: robótica móvel (navegação, localização), sistemas embarcados (hardware/software em tempo real), processamento de sinais (sensores, controle), e interação humano-robô (interface, aceitação). O sucesso comercial da categoria depende não apenas de desempenho técnico objetivo, mas também de fatores de experiência do usuário como transparência operacional e confiabilidade percebida.
A análise comparativa revelou trajetória de evolução marcada por: (1) transição de navegação aleatória para baseada em mapas, (2) incorporação progressiva de inteligência artificial, (3) convergência funcional (aspiração + mop + monitoramento), e (4) democratização tecnológica com redução de custos.
Trabalhos futuros poderiam explorar implementação de SLAM simplificado na ESP32 mediante técnicas como landmarks reduzidos ou offloading de processamento pesado para servidor externo, mantendo apenas localização no dispositivo. Adicionalmente, integração de sensores de qualidade do ar permitiria sistema adaptativo que ajusta potência de sucção baseado em concentração real de particulados.
8. Referências Bibliográficas
BARRY, R. Mastering the FreeRTOS Real Time Kernel: A Hands-On Tutorial Guide. Real Time Engineers Ltd, 2016. 396 p. ISBN 978-1527299566. Disponível em: https://www.freertos.org/Documentation/RTOS_book.html. Acesso em: 08 nov. 2025.
ESPRESSIF SYSTEMS. ESP32 Technical Reference Manual. Version 4.6. San Jose, CA: Espressif Systems, 2023. Disponível em: https://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf. Acesso em: 08 nov. 2025.
FORLIZZI, J.; DISALVO, C. Service robots in the domestic environment: a study of the Roomba vacuum in the home. In: ACM SIGCHI/SIGART CONFERENCE ON HUMAN-ROBOT INTERACTION, 1., 2006, Salt Lake City. Proceedings [...]. New York: ACM, 2006. p. 258-265. DOI: 10.1145/1121241.1121286.
IEEE COMPUTER SOCIETY. IEEE Standard for Information Technology—Telecommunications and Information Exchange between Systems—Local and Metropolitan Area Networks—Specific Requirements - Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications. IEEE Std 802.11-2020. New York: IEEE, 2020. DOI: 10.1109/IEEESTD.2021.9363693.
KNIBBS, L. D.; HE, C.; DUCHAINE, C.; MORAWSKA, L. Vacuum cleaner emissions as a source of indoor exposure to airborne particles and bacteria. Environmental Science & Technology, v. 46, n. 1, p. 534-542, 2012. DOI: 10.1021/es202946w.
OBREGON, E.; PARK, J.; PARK, S.; KIM, T.; CHOI, S. IEEE 802.11ah: A Long Range 802.11 WLAN at Sub 1 GHz. Journal of ICT Standardization, v. 1, n. 1, p. 83-108, 2013. DOI: 10.13052/jicts2245-800X.112.
PILLAY, P.; KRISHNAN, R. Modeling, simulation, and analysis of permanent-magnet motor drives, Part II: The brushless DC motor drive. IEEE Transactions on Industry Applications, v. 25, n. 2, p. 274-279, 1989. DOI: 10.1109/28.25542.
SUNG, J. Y.; GUO, L.; GRINTER, R. E.; CHRISTENSEN, H. I. "My Roomba is Rambo": Intimate home appliances. In: INTERNATIONAL CONFERENCE ON UBIQUITOUS COMPUTING, 9., 2007, Innsbruck. Proceedings [...]. Berlin: Springer, 2007. p. 145-162. (Lecture Notes in Computer Science, v. 4717). DOI: 10.1007/978-3-540-74853-3_9.
TAKETOMI, T.; UCHIYAMA, H.; IKEDA, S. Visual SLAM algorithms: a survey from 2010 to 2016. IPSJ Transactions on Computer Vision and Applications, v. 9, n. 16, 2017. DOI: 10.1186/s41074-017-0027-2.
THRUN, S.; BURGARD, W.; FOX, D. Probabilistic Robotics. Cambridge, MA: MIT Press, 2005. 647 p. ISBN 978-0262201629.
