Spisu treści:

Zaawansowany robot podążający za linią: 22 kroki (ze zdjęciami)
Zaawansowany robot podążający za linią: 22 kroki (ze zdjęciami)

Wideo: Zaawansowany robot podążający za linią: 22 kroki (ze zdjęciami)

Wideo: Zaawansowany robot podążający za linią: 22 kroki (ze zdjęciami)
Wideo: Adobe Photoshop 2024 Podstawy dla początkujących - Twoje Pierwsze Kroki 2024, Listopad
Anonim
Image
Image
Prototypowanie - Płyta perforowana
Prototypowanie - Płyta perforowana

Jest to zaawansowany robot śledzący linię oparty na Teensy 3.6 i czujniku liniowym QTRX, który zbudowałem i nad którym pracuję od dłuższego czasu. Jest kilka znaczących ulepszeń w projekcie i wydajności mojej wcześniejszej linii robota. Poprawiła się szybkość i reakcja robota. Ogólna konstrukcja jest kompaktowa i lekka. Elementy są rozmieszczone blisko osi koła, aby zminimalizować moment pędu. Silniki z mikrometalowymi przekładniami o dużej mocy zapewniają odpowiedni moment obrotowy, a aluminiowe piasty silikonowe kółka zapewniają bardzo potrzebną przyczepność przy dużych prędkościach. Enkodery osłony podpory i koła umożliwiają robotowi określenie jego położenia i orientacji. Dzięki zamontowanemu na pokładzie Teensyview wszystkie istotne informacje mogą być wizualizowane, a ważne parametry programu mogą być aktualizowane za pomocą przycisków.

Aby rozpocząć budowę tego robota, będziesz potrzebować następujących zapasów (oraz dużo czasu i cierpliwości do Twojej dyspozycji).

Kieszonkowe dzieci

Elektronika

  • Tablica rozwojowa Teensy 3.6
  • Prop Shield z czujnikami ruchu
  • Sparkfun TeensyView
  • Matryca czujnika odbicia Pololu QTRX-MD-16A
  • Prototypowa dwustronna płytka drukowana 15x20cm
  • Pololu Regulator napięcia Step-Up/Step-Down S9V11F3S5
  • Pololu Regulowany regulator napięcia 4-5-20V Step-Up U3V70A
  • Mikromotoreduktor MP12 6V 1580 obr./min z enkoderem (x2)
  • DRV8833 Wspornik sterownika podwójnego silnika (x2)
  • Akumulator Li-Po 3,7 V, 750 mAh
  • Przełącznik włącz / wyłącz
  • Kondensator elektrolityczny 470uF
  • Kondensator elektrolityczny 1000uF (x2)
  • Kondensator ceramiczny 0,1uF (x5)
  • Przyciski (x3)
  • 10mm zielona dioda LED (x2)

Sprzęt komputerowy

  • Kółko silikonowe Atom 37x34mm (x2)
  • Kółko kulkowe Pololu z metalową kulką 3/8”
  • Mocowanie silnika N20 (x2)
  • Śruba i nakrętki

Kable i złącza

  • Elastyczne przewody 24AWG
  • 24-pinowy kabel FFC do DIP breakout i kabel FFC (typ A, długość 150 mm)
  • Okrągły żeński nagłówek pinowy
  • Długa końcówka okrągłej żeńskiej listwy pinowej
  • Dwurzędowy żeński nagłówek pod kątem prostym
  • Dwurzędowy męski nagłówek pod kątem prostym
  • Męski nagłówek pinowy
  • Męski nagłówek igłowy

Narzędzia

  • Multimetr
  • Lutownica
  • Drut lutowniczy
  • Ściągacz izolacji
  • Przecinak do drutu

Krok 1: Przegląd systemów

Podobnie jak w przypadku mojego wcześniejszego projektu samobalansującego robota, ten robot jest zespołem desek typu breakout zamontowanych na płycie perforowanej, która służy również jako konstrukcja.

Poniżej przedstawiono główne systemy robota.

Mikrokontroler: Płytka rozwojowa Teensy 3.6 z 32-bitowym procesorem ARM Cortex-M4 180 MHz.

Czujnik liniowy: 16-kanałowy analogowy układ czujników liniowych firmy Pololu QTRX-MD-16A w układzie średniej gęstości (rozstaw czujnika 8 mm).

Napęd: 6V, 1580 obr./min, mikrometalowe motoreduktory dużej mocy z magnetycznym enkoderem i silikonowymi kołami zamontowanymi na aluminiowych piastach.

Odometria: Pary enkoderów z kołem magnetycznym do szacowania współrzędnych i przebytej odległości.

Czujnik orientacji: Podpora osłona z czujnikami ruchu do szacowania pozycji i kierunku robota.

Zasilanie: bateria lipo 3,7 V, 750 mAh jako źródło zasilania. Regulator 3.3V step-up/down zasila mikrokontroler, czujniki i urządzenie wyświetlające. Regulowany regulator step-up zasila oba silniki.

Interfejs użytkownika: Teensyview do wyświetlania informacji. Wybicie z trzema przyciskami do akceptowania danych wprowadzonych przez użytkownika. Dwie liczby zielonych diod LED o średnicy 10 mm do wskazywania statusu podczas pracy.

Krok 2: Zacznijmy prototypowanie

Image
Image

Powyższy układ będziemy realizować na płycie perforowanej. Najpierw musimy przygotować nasze tablice zaciskowe, lutując na nich nagłówki. Film podpowie, które nagłówki powinny być lutowane na których tabliczkach zaciskowych.

Po przylutowaniu nagłówków na tabliczkach zaciskowych, ułóż zacisk Teensyview i przycisk na szczycie Teensy.

Krok 3: Prototypowanie - płyta perforowana

Prototypowanie - Płyta perforowana
Prototypowanie - Płyta perforowana

Zdobądź prototypową dwustronną płytę perforowaną 15x20 cm i zaznacz granicę trwałym markerem, jak pokazano na rysunku. Wywierć otwory o rozmiarze M2 do montażu matrycy czujników, kółka samonastawnego i mikrometalowych motoreduktorów w miejscach oznaczonych białym kółkiem. Później po lutowaniu i przetestowaniu wszystkich komponentów wytniemy płytę perforowaną wzdłuż granicy.

Prototypowanie rozpoczniemy od przylutowania pinów i gniazd na płycie perforowanej. Tablice podziału zostaną później wstawione w tych nagłówkach. Zwróć szczególną uwagę na położenie nagłówków na płycie perforowanej. Będziemy łączyć wszystkie przewody w oparciu o ten układ nagłówków.

Krok 4: Prototypowanie - osłona rekwizytów

Prototypowanie - tarcza rekwizytów
Prototypowanie - tarcza rekwizytów
Prototypowanie - tarcza rekwizytów
Prototypowanie - tarcza rekwizytów
Prototypowanie - tarcza rekwizytów
Prototypowanie - tarcza rekwizytów
Prototypowanie - tarcza rekwizytów
Prototypowanie - tarcza rekwizytów

Najpierw przylutujemy połączenia do osłony śmigła. Ponieważ używamy tylko czujników ruchu osłony śruby, musimy podłączyć tylko piny SCL, SDA i IRQ oprócz pinów 3V i uziemienia osłony śruby.

Po nawiązaniu połączenia włóż Teensy i osłonę śmigła i skalibruj czujniki ruchu, wykonując czynności opisane tutaj.

Krok 5: Prototypowanie - moc i uziemienie

Prototypowanie - moc i ziemia
Prototypowanie - moc i ziemia

Przylutuj wszystkie połączenia zasilania i masy zgodnie z rysunkiem. Włóż wszystkie tabliczki zaciskowe na miejsce i zapewnij ciągłość za pomocą multimetru. Sprawdź różne poziomy napięcia na pokładzie.

  • Napięcie wyjściowe Li-po (zwykle od 3 V do 4,2 V)
  • Napięcie wyjściowe regulatora step-up/down (3,3 V)
  • Regulowane napięcie wyjściowe regulatora step-up (ustawione na 6V)

Krok 6: Prototypowanie - nośnik sterownika silnika

Prototypowanie - nośnik kierowcy silnika
Prototypowanie - nośnik kierowcy silnika
Prototypowanie - nośnik kierowcy silnika
Prototypowanie - nośnik kierowcy silnika
Prototypowanie - nośnik kierowcy silnika
Prototypowanie - nośnik kierowcy silnika

Płyta nośna podwójnego sterownika silnika DRV8833 może dostarczać prąd ciągły 1,2 A i prąd szczytowy 2 A na kanał. Dwa kanały połączymy równolegle, aby napędzać jeden silnik. Przylutuj połączenia, wykonując poniższe czynności.

  • Równolegle dwa wejścia i dwa wyjścia nośnika sterownika silnika, jak pokazano na rysunku.
  • Podłączyć wejściowe przewody sterujące do sterownika silnika.
  • Podłącz kondensator elektrolityczny 1000uF i kondensator ceramiczny 0,1uF do zacisków Vin i Gnd dwóch płytek nośnych.
  • Podłącz kondensator ceramiczny 0,1uF do zacisków wyjściowych sterownika silnika.

Krok 7: Prototypowanie - nagłówek tablicy czujnika linii

Prototypowanie - nagłówek tablicy czujnika linii
Prototypowanie - nagłówek tablicy czujnika linii
Prototypowanie - nagłówek tablicy czujnika linii
Prototypowanie - nagłówek tablicy czujnika linii
Prototypowanie - nagłówek tablicy czujnika linii
Prototypowanie - nagłówek tablicy czujnika linii
Prototypowanie - nagłówek tablicy czujnika linii
Prototypowanie - nagłówek tablicy czujnika linii

Teensy 3.6 ma dwa ADC - ADC0 i ADC1, które są multipleksowane do 25 dostępnych pinów. Mamy dostęp do dowolnych dwóch pinów z dwóch ADC w tym samym czasie. Podłączymy osiem czujników liniowych każdy do ADC0 i ADC1. Czujniki parzyste zostaną podłączone do ADC1, a nieparzyste do ADC0. Przylutuj połączenia, wykonując poniższe czynności. Później podłączymy czujnik liniowy za pomocą adaptera i kabla FFC do DIP.

  • Podłącz wszystkie równe piny czujnika (16, 14, 12, 10, 8, 6, 4, 2) jak pokazano na rysunku. Poprowadź przewód do podłączenia styku czujnika 12 przez tylną stronę płyty perforowanej.
  • Podłącz pin kontrolny emitera (EVEN) do pinu 30 Teensy.
  • Podłącz wszystkie nieparzyste styki czujnika (15, 13, 11, 9, 7, 5, 3, 1), jak pokazano na rysunku.
  • Podłącz kondensator elektrolityczny 470uF do Vcc i Gnd.

Jeśli uważnie przyjrzysz się pinom czujnika liniowego i odpowiadającym im pinom nagłówka na płytce, zauważysz, że górny rząd czujnika liniowego mapuje się na dolny rząd nagłówka na płycie i na odwrót. Dzieje się tak, ponieważ gdy podłączymy czujnik linii do płyty perforowanej za pomocą dwurzędowych nagłówków pod kątem prostym, rzędy będą wyrównane prawidłowo. Zajęło mi trochę czasu, aby to rozgryźć i poprawić przypisania pinów w programie.

Krok 8: Prototypowanie - mikrosilnik z przekładnią i enkoder

Prototypowanie - mikrosilnik z przekładnią i enkoder
Prototypowanie - mikrosilnik z przekładnią i enkoder
  • Zamocuj mikrometalowy motoreduktor z enkoderem za pomocą mocowań silnika N20.
  • Podłącz przewody silnika i enkodera, jak pokazano na rysunku.
  • Lewy enkoder - piny Teensy 4 i 0
  • Prawy enkoder - piny 9 i 27 Teen Teensy

Krok 9: Prototypowanie - diody LED

Prototypowanie - diody LED
Prototypowanie - diody LED
Prototypowanie - diody LED
Prototypowanie - diody LED

Dwie diody LED wskazują, czy robot wykrył skręt, czy nie. Do podłączenia diod LED do Teensy użyłem rezystora serii 470 omów.

  • Lewa anoda LED do pinu Teensy 6
  • Prawa anoda LED do pinu Teensy 8

Krok 10: Prototypowanie - wybicia

Image
Image
Prototypowanie - Wyrwy
Prototypowanie - Wyrwy

Teraz, gdy zakończyliśmy lutowanie na perforowanej płycie, możemy ostrożnie przeciąć granicę zaznaczoną na perforacji i usunąć dodatkowe kawałki perforowanej płyty. Zamocuj również dwa koła i kółko samonastawne.

Włóż wszystkie tabliczki zaciskowe do odpowiednich gniazd. Informacje na temat wkładania złącza FFC-DIP i mocowania czujnika liniowego QTRX-MD-16A można znaleźć w filmie.

Krok 11: Przegląd bibliotek oprogramowania

Przegląd bibliotek oprogramowania
Przegląd bibliotek oprogramowania

Zaprogramujemy Teensy w Arduino IDE. Zanim zaczniemy, będziemy potrzebować kilku bibliotek. Biblioteki, z których będziemy korzystać to:

  • Koder
  • Nastolatek
  • EEPROM
  • ADC
  • NXPMotionSense

A niektóre, które zostały napisane specjalnie dla tego robota,

  • Naciśnij przycisk
  • Czujnik linii
  • TeensyviewMenu
  • Motoryzacja

Biblioteki specyficzne dla tego robota zostały szczegółowo omówione i są dostępne do pobrania w kolejnych krokach.

Krok 12: Objaśnienie bibliotek - przycisk

Ta biblioteka służy do łączenia tabliczki zaciskowej z przyciskiem Teensy. Używane funkcje to

PushButton(int leftButtonPin, int centerButtonPin, int rightButtonPin);

Wywołanie tego konstruktora przez utworzenie obiektu powoduje skonfigurowanie pinów przycisku do trybu INPUT_PULLUP.

int8_t waitForButtonPress(void);

Ta funkcja czeka na naciśnięcie i zwolnienie przycisku i zwraca kod klucza.

int8_t getSingleButtonPress(void);

Ta funkcja sprawdza, czy przycisk jest wciśnięty i zwolniony. Jeśli tak, zwraca kod klucza, w przeciwnym razie zwraca zero.

Krok 13: Objaśnienie bibliotek - czujnik liniowy

LineSensor to biblioteka do łączenia matrycy czujników liniowych z Teensy. Poniżej przedstawiono używane funkcje.

LineSensor(unieważniony);

Wywołanie tego konstruktora przez utworzenie obiektu inicjuje ADC0 i ADC1, odczytuje wartości progowe, minimalne i maksymalne z pamięci EEPROM i konfiguruje piny czujnika w tryb wejścia i pin kontrolny emitera w tryb wyjścia.

void kalibrować (uint8_t CalibrationMode);

Ta funkcja kalibruje czujniki linii. Tryb kalibracji może być MIN_MAX lub MEDIAN_FILTER. Ta funkcja została szczegółowo wyjaśniona w kolejnym kroku.

void getSensorsAnalog(uint16_t *sensorValue, tryb uint8_t);

Odczytuje tablicę czujników w dowolnym z trzech trybów przekazanych jako argument. Tryb jest stanem emiterów i może być WŁĄCZONY, WYŁĄCZONY lub PRZEŁĄCZONY. Tryb TOGGLE kompensuje odczyty czujnika reflektancji ze względu na światło otoczenia. Czujniki podłączone do ADC0 i ADC1 są odczytywane synchronicznie.

int getLinePosition(uint16_t *sensorValue);

Oblicza pozycję matrycy czujników nad linią metodą średniej ważonej.

uint16_t getSensorsBinary(uint16_t *sensorValue);

Zwraca 16-bitową reprezentację stanu czujników. Jedynka binarna wskazuje, że czujnik jest nad linią, a zero binarne wskazuje, że czujnik jest poza linią.

uint8_t countBinary(uint16_t binaryValue);

Przekazanie 16-bitowej reprezentacji wartości czujników do tej funkcji zwraca liczbę czujników znajdujących się nad linią.

void getSensorsNormalized(uint16_t *sensorValue, tryb uint8_t);

Odczytuje wartości czujnika i ogranicza każdą wartość czujnika do odpowiednich wartości minimalnych i maksymalnych. Wartości czujnika są następnie mapowane z odpowiedniego zakresu od minimalnego do maksymalnego do zakresu od 0 do 1000.

Krok 14: Objaśnienie bibliotek - TeensyviewMenu

TeensyviewMenu to biblioteka, w której można uzyskać dostęp do funkcji menu wyświetlacza. Poniżej przedstawiono używane funkcje.

Menu Widoku Teensy (nieważne);

Wywołanie tego konstruktora tworzy obiekt klasy LineSensor, PushButton i TeensyView.

nieważne wprowadzenie (nieważne);

Służy do poruszania się po menu.

test nieważny (nieważny);

Nazywa się to wewnętrznie w menu, gdy wartości czujnika liniowego mają być wyświetlane na Teensyview w celu przetestowania.

Krok 15: Objaśnienie bibliotek - silniki

Silniki to biblioteka służąca do napędzania dwóch silników. Poniżej przedstawiono używane funkcje.

Silniki (nieważne);

Wywołanie tego konstruktora poprzez utworzenie obiektu konfiguruje sterowanie kierunkiem silnika i piny sterujące PWM w tryb wyjścia.

void setSpeed(int leftMotorSpeed, int rightMotorSpeed);

Wywołanie tej funkcji napędza dwa silniki z prędkościami przekazanymi jako argumenty. Wartość prędkości może wynosić od -255 do +255 ze znakiem ujemnym oznaczającym odwrócenie kierunku obrotów.

Krok 16: Testowanie - odometria enkodera

Przetestujemy enkodery koła magnetycznego i wyświetlimy pozycję oraz odległość pokonaną przez robota.

Prześlij DualEncoderTeensyview.ino. Program wyświetla kleszcze enkodera na Teensyview. Enkoder zaznacza inkrementację, jeśli przesuniesz robota do przodu i dekrementację, jeśli przesuniesz go do tyłu.

Teraz prześlij EncoderOdometry.ino. Ten program wyświetla pozycję robota w postaci współrzędnych x-y, wyświetla całkowitą przebytą odległość w centymetrach oraz kąt obrotu w stopniach.

Odwołałem się do Implementing Dead Reckoning by Odometry on a Robot with R/C Servo Differential Drive firmy Seattle Robotics Society do określania pozycji na podstawie taktów enkodera.

Krok 17: Testowanie - Czujniki ruchu Prop Shield

Upewnij się, że skalibrowałeś czujniki ruchu, wykonując czynności wymienione tutaj.

Teraz prześlij plik PropShieldTeensyView.ino. Powinieneś być w stanie zobaczyć wartości akcelerometru, żyroskopu i magnetometru wszystkich trzech osi na Teensyview.

Krok 18: Przegląd programu

Program dla Advanced Line Follower napisany jest w Arduino IDE. Program działa w następującej kolejności wyjaśnionej poniżej.

  • Odczytywane są wartości zapisane w EEPROM i wyświetlane jest menu.
  • Po naciśnięciu przycisku LAUNCH program wchodzi w pętlę.
  • Odczytywane są znormalizowane wartości czujnika linii.
  • Wartość binarna pozycji linii jest uzyskiwana przy użyciu znormalizowanych wartości czujników.
  • Liczba czujników znajdujących się nad linią jest obliczana na podstawie binarnej wartości pozycji linii.
  • Aktualizowane są znaczniki enkodera i całkowita przebyta odległość, współrzędne x-y i kąt.
  • Dla różnych wartości liczby binarnej w zakresie od 0 do 16 wykonywany jest zestaw instrukcji. Jeżeli zliczanie binarne mieści się w zakresie od 1 do 5, a czujniki znajdujące się nad linią sąsiadują ze sobą, wywoływana jest procedura PID. Rotacja jest wykonywana w innych kombinacjach wartości binarnej i liczby binarnej.
  • W procedurze PID (która jest faktycznie procedurą PD) silniki są napędzane z prędkościami obliczonymi na podstawie błędu, zmiany błędu, wartości Kp i Kd.

Obecnie program nie mierzy wartości orientacji z osłony śmigła. To jest praca w toku i jest aktualizowana.

Prześlij TestRun20.ino. Zobaczymy, jak poruszać się po menu, dostosowywać ustawienia i jak kalibrować czujniki liniowe w kolejnych krokach, po których przetestujemy naszego robota.

Krok 19: Poruszanie się po menu i ustawieniach

Menu zawiera następujące ustawienia, po których można poruszać się za pomocą lewego i prawego przycisku i wybierać za pomocą środkowego przycisku. Poniżej opisano ustawienia i ich funkcje.

  1. KALIBRUJ: Do kalibracji czujników linii.
  2. TEST: Aby wyświetlić wartości czujnika liniowego.
  3. LAUNCH: Aby rozpocząć podążanie za linią.
  4. MAX SPEED: Aby ustawić górną granicę prędkości robota.
  5. PRĘDKOŚĆ OBROTÓW: Aby ustawić górną granicę prędkości robota podczas wykonywania skrętu, tj. gdy oba koła obracają się z jednakową prędkością w przeciwnych kierunkach.
  6. KP: Stała proporcjonalna.
  7. KD: Stała pochodna.
  8. TRYB PRACY: Do wyboru pomiędzy dwoma trybami pracy - NORMALNY i ACCL. W trybie NORMAL robot pracuje z predefiniowanymi prędkościami odpowiadającymi wartościom pozycji linii. W trybie ACCL, MAX SPEED robota jest zastępowany przez ACCL SPEED na predefiniowanych etapach toru. Można to wykorzystać do przyspieszenia robota na prostych odcinkach toru. Poniższe ustawienia są dostępne tylko wtedy, gdy TRYB PRACY jest ustawiony na ACCL.
  9. ODLEGŁOŚĆ OKRĄŻENIA: Aby ustawić całkowitą długość toru wyścigowego.
  10. ACCL SPEED: Aby ustawić prędkość przyspieszania robota. Ta prędkość zastępuje MAX SPEED na różnych etapach toru, jak zdefiniowano poniżej.
  11. NIE. OF STAGES: Aby ustawić liczbę etapów, w których używana jest funkcja ACCL SPEED.
  12. ETAP 1: Ustalenie dystansu początkowego i końcowego etapu, w którym MAX SPEED jest zastąpiony przez ACCL SPEED. Dla każdego etapu odległość początkową i końcową można ustawić osobno.

Krok 20: Kalibracja czujnika linii

Image
Image

Kalibracja czujnika liniowego to proces, w którym określana jest wartość progowa każdego z 16 czujników. Ta wartość progowa jest używana do określenia, czy dany czujnik znajduje się nad linią, czy nie. Aby określić wartości progowe 16 czujników, stosujemy jedną z dwóch metod.

FILTR ŚREDNI: W tej metodzie czujniki liniowe są umieszczane nad białą powierzchnią i wstępnie zdefiniowana liczba odczytów czujników jest pobierana dla wszystkich 16 czujników. Wyznaczane są mediany wszystkich 16 czujników. Ten sam proces powtarza się po umieszczeniu czujników liniowych na czarnej powierzchni. Wartość progowa jest średnią wartości mediany powierzchni czarno-białych.

MIN MAX: W tej metodzie wartości czujnika są odczytywane wielokrotnie, dopóki użytkownik nie poprosi o zatrzymanie. Zapisywane są wartości maksymalne i minimalne napotkane przez każdy czujnik. Wartość progowa jest średnią wartości minimalnych i maksymalnych.

Uzyskane w ten sposób wartości progowe są mapowane na zakres od 0 do 1000.

Na filmie pokazano kalibrację czujników liniowych metodą MIN MAX. Po skalibrowaniu czujników linii można zwizualizować dane, jak pokazano na rysunku. Wyświetlane są następujące informacje.

  • 16-bitowa binarna reprezentacja pozycji linii z binarną 1 wskazującą, że odpowiedni czujnik linii znajduje się nad linią i binarnym 0 wskazującym, że czujnik linii jest poza linią.
  • Całkowita liczba czujników znajdujących się nad linią.
  • Minimalne, maksymalne i wartości czujników (surowe i znormalizowane) 16 czujników, po jednym czujniku na raz.
  • Pozycja linii w zakresie -7500 do +7500.

Minimalne i maksymalne wartości czujnika linii są następnie przechowywane w pamięci EEPROM.

Krok 21: Uruchom test

Image
Image

Film przedstawia przebieg testowy, w którym robot jest zaprogramowany do zatrzymania się po ukończeniu jednego okrążenia.

Krok 22: Ostatnie myśli i ulepszenia

Konkurs robotów
Konkurs robotów

Sprzęt, który jest złożony w celu zbudowania tego robota, nie jest w pełni wykorzystywany przez program, który go uruchamia. W części programowej można by wprowadzić wiele ulepszeń. Czujniki ruchu osłony podpory nie są obecnie wykorzystywane do określania położenia i orientacji. Dane odometrii z enkoderów można łączyć z danymi orientacji z osłony śmigła w celu dokładnego określenia pozycji i kursu robota. Te dane mogą być następnie wykorzystane do zaprogramowania robota do uczenia się toru w wielu okrążeniach. Zachęcam do eksperymentowania na tej części i dzielenia się swoimi wynikami.

Powodzenia.

Konkurs robotów
Konkurs robotów

II nagroda w Konkursie Robotów

Zalecana: