Spisu treści:

Programowanie sterowane zdarzeniami w FTC: 4 kroki
Programowanie sterowane zdarzeniami w FTC: 4 kroki

Wideo: Programowanie sterowane zdarzeniami w FTC: 4 kroki

Wideo: Programowanie sterowane zdarzeniami w FTC: 4 kroki
Wideo: Kurs, szkolenie krok po kroku Satel Integra ABAX2 - bezprzewodowy system alarmowy. Zrób to sam 2024, Lipiec
Anonim
Programowanie sterowane zdarzeniami w FTC
Programowanie sterowane zdarzeniami w FTC

W tym roku nasz zespół wykonał wiele pracy przy opracowywaniu oprogramowania sterowanego zdarzeniami dla naszego robota. Programy te pozwoliły zespołowi na dokładne opracowanie programów autonomicznych, a nawet powtarzalnych zdarzeń teleoperacji. Ponieważ oprogramowanie, którego wymaga, jest złożone, postanowiliśmy podzielić się wiedzą, którą zdobyliśmy na temat tworzenia kodu sterowanego zdarzeniami dla robotów FTC.

Krok 1: Co to jest programowanie sterowane zdarzeniami?

Ogólnie rzecz biorąc, według Techopedii programowanie sterowane zdarzeniami to tworzenie programów, które reagują na dane wprowadzane przez użytkownika. W tym sensie wiele programów jest uważanych za sterowane zdarzeniami, w tym program teleoperacji zespołu, który polega na danych wejściowych z kontrolera prowadzonego przez człowieka w celu przeprowadzenia dowolnej akcji. Jednak w zakresie pracy, którą wykonuje nasz zespół, programowanie sterowane zdarzeniami polega na tworzeniu oprogramowania z różnych danych wejściowych; innymi słowy, dokumentujemy zdarzenia na podstawie wejść kontrolerów i czujników, następnie możemy te zdarzenia kolejkować i wykorzystać plik do ponownego uruchomienia zarejestrowanego zdarzenia.

Ta metoda tworzenia programów dla naszego robota ma kilka zalet:

  • Pozwala nam tworzyć dokładne programy autonomiczne. Ponieważ tworzymy oprogramowanie w czasie rzeczywistym podczas trwania wydarzenia, zebrane i wykorzystane wartości czujników będą bardzo dokładne, ponieważ pochodzą bezpośrednio z oryginalnego wydarzenia.
  • Pozwala nam na szybkie tworzenie programów autonomicznych. Tworzenie programów autonomicznych jest tak proste, jak rejestrowanie serii zdarzeń i dostosowywanie zdarzenia w razie potrzeby.
  • Pozwala nam tworzyć automatyczne procesy dla tele-op. W przypadku powtarzających się działań w trybie tele-op, programowanie sterowane zdarzeniami pozwala nam rejestrować te działania i przypisywać zdarzenie do przycisku podczas kontrolowanych przez kierowcę okresów meczów. Na te zautomatyzowane zdarzenia mogą wpływać czujniki, aby umożliwić ich dokładne wykonanie.

Krok 2: Przepływ logiczny programowania sterowanego zdarzeniami

Przepływ logiczny programowania sterowanego zdarzeniami
Przepływ logiczny programowania sterowanego zdarzeniami

Poniżej przedstawiono logiczny przepływ programu sterowanego zdarzeniami: czerwony przedstawia tworzenie zdarzenia, a niebieski przedstawia wywołanie zdarzenia. W celu utworzenia zdarzenia sekwencja danych wejściowych jest pobierana przez działanie robota i rejestrowana jako zdarzenia; te zdarzenia są zapisywane do pliku. W przypadku wywołania zdarzenia plik jest odczytywany, a dane wejściowe są wysyłane do procesora zdarzeń w celu przekształcenia kodu pliku w działanie robota.

Krok 3: Kreator wydarzeń

Kreator wydarzeń
Kreator wydarzeń
Kreator wydarzeń
Kreator wydarzeń

Kreatory zdarzeń służą do dokumentowania akcji lub „zdarzeń” na podstawie różnych czujników i przycisków. Ponieważ robot wykonuje akcje w terenie, klasa twórcy zdarzeń tworzy równolegle zdarzenia dla każdej z tych akcji, odwołując się do zdarzenia sklasyfikowanego w klasie zdarzenia. Po utworzeniu zdarzenie jest umieszczane w kolejce zdarzeń w klasie zdarzeń: pierwsze zdarzenie zajmuje pierwsze miejsce, drugie zdarzenie zajmuje pierwsze miejsce i spycha wszystkie zdarzenia pod nim i trwa do momentu zatrzymania programu. Po zatrzymaniu programu zdarzenia są przesyłane do pliku w formacie czytelnym dla człowieka, takiego jak plik JSON. Ten plik może służyć do lepszego ulepszania procedur autonomicznych.

Powyższy przykładowy kod ustawia parametry zdarzenia, które w tym przypadku jest obrotem przy użyciu czujnika IMU. Następnie umieszczamy zdarzenie w kolejce zdarzeń. Na koniec obcinamy zdarzenie, co zasadniczo resetuje zdarzenie, abyśmy mogli użyć go do kolejkowania przyszłych zdarzeń.

Krok 4: Procesor zdarzeń

Procesor zdarzeń
Procesor zdarzeń
Procesor zdarzeń
Procesor zdarzeń

Klasy zdarzeń pobierają plik czytelny dla człowieka utworzony w klasie twórcy zdarzeń i robią to, co nakazuje każdemu z kolejek zdarzeń, wywołując metody opisane w klasie procesora zdarzeń. Następnie klasa procesora zdarzeń informuje robota, jakie zdarzenie ma powtórzyć. Niezależnie od tego, czy jest to proste zdarzenie „napędu do przodu”, czy złożone zdarzenie pełne odległości, zakrętów i okrążeń, procesor odtworzy każde dane mu zdarzenie. Ten proces jest bardzo przydatny w trybie autonomicznym, ponieważ zespół może rejestrować czujniki i działania Tele-Op przed dopasowaniem, a następnie po prostu odtwarzać zdarzenia w trybie autonomicznym. Ten proces nazywa się odtwarzaniem pamięci. Dzięki temu autonomiczny program może być w 100% konfigurowalny za pomocą jednego pliku. Po ustanowieniu twórcy i procesora zdarzenia zespół może po prostu zmienić autonomiczne procedury za pomocą pliku czytelnego dla człowieka.

Powyższy przykład zaczyna się od sprawdzenia pliku JSON pod kątem zdarzenia, a następnie sprawdzenia tego zdarzenia za pomocą instrukcji case, aby zobaczyć, jakie to jest zdarzenie, w tym przypadku zwrot za pomocą czujnika IMU. Gdy będzie mógł stwierdzić, że jest to kolej przy użyciu zdarzenia IMU, zajmuje się przetwarzaniem zdarzenia, co zwykle obejmuje uruchomienie kodu, z którego pochodzi zdarzenie, przy użyciu zmiennych ze zdarzenia, przekazanych w celu zreplikowania zdarzenia, które zostało wykonane wcześniej.

Zalecana: