Avatar billede ostebaronen Nybegynder
19. juni 2010 - 18:43 Der er 1 løsning

A* pathfinder kollision problem

Jeg er igang med et projekt med at få en robot til at finde vej igennem en bane med nogle forhindringer som er nogle flamingo plader, for at skulle opsamle nogle objekter på denne bane, hvorefter disse skal køres udenfor banen.

Mit problem ligger i at A* algoritmen vælger en rute som ligger sig op ad forhindringer når den skal forbi disse således at robotten den kører ind i dem, hvilket jeg ikke ønsker.

Felterne som dækker forhindringerne bliver set som felter hvor der ikke kan køres. Jeg har forsøgt tilføje ekstra felter udenom disse forhindringer som ikke kan køres på, men det bliver stadig et problem, da den stadig kan finde på at cutte et hjørne.

Jeg blev foreslået på Stackoverflow at øge cost på felterne, hvilket jeg sagtens kan gøre, men hvis jeg starter pathfinderen bliver cost omkring disse forhindringer ignoreret.

Problemet kan ses på følgende billeder:
http://sogaard.us/uploades/1_grid_no_path.png
Her ses cost på mappet til venstre, rød er ekstremt høj cost, tyrkis er lav eller 0.
http://sogaard.us/uploades/1_map_grid.png
Her er hvad der sker efter pathfinderen har kørt.
http://sogaard.us/uploades/3_path.png
Det er den rute den finder fra robotten til objektet den skal samle op.

Koden kan ses her:
Pathfinder.cs: http://pastebin.org/343774
Field.cs og Grid.cs: http://pastebin.org/343775
Avatar billede ostebaronen Nybegynder
20. juni 2010 - 20:56 #1
Problemet er løst.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester