KNR Bionik

Roboty śledzące linię

Borys

Robot LegoFTL

Autorzy

Rafał Jagielski

Konstrukcja

Konstrukcja tego robota jest zdecydowanie nietypowa. Najczęściej konstruktorzy decydują się przymocować sensor na stałe do konstrukcji ramy o napędzie różnicowym. W tej konstrukcji został dodany kolejny stopień swobody poprzez umieszczenie czujnika światła na wysięgniku podłączonym do trzeciego silnika. Można by powiedzieć, ze pojazd otrzymał ruchomy “nos” służący do szukania linii w pewnej odległości przed nim.

Zaleta tej konstrukcji to zwiększenie powierzchni, z której zbierane są informacje z tylko jednego czujnika światła. Robot potencjalnie może poruszać się dokładnie po linii, a więc najkrótszą możliwą trasą. Atutem jest również możliwość rozdzielenia algorytmu wyznaczania trasy od algorytmu poruszania się wzdłuż wykrytej linii.

Z drugiej strony ten sam algorytm staje się bardziej skomplikowany. Stan pojazdu jest także definiowany przez kąt, pod którym aktualnie wychylony jest czujnik. Wykrycie czasrnej linii już nie może się w prosty sposób przełożyć na korektę trajektorii. Jednocześnie ruchomy czujnik może przyczynić się do przegapienia zakrętu. Czujnik nie trzyma się cały czas wykrytej linii więc potencjalnie może ona “uciec” w stronę przeciwną niż strona, w której aktualnie porusza się czujnik. Sytuacja ta jest zobrazowana na poniższym rysunku (kolor czerwony to ruch czujnika).

Łatwo też się domyśleć, że informacje o położeniu linii są wyrywkowe. Średnia częstotliwość wykrywania linii jest odwrotnie proporcjonalna do długości łuku po jakim porusza się czujnik. Istotnym problemem w tej konstrukcji jest zmienny środek ciężkości układu wywołany ruchomą masą na wysięgniku. W efekcie robot zaczyna się kołysać, a jazda nim po prostej linii staje się utrudniona. Efekt był zmniejszany przez zastosowanie przeciwwagi, jednak osiągnięcie stanu, w którym nie stanowiłby on problemy był niełatwym wyzwaniem.

Program

Program składa się z dwóch wątków. Jeden z nich zarządza ruchem wysięgnika czujnika, a drugi ruchem kół. Najpierw zostanie zaprezentowany algorytm ruchu wysięgnika czujnika. Podstawowym ruchem jest ruch w naprzemiennych kierunkach - przypomina on bujanie się wahadła. Dodatkowo rozróżniane są dwa stany: w pierwszym z nich wysięgnik porusza się w jak najszerszym zakresie w sytuacjach kiedy linia została zgubiona; w drugim zakres ruchu zostaje zmniejszony do węższego łuku, oscylującego względem punktu, w którym została odnaleziona linia. Wartość kąta wychylenia wysięgnika w momencie trafienia na linię jest udostępniana wątkowi sterującemu kierunkiem jazdy. Na podstawie tej wartości jest konfigurowana moc przekazywana na koła napędu różnicowego, tak aby robot poruszał się w kierunku linii. Dodatkowo powstał tryb szukania linii, gdy uznajemy, ze robot się zgubił. Następuje to gdy po zdefiniowanym odcinku czasu nie udało nam się natrafić ani razu na kolor czarny. W takiej sytuacji robot zwiększa zakres ruchu wysięgnika z czujnikiem oraz zaczyna poruszać się do tyłu, aby odnaleźć zgubioną ścieżkę.

Wyniki

Robot zajął 8 miejsce w konkursie “Trójmiejski Turniej Robotów” w 2014 roku.

Robot Borys