Skocz do zawartości

Potwierdzenie wybrania odpowiednich części


uliysess

Pomocna odpowiedź

Witam,
Na wstępie pragnę zaznaczyć, ze jakiekolwiek doświadczenie przy budowie robotów mam, jednak dotychczas byłem jedynie pomocnikiem przy budowie jak i programowaniu. Projekt, który wam opisze poniżej jest moim pierwszym samodzielnym projektem, który - jedynie merytorycznie - wspiera mój profesor od Sztucznej Inteligencji.

Mój projekt planuję oprzeć o to Arduino. Ma to być robot, który za pierwszym przejściem labiryntu tworzy jego mapę. Wykorzystując te czujniki odległości aby utrzymać się na środku korytarza jak i wykrywać wszelkie zakręty. 3 takie czujniki miałyby być umieszczone po obu bokach oraz na przedzie maszyny. Gdy różnica w zwracanej wartości bocznych czujników jest niewielka wiedziałbym, że muszę skorygować położenie maszyny aby pozostać na środku korytarza, natomiast gdy różnica wartości będzie duża, będę wiedział, ze jest tam korytarz. Gdy przedni czujnik wykryje ścianę będę wiedział, że muszę się zatrzymać i skręcić. Jako napęd planuję wykorzystać te silniki wraz z tymi sterownikami.

Przechodząc labirynt ponownie robot ma to zrobić szybciej dlatego mam zamiar wykorzystać algorytmy genetyczne, o których dowiem się więcej po zbudowaniu maszyny. Z każdym kolejnym przejściem maszyna korzysta z budowanej mapy labiryntu co pozwala jej podjąć "mądrzejsze" decyzje i tym samym szybciej przejść labirynt.

Mam nadzieję, że opisałem mój projekt w miarę sensownie oraz, ze te części ze sobą współpracują. Czy taki projekt, części i ich dobór jest słuszny? Może zapomniałem uwzględnić w projekcie jakiegoś komponentu?

Chętnie wysłucham wszelkich słów krytyki dotyczących projektu i doboru części. 🙂 Z góry dziękuję za wszelkie odpowiedzi 😉

Link do komentarza
Share on other sites

Skaczesz na głęboką wodę. Zanim cokolwiek zdecydujesz na sztywno i coś kupisz:

1. Przejrzyj konstrukcje innych. Zastanów się jak oni rozwiązali kwestię orientacji, pozycjonowania, wykrywania ścian, napędów, zasilania itp.

2. Załóż sobie jakieś wymiary wynikające ze wstępnie wybranych części i zacznij tym jeździć po labiryncie. Nie musisz go budować, za to dużo rysuj. Wiadomo jakie wymiary ma komórka labiryntu i jakie są tam ściany. Wytnij swoją mysz z tektury, stawiaj w różnych sytuacjach na kartce udającej labirynt i wykonuj manewry jazdy i skręcania nie wierząc swoim oczom, które patrzą na to z góry tylko mając za informacje wyłącznie odległości z trzech czujników. Zakładaj przy tym, że silniki robią co chcą: zwalniają, przyspieszają niejednocześnie, generalnie są nierówne. Zakręty są raz mniejsze raz większe (chodzi mi o promień) i praktycznie nigdy nie mają 90°. Pomyśl jak w czasie dalszej jazdy będziesz korygował takie nawarstwiające się błędy. Przecież nie przesuniesz swojej myszy w poprzek. Przemyśl sprawę pokładowych czujników inercyjnych (IMU) - to dzisiaj jest tanie, dających informacje o wektorze rzeczywistej prędkości i obrotach. Z tego możesz całkiem dokładnie wiedzieć co się z myszą dzieje w każdej chwili.

3. Nie sprecyzowałeś jakie Arduino, bo jest ich już trochę, ale to podstawowe ma prosty mikrokontroler. 2K RAMu to naprawdę bardzo, bardzo mało. Piszesz: "algorytmy genetyczne, o których dowiem się więcej po zbudowaniu maszyny" - to może być sporo za późno. Może się okazać, że prosty, 8-bitowy procesorek obciążony sterowaniem, pomiarami i wymyślaniem drogi po prostu nie uciągnie Twoich pomysłów programistycznych nie tylko z powodu braku pamięci, ale i mocy obliczeniowej. Radzę wcześniej poczytać i oszacować zasoby potrzebne do implementacji planowanych algorytmów.To nie PC, gdzie deklarujesz tablicę zajmującą 50Mbajtów i działasz dalej. Zapytaj profesora na jakich maszynach puszcza swoje AI.

4. Z drugiej strony do znalezienia najkrótszej lub najszybszej trasy nie potrzeba wiele. Są znane proste algorytmy, które robią to całkiem sprawnie.Zastanów się więc co naprawdę chcesz z robić. Prostą mysz jakoś jeżdżącą czy platformę do eksperymentów. W tym drugim przypadku będzie Ci potrzebna przestrzeń: dużo zasobów pamięci i mocy obliczeniowej więc szukaj kontrolera na wyższej półce. Do rozważenia są rozwiązania hybrydowe: przykładowe Arduino do sterowania i pomiarów plus np. Malina od myślenia i planowania strategicznego. Na kilkuset MHz i GB RAMu można już zrobić coś ciekawego.

Ogólnie: temat myszy jest tak rozpoznany i opisany, że właściwie powinieneś tylko czytać i dobrze planować. Bez pośpiechu i przeskakiwania etapów, bo robiąc to po raz pierwszy wcześniej czy później nadepniesz na długie grabie.

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

Jak najbardziej popieram radę doczytania przed kupieniem czegokolwiek. Ze swojej strony jeszcze zalecałbym jednak poczytać o tym czym są algorytmy genetyczne zanim klamka zapadnie -- bo jak rozumiem to jest temat jakiegoś projektu na uczelni?

Zastanów się jak algorytm genetyczny miałby służyć do znajdowania drogi w labiryncie. Co miałoby być genomem? Znaleziona trasa? Jak miałyby wyglądać operacje mutacji i krzyżowania? Jaka jest funkcja dopasowania? Wiesz, to nie może być zwykłe "tak/nie", powinna być gładka i monotoniczna.

Osobiście wydaje mi się, że zrobienie "zwykłego" przeszukiwania labiryntu to już jest pewne wyzwanie. Stwierdzenie "nie wiem jak coś zrobić, to zrobi to za mnie algorytm genetyczny" jest pułapką -- robienie rzeczy ewolucyjnie jest trudniejsze niż "wprost". Dobrze się zastanów co chcesz osiągnąć i co będzie do tego najlepsze.

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

Skaczę na głęboką wodę, bo myślę, że nie ma żadnych powodów do ograniczania się. Po prostu popełnię wiele błędów, z których wyciągnę naukę. Dziękuję wam obu za rady. Ponieważ nie chcę się spieszyć z projektowaniem i zbieraniem informacji temat można wyrzucić do kosza.

Jeszcze raz dziękuję za garść dobrych rad.

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

Dlaczego od razu temat wyrzucać? Skoro już zacząłeś, to przecież będą z czasem jakieś postępy i/lub kolejne problemy. Wrzucaj tu pytania - tym razem może bardziej szczegółowe, swoje pomysły, odkrycia lub wątpliwości. Przecież to dobre miejsce do dyskusji. Po roku będzie widać od czego zacząłeś i gdzie jesteś. Nie wstydź się, pisz gdy wybierzesz platformę obliczeniową, zasilanie i napędy, gdy zaprojektujesz mechanikę, gdy będziesz testował czujniki czy pisał pierwsze algorytmy prostych ruchów. Dla nas też ciekawe jest to jak będziesz sobie radził z ogarnięciem projektu, rysowaniem schematów i płytek, lutowaniem, implementacją i uruchamianiem kodu. Na pewno wielu z tego skorzysta, tak jak Ty korzystasz z doświadczeń innych, którzy już to zrobili i chcieli się swoją wiedzą podzielić.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • 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.