Obsah:

Přesný robot Mover SnappyXO: 6 kroků
Přesný robot Mover SnappyXO: 6 kroků

Video: Přesný robot Mover SnappyXO: 6 kroků

Video: Přesný robot Mover SnappyXO: 6 kroků
Video: Vinylové desky! Tajemství instalace a užitečné triky, o kterých málokdo ví! 2024, Listopad
Anonim
Přesný robot Mover SnappyXO
Přesný robot Mover SnappyXO

Pomocí knihovny PreciseMovement Arduino nechte svého robota Arduino jet rovně na zadanou vzdálenost nebo se stočte do zadaného úhlu.

Robot potřebuje kolečko na kolečkách nebo ekvivalent, aby minimalizoval tření při kroucení.

www.pololu.com/product/954

Můžete říci robotu, aby šel vpřed na zadanou vzdálenost nebo se otočil do zadaného úhlu. Program určuje svou polohu pomocí mrtvého zúčtování. Protože odhady polohy spoléhají pouze na rychlost kola, prokluz způsobí značnou chybu. Konstruktér robota by měl být opatrný, aby minimalizoval riziko uklouznutí.

Toto bylo testováno, aby fungovalo s robotem SnappyXO.

Krok 1: Umístění výukového programu změněno

Výukový program byl přesunut na níže uvedenou stránku. Tento výukový program již není udržován.

sites.google.com/stonybrook.edu/premo

Krok 2: Sestavte robota diferenciálního pohonu SnappyXO

Knihovna PreciseMovement, kterou budeme používat, je kompatibilní pouze s roboty s diferenciálním pohonem. Můžete se rozhodnout použít jiné roboty s pohonem 2 kol.

Krok 3: Připojte elektroniku

Připojte elektroniku
Připojte elektroniku

Pro standardní optický kodér SnappyXO:

D0 (výstup kodéru) -> Arduino Digital Pin

VCC -> Arduino 5V

GND -> GND

Výkon motoru a Arduina:

Zdroj energie motoru by měl být vhodný pro motory, které používáte. V sadě SnappyXO jsou použity 4AA baterie pro napájení motoru a 9V baterie pro napájení Arduino. Zajistěte, aby všechny měly společný GND.

Krok 4: Nainstalujte si PreciseMovement Arduino Library

Stažení:

github.com/jaean123/PreciseMovement-library/releases

Jak nainstalovat Arduino Library:

wiki.seeedstudio.com/How_to_install_Arduino_Library/

Krok 5: Kód

Arduino kód:

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

Tyto parametry vyžadují úpravu. Další parametry označené v kódu doporučené lze upravit pro lepší výkon.

  • Zkontrolujte a nastavte kolíky motoru pod ARDUINO PINS.
  • Nastavte LENGTH a RADIUS.

    • DÉLKA je vzdálenost od levého kola k pravému.
    • RADIUS je poloměr kola.
  • Nastavte PULSES_PER_REV, což je počet impulsů výstupů kodéru pro jednu otáčku kola.

    • Všimněte si toho, že se liší od počtu impulsů, které enkodér vydá pro jednu otáčku hřídele motoru, pokud nejsou enkodéry připojeny ke čtení přímo z hřídele kola.
    • PULSES_PER_REV = (impulsy na jednu otáčku hřídele motoru) x (převodový poměr)
  • Nastavte STOP_LENGTH, pokud uvidíte, že robot po pohybu vpřed přestřelí.

    Robot se zastaví, jakmile je odhadovaná poloha STOP_LENGTH od cíle. STOP_LENGTH je tedy přibližná vzdálenost potřebná k tomu, aby se robot zastavil

  • Parametry PID

    KP_FW: Toto je proporcionální složka pohybu vpřed. Zvyšte to, dokud se robot nepohne rovně. Pokud nemůžete vyladit toto, pak je pravděpodobně na vině hardware. (např. nesouosost kol atd.)

    KP_TW: Toto je proporcionální složka PID kroucení pohybu. Jednoduše začněte od nízké hodnoty a zvyšujte ji, dokud rychlost kroucení nebo úhlová rychlost robota při kroucení není dostatečně rychlá, ale nezpůsobí překročení. Chcete -li provádět pozorování, můžete nechat robota střídat od 0 do 90 a zpět vložením následujícího do funkce smyčky

Umístěte to do smyčky a nalaďte KP_FW:

mover.forward (99999);

Umístěte to do smyčky a střídejte od 0 do 90, abyste naladili KP_TW:

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

zpoždění (2000);

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

zpoždění (2000);

Všimněte si toho, že aby se skutečně změnila úhlová rychlost v TARGET_TWIST_OMEGA, musí být také vyladěn KI_TW, protože proporcionální ovladač se nikdy neusadí na přesný cíl. Není však nutné kroutit přesně touto úhlovou rychlostí. Úhlová rychlost musí být dostatečně pomalá.

Krok 6: Jak to funguje

Pokud vás zajímá, jak to funguje, čtěte dále.

Pohyb vpřed je udržován rovně pomocí algoritmu čistého pronásledování na přímce. Více o Pure Pursuit:

Twist PID regulátor se snaží udržet úhlovou rychlost zkroucení na TARGET_TWIST_OMEGA. Všimněte si, že tato úhlová rychlost je úhlová rychlost celého robota, nikoli kol. Je použit pouze jeden PID regulátor a výstupem je rychlost zápisu PWM levého i pravého motoru. K výpočtu úhlu se provádí mrtvé zúčtování. Jakmile úhel dosáhne prahové hodnoty chyby, robot se zastaví.

Doporučuje: