Spisu treści:

Samochodowy robot: 7 kroków
Samochodowy robot: 7 kroków

Wideo: Samochodowy robot: 7 kroków

Wideo: Samochodowy robot: 7 kroków
Wideo: Bo w każdym z nas jest trochę dziecka 🍭👮‍♂️ 2024, Lipiec
Anonim
Samochodowy Robot
Samochodowy Robot

Co zrobiłem?

● Bot, którego można nauczyć chodzenia (poruszania się do przodu) po różnych powierzchniach. Bot przedstawia proste stworzenie z 4 nogami „bez kolan”, które stara się iść do przodu. Wie, że może ustawić każdą z nóg tylko na 3 sposoby. Teraz musi wymyślić najlepsze możliwe kroki, jakie może podjąć, aby iść dalej. Ponieważ jego ruch zależy również od tarcia o powierzchnię, uważamy, że dla każdej innej powierzchni, po której się porusza, będzie inny (niekoniecznie wyjątkowy, ale najprawdopodobniej podobny) zestaw kroków, aby zmaksymalizować wysiłek poruszania się naprzód.

Do czego jest to używane?

● Najlepiej nadaje się do wizualizacji wzorców chodzenia robota AI.

Krok 1: Schemat przepływu

Schemat przepływu
Schemat przepływu

Oto podział całego projektu. Ogólnie rzecz biorąc, projekt składa się z 2 części elektroniki z mechaniczną strukturą robota, a druga to algorytm działający na komputerze i kod działający na arduino.

Krok 2: GŁÓWNE ELEMENTY ZAANGAŻOWANE:

Elektronika

Arduino UNO(!)

Czujnik ultradźwiękowy

Serwosilniki

Moduł Bluetooth

Kodowanie

IDE Arduino

Teraterm

Notatnik Jupytera

Q-algorytm uczenia

Krok 3: MODUŁ V1:

MODUŁ V1
MODUŁ V1

Wzmacnianie uczenia: Korzystając z ANN (Artificial Neural Network) zaplanowaliśmy szkolenie naszego robota i wymyśliliśmy dwie możliwe metody.

Ograniczenia: Każda noga (serwomotor) jest ograniczona do zajmowania tylko 3 możliwych pozycji 60, 90 i 120 stopni. Założenia: Uważamy, że ruch bota będzie składał się z 4 stanów (stan jest określoną orientacją wszystkich czterech serw), tj. będą 4 różne stany robota, które rozważymy jako 4 kroki dające nam jeden cykl ruchu, w które bot przesunie się na pewną odległość do przodu. Ten cykl będzie powtarzany w nieskończoność, aby utrzymać bota w ruchu.

Ale jedynym problemem była liczba iteracji do oceny - mamy 3 możliwe orientacje dla każdego silnika i są 4 różne silniki, co sprawia, że 3^4=81 stanów, w których robot może istnieć w jednym kroku lub stanie. Aby wykonać jeden złożony ruch, musimy wykonać 4 różne kroki, co oznacza, że 81^4 = 43,046,721 możliwych kombinacji do sprawdzenia pod kątem maksymalnej wydajności w jednym cyklu ruchu. Załóżmy, że wytrenowanie jednego stanu zajmuje 5 sekund, a ukończenie szkolenia zajęłoby 6,8250 lat!

Krok 4: MODUŁ V2:

Algorytm Q-learning

Algorytm wczesnego uczenia się przez wzmacnianie opracowany do trenowania rzeczy mających skończony stan i znajdowania najkrótszych ścieżek. źródło:

Math of Algorithm: Istnieje 81 możliwych stanów dla każdego kroku, w którym bot może się znajdować, nazywamy te stany liczbami od 1 do 81, a teraz to, co chcemy poznać, to wartość przejścia, czyli zmiana pozycji robota (przebyta odległość), podczas gdy przechodzi z losowego stanu s1 do innego stanu s2 (s1, s2 z tych 81 stanów). Widzimy to jako macierz o 81 wierszach i 81 kolumnach, gdzie element macierzy będzie równy wartości odległości, z której się przesunął, odpowiadającej jego numerowi wiersza i kolumny. Wartości te mogą być dodatnie lub ujemne w zależności od działania robota w prawdziwym słowie. Teraz znajdziemy zamkniętą pętlę stanów, w której przebyta odległość jest zawsze dodatnia. Będziemy oceniać wartości macierzy 81x81, które wynoszą 81^2=6561, teraz jeśli zajmiemy 5 sekund, aby zapisać te wartości w macierzy, stworzenie całej matrycy zajmuje tylko 9.1125 godzin, a następnie można łatwo wymyślić pętlę kroków, aby zmaksymalizować wydajność przenoszenia.

Krok 5: POWIĄZANE PROBLEMY -

  1. W pewnym stanie ruch robota był bardzo nierównomierny i wpływał na wartość czujnika ultradźwiękowego, bot przechylał się i podnosił odległość od odległej ściany.
  2. Problem z odłączeniem się od laptopa i ponownym uruchomieniem arduino powodował, że trenował od wartości 0 był bardzo irytujący.
  3. Obserwowanie pociągu robota przez 5 godzin bez przerwy było bardzo wyczerpujące.

Krok 6: MODUŁY A1 i A2:

  • Część mechaniczna to płyta podwozia z przymocowanymi do niej czterema serwomechanizmami. Do wykonania nóg wykorzystaliśmy patyczki do lodów.
  • Naszym głównym zadaniem jest śledzenie odległości bota od jego początkowej pozycji.
  • Nasze pierwsze podejście polegało na użyciu czujnika żyroskopowego i przyspieszeniu poruszającego się robota, aby wydobyć jego prędkość, a następnie jego pozycję.
  • Problem - okazał się zbyt skomplikowany do wdrożenia! Alternatywa - Ograniczyliśmy ruch robota tylko do 1 wymiaru i użyliśmy czujnika ultradźwiękowego do pomiaru odległości od ściany na wprost.
  • Moduł HC05-Bluetooth był używany podczas treningu do przesyłania szybkości przejścia odległości między dwoma krokami do komputera i tam dane były przechowywane w macierzy.

Krok 7: Link do filmów:

Link do filmów
Link do filmów

Kroki dziecka:

Zdjęcie szkoleniowe:

Prawie prosto:

Film z tańczącym robotem:

Film końcowy0:

Zalecana: