Indholdsfortegnelse:

SnappyXO Precise Mover Robot: 6 trin
SnappyXO Precise Mover Robot: 6 trin

Video: SnappyXO Precise Mover Robot: 6 trin

Video: SnappyXO Precise Mover Robot: 6 trin
Video: Tricycle Drive SnappyXO Robot 2024, November
Anonim
SnappyXO Precise Mover Robot
SnappyXO Precise Mover Robot

Få din Arduino -robot til at gå lige i en bestemt afstand eller vride til en bestemt vinkel ved hjælp af PreciseMovement Arduino -biblioteket.

Robotten har brug for en kuglehjul eller tilsvarende for at minimere friktion under vridning.

www.pololu.com/product/954

Du kan bede robotten om at gå frem til en bestemt afstand eller vride til en bestemt vinkel. Programmet bestemmer sin position ved hjælp af dødregning. Da positionsestimaterne kun er afhængige af hjulets hastighed, vil glidning medføre betydelig fejl. Robotens designer skal være forsigtig med at minimere risikoen for glidning.

Dette er blevet testet for at fungere med SnappyXO -robotten.

Trin 1: Vejledningens placering ændret

Selvstudiet er flyttet til siden herunder. Denne vejledning vedligeholdes ikke længere.

sites.google.com/stonybrook.edu/premo

Trin 2: Byg SnappyXO Differential Drive Robot

Det PreciseMovement -bibliotek, vi vil bruge, er kun kompatibelt med differentialdrevsrobotter. Du kan vælge at bruge andre 2 -hjulsdrevne robotter.

Trin 3: Tilslut elektronikken

Tilslut elektronikken
Tilslut elektronikken

Til standard SnappyXO optisk encoder:

D0 (encoder output) -> Arduino Digital Pin

VCC -> Arduino 5V

GND -> GND

Motor og Arduino -effekt:

Motorens strømkilde skal være tilstrækkelig til de motorer, du bruger. Til SnappyXO -kittet bruges 4AA -batterier til motoreffekten og 9V -batteri til Arduino -strømmen. Sørg for, at de alle har en fælles GND.

Trin 4: Installer PreciseMovement Arduino Library

Hent:

github.com/jaean123/PreciseMovement-library/releases

Sådan installeres Arduino Library:

wiki.seeedstudio.com/How_to_install_Arduino_Library/

Trin 5: Kode

Arduino kode:

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

Disse parametre kræver justering. Andre parametre mærket anbefalet på koden kan justeres for bedre ydeevne.

  • Kontroller og sæt motorstifterne under ARDUINO PINS.
  • Indstil LÆNGDE og RADIUS.

    • LÆNGDE er afstanden fra venstre hjul til højre hjul.
    • RADIUS er hjulets radius.
  • Indstil PULSES_PER_REV, som er antallet af impulser, encoderens udgange giver for et hjulomdrejningstal.

    • Bemærk, at dette er forskelligt fra antallet af impulser, som encoderen udsender for en motorakselomdrejning, medmindre koderne er forbundet til at læse direkte fra hjulakslen.
    • PULSES_PER_REV = (impulser pr. Omdrejning af motoraksel) x (gearforhold)
  • Indstil STOP_LENGTH, hvis du ser, at robotten overskyder efter bevægelsen fremad.

    Robotten stopper, når den estimerede position er STOP_LENGTH væk fra målet. STOP_LÆNGDEN er således den omtrentlige afstand, der kræves for, at robotten standser

  • PID -parametre

    KP_FW: Dette er den proportionelle komponent i fremadgående bevægelse. Forøg dette, indtil robotten går lige. Hvis du ikke kan få det til at gå lige ved at indstille dette, er hardware sandsynligvis skyld. (f.eks. forkert justering af hjul osv.)

    KP_TW: Dette er den proportionelle komponent i vridningsbevægelsen PID. Du skal blot starte fra en lav værdi og øge denne, indtil vridningshastigheden eller robotens vinkelhastighed under vridning er hurtig nok, men forårsager ikke overskridelse. For at foretage observationer kan du få robotten til at skifte fra 0 til 90 og tilbage ved at indsætte følgende i loop -funktionen

Placer dette i loop for at indstille KP_FW:

mover.ward (99999);

Placer dette i loop for at skifte fra 0 til 90 for at stille KP_TW:

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

forsinkelse (2000);

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

forsinkelse (2000);

Bemærk, at for faktisk at vride vinkelhastigheden ved TARGET_TWIST_OMEGA, skal KI_TW også indstilles, da en proportional controller aldrig vil slå sig til det nøjagtige mål. Det er imidlertid ikke nødvendigt at vride med den præcise vinkelhastighed. Vinkelhastigheden skal bare være langsom nok.

Trin 6: Sådan fungerer det

Hvis du er nysgerrig efter hvordan det fungerer, læs videre.

Fremadgående bevægelse holdes lige ved hjælp af den rene forfølgelsesalgoritme på en lige linje. Mere om Pure Pursuit:

Twist PID -controlleren forsøger at holde twist -vinkelhastigheden ved TARGET_TWIST_OMEGA. Bemærk, at denne vinkelhastighed er vinkelhastigheden for hele robotten, ikke hjulene. Der bruges kun én PID -controller, og output er PWM -skrivehastigheden for både venstre og højre motor. Død regning foretages for at beregne vinklen. Når vinklen når fejlgrænsen, stopper robotten.

Anbefalede: