Skocz do zawartości

Robot ze sztuczną inteligencją(odnajdywanie drogi w prostym labiryncie)


Dregorio

Pomocna odpowiedź

Hej. W zabawie z robotami jestem troszkę ponad podstawy(zrobiony linefolower, mini sumo). Chciałbym teraz się wypuścić na głębsze wody, mianowicie zastanawiam się nad dodaniem sztucznej inteligencji. Chciałbym zbudować prosty labirynt i by robot nauczył się odnajdywać drogę. Programować w C umiem na poziomi średnio-zaawansowany(masa zadań ze spoja + jakieś aplikacje do rozpoznawania obiektów itd.). Zastanawiam się, jak się pisze takie programy. Nigdy nie miałem styczności z tym. Może zna ktoś jakąś literaturę, albo poradniki, niekoniecznie po polsku(mam słownik angielskiego w domu 😋) bym mógł choć zobaczyć z czym się to je. Jestem z tych co muszą zobaczyć(nauka na przykładach) by się nauczyć, sama teoria nie zawsze mi pomoże. Liczę na waszą pomoc. I postarajcie się odpowiadać w miarę zgodnie z tematem.

Link do komentarza
Share on other sites

Dregorio, to o czym mówisz, to robot typu micromouse. Jest pełno publikacji na ich temat, proponuję obejrzeć różne rozwiązania na początek i może będziesz miał już jako taki zamysł jak to zrobić.

Jeśłi oczywiście pasuje Ci taki typ labiryntu (kąty proste, długości scian to n-krotność konkretnej długości - nazwijmy ją x).

Ja osobiście zrobiłbym robota opartego o silniki pololu 30:1 z przedłużonym wałem i enkoderami, żeby mógł "zmapować" labirynt przesuwając się o x i jeżdżąc kątami prostymi - przy podzieleniu labiryntu na matrycę, gdzie pojedyncza komórka ma x na x, robot przesuwa się od komórki do komórki (chociażby stosując algorytm trzymania się lewej krawędzi, ale jest wiele innych), skanując w każdej swoje otoczenie czujnikami (np analogowe sharpy o małym zasięgu) i patrząc które kierunki są ograniczone ścianami - zapisuje ten dane w matrycy a potem możesz już napisać program, który w oparciu o matrycę wytyczy najoptymalniejszą ścieżkę przejazdu.

Link do komentarza
Share on other sites

Nieeee, Z tego co czytałem w internetach micromause to robot poruszający się dzięki algorytmom np. najprostszym jesli można w lewo skręć w lewo. Nie widziałem tam żadnego czynnika uczenia się.

No i jak sam dodałeś micromause ma sztywno wyznaczone granice labiryntu, a co jeśłi "labiryntem" jest mieszkanie?

Link do komentarza
Share on other sites

Nieeee, Z tego co czytałem w internetach micromause to robot poruszający się dzięki algorytmom np. najprostszym jesli można w lewo skręć w lewo. Nie widziałem tam żadnego czynnika uczenia się.

Nadrób zaległości 🙂https://www.forbot.pl/forum/topics20/algorytmy-micromouse-metody-przeszukiwania-labiryntu-vt2246.htm

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

"Chciałbym zbudować prosty labirynt i by robot nauczył się odnajdywać drogę"

Dostałeś dobrą odpowiedź na zadane pytanie: w labiryntach znanych z zawodów roboty micromouse poruszają się wg prostych algorytmów mapowania dobrze zdefiniowanego środowiska w swoich strukturach danych, a następnie samodzielnie znajdują w nim najkrótszą/najszybszą drogę przy pomocy także dobrze znanych metod. To nie ma nic wspólnego ze sztuczną inteligencją. Tylko bardzo, bardzo początkujący próbują skręcać w jedną stronę i rzeczywiście zdarza się, że wspaniałomyślni organizatorzy niektórych konkursów budują labirynt, który daje się rozwiązać tą metodą. To jest przedszkole zabawy w poszukiwanie drogi. Ty jednak kontestujesz odpowiedź i dorzucasz kolejny stopień trudności: mieszkanie. Nawet jeśli coś zaczniemy o tym pisać (a sam temat jest o niebo bardziej skomplikowany niż prostokątny labirynt) być może dowiemy się, że owo mieszkanie jest zaludnione przez szybko poruszające się koty, dzieci a w ogóle to jest na ISS i nie ma tam grawitacji więc napęd kołowy odpada... Co chcesz konkretnie wiedzieć?

Link do komentarza
Share on other sites

Treker w nocy przed wysłaniem tego posta czytałem ten artykuł właśnie i nic o sztucznej inteligencji nie znalazłem, ale w sumie czytałem go szybko i pobieżnie. Zrobię to jeszcze raz i upewnie się, że nie ma tam nic(dla mnie) o SI, tylko same algorytmy. Dla mnie to tylko "skrypty", a SI kojarzy mi się z czymś innym, wybaczcie jeśli się mylę. Myślałem, że prze np. poruszanie się, zmapuje sobie dom robocik by na przyszłość szybciej drogę znajdować.

marek1707 No ale o tym co piszecie to na dobrą sprawę ma mój minisumo. Tylko zamiast "jak napotkasz przeszkodę, skręć", mój ma "zwiększ obroty na silnikach", albo "trzymaj się areny". I tak masz rację, kiedy napisałem prosty, nie miałem na myśli labiryntu z wymiarami znanymi z góry bo równie dobrze mogę do niego skrypt napisać bez SI, by to przejść. Dlatego później napisałem o mieszkaniu. Chodzi mi o to, że chyba nie do końca łapię samą koncepcję(jak wygląda u robota) ta nauka, bo wszystko co znalazłem w internecie to algorytmy, a czytałem, że SI samo potrafi algorytmy tworzyć, np. neural networks potrafią znaleźć rozwiązanie na które ludzie nie mogą nic poradzić. Jeśli się mylę, to proszę o wyprowadzenie mnie z błędu.

Link do komentarza
Share on other sites

Tak, masz absolutną rację. Znakomita większość - jeśli nie wszystkie - roboty amatorskie i pewnie 99% robotów "profesjonalnie" pracujących na liniach produkcyjnych nie ma nic wspólnego z SI. To zwykłe algorytmy. Nasze myszy niczego nie uczą się w wyższym sensie. Ani nie mają wiedzy "a priori" o np. budowniczych labiryntu i ich preferencjach (tutaj zróbmy zakręt w prawo, będzie trudniej a tu na skos bo tak lubię) ani też nie wyciągają żadnych wniosków. Po wyłączeniu i włączeniu zasilania są za każdym razem takie same. Gdyby nie wyzwania związane z samą konstrukcją (mechanika napędów, poślizgi, niepewne działanie czujników itp) temat byłby zupełnie nieciekawy a na pewno dużo mniej niż np. walki sumo. Co jakiś czas trzeba podjąć decyzję np. dotyczącą wyboru drogi gdy jeszcze nie znasz całego labiryntu i tu można by pokusić się o jakąś np. logikę rozmytą (ostatnio były 3 w prawo więc..), ale nie sądzę by w rzeczywistości było to czymś więcej niż generatorem pseudolosowym.

Powiem Ci tak: zrobienie robota który będzie w miarę dobrze radził sobie choćby z dobrym zmapowaniem nieznanego terenu jest już wystarczająco (czytaj: piekielnie) trudne. Problemy masz ze wszystkim: z ogromną ilością danych, z mocą obliczeniową, z rozmytymi i/lub błędnymi danymi z czujników, z ich reprezentacją w pamięci, z odwzorowaniem położenia własnego, z różnymi rodzajami przeszkód (słupy, rury, wąskie drzwi, szafy, krzesła, ściany, progi) itd itp. W rezultacie dostajesz zbiór (mapę) być może milionów punktów w których masz jakoś określone prawdopodobieństwo występowania fizycznej przeszkody. Teraz próbujesz określić drogę do jakiegoś celu. Masz inne algorytmy do taktyki (ominięcie jednej konkretnej przeszkody) i związane z tym zagadnienia geometrii samego robota, jego sposobu poruszania się, przyśpieszeń, promieni skrętu, wyznaczania bezpiecznych odległości bez zygzaków i zapętlania drogi lub wpadania w martwe punkty itd, oraz inne dla długofalowej strategii (najpierw wychodzimy z pokoju by dostać się na korytarz a potem do kuchni). Już same te dwie rzeczy (czyli SLAM) to tysiące opracowań naukowych z tego większość trudno dostępna. Każdy poprawia coś odrobinę w algorytmie kolegi, ale w sumie nie ma tu jakichś fajerwerków: czujniki laserowe za tysiące dolarów, żmudne obliczenia i moce conajmniej dobrych PCtów. Do tego dochodzą warunki rzeczywiste: wymijanie ludzi, dbanie o własne zasilanie, jakaś komunikacja i wreszcie robienie czegoś pożytecznego oprócz samej jazdy dla jazdy. A Ty piszesz, że to wszystko pikuś, bo chcesz zrobić coś na jeszcze wyższej warstwie abstrakcji. Dobra, powodzenia. A zanim zaczniesz, zrób proszę coś, co w miarę bezpiecznie, puszczone w nieznanym mieszkaniu zmapuje je sobie w trybie ślepego wykrywania a następnie opracuje i przejedzie drogę z jednego pokoju do drugiego. Do tego nie trzeba żadnej SI a mam wrażenie, że zgłosisz się z wynikami za kilka lat. OK, niech to będzie coś prostszego. Ostatnio na zawodach w Łodzi była konkurencja "Ratujemy Misia". Sterylne środowisko, znany i prosty cel. Spróbuj zaprojektować robota, który prawidłowo zmapuje i znajdzie drogę do biednego zwierzaka jedynie na podstawie odczytów własnych czujników ścian. Chętnie to zobaczę i uścisnę Ci rękę, bo - wierz mi - będzie to wyczyn na skalę naszej krajowej, amatorskiej robotyki.

  • Lubię! 1
Link do komentarza
Share on other sites

Powiem tylko jako ciekawostkę, że problem mapowania za jakiś czas może być nieco łatwiejszy od opanowania niż się to wydaje. Aktualnie Intel i Google rozwijają ciekawe projekty urządzeń mobilnych z wbudowanymi skanerami 3D (coś jak Kinect Microsoftu). Obie firmy będą udostępniały API do pisania własnych aplikacji "zorientowanych" w przestrzeni. Nie wiem jak Intel, ale wersję google-a można już nawet testować.

Intel RealSense - http://www.intel.com/content/www/us/en/architecture-and-technology/realsense-shortrange.html

Google Tango - https://www.google.com/atap/project-tango/

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.