Skocz do zawartości

Symulator robota The Line Follow


riddyk

Pomocna odpowiedź

Witam,

każdy kto zastanawia się na wykonaniem robota który podąża za linią, ma dylemat w jaki sposób umieścić czujniki, i w jaki sposób reagować na sygnały z tych czujników. Jeśli umieścimy już fizycznie czujniki nie jesteśmy w sposób łatwy zmienić jej pozycję. Co do algorytmu to zawsze można wgrać wsad, chyba że logika jest wykonana na bramkach. Z tego powodu powstał symulator który chcę przedstawić. Na temat ułożenia czujników podczerwieni była już dyskusja, ale nie każdy ma wiedzę, czy też ufa temu co ktoś napisał ( z całym szacunkiem dla piszących ), albo nie ma doświadczenia żeby za pierwszym razem trafić w odpowiednie ustawienie.

Co oferuje symulator? :

- Ustawienie czujników linii ( do 8 sztuk )

- Wykonywanie algorytmu programu ( informacja z czujników jest przekładana na obrót robota )

+ w algorytmie można dla jednych ustawień czujników wybrać do 5 różnych akcji ( losowo wybieranych z tym samym prawdopodobieństwem)

- można narysować robota

- możliwość rysowania dowolnej planszy

Czego jeszcze nie ma, lub nie jest najlepsze:

- zapisywania ustawień

- regulowanej prędkości robota

- ładnego rysowania robota

- odświeżanie ( miganie rysunku )

- robot obraca się woku środka rysunku, a nie środka kuł!

Zaczynamy, od wykonania (rysowania) robot:

Konstrukcja - szary klocek, żadnej oprócz ozdoby funkcji nie spełnia.

Czyść - usuwa klocek

Koła - tak samo jak Konstrukcja, tylko że czarne.

Czujnik - na środku klocka pojawia się czujnik który reaguje na linię na planszy

Czujnik2 - zajmuje 2 klocki w poziomie, a na środku 2 klocków pojawia się czujnik, można rysować 2 czujniki drugiego typu obok siebie.

Następnie rysujemy plansze:

Linia - rysuje linię po której ma się poruszać robot

Czyść - tak samo jak w konstrukcji robota

Start - rysuje klocek od którego robot zaczyna się poruszać ( można więcej narysować, ale od tego który jest bliżej końca planszy pojawi się robot )

Stop - jeśli czujnik odczyta ten klocek to zatrzyma symulator.

Pendzel - umożliwia rysowanie dowolnych kształtów

Cofnij - powoduje cofnięcie rysunku narysowanego pędzlem, nie całego tylko ostatniego machnięcia 😋 i tak do końca.

Usuń - usuwa wszystko co było rysowane pędzlem.

Teraz pora na algorytm robota:

Zaczynamy od ustawienia odczytu czujników, zaznaczamy ptaszkami. Jeśli jest zaznaczone to czujnik widzi linię, na 2 rysunku jest podgląd który jest to czujnik zielone - widzi, czerwone - nie widzi linię, następnie wybieramy kąt o jaki obróci się nasz robot, w następnym kroku, jeśli wszytko gra naciskamy Dodaj. Dla jednego ustawienia można wybrać więcej kątów obrotu z tym, że który zostanie wykonany zależy od losowania, maksymalnie może być do pięciu różnych akcji, następnych po prostu nie uwzględnia w losowaniu. Jeśli się pomyliliśmy do możemy najpierw z listy wybrać, a następnie Usunąć zachowanie robota.

Teraz czas na symulację zachowania się robota na planszy:

Robot pojawi się w punkcie startu.

Najpierw ustawiamy kąt robota na starcie. Następnie naciskamy przycisk Start, od tego momentu możemy używać pracy krokowej, lub włączyć lub wyłączyć pracę ciągłą. Jest też opcja powrotu na start.

Z względów iż nie można zamieszczać .exe, to jest spakowane. Program nie wymaga instalacji. Rano się zorientowałem że nie ma bibliotek to zamieszczam jeszcze wersję z bibliotekami.

symfl.zip

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

Podoba Ci się ten projekt? Zostaw pozytywny komentarz i daj znać autorowi, że zbudował coś fajnego!

Masz uwagi? Napisz kulturalnie co warto zmienić. Doceń pracę autora nad konstrukcją oraz opisem.

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

Rano się zorientowałem, że nie jest skompilowane z bibliotekami, więc teraz zamieszczam, wersję z bibliotekami.

Zdaje sobie sprawę, że program ma wiele błędów i niedoskonałości.

Link do komentarza
Share on other sites

Muszę przyznać, że pomimo swojej prostoty ten program ma ogromne możliwości, jeśli dopracujesz szczegóły, twój program stanie się niezastąpionym narzędziem dla wszystkich projektujących nowego lfr'a. Mam kilka uwag czy raczej propozycji do kolejnej wersji programu:

- dodaj możliwość ręcznej edycji algorytmu żeby nie trzeba było od nowa robić wszystkiego gdy chcę zmienić jedną prędkość

- dodaj możliwość definicji środka obrotu, lub zmień środek obrotu docelowo na oś kół

- zauważyłem, że obecnie ilość pól kół nie ma wpływu na prędkość, jeśli jedno koło jest większe od drugiego robot w dalszym ciągu jedzie na wprost

Link do komentarza
Share on other sites

Zgadzam się z Sabre, z moich uwag:

-koniecznie przydałaby się możliwość edycji prędkości bota

-podczas symulacji mógłby chyba poruszać się trochę szybciej

-przy ustalaniu algorytmu przydałoby się też pole gdzie można ręcznie wprowadzić kąt, lub jakieś buttoniki z kilkoma gotowcami (-180 -90 -45 0 45 90 180)

- coś z tym odświeżaniem by się przydało poprawić 😉

Mam nadzieje, że program będziesz rozwijał?

Link do komentarza
Share on other sites

A czy mógłbyś wstawi kod źródłowy oczywiście jeżeli nie masz nic przeciwko. Chciałbym program trochę bardziej przerobi pod mojego LF. W razie czego zapewniam że nie będę rozpowszechniał tego programu. Zrozumie jeżeli mi nie zaufasz i nie wstawisz.

Link do komentarza
Share on other sites

A ja mam sugestię co do tematu tematu: Follower. Program fajny, lepszym rozwiązaniem do "programowania" robota byłoby wpisywanie prędkość każdego z kół, a nie podawanie o jaki kąt robot ma się obrócić - bardziej realistyczne.

Link do komentarza
Share on other sites

Puki co, rozpocząłem ciężką prace fizyczną ( na wakacje ) i nad programem mogę pracować tylko w niedzielę, bo nie cierpię czegoś zacząć i nie skończyć.

Kilka z tych pomysłów co się pojawiła, miała być w domyśle zrobiona, ale przeogromne problemy z wykonaniem animacji obrotu sprawiły, że jest tylko podany kąt i tylko woku osi obrotu. Proszę o uwagi dosłownie tego co brakuje, to co mogło by być, i swoje "fantazje", bo część z nich na pewno małym nakładem pracy i czasu da się wprowadzić.

Teraz pytania z mojej strony:

-Czy trzeba coś poprawić w kreatorze mapy, czy dołożyć jakieś szablony, kółka, skrzyżowania? Na pewno będą jakieś gotowe mapy.

-W Algorytmach co brakuje? I tu oczekuję uwagi na to jakie są algorytmy nie koniecznie obrót i jedź, czy może więcej obsługiwanych czujników dołożyć? I jakie parametry dołożyć oprócz obsługi prędkości 2 kół.

- konstrukcja robota, jakie "klocki" dołożyć, czy może jakieś wariancje czujników.

Co do kodu to nigdy nie udostępniam, chyba, że jest to program pisany z góry z założeniem że kod odsprzedaję. Programy które piszę dla swojego widzimisię piszę całkiem inaczej niż dla osób postronnych, nie jestem informatykiem tylko elektronikiem i wyznaję metodę pisania skutecznych programów (działających), a nie z pięknym kodem, więc pokazanie kodu innej osobie nic nie powie ( moje komentarze, są dedykowane tylko i wyłącznie dla mojej gwary, i też ich nie robię za dużo ). Puki co program ma 1702 linie kodu.

I tak z mojej strony, następną wersję na pewno, bardziej przemyślę i zacznę pisać ją o początku, wiele rzeczy jak wspomniałem jest na hop siup. Bo to co widzieliście to praca około 16 godzin ( 5 dni ), gdzie pomysł pojawił się dzień wcześniej. Najwcześniej efektów oczekujcie za 3-4 tygodnie, i mam kilka ciekawych pomysłów, ale jeszcze muszę sporo doczytać na forach programistycznych, czy da się coś ciekawego dołożyć.

Link do komentarza
Share on other sites

-Czy trzeba coś poprawić w kreatorze mapy, czy dołożyć jakieś szablony, kółka, skrzyżowania? Na pewno będą jakieś gotowe mapy.

Można by dodatkowo udostępnić takie segmenty jak właśnie skrzyżowanie, łagodny zakręt itd - normalne rzeczy, które można spotkać na zawodach.

-W Algorytmach co brakuje? I tu oczekuję uwagi na to jakie są algorytmy nie koniecznie obrót i jedź, czy może więcej obsługiwanych czujników dołożyć? I jakie parametry dołożyć oprócz obsługi prędkości 2 kół.

Można się pokusić o więcej czujników, np aby zrobić takiego robota jak mieli Hiszpanie w Łodzi (16 czujników)

- konstrukcja robota, jakie "klocki" dołożyć, czy może jakieś wariancje czujników.

Konstrukcji robota chyba nie ma co udziwniać w sumie może jej całkiem nie być, skoro w symulacji biorą udział tylko czujniki.

Przy symulacji robot by mógł zostawiać za sobą ślad w postaci linii jakiegoś koloru, aby na końcu zobaczyć jak wyglądał przejazd całej trasy.

Przydała by się też regulowana prędkość symulacji.

Link do komentarza
Share on other sites

Czy są jakieś życzenia co do algorytmu i symulacji, oprócz tego co się wcześniej pojawiło? Bo za chwilę do tego dochodzę, i chciałbym mniej więcej już mieć wizję tego co mam tam dać. A też nie wiem czy następna wersja powstanie, jeśli tak to za dłuższy czas ( 2-3 miesiące ).

Link do komentarza
Share on other sites

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!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.