Innholdsfortegnelse:

SnappyXO Precise Mover Robot: 6 trinn
SnappyXO Precise Mover Robot: 6 trinn

Video: SnappyXO Precise Mover Robot: 6 trinn

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

Få Arduino -roboten til å gå rett en bestemt avstand eller vri til en angitt vinkel ved å bruke Arduino -biblioteket PreciseMovement.

Roboten trenger en rullende kulehjul eller tilsvarende for å minimere friksjon mens den vrir seg.

www.pololu.com/product/954

Du kan be roboten om å gå frem til en bestemt avstand eller vri til en angitt vinkel. Programmet bestemmer sin posisjon ved hjelp av død regning. Siden posisjonsestimatene bare er avhengige av hjulhastigheten, vil glidning føre til betydelige feil. Designeren av roboten bør være forsiktig med å minimere risikoen for glid.

Dette er testet for å fungere med SnappyXO -roboten.

Trinn 1: Opplæringsplassering endret

Opplæringen er flyttet til siden nedenfor. Denne opplæringen vedlikeholdes ikke lenger.

sites.google.com/stonybrook.edu/premo

Trinn 2: Bygg SnappyXO differensialdrevet robot

PreciseMovement -biblioteket som vi skal bruke, er bare kompatibelt med differensialstasjonsroboter. Du kan velge å bruke andre tohjulsdrevne roboter.

Trinn 3: Koble til elektronikken

Koble til elektronikken
Koble til elektronikken

For standard SnappyXO optisk encoder:

D0 (encoder output) -> Arduino Digital Pin

VCC -> Arduino 5V

GND -> GND

Motor og Arduino Power:

Motorens strømkilde bør være tilstrekkelig for motorene du bruker. For SnappyXO -settet brukes 4AA -batterier til motorkraft og 9V -batteri til Arduino -strøm. Sørg for at de alle har en felles GND.

Trinn 4: Installer PreciseMovement Arduino Library

Nedlasting:

github.com/jaean123/PreciseMovement-library/releases

Slik installerer du Arduino Library:

wiki.seeedstudio.com/How_to_install_Arduino_Library/

Trinn 5: Kode

Arduino -kode:

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

Disse parameterne krever justering. Andre parametere merket anbefalt på koden kan justeres for bedre ytelse.

  • Kontroller og sett motorpinnene under ARDUINO PINS.
  • Still LENGTH og RADIUS.

    • LENGDE er avstanden fra venstre hjul til høyre hjul.
    • RADIUS er hjulets radius.
  • Angi PULSES_PER_REV, som er antall pulser som giveren gir ut for ett hjulomdreining.

    • Vær oppmerksom på at dette er forskjellig fra antallet pulser som giveren gir ut for en motorakselomdreining, med mindre koderne er koblet til å lese direkte fra hjulakselen.
    • PULSES_PER_REV = (pulser per ett omdreining av motorakselen) x (girforhold)
  • Sett STOP_LENGTH hvis du ser at roboten overskyter etter bevegelsen fremover.

    Roboten stopper når den estimerte posisjonen er STOP_LENGTH unna målet. Dermed er STOP_LENGTH den omtrentlige avstanden som kreves for at roboten skal stoppe

  • PID -parametere

    KP_FW: Dette er den proporsjonale komponenten i fremoverbevegelsen. Øk dette til roboten går rett. Hvis du ikke kan få det til å gå rett ved å justere dette, er det sannsynligvis maskinvaren som har feil. (f.eks. feil hjuljustering osv.)

    KP_TW: Dette er den proporsjonale komponenten i vridningsbevegelsen PID. Bare begynn fra en lav verdi og øk denne til vridningshastigheten, eller vinkelhastigheten til roboten mens du vrir, er rask nok, men forårsaker ikke overskridelse. For å gjøre observasjoner kan du la roboten veksle fra 0 til 90 og tilbake ved å sette inn følgende i sløyfefunksjonen

Plasser dette i loop for å stille KP_FW:

forflytter. fremover (99999);

Plasser dette i loop for å veksle fra 0 til 90 for å stille KP_TW:

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

forsinkelse (2000);

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

forsinkelse (2000);

Vær oppmerksom på at for å faktisk vri vinkelhastigheten ved TARGET_TWIST_OMEGA, må KI_TW også justeres siden en proporsjonal kontroller aldri vil slå seg ned til det eksakte målet. Det er imidlertid ikke nødvendig å vri med akkurat den vinkelhastigheten. Vinkelhastigheten må bare være sakte nok.

Trinn 6: Hvordan det fungerer

Hvis du er nysgjerrig på hvordan det fungerer, les videre.

Bevegelsen fremover holdes rett ved hjelp av den rene forfølgelsesalgoritmen på en rett linje. Mer om Pure Pursuit:

Twist PID -kontrolleren prøver å holde vridningsvinkelhastigheten på TARGET_TWIST_OMEGA. Vær oppmerksom på at denne vinkelhastigheten er vinkelhastigheten til hele roboten, ikke hjulene. Bare én PID -kontroller brukes, og utgangen er PWM -skrivehastigheten til både venstre og høyre motor. Død regning gjøres for å beregne vinkelen. Når vinkelen når feilgrensen, stopper roboten.

Anbefalt: