Nosso robô possui uma matriz circular de 12 sensores de sonar que são assim:
Os próprios sensores de sonar são muito bons. Usamos um filtro passa-baixo para lidar com o ruído, e as leituras parecem bastante precisas. No entanto, quando o robô se depara com uma superfície plana como uma parede, algo estranho acontece. Os sonares não mostram leituras que indicariam uma parede; ao contrário, parece uma superfície curva.
A plotagem abaixo foi feita quando o robô estava de frente para uma parede. Veja a curva nas linhas azuis, em comparação com a linha vermelha reta. A linha vermelha foi produzida usando uma câmera para detectar a parede, onde as linhas azuis mostram leituras filtradas do sonar.
Acreditamos que esse erro ocorre devido à diafonia, na qual o pulso de um sensor de sonar bate na parede em ângulo e é recebido por outro sensor. Este é um erro sistemático, por isso não podemos realmente lidar com isso como faríamos com o ruído. Existem soluções para corrigir isso?