Zapoznaj się z naszymimateriałami na stronie

🚩 Ćwiczenie: Omijanie skomplikowanych przeszkód

Materiały:

  • Co najmniej 1 robot
  • 1 komputer/robot
  • Płaski teren

Ustawienia:

  • Uczenie nadzorowane – omijanie przeszkód (złożone)

Czas trwania:

1 godz. 30 min (2 x 45 min)

Wiek:

od 8 lat

Polecane do odkrywania poprzez zabawę

Naucz swojego robota, jak reagować w konkretnych sytuacjach!

Dzięki temu ćwiczeniu dowiesz się, jak skonfigurować oprogramowanie AlphAI i jego sieć neuronową, aby sterować robotem Mbot w prostym środowisku.

Sprzęt

Aby wykonać to zadanie, należy złożyć małą kwadratową arenę:

Zalecamy skorzystanie z naszej gotowej areny, dostępnej na naszej stronie internetowej lub u naszych dystrybutorów.
Można również stworzyć własną arenę. W tym celu potrzebna jest płaska i czysta powierzchnia (na przykład stół), otoczona barierkami w kolorze innym niż podłoga, które będą wystarczająco solidne, aby zatrzymać robota.

Konfiguracja

Konfigurację oprogramowania można przeprowadzić ręcznie lub automatycznie. Aby skonfigurować je automatycznie: Ustawienia > Załaduj przykładowe ustawienia > Uczenie nadzorowane – Omijanie przeszkód (poziom podstawowy). Konfigurację można również przeprowadzić ręcznie, postępując zgodnie z instrukcjami podanymi obok.

  • Czujniki > Ultradźwięki i wykrywanie ruchu
  • Czynności > Do przodu, Obrót, Do tyłu z obrotem
  • Sztuczna inteligencja > Rodzaj uczenia się: „Uczenie nadzorowane”, Algorytm: „sieć neuronowa”, Szybkość uczenia się: „0,02”, Warstwy neuronów pośrednich: 15.
  • Wizualizacja > Wybierz: „animacja”, „połączenia”, „aktywność synaptyczna”, „wartości wejściowe/wyjściowe”

Czujnik ultradźwiękowy – Koncepcja

Podczas pierwszego zadania (proste omijanie przeszkód) zauważyliśmy na końcu, że robot nie wykrywał ściany przed sobą, gdy znajdowała się ona po przekątnej. Nadajnik czujnika ultradźwiękowego działa bowiem w ten sposób, że wysyła falę ultradźwiękową, która odbija się od ściany i wraca do odbiornika.
Ultradźwięk oblicza zatem odległość od obiektu znajdującego się naprzeciwko na podstawie czasu, jaki fala potrzebuje, aby dotrzeć do odbiornika.

Jeśli jednak obiekt znajduje się po przekątnej, droga, jaką pokona wysłana fala, będzie znacznie dłuższa, a obliczona odległość będzie absurdalna. Robot utknie więc przy ścianie, nie mogąc ruszyć dalej, ponieważ domyślnym działaniem, gdy nie widzi przeszkody, jest „Ruszaj”.

‍Więcej informacji

Czujnikultradźwiękowy mierzy czas, w jakim fala powraca do odbiornika. Prędkość jest równa odległości podzielonej przez czas V=d/t, więc odległość to prędkość pomnożona przez czas d=V×t. Czujnik wie, z jaką prędkością rozchodzi się fala (z prędkością dźwięku ~330 m/s), wie również, w którym momencie wyemitował falę. Pozostaje mu tylko podzielić tę wartość przez 2, ponieważ fala ultradźwiękowa pokonuje dwukrotnie odległość między czujnikiem a obiektem: raz od nadajnika do obiektu i drugi raz od obiektu do odbiornika.

Obliczanie odległości dla czujnika ultradźwiękowego: (V×t)/2

Trening

Nauka obsługi robota w tym zadaniu jest nieco bardziej skomplikowana

‍Dalej

Usuń wszystkie przedmioty znajdujące się przed robotem, a następnie naciśnij klawisz strzałki „⇧” na klawiaturze lub kliknij opcję „Ruszaj” po prawej stronie ekranu.















= Dalej











Obróć

Umieść przedmiot przed robotem i naciśnij klawisz strzałki „⇦” lub „⇨” na klawiaturze albo kliknij opcję „Obróć w prawo” po prawej stronie ekranu.

Zrzut ekranu – mBot – A1 – 2b













=Obróć








Cofanie z skręcaniem

Krok pierwszy: Włączenie czujnika zablokowania kół

Wyłącz tryb uczenia się

Ustaw robota przy ścianie

Klikaj przycisk „Dalej” kilka razy, aż uruchomi się czujnik zablokowania kół

Krok drugi: Nie dotykaj już robota

Krok trzeci: Włącz tryb uczenia się

Krok czwarty: Kliknij przycisk cofania, obracając w lewo lub w prawo

Uwaga: Przed naciśnięciem przycisku „Cofnij, obracając” należy wybrać tylko jedną stronę – prawą lub lewą. W przeciwnym razie robot nie będzie wiedział, którą stronę wybrać, co utrudni zrozumienie zadania.

WRESZCIE!

Twójrobot jest już gotowy! Teraz naciśnij spację lub kliknij opcję „autonomiczny” w lewym dolnym rogu ekranu i pozwól robotowi swobodnie poruszać się po arenie oraz reagować na przeszkody na swojej drodze.

Zrozumienie

Wykrywanie ruchu

Aby rozwiązać problem z czujnikiem ultradźwiękowym, dodaliśmy nowy czujnik: jest to czujnik zablokowania. Czujnik ten pozwala oprogramowaniu ustalić, czy robot jest zablokowany, czy nie. W tym celu czujnik analizuje odległość obliczoną przez czujnik ultradźwiękowy; jeśli odległość ta pozostaje niezmienna przez kilka kolejnych operacji, czujnik uruchamia się, a robot rozpoznaje, że jest zablokowany.

Robot nie jest zablokowany,
czujnik wskazuje „1”

Robot się zawiesza, ale czujnik nadal pokazuje „1”

Jeśli po kilku próbach wartość obliczona przez ultradźwięki jest taka sama, czujnik wyświetla „0”

Wykres stanów

Pierwszą rzeczą, która rzuca się w oczy po uruchomieniu tego zadania, jest wykres, który na pierwszy rzut oka wydaje się bardzo skomplikowany. Wykres ten nazywa się „przestrzenią stanów”. Przedstawia on wybory dokonywane przez robota w zależności od jego „stanu”. 

Każdy z czujników wykorzystanych w tym zadaniu jest przedstawiony na wykresie:

Oś Y = czujnik ultradźwiękowy.

Oś odciętych = czujnik zablokowania.

Stan robota jest przedstawiony za pomocą małego kwadratu. Aby lepiej to zrozumieć, spróbuj zbliżyć lub oddalić dłoń od robota – kwadrat przesunie się wzdłuż osi Y.

Jeśli zablokujemy robota o jakiś przedmiot i kilkakrotnie go przesuniemy, zapali się czujnik zablokowania kół, a kwadrat przesunie się wzdłuż osi X.

‍Wreszcie, kolory oznaczają poszczególne czynności, które można wykonać za pomocą robota (żółty = jazda do przodu, zielony = skręt w prawo…).

Podczas treningu zauważyliście, że po wykonaniu danej czynności wykres zmienia kolor. Ponieważ kolory odpowiadają konkretnym czynnościom, oznacza to, że czynność, którą wybierze robot, będzie zależała od jego „stanu” na wykresie stanów.

‍‍

Przykład

W tym przypadkupamięć doświadczeń jest pusta. Kolory na wykresie zostały zatem wybrane losowo. 

W trybie autonomicznym robot cofałby się w prawo, aż utknie, a następnie cofałby się w lewo, aż się uwolni.

Tutaj nauczyliśmy go poruszać się bez przeszkód oraz skręcać w prawo w obliczu przeszkody.

W trybie autonomicznym robot będzie poruszał się do przodu, aż natrafi na przeszkodę, po czym skręci w prawo, aby się od niej oddalić.

Wyzwanie

Jak zachowałby się robot działający w trybie autonomicznym w tych różnych konfiguracjach (nie uwzględniając aktualnego stanu robota w przestrzeni stanów):

Algorytm KNN

Wyłącz tryb „Autonomiczny” i „Uczenie się”, klikając ponownie odpowiednie przyciski:

Algorytm KNN (K nearest neighbours), zwany również algorytmem K najbliższych sąsiadów, jest algorytmem sztucznej inteligencji, który łatwiej zrozumieć.

To ćwiczenie przebiega tak samo jak poprzednie (omijanie przeszkód – wersja złożona) i służy temu samemu celowi, ale realizuje go w inny sposób. Zauważyliście zapewne, że wykres stanów nie został pokolorowany w ten sam sposób. W rzeczywistości, podczas gdy w przypadku poprzedniego ćwiczenia tworzenie wykresu stanów trwało chwilę, a kolory nie były ustalane natychmiast, tutaj, gdy tylko klikniemy na akcję, granica kolorowania rysuje się bezpośrednio i za jednym razem.

W tym algorytmie robot porusza się po przestrzeni…

Każdy element danych, którego nauczył się robot, jest zapisywany w tej samej przestrzeni.

Aby podjąć decyzję, robot po prostu wybiera punkt danych znajdujący się najbliżej jego położenia w przestrzeni.

Algorytm „K najbliższych sąsiadów” jest znacznie łatwiejszy do zrozumienia i pozwala nam, użytkownikom, dostarczać mniej danych do działania sztucznej inteligencji, a margines błędu jest znacznie mniejszy.

Jak wspomniano wcześniej, kolory pojawiają się natychmiast; oznaczają one jedynie obszar, w którym – w porównaniu z innymi punktami danych – pozycja robota będzie najbliższa temu punktowi.

Przykład: W tym przypadku robot znajduje się bliżej kwadratu odpowiadającego poleceniu skrętu w lewo, więc działając samodzielnie, skręciłby w lewo.

Przypomnienie: W algorytmie sieci neuronowych służącym do podejmowania decyzji robot wykonywał następujące obliczenia

Wyjście = Wejście * Połączenie + Przesunięcie

Powiązane kierunki studiów