Paso 6: Asignación adaptativa y algoritmo de frente de onda
Vamos a hacer algo mucho más avanzado llamado el algoritmo de frente de onda.
Añadir este código a su creación:
iRobot_Create_wave_front.zip 09 de septiembre de 2007
El frente de onda discretizes básicamente los lugares alrededores y registros de los objetos. La imagen adjunta de mi cocina es una buena visualización de la misma.
En el aspecto del código fuente para una matriz llamada 'mapa'. Usando el mapa, redefinir la ubicación meta, ubicación de robot y objeto lugares como usted tiene gusto. No se preocupe demasiado acerca de los objetos sin embargo, el robot escaneará y actualizar el mapa para usted.
Disfruta del video final sin editar !
Sí, me doy cuenta que tengo un montón de cajas de cereales... Tengo más realmente... Me gusta el cereal =)
¿Ahora lo que si desea agregar este algoritmo a tu robot como una adición? Simple, agregue esta línea en su código:
#include "wave_front.c"//put esta en la parte superior
Y luego poner esto en el código de main():
direction_to_move = propagate_wavefront(robot_x,robot_y,goal_x,goal_y);
Introduzca la ubicación del robot y la meta deseada
Solo Dile a donde es tu robot, y dirá tu robot donde moverse (1 = norte, 3 = sur, 2 = este o 4 = oeste). No olvides definir ubicación de inicio y meta en el archivo wave_front.c.
Para actualizar el mapa, simplemente llame a la función find_walls(); y lo hará automáticamente todo el trabajo duro para usted.
Con sólo leves modificaciones, el código altamente comentado está diseñado para funcionar en cualquier chasis de robot con un sensor, no sólo en el cree! En el mapa, por defecto el robot inicia en la parte inferior y la meta es en la parte superior (como en el video).