navegando por cada lugar de una habitación [cerrado]

0

Quiero construir un robot que navegue por cada punto que pueda en una habitación. Pero pensé que algún tipo de láser para mapear la habitación sería mejor o tal vez un sensor ultrasónico. ¿Alguien podría guiarme en una dirección para aprender a hacer esto o hay una mejor manera de hacerlo?

    
pregunta core16

1 respuesta

1

Caminaría a lo largo de las paredes para obtener un contorno. Roomba parece medir el tiempo de reflexión de sus sensores IR para esto, aunque esto requiere una alta precisión: una señal enviada desde 15 cm desde la pared regresa en 1ns.

Cuando tenga los contornos, puede usar un algoritmo de inundación para caminar por la sala. Esto explicará cualquier obstáculo o contorno cóncavo de la habitación.

Un relleno de inundación recursivo no es muy difícil de escribir si tienes una representación de mapa de bits de la sala: llamas a Floodfill (Pt), donde Pt es, por ejemplo, la esquina de topleft. Floodfill te mueve allí y comprueba si has estado allí. Si es así, termina. De lo contrario, establezca un indicador que haya estado en esa ubicación y llame recursivamente a Floodfill () para los 8 puntos adyacentes. Eso es todo.

Si tu primera dirección es hacia el este, el robot se moverá hacia el este hasta que toque la pared, sobre la cual retrocede e intenta la segunda dirección, por ejemplo. sur. Allí vuelve a intentar el este, como su primera dirección, y así volverá a caminar desde el muro oeste hasta el muro este en la siguiente fila.

Tenga en cuenta que esto es algo menos eficiente que un relleno de inundación electrónico, como el que usan las GPU, porque cuando el robot retrocede, tiene que moverse físicamente a su punto anterior.

    
respondido por el stevenvh

Lea otras preguntas en las etiquetas