Há vários anos que atuamos em situações relacionadas com a localização e rastreamento, em projetos com tecnologias Bluetooth e outras (GPS, LoRa, etc) em espaços abertos, urbanos e interiores (edifícios amplos, reduzidos, autocarros, Metro, centros comerciais, etc), que mantém a operacionalidade, materializada em diversos e produtos e serviços. Esta reflexão foi elaborada com base em trabalhos efetuados no contexto do projeto BlueEyes, Politécnico de Coimbra, e do relacionamento com parceiros empresariais com é caso da empresa Italiana GiPStech, de cujo blog saiu parte deste conteúdo, com quem tenho trabalhado num projeto piloto numa estação de Metro em Portugal, e da empresa Streamline, de Coimbra.

Ora, as múltiplas opções (App’s) a ser lançadas e patrocinadas por governos e outros, estão focados na tecnologia Bluetooth, o que me deixa um pouco perplexo. Será um erro de perceção minha ou faltam esclarecimentos?

Salvo melhores opiniões, a opção apenas por sinais Bluetooth, não considerando outras opções técnicas (algoritmos), como é o caso da fusão de multisensores, é um risco que afetará a confiabilidade de uma App para detetar (ou não) os contatos de grande proximidade entre pessoas diferentes. Consequentemente, os dados registados podem ser afetados por um grande número de falsos positivos ou falsos negativos, com repercussões na validade dos avisos-alarmes gerados após a deteção, subsequente, de um contágio: pode-se estar a enviar avisos aos utilizadores sem risco (detetados incorretamente) e, por outro lado, não serem enviados aos utilizadores de risco, pois, o último, pode não ter sido totalmente detetado pelo aplicativo.

Sem dúvida, que o meio mais amplamente disponível para ajudar nesta emergência pandémica passa pelo smartphone que cada um de nós “veste” todos os dias. Na China, por exemplo, o uso de smartphones na população entre 15 e os 65 anos de idade é quase 100% [“Population Outflow from Wuhan Determines the Spread and Distribution of the Covid-19 Epidemic in China”, preprint, under review]. No entanto, se uma App é uma forma barata e rápida de fazê-lo, provavelmente não se pode dizer o mesmo sobre a eficácia obtida pelo uso de tecnologias, normalmente disponíveis num smartphone comercial, que, entre outras coisas, foram reduzidas, por várias razões, à possibilidade de usar apenas o sinal Bluetooth.

Se o foco das discussões está colocado na privacidade dos dados, aqui, neste texto, o eixo é colocado nas vertentes técnicas, relacionados com:

  1. a possibilidade de estimar uma distância a partir das medições da potência do sinal Bluetooth, emitido por dois ou mais smartphones;
  2. a possibilidade de manter a App ativa em segundo plano, tornando-a disponível (funcional) em todos os tipos e modelos de equipamentos, a fim de garantir direitos de acesso “iguais” a qualquer pessoa com um smartphone.

Analisemos pontos A e B.

A — Estimativa da distância a partir da mera medição da potência de um sinal de radiofrequência

Todos os smartphones estão equipados com um rádio Bluetooth, mais tradicionalmente usado para propósitos muito diferentes daqueles para os quais está agora a ser usado: o Bluetooth foi usado para conectar os headphones, transferir alguns arquivos (pequenos) e conectar mãos- livres do carro, etc. Contudo, hoje, usamos o sinal Bluetooth, ou melhor, a medida de sua intensidade, para calcular a distância entre dispositivos (smartphones, Beacons, etc) em imensos sistemas de navegação (ex: cidadãos cegos), localização, posicionamento, rastreamento, etc.

No caso de medição da potencia do seu sinal, entre smartphones, o princípio é muito simples: cada smartphone pode emitir um sinal e receber os sinais emitidos pelos outros smartphones que estão nas imediações, se um sinal é recebido com intensidade “alta”, o smartphone emissor é está “Próximo” (ou melhor: provavelmente está próximo) do outro, o recetor e vice-versa.

Segundo as leis que regulam o eletromagnetismo, existe um relacionamento que permite converter a medição da intensidade de um sinal de rádio à distância, segundo uma fórmula simples e muito “popular” [“Evaluation of the Reliability of RSSI for Indoor Localization”, Qian Dong and Waltenegus Dargie Chair of Computer Networks, Faculty of Computer Science, Technical University of Dresden, Germany]:

Distância = 10 ^ ((Ro – RSSI)/(10 * N))

Onde Ro é o valor da intensidade do sinal medido quando exatamente a 1 metro de distância (parâmetro constante geralmente conhecido ou medido a priori), o RSSI (Received Signal Strength Indicator) é a medição do sinal recebido e N é um coeficiente em relação ao ambiente normalmente variável entre 2 e 4.

Ou seja, parece simples o calculo, mesmo com alta precisão, da distância entre dois smartphones a partir da simples medição do RSSI, ie do sinal que um smartphone recebe do outro. Infelizmente, não é bem assim. O consórcio que estandardização do Bluetooth – Bluetooth SIG, reporta vários fatores que impedem a estimativa precisa da distância em tempo real usando, apenas, o sinal RSSI, como o único valor mensurável em smartphones Android e iOS.

De forma resumida, isso significa que pelo menos dois smartphones, especialmente de marca e modelo diferentes, posicionados a uma distância predefinida que permanece constante durante a medição, por exemplo, 2 metros, NÃO recebem um sinal, um do outro, com o mesmo valor RSSI. Ou seja, o RSSI medido pelos dois smartphones será diferente e, consequentemente, cada smartphone poderá estimar uma distância que será diferente entre si, mesmo que os smartphones permaneçam estacionários.

Mais, considerando esse tipo particular de ligação que liga o RSSI e a distância, as pequenas variações na medição do RSSI podem causar erros significativos na estimativa da distância.

Atende-se à seguinte situação real:

  • Se colocarmos dois smartphones, A e B, a uma distância de 2 metros. A essa distância, de acordo com a fórmula referida e usando coeficientes típicos, como R0 = -65dBm e N = 2, teoricamente o sinal que cada smartphone deve receber para um enquadramento de 2 metros de distância, deverá ser igual a -71,05 dBm ;
  • Se usarmos a App BleTestContact da GIPStech, desenvolvida para testar esta situação, verificamos que as medições do smartphone A e/ou smartphone B diferirem, sem querer exagerar, mesmo em 6dBm, que a uma distância de 2 metros significa quase 1 metro de erro (se medirmos 6dBm menos) e 2 metros de erro (se medirmos mais de 6dBm).

Consequentemente, a distância real de 2 metros pode ser erroneamente estimada em 1 metro ou, pior ainda, em 4 metros: o dobro da distância real. Acrescente-se, a isso, que, se os modelos de smartphone forem diferentes, a estimativa, também, será diferente para o smartphone A e para o smartphone B. Não se considerou, no exemplo descrito, que em cenários reais os smarthhones encontrar-se-ão em condições muito diferentes, nem sempre colocados em cima de uma mesa a uma distância fixa e sem objetos no meio que dificultem a propagação do sinal de rádio.

De fato, se “complicarmos” um pouco o cenário, trazendo a simulação de volta a um caso real, basicamente, os dois smartphones quase nunca ficarão parados. E, pior ainda, eles quase nunca estarão “visíveis” ou, naturalmente, estarão colocados num bolso, numa carteira, etc.

Como a o sinal RF do Bluetooth – radiação eletromagnética – é substancialmente, quase totalmente, absorvida por muitos tipos de obstáculos, principalmente pelo corpo humano, sendo este último muito denso com a água, a “coisa” complica-se.

A App BleTestContact da GiPStech, para Android, permite medir da distancia, segundo a formula anteriormente descrita. O código fonte está disponível, para não haver dúvidas (algoritmo) e deixar transparente que a App não guarda, nem envia dados pela Internet, mas apenas se limita a emitir e receber sinais Bluetooth.

Instale-se a App em dois ou mais smartphones e execute-se alguns testes, tipo DIY (faça você mesmo, em português).

B — Mantenha a App sempre ativa no smartphone

Outro problema, que, embora ainda não esteja adequadamente destacado, é, típico destes situações, crítico, pois, é conhecida a “não adesão” dos vários fabricantes de smartphones às especificações originais impostas, por exemplo, pela Google ao Android.

De fato, para que ocorra a troca de sinais Bluetooth descritos na seção anterior, tem uma App de estar sempre em execução, no smartphone responsável por executar a tarefa de detetar o “contato” com outra pessoa que, por definição, tal pode acontecer a qualquer momento.

Tal situação é, substancialmente, critica, principalmente pelo elevado consumo de energia da bateria. Os sistemas operativos “desligam” este tipo de App, não sendo, então, possível garantir que o aplicativo permaneça ativo para executar a tarefa para a qual o próprio projetado: detetar contato entre pessoas diferentes. Se não for o sistema operativo, será o utilizador a desligar a App quando verificar o nível de energia na bateria a decrescer acentuadamente.

Remeto para o site Don’t kill my app!, para melhor se analisar este problema. Este interessantíssimo projeto, de código aberto, sobre este assunto, tem um nome é autoexplicativo e sugestivo: “Não mate a minha App!”.

Assim, resumindo, perante este ângulo, como será possível garantir a confiabilidade de um sistema medidor de proximidades comprometedoras?

Haja esclarecimentos técnicos.