Wojcik98 Luty 24, 2015 Autor tematu Udostępnij Luty 24, 2015 Przyspieszyłem robota jeszcze troszkę, teraz dobrze sobie radzi z prędkością 0.75 m/s, potem zaczyna się ślizgać, co widać na filmie. Można go również zatrzymać pilotem, gorzej ze startem, bo nie wiem jakie kodowanie ma mój pilot, więc odbiornik wychwytuje tylko 36kHz i wysyła sygnał do mikrokontrolera 😋 . Zmieniłem jeszcze ledy pod spodem robota 😃 . Do zrobienia: Zamówiłem koła u Trekera i dorobię jakieś oponki z silikonu, żeby zwiększyć przyczepność. Uruchomię czujnik do LF Enhanced i spróbuję zdążyć przygotować go do tej kategorii na Robomaticon. Muszę zmniejszyć rozdzielczość enkoderów, bo procesor się zaczyna nie wyrabiać z przerwaniami 😋 . Próbowałem zamiast wywoływać przerwanie na zboczach opadających i rosnących robić tylko na rosnących. Powinno to działać mniej więcej tak samo: jak są przerwania naprzemiennie, to jedzie prosto, jak któreś wystąpi dwa razy to zmiana kierunku. Oczywiście odległość można liczyć tylko na podstawie jednego kanału np. A, bo drugie przerwanie nie występowałoby w połowie kąta (pomiędzy dwoma przerwaniami od A) tylko w 1/4. Niestety robot głupieje mi przy takich ustawieniach, w ogóle nie potrafi określić, w którą stroną się kręcą koła. Czy to jest dobre podejście i mam coś złego w kodzie, czy ten tok rozumowania jest zły? Cytuj Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Marzec 5, 2015 Udostępnij Marzec 5, 2015 Ja tylko doradzę, abyś zmienił podłoże do testów. Parkiet nie jest równy i gładki. Wyregulujesz sobie robota, a na zawodach, gdy będą płyty/banner konstrukcja kompletnie sobie nie będzie radziła. Cytuj Link do komentarza Share on other sites More sharing options...
Wojcik98 Maj 10, 2015 Autor tematu Udostępnij Maj 10, 2015 Robot normalnym algorytmem potrafi już jechać dobrze z prędkością 1m/s. Jednak postanowiłem zrobić w nim coś, czego jeszcze nie widziałem na tym forum, mianowicie Trzewikodziób potrafi teraz samemu się nauczyć, jak optymalnie jeździć po linii 😃 . Wykorzystałem typ uczenia maszynowego o nazwie Reinforcement Learning. Ten typ uczenia opiera się mniej więcej na tym jak uczą się zwierzęta oraz człowiek: robot dostaje "nagrody" i "kary" za akcje, które wykonuje i stany, w jakich jest. Jego celem jest zmaksymalizowanie "nagrody" jaką dostanie przez cały czas trwania programu. Nagrodę dostaje tym większą, im szybciej jedzie i im bliżej jest środka linii, jeśli wypadnie dostaje cały czas taką samą karę. Ma 10 ustalonych prędkości na silnik, jedna do tył, jedna na zatrzymanie, 8 do przodu. Musi "wymyślić", jakie prędkości silników ustawiać, aby jechać jak najszybciej i jak najdokładniej po linii. Wychodzi mu to całkiem nieźle, jak widać na filmiku poniżej po kilku minutach potrafi utrzymać się na linii, gdyby uczył się dłużej powinien jechać lepiej. Na dzień dzisiejszy nie zwojuje niczego na zawodach, ale zrobiłem to głównie dlatego, żeby wykorzystać ten algorytm w praktyce i potrafić go użyć w innych konstrukcjach, które może za niedługo zrobię 🙂 . 1 Cytuj Link do komentarza Share on other sites More sharing options...
Mechano Maj 10, 2015 Udostępnij Maj 10, 2015 Czy umiejętności nabyte na jakiejś trasie można wykorzystać na innej? Cytuj Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. 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
Wojcik98 Maj 10, 2015 Autor tematu Udostępnij Maj 10, 2015 Tak, ale należałoby go uczyć na jakiejś neutralnej z taką samą ilością zakrętów w lewo i prawo. Jeśli na zawodach miałoby się dowolną ilość przejazdów to mógłby się nauczyć na konkretną trasę i np. w lewo skręcałby szybciej niż w prawo. Cytuj Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Maj 10, 2015 Udostępnij Maj 10, 2015 Wojcik98, bardzo ciekawa sprawa. Bazowałeś na jakiś gotowych algorytmach, czy pisałeś wszystko od zera? Rozumiem, że jest to tzw. uczenie z krytykiem, bo nie podajesz robotowi informacji o poprawnej odpowiedzi, gdy się pomyli (tak jak w uczeniu z nauczycielem), tak? Cytuj Link do komentarza Share on other sites More sharing options...
Wojcik98 Maj 11, 2015 Autor tematu Udostępnij Maj 11, 2015 Treker, tak, bazowałem na algorytmach z książki "Reinforcement Learning: An Introduction". Jak popatrzyłem na to uczenie z krytykiem, to to jest raczej to samo, po prostu nie wiedziałem, jak się to po polsku nazywa 😃 . Robot dostaje tylko nagrody, nie dowiaduje się bezpośrednio, jakie akcje powinien wykonywać. Cytuj Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Maj 12, 2015 Udostępnij Maj 12, 2015 Wojcik98, masz jakieś plany na rozwijanie systemu? Kiedyś chciałem zrobić coś podobnego, ale ostatecznie zabrakło czasu. Planowałem wykonać łagodną, zamkniętą trasę z ręcznie dostrojonym PIDem. "Uczenie" miało polegać na przekazywaniu do robota informacji o czasie jaki poświęcił na jedno okrążenie. Po każdym przejeździe mógłby regulować wyżej wspomniane nastawy PID. Oczywiście nagrody byłyby przyznawane za najszybsze przejazdy. Cytuj Link do komentarza Share on other sites More sharing options...
Wojcik98 Maj 12, 2015 Autor tematu Udostępnij Maj 12, 2015 Treker, rozwijania tego w sumie nie planowałem. Chciałem to uczenie przetestować, sprawdzić w praktyce, a że miałem linefollowera pod ręką to spróbowałem z tym 😃 . W przyszłości zrobię może jakiegoś robota balansującego, można by też było sprawdzić, jak to zadziała w *sumo. Ustawianie nastaw w PIDzie jest chyba nawet lepszym pomysłem od uczenia się prędkości dla każdej pozycji, spróbuję może kiedyś to zrobić. Nagrody mogłyby być dawane dla każdego przejazdu, proporcjonalnie do prędkości robota. Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
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!