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, Studeni
Anonim
SnappyXO precizni robot za kretanje
SnappyXO precizni robot za kretanje

Neka 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 tijekom 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 svoj položaj pomoću mrtvih računa. Budući da se procjene položaja oslanjaju samo na brzinu kotača, klizanje će izazvati značajnu pogrešku. Dizajner robota trebao bi biti oprezan kako bi smanjio rizik od klizanja.

Ovo je testirano za rad sa SnappyXO robotom.

Korak 1: Promijenjena je lokacija vodiča

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

sites.google.com/stonybrook.edu/premo

Korak 2: Izgradite robota SnappyXO diferencijalnog pogona

Knjižnica 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: Spojite elektroniku

Spojite elektroniku
Spojite elektroniku

Za standardni optički koder SnappyXO:

D0 (izlaz kodera) -> Arduino digitalni pin

VCC -> Arduino 5V

GND -> GND

Snaga motora i Arduina:

Izvor energije 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. Pobrinite se da svi imaju zajednički GND.

Korak 4: Instalirajte PreciseMovement Arduino knjižnicu

Preuzimanje datoteka:

github.com/jaean123/PreciseMovement-library/releases

Kako instalirati Arduino knjižnicu:

wiki.seeedstudio.com/How_to_install_Arduino_Library/

Korak 5: Kodirajte

Arduino kod:

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

Ovi parametri zahtijevaju prilagodbu. Ostali parametri označeni preporukom u kodu mogu se prilagoditi radi bolje izvedbe.

  • 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 koder daje za jedan okretaj kotača.

    • Imajte na umu da se to 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 prenapucao nakon kretanja prema naprijed.

    Robot će se zaustaviti kada je procijenjeni položaj STOP_LENGTH udaljen od cilja. Dakle, STOP_LENGTH je približna udaljenost potrebna da se robot zaustavi

  • PID parametri

    KP_FW: Ovo je proporcionalna komponenta kretanja naprijed. Povećavajte ovo dok robot ne ide ravno. Ako ovo ne možete postići ispravnim podešavanjem, vjerojatno je greška u hardveru. (npr. pomak kotača itd.)

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

Postavite ovo u petlju za podešavanje KP_FW:

selidba.naprijed (99999);

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

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

odgoda (2000);

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

odgoda (2000);

Imajte na umu da, kako bi se zapravo zakrenula kutna brzina na TARGET_TWIST_OMEGA, KI_TW također treba biti podešen budući da se proporcionalni regulator nikada neće dosegnuti na točnu metu. Međutim, nije potrebno okretati se točno tom kutnom brzinom. Kutna brzina samo treba biti dovoljno spora.

Korak 6: Kako to radi

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

Kretanje prema naprijed održava se ravno pomoću algoritma čiste potrage na ravnoj liniji. Više o Pure Pursuit:

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 vrši se za izračunavanje kuta. Kada kut dosegne prag pogreške, robot se zaustavlja.

Preporučeni: