Kazalo:

SnappyXO natančen robot za premikanje: 6 korakov
SnappyXO natančen robot za premikanje: 6 korakov

Video: SnappyXO natančen robot za premikanje: 6 korakov

Video: SnappyXO natančen robot za premikanje: 6 korakov
Video: Long Distance Carp Fishing Masterclass | Darrell Peck & Terry Edmonds 2024, Julij
Anonim
SnappyXO precizni robot za premikanje
SnappyXO precizni robot za premikanje

S pomočjo knjižnice PreciseMovement Arduino naredite svojega robota Arduino naravnost na določeno razdaljo ali zasukajte pod določenim kotom.

Robot potrebuje valjar za kroglice ali enakovreden material za zmanjšanje trenja med zvijanjem.

www.pololu.com/product/954

Robotu lahko poveste, naj gre naprej na določeno razdaljo ali se obrne v določen kot. Program določi svoj položaj na podlagi mrtvega računa. Ker ocene položaja temeljijo le na hitrosti kolesa, bo zdrs povzročil znatno napako. Oblikovalec robota mora biti previden, da čim bolj zmanjša tveganje zdrsa.

To je bilo preizkušeno za delo z robotom SnappyXO.

1. korak: spremenjena lokacija vadnice

Vadnica je bila premaknjena na spodnjo stran. Ta vadnica se ne vzdržuje več.

sites.google.com/stonybrook.edu/premo

2. korak: Zgradite robota za diferencialni pogon SnappyXO

Knjižnica PreciseMovement, ki jo bomo uporabljali, je združljiva samo z roboti z diferencialnim pogonom. Lahko se odločite za uporabo drugih robotov s pogonom na 2 kolesa.

3. korak: Priključite elektroniko

Priključite elektroniko
Priključite elektroniko

Za standardni optični kodirnik SnappyXO:

D0 (izhod za kodirnik) -> Arduino Digital Pin

VCC -> Arduino 5V

GND -> GND

Moč motorja in Arduina:

Vir energije motorja mora ustrezati motorjem, ki jih uporabljate. Za komplet SnappyXO se za moč motorja uporabljajo 4AA baterije in 9V baterija za napajanje Arduino. Prepričajte se, da imajo vsi skupni GND.

4. korak: Namestite knjižnico PreciseMovement Arduino

Prenesi:

github.com/jaean123/PreciseMovement-library/releases

Kako namestiti Arduino knjižnico:

wiki.seeedstudio.com/How_to_install_Arduino_Library/

5. korak: Koda

Koda Arduino:

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

Te parametre je treba prilagoditi. Druge parametre, označene s priporočenimi na kodi, je mogoče prilagoditi za boljše delovanje.

  • Preverite in nastavite zatiče motorja pod ARDUINO PINS.
  • Nastavite LENGTH in RADIUS.

    • LENGTH je razdalja od levega kolesa do desnega kolesa.
    • RADIUS je polmer kolesa.
  • Nastavite PULSES_PER_REV, ki je število impulzov, ki jih dajalnik oddaja za en vrtljaj kolesa.

    • Upoštevajte, da se to razlikuje od števila impulzov, ki jih dajalnik odda za en vrtljaj gredi motorja, razen če so dajalniki priključeni za branje neposredno z gredi kolesa.
    • PULSES_PER_REV = (impulzi na en vrtljaj gredi motorja) x (prestavno razmerje)
  • Nastavite STOP_LENGTH, če vidite, da se robot po premiku naprej prestreže.

    Robot se bo ustavil, ko je ocenjeni položaj STOP_LENGTH stran od cilja. Tako je STOP_LENGTH približna razdalja, ki je potrebna, da se robot ustavi

  • PID parametri

    KP_FW: To je sorazmerna komponenta gibanja naprej. Povečajte to število, dokler robot ne gre naravnost. Če s to nastavitvijo ne morete priti naravnost, je verjetno kriva strojna oprema. (npr. neusklajenost koles itd.)

    KP_TW: To je proporcionalna komponenta PID gibanja zvijanja. Preprosto začnite z nizko vrednostjo in to povečujte, dokler hitrost zvijanja ali kotna hitrost robota med zvijanjem ni dovolj hitra, vendar ne povzroči prekoračitve. Za opazovanje lahko robot zamenjate od 0 do 90 in nazaj, tako da v funkcijo zanke vstavite naslednje

To nastavite v zanko za nastavitev KP_FW:

mover.forward (99999);

To nastavite v zanko, če želite zamenjati od 0 do 90 za nastavitev KP_TW:

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

zamuda (2000);

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

zamuda (2000);

Upoštevajte, da je za dejansko zvijanje kotne hitrosti na TARGET_TWIST_OMEGA potrebno nastaviti tudi KI_TW, saj se proporcionalni krmilnik nikoli ne bo postavil na natančen cilj. Ni pa treba zvijati pri ravno takšni kotni hitrosti. Kotna hitrost mora biti le dovolj počasna.

6. korak: Kako deluje

Če vas zanima, kako deluje, preberite dalje.

Premik naprej se vzdržuje naravnost z uporabo algoritma čistega zasledovanja na ravni črti. Več o Pure Pursuit:

PID krmilnik zvijanja poskuša ohraniti kotno hitrost zvijanja na TARGET_TWIST_OMEGA. Upoštevajte, da je ta kotna hitrost kotna hitrost celotnega robota in ne koles. Uporablja se samo en PID krmilnik, izhod pa je hitrost zapisovanja PWM tako levega kot desnega motorja. Za izračun kota se opravi mrtvi obračun. Ko kot doseže prag napake, se robot ustavi.

Priporočena: