Zapoznaj się z naszymimateriałami na stronie
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
