Obsah:

Presný pohyblivý robot SnappyXO: 6 krokov
Presný pohyblivý robot SnappyXO: 6 krokov

Video: Presný pohyblivý robot SnappyXO: 6 krokov

Video: Presný pohyblivý robot SnappyXO: 6 krokov
Video: Начало → Изучайте английский → Освойте ВСЕ ОСНОВЫ АНГЛИЙСКОГО ЯЗЫКА, которые вам НУЖНО знать! 2024, November
Anonim
Presný robot Mover SnappyXO
Presný robot Mover SnappyXO

Pomocou knižnice PreciseMovement Arduino nechajte svojho robota Arduino prejsť rovnú vzdialenosť na určenú vzdialenosť alebo sa stočte do určeného uhla.

Robot potrebuje koliesko na kolieskach alebo ekvivalent, aby minimalizoval trenie pri krútení.

www.pololu.com/product/954

Môžete robotovi povedať, aby išiel dopredu na zadanú vzdialenosť alebo sa otočil do určeného uhla. Program určí svoju polohu pomocou mŕtveho zúčtovania. Pretože odhady polohy závisia iba od rýchlosti kolesa, sklz spôsobí značné chyby. Konštruktér robota by mal byť opatrný, aby minimalizoval riziko pošmyknutia.

Toto bolo testované, aby fungovalo s robotom SnappyXO.

Krok 1: Poloha výukového programu bola zmenená

Tutoriál bol presunutý na stránku nižšie. Tento návod už nie je udržiavaný.

sites.google.com/stonybrook.edu/premo

Krok 2: Zostavte robot diferenciálneho pohonu SnappyXO

Knižnica PreciseMovement, ktorú budeme používať, je kompatibilná iba s robotmi s diferenciálnym pohonom. Môžete sa rozhodnúť použiť aj iné roboty s pohonom 2 kolies.

Krok 3: Pripojte elektroniku

Pripojte elektroniku
Pripojte elektroniku

Pre štandardný optický kodér SnappyXO:

D0 (výstup kodéra) -> Digitálny pin Arduino

VCC -> Arduino 5V

GND -> GND

Výkon motora a Arduina:

Napájací zdroj motora by mal byť vhodný pre motory, ktoré používate. V súprave SnappyXO sa na napájanie motora používajú 4AA batérie a na napájanie Arduino 9V batéria. Zaistite, aby všetky mali spoločný GND.

Krok 4: Nainštalujte si knižnicu PreciseMovement Arduino

Stiahnuť ▼:

github.com/jaean123/PreciseMovement-library/releases

Ako nainštalovať knižnicu Arduino:

wiki.seeedstudio.com/How_to_install_Arduino_Library/

Krok 5: Kód

Arduino kód:

create.arduino.cc/editor/timeloop/7a35299d-4e73-409d-9f39-2c517b3000d5/preview

Tieto parametre vyžadujú úpravu. Ostatné parametre označené ako odporúčané v kóde je možné upraviť tak, aby bol výkon lepší.

  • Skontrolujte a nastavte kolíky motora pod ARDUINO PINS.
  • Nastavte DĹŽKU a RADIUS.

    • LENGTH je vzdialenosť od ľavého kolesa k pravému kolesu.
    • RADIUS je polomer kolesa.
  • Nastavte PULSES_PER_REV, čo je počet impulzov, ktoré enkodér vydá na jednu otáčku kolesa.

    • Upozorňujeme, že sa líši od počtu impulzov, ktoré enkodér vydá na jednu otáčku hriadeľa motora, pokiaľ nie sú snímače pripojené na čítanie priamo z hriadeľa kolesa.
    • PULSES_PER_REV = (impulzy na jednu otáčku hriadeľa motora) x (prevodový pomer)
  • Nastavte STOP_LENGTH, ak vidíte, že robot po pohybe vpred prestreľuje.

    Robot sa zastaví, akonáhle bude odhadovaná poloha STOP_LENGTH mimo cieľa. STOP_LENGTH je teda približná vzdialenosť potrebná na to, aby sa robot zastavil

  • Parametre PID

    KP_FW: Toto je proporcionálna zložka pohybu vpred. Zvýšte to, kým robot nepôjde rovno. Ak to nedokážete vyladiť, hardvér je pravdepodobne na vine. (napr. nesprávne zarovnanie kolies atď.)

    KP_TW: Toto je proporcionálna zložka PID krútivého pohybu. Jednoducho začnite od nízkej hodnoty a zvyšujte ju, kým rýchlosť skrútenia alebo uhlová rýchlosť robota pri krútení nie je dostatočne vysoká, ale nespôsobí prekročenie. Ak chcete vykonávať pozorovania, môžete nechať robota striedať od 0 do 90 a späť vložením nasledujúceho do funkcie slučky

Umiestnite to do slučky a nalaďte KP_FW:

mover.forward (99999);

Umiestnite to do slučky a striedajte od 0 do 90, aby ste vyladili KP_TW:

mover.twist (90); // Twist 90 CW

oneskorenie (2000);

mover.twist (-90) // Twist 90 CCW

oneskorenie (2000);

Všimnite si toho, že na to, aby sa skutočne uhlová rýchlosť v TARGET_TWIST_OMEGA skutočne skrútila, je potrebné vyladiť aj KI_TW, pretože proporcionálny regulátor sa nikdy neusadí na presný cieľ. Nie je však potrebné krútiť sa presne touto uhlovou rýchlosťou. Uhlová rýchlosť musí byť dostatočne pomalá.

Krok 6: Ako to funguje

Ak vás zaujíma, ako to funguje, čítajte ďalej.

Pohyb vpred je udržiavaný rovno pomocou algoritmu čistého prenasledovania na priamke. Viac o Pure Pursuit:

Twist PID regulátor sa snaží udržať uhlovú rýchlosť zákruty na TARGET_TWIST_OMEGA. Všimnite si, že táto uhlová rýchlosť je uhlová rýchlosť celého robota, nie kolies. Je použitý iba jeden PID regulátor a výstupom je rýchlosť zápisu PWM ľavého aj pravého motora. Na výpočet uhla sa používa mŕtve počítanie. Akonáhle uhol dosiahne prah chyby, robot sa zastaví.

Odporúča: