Wstępne badania

Eksperymenty które wykonaliśmy:

Jazda na wprost

Najprostszą rzeczą jak nam przyszła do głowy było przejechanie robotem zadanej odległości i zmierzenie jej za pomocą miarki. Wykonaliśmy 5 pomiarów dla odległości 2 m:

Odległość przebyta przez robota (cm)błąd
201,5+1,5
202.5+2.5
202.5+2.5
203.0+3
202.0+2
202.3 średnio+2.3 średni błąd

Robot zawsze jedzie za daleko, można skompensować tą tendencję mnożąc odległość zadaną robotowi razy 0.9886.

Obrót w miejscu

Kolejnym bardzo prostym ekeperymentem było obracanie robota o 360 stopni. Podobnie jak przy jeżdżeniu na wprost robot za każdym obrotem lądował coraz dalej, tzn. obracał się za bardzo. Ze względu na nieregularny kształt robota i trudny dostęp do jego osi obrotu udało nam się jedynie bardzo pobierznie oszacować błąd na 3.6 stopnia na każde 360 stopni obrotu (1%).

Jeżdżenie po kwadracie

Wierzchołki kwadratu o boku 1 metra oznaczyliśmy na podłodze za pomocą taśmy klejącej. Robota ustawiliśmy na jednym z nich i uruchomiliśmy program z odpowiednimi instrukcjami. Puszczaliśmy po kwadracie w obu kierunkach - zgodnie z ruchem wskazówek zegara i przeciwnie.

Szybko okazało się, że przemożny wpływ na to że robot się myli ma to jak go ustawimy na początku. Staraliśmy się go umiejscawiać zawsze tak samo, zrobiliśmy nawet specjalne "linie startowe" z taśmy, co mimo wszystko nie gwarantowało powtarzalności.

Pojawiły się także problemy który mieliśmy przy obracaniu - punkt wokół którego obraca się robot jest schowany pod nim i bardzo ciężko określić na ile robot zjechał z wierzchołka. Powiększenie kwadratu nic by nie dało, prócz błędów robora uwarźniły by się również i nasze.

W związku z tym sprawdziliśmy tylko czy robot po objechaniu kwadratu wraca na to samo miesjsce.

Błędy przy jeździe zgodnie z ruchem wskazówek zegara:
  1cm na zewnątrz; 2cm w przód
  1cm na zewnątrz; 2cm w przód

Błędy przy jeździe przeciwnie do ruchu wskazówek zegara:
  3cm na zewnątrz; 4.5cm w przód
  2,5cm na zewnątrz; 1.5cm w przód
  4cm na zewnątrz; 2cm w przód

Trudno wyciągnąć z tego jakieś konkretne wnioski, ponieważ na końcowy błąd robota składają się 4 obroty i 4 razy ruch postępowy. Określanie pozycji robota po każdej intrukcji okazało się trudne i bardzo mało dokładne. Po raz kolejny dała o sobie znać stara prawda, że proste testy/rozwiązania są lepsze od tych skomplikowanych.

Logo test (jeżdżenie po papierze z doczepionym pisakiem)

Aby zwiekszyć precyzję pomiarów spróbowaliśmy puścić robota z doczepionym za pomocą taśmy klejącej pisakiem lub ołówkiem. Umożliwiło to udokumentowanie pewnych interesujących spostrzeżeń.

Jeżdżenie w przód i w tył

Zobacz film

Robot z przyczepionym flamastrem jeździł kolejno w tył i w przód. Kiedy włączał wsteczny samoistnie obracał się na prawą burtę (jest to związane z koniecznością obrócenia małego kółeczka z tyłu).

Pomimo że każdy powrót konczył się w innym miejscu, robot przy jeździe na wprost lądował mniej więcej w tym samym punkcie.

Zbliżenie pokazujące kolejne pozycje robota. W bardzo dużym przybliżeniu kąt o który odbija robot można określić na 1 stopień.

Obroty

Robota z doczepionym ołowkiem technicznym umieściliśmy na arkuszu papieru. Obracaliśmy go w obu kierunkach zawsze o 360 stopni. Dodatkowo zaznaczaliśmy pozycję w której znalazł się ołówek na końcu każdego obrotu.

Okazało się, że robot nie tylko obraca się bardziej niż o 360 stopni (to już wiedzieliśmy z poprzednich testów) ale też z każdym obrotem nieco się przesuwa.

Na powyższym obrazku niebieskimi kropkami są zaznaczone kolejne pozycje ołówka po każdym obrocie o 360 stopni. Strzałka pokazuje kierunek w którym był zwrócony robot na początku. Ślady ołówka są mało widoczne na zdjęciu, da się jednak zauważyć, że robot z każdym obrotem cofa się coraz bardziej. Każdy kolejny okrąg rysował nieco przesunięty.

Obracanie robota w drugą stronę daje przeciwny efekt - zaczyna się przesuwać w przód, często trafiając niemalże w poprzednie swoje pozycje.

Robot obrócony 8 razy (2 880 stopni) przesunął się o około 1.5 cm. Natomiast kąt o jaki się pomylił to jakieś 7 stopni.

Wnioski

Dokładność wszystkich wykonanych przez nas pomiarów pozostawia sporo do życzenia. Mają one na celu nie tyle podanie ilościowych wartości błędów co raczej pokazanie tendencji (że np. zasze obraca się za bardzo a nie za mało). Na podobnej zasadzie funkcjonują sondaże opinii publicznej, więc uznaliśmy, że my też możemy.

Prócz tego, że robot jeździ za daleko i za bardzo się obraca, jest troszeczkę zwichrowany. Nie jest wstanie jedynie się obrócić, zawsze musi się też trochę przesunąć. Nie jest to duże przesunięcie i nie ma raczej praktycznego znaczenia.

Wydaje się także, że gdyby robot miał z jakiegoś powodu wielokrotnie jeździć po linii prostej to nie powinien się cofać (jeździć tyłem), ponieważ to po kilku kursach doprowadzi do znacznego rozdzwięku między tym gdzie robot myśli że jest a rzeczywistością. Lepiej, żeby się za każdym razem obracał i jeździł do przodu.

Aby umożlwić robotowi w miarę precyzyjne wykonywane dłuższej serii czynności i tak konieczna jest weryfikacja położenia i orientacji na podstawie sonaru, ponieważ oparcie się wyłącznie na danych zczytywanych z kół, nawet po starannym wykalibrowaniu, musi dość szybko doprowadzić do istotnych rozbieżności.