Atualmente, os sensores de ultrassom são incrivelmente baratos, o que os torna uma escolha popular para muitas aplicações robóticas amadores, e eu gostaria de usar vários deles (digamos 10) em torno de um robô com um algoritmo para construir um mapa aproximado de uma área (como o robô o explora.) Não estou interessado em lidar com objetos em movimento nesse estágio, apenas em apontar objetos fixos, e usarei o GPS para localização. Percebo que outros componentes, como um scanner a laser, produziriam resultados muito mais precisos; no entanto, esses dispositivos também são astronomicamente mais caros.
Existe um algoritmo para esse fim?
fonte
Para fazer o SLAM, você precisará de uma estimativa relativamente boa da posição.
Os robôs que usam scanners a laser podem se contentar apenas com a odometria, porque os dados são relativamente precisos e os dados do scanner podem ser usados para ajudar a localizar nas etapas subsequentes.
Os sensores de ultrassom são muito confusos, geralmente têm uma distorção de direção de mais de 20 graus e qualquer coisa na direção geral será detectada.
Assim, eles são de ajuda insignificante para ajudar a localizar (exceto em ambientes muito estruturados).
Uma combinação de GPS / IMU pode ser usada para obter uma localização razoável. Obviamente, isso depende da escala do robô e, se estiver dentro de casa, o GPS pode não ser prático.
Se você conseguir controlar cuidadosamente a derrapagem da roda, a odometria da roda poderá melhorar significativamente a localização a curto prazo (embora seja preferido um método absoluto de localização). Sem uma referência absoluta (por exemplo, GPS), mesmo com um scanner a laser, você precisará resolver o problema de "fechar o loop".
Ambientes estruturados podem ter um requisito de menor precisão. Por exemplo, um ambiente de labirinto com paredes a distâncias regulares da grade quadrada, onde é simples detectar a presença de uma parede em cada direção de uma célula da grade.
fonte