Stap 6: Adaptive Mapping en Wavefront algoritme
We gaan doen iets geavanceerder genaamd de Wavefront algoritme.
Upload deze code naar uw maken:
iRobot_Create_wave_front.zip 9 september 2007
De wavefront discretizes in principe de omgeving en records locaties van objecten. De bijgevoegde afbeelding van mijn keuken is een goede visualisatie van het.
In de bron code zoekt een matrix genoemd 'kaart'. Met behulp van de kaart, de locatie van het doel, robot locatie en locaties van de object definiëren als u nodig hebt. Maak je geen zorgen te veel over de objecten echter de robot zal scannen en updaten van de kaart voor u.
Geniet van de laatste video die onbewerkte !
Ja, realiseer ik me dat ik heb een heleboel granen dozen... Ik heb eigenlijk meer... Ik houd van granen =)
Nu wat als u wilt dit algoritme toevoegen op uw robot als toevoeging? Eenvoudig, voeg deze regel toe in uw code:
#include "wave_front.c"//put dit aan de bovenkant
En zet dit dan in uw main() code:
direction_to_move = propagate_wavefront(robot_x,robot_y,goal_x,goal_y);
input locatie van robot en gewenste doel
Vertel waar je robot is, en het zal uw robot vertellen waar te verplaatsen (1 = Noord, 3 = zuiden, 2 = Oost-, of 4 = west). Vergeet niet om de start en doel locatie opgeven in het bestand wave_front.c!
Om te updaten van de kaart, noem het functie-find_walls(); en het zal automatisch al het harde werk voor u doen.
Met alleen lichte wijziging, is de zeer becommentarieerde code ontworpen voor gebruik op elke robot chassis met een sensor, niet alleen de maken! Standaard begint de robot onderaan in de kaart, en het doel is aan de bovenkant (zoals in de video).