Micromouse - robot, który ma za zadanie przejść labirynt w najkrótszym czasie

0

Witam, od pewnego czasu robiłem dość proste projekty w Arduino, od początkowo zapalających się na zmianę diod, po wprowadzenie kilka funkcjonalności inteligentnego domu do mojego mieszkania, po prosty robot 'line folower'. Teraz chciałbym się zająć, czymś ciekawszym w kwestii samego problemu softwarowego, czyli właśnie tzw. 'micromouse', który ma za zadanie przebyć w jak najkrótszym czasie labirynt. Z kwestią elektroniki nie będzie problemu, ale nie wiem jak się zabrać za samo oprogramowanie, to znaczy nie mam własnego pomysłu na problem przebycia labiryntu jak najszybciej.

Z tego co wiem to rozkład ścianek w labiryncie przed zawodami jest podawany, więc pierwszy pomysł jaki mnie przyszedł na myśl, to zamieszczenie jakiejś reprezentacji mapy na same Arduino, które ma tyle pamięci " 32 kB pamięci programu Flash, 1 kB EEPROM oraz 2 kB pamięci operacyjnej SRAM.", ale nie mam pomysłu jakby to miało wyglądać (jaka forma reprezentacji). Znacie może inne pomysły, podejścia do tego problemu, może jakiś konkretny algorytm który można byłoby zaimplementować?

Tu macie filmik jak wyglądają zawody:

1

Nigdy nie robiłem nic na tak małą ilość pamięci, więc musiałbyś wyliczyć ile Ci to zajmie wszystko, ale może labirynt jako tablica 2d, i algorytm A*?

0

Kwestia rozmiaru ale generalnie zrobiłbym z tego graf nieskierowany i liczył BFSem. Nie A* ani Dijkstra bo nie trzeba. Graf jest nieskierowany oraz nieważony, chyba że ten labirynt może mieć np. różne rodzaje podłoża (na którym powoli sie jedzie) albo np. konieczność jechania w górę/w dół, wtedy graf byłby ważony i wtedy użylbym Dijstry / A*.

0

@Shalom

Co prawda istnieją różne odmiany tych zawodów i takie w których labirynt ma podjazdy i zjazdy, ale ja chciałbym wziąć udział w klasycznych, czyli w takich w których labirynt złożony jest z 256 (16x16) kwadratowych elementów o wymiarach 180x180 mm pooddzielanych między sobą ściankami o grubości 12mm i wysokości 50mm. Więc aż tak rozległy nie jest, więc wydaje mi się, że z pamięcią problemu nie powinno być. W takim razie wybiorę pierwszy sposób najwyżej jak napotkam jakiś problem to będę pisał. Dzięki za rady.

1 użytkowników online, w tym zalogowanych: 0, gości: 1