Sadržaj:

SnappyXO precizni robot za kretanje: 6 koraka
SnappyXO precizni robot za kretanje: 6 koraka

Video: SnappyXO precizni robot za kretanje: 6 koraka

Video: SnappyXO precizni robot za kretanje: 6 koraka
Video: The incredible potential of flexible, soft robots | Giada Gerboni 2024, Novembar
Anonim
SnappyXO precizni robot za kretanje
SnappyXO precizni robot za kretanje

Učinite da vaš Arduino robot ide ravno na određenu udaljenost ili se okreće do određenog kuta pomoću PreciseMovement Arduino biblioteke.

Robotu je potreban kotač za valjanje ili ekvivalent za smanjenje trenja tokom uvijanja.

www.pololu.com/product/954

Možete reći robotu da ide naprijed na određenu udaljenost ili da se okreće prema određenom kutu. Program utvrđuje svoju poziciju koristeći mrtve račune. Budući da se procjene položaja oslanjaju samo na brzinu kotača, klizanje će izazvati značajnu grešku. Dizajner robota treba biti oprezan kako bi minimizirao rizik od klizanja.

Ovo je testirano za rad sa SnappyXO robotom.

Korak 1: Promijenjena lokacija vodiča

Vodič je premješten na stranicu ispod. Ovaj vodič se više ne održava.

sites.google.com/stonybrook.edu/premo

Korak 2: Izgradite robota SnappyXO diferencijalnog pogona

Biblioteka PreciseMovement koju ćemo koristiti kompatibilna je samo s robotima s diferencijalnim pogonom. Možete odabrati korištenje drugih robota s pogonom na 2 kotača.

Korak 3: Priključite elektroniku

Priključite elektroniku
Priključite elektroniku

Za standardni SnappyXO optički koder:

D0 (izlaz kodera) -> Arduino digitalni pin

VCC -> Arduino 5V

GND -> GND

Snaga motora i Arduina:

Izvor napajanja motora trebao bi biti odgovarajući za motore koje koristite. Za SnappyXO komplet, 4AA baterije se koriste za napajanje motora i 9V baterija za Arduino napajanje. Uvjerite se da svi imaju zajednički GND.

Korak 4: Instalirajte PreciseMovement Arduino biblioteku

Skinuti:

github.com/jaean123/PreciseMovement-library/releases

Kako instalirati Arduino biblioteku:

wiki.seeedstudio.com/How_to_install_Arduino_Library/

Korak 5: Kodirajte

Arduino kod:

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

Ove parametre je potrebno prilagoditi. Ostali parametri označeni kao preporučeni u kodu mogu se prilagoditi radi boljih performansi.

  • Provjerite i postavite pinove motora pod ARDUINO PINS.
  • Postavite LENGTH i RADIUS.

    • LENGTH je udaljenost od lijevog do desnog kotača.
    • RADIUS je polumjer kotača.
  • Postavite PULSES_PER_REV, koji je broj impulsa koje izlaz davača daje za jedan okretaj kotača.

    • Imajte na umu da se ovo razlikuje od broja impulsa koje izlaz davača daje za jedan okret vratila motora, osim ako su davači spojeni za očitavanje izravno s osovine kotača.
    • PULSES_PER_REV = (impulsi po jednom okretu osovine motora) x (prijenosni omjer)
  • Postavite STOP_LENGTH ako vidite da se robot previše našao nakon kretanja prema naprijed.

    Robot će se zaustaviti kada je procijenjena pozicija STOP_LENGTH udaljena od cilja. Dakle, STOP_LENGTH je približna udaljenost potrebna da se robot zaustavi

  • PID parametri

    KP_FW: Ovo je proporcionalna komponenta kretanja prema naprijed. Povećavajte ovo dok robot ne ide ravno. Ako ovo ne možete postići ispravnim podešavanjem, vjerovatno je greška u hardveru. (npr. pogrešno poravnanje točkova itd.)

    KP_TW: Ovo je proporcionalna komponenta PID -a uvrtanja. Jednostavno krenite od niske vrijednosti i povećavajte ovu brzinu sve dok brzina uvijanja ili kutna brzina robota tokom uvijanja ne budu dovoljno brzi, ali ne uzrokuju prekoračenje. Za zapažanja možete robota naizmjenično mijenjati od 0 do 90 i natrag umetanjem sljedećeg u funkciju petlje

Postavite ovo u petlju za podešavanje KP_FW:

mover.forward (99999);

Postavite ovo u petlju za izmjenu od 0 do 90 za podešavanje KP_TW:

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

kašnjenje (2000);

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

kašnjenje (2000);

Imajte na umu da za stvarno uvijanje kutne brzine na TARGET_TWIST_OMEGA, KI_TW također treba biti podešen budući da se proporcionalni kontroler nikada neće uskladiti s tačnim ciljem. Međutim, nije potrebno okretati se upravo na toj kutnoj brzini. Ugaona brzina samo treba biti dovoljno spora.

Korak 6: Kako to funkcionira

Ako vas zanima kako to funkcionira, pročitajte dalje.

Kretanje prema naprijed održava se ravno koristeći algoritam čiste potrage na pravoj liniji. Više o Čistoj potrazi:

PID kontroler uvijanja pokušava zadržati kutnu brzinu uvijanja na TARGET_TWIST_OMEGA. Imajte na umu da je ova kutna brzina kutna brzina cijelog robota, a ne kotača. Koristi se samo jedan PID regulator, a izlaz je brzina upisivanja PWM -a i lijevog i desnog motora. Mrtvo računanje se vrši za izračunavanje ugla. Kada kut dosegne prag greške, robot se zaustavlja.

Preporučuje se: