Adaptiv kartläggning och navigering med iRobot skapa (6 / 8 steg)
Steg 6: Adaptiv kartläggning och Wavefront algoritm
Vi kommer att göra något mer avancerade kallas Wavefront algoritm.
Ladda upp denna kod till din skapa:
iRobot_Create_wave_front.zip Den 9 september, 2007
Wavefront discretizes i princip omgivningar och poster placeringen av objekt. Bifogad bild av mitt kök är en bra visualisering av det.
Leta i källa koden för en matris som kallas "map". Med hjälp av kartan, omdefiniera den målet läge, robot, och objektet platser som du vill. Oroa dig inte för mycket om objekten kommer att dock roboten söka och uppdatera kartan för dig.
Njut av den oredigerade slutliga videon!
Ja, jag inser att jag har en hel del spannmål lådor... Jag har mer faktiskt... Jag gillar spannmål =)
Nu vad om du vill lägga till denna algoritm till din robot som tillägg? Enkel, lägga till denna rad i koden:
#include "wave_front.c"//put detta överst
Och sedan sätta detta i Main ()-koden:
direction_to_move = propagate_wavefront(robot_x,robot_y,goal_x,goal_y);
plats för produktionsinleverans robot och önskade målet
Bara berätta det där din robot, och det kommer att berätta din robot var att flytta (1 = norr, 3 = söder, 2 = öst eller 4 = väst). Glöm inte att ange start- och mål plats i filen wave_front.c!
För att uppdatera kartan, bara kalla den funktion find_walls(); och det kommer automatiskt att göra allt det hårda arbetet för dig.
Med endast smärre ändring av är mycket kommenterade koden avsedd att fungera på någon robot chassi med någon sensor, inte bara skapa! Roboten startar som standard längst ned i kartan, och målet är högst upp (som i videon).