Sisukord:

SnappyXO täpne liikurrobot: 6 sammu
SnappyXO täpne liikurrobot: 6 sammu

Video: SnappyXO täpne liikurrobot: 6 sammu

Video: SnappyXO täpne liikurrobot: 6 sammu
Video: Introducing SnappyXO: Crowdfunding Campaign 2024, November
Anonim
SnappyXO täpne liikurrobot
SnappyXO täpne liikurrobot

Laske oma Arduino robotil minna kindlale kaugusele otse või keerata teatud nurga alla, kasutades raamatukogu PreciseMovement Arduino.

Robot vajab keerdumise ajal hõõrdumise minimeerimiseks veeretavat palliga ratast või samaväärset.

www.pololu.com/product/954

Võite robotile öelda, et ta läheks etteantud kaugusele edasi või pööraks kindla nurga alla. Programm määrab oma positsiooni surnud arvestuse abil. Kuna asukoha hinnangud sõltuvad ainult ratta kiirusest, põhjustab libisemine märkimisväärset viga. Roboti disainer peaks olema ettevaatlik, et minimeerida libisemisohtu.

Seda on testitud töötama robotiga SnappyXO.

1. samm: õpetuse asukohta muudeti

Õpetus on viidud allolevale lehele. Seda õpetust ei säilitata enam.

sites.google.com/stonybrook.edu/premo

2. samm: ehitage SnappyXO diferentsiaalse ajami robot

Meie kasutatav PreciseMovement raamatukogu ühildub ainult diferentsiaalse ajamiga robotitega. Saate valida teiste kaherattaveoliste robotite kasutamise.

Samm: ühendage elektroonika

Ühendage elektroonika
Ühendage elektroonika

Tavalise SnappyXO optilise kodeerija jaoks:

D0 (kodeerija väljund) -> Arduino digitaalne pin

VCC -> Arduino 5V

GND -> GND

Mootor ja Arduino võimsus:

Mootori toiteallikas peaks olema teie kasutatavate mootorite jaoks piisav. SnappyXO komplekti jaoks kasutatakse mootori võimsuseks 4AA ja Arduino toiteks 9V patareisid. Veenduge, et neil kõigil oleks ühine GND.

Samm: installige PreciseMovement Arduino raamatukogu

Lae alla:

github.com/jaean123/PreciseMovement-library/releases

Arduino raamatukogu installimine:

wiki.seeedstudio.com/How_to_install_Arduino_Library/

Samm: kood

Arduino kood:

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

Need parameetrid vajavad kohandamist. Paremaid toimivusi saab reguleerida ka muudel koodil soovitatud parameetritel.

  • Kontrollige ja seadke mootori tihvtid ARDUINO PINS alla.
  • Määrake PIKKUS ja RAADIUS.

    • PIKKUS on kaugus vasakust ja paremast ratast.
    • RAADIUS on ratta raadius.
  • Määrake PULSES_PER_REV, mis on anduri väljundite impulsside arv ühe ratta pöörde jaoks.

    • Pange tähele, et see erineb anduri väljundite impulsside arvust ühe mootori võlli pöörde jaoks, välja arvatud juhul, kui andurid on ühendatud otse rattavõllilt lugemiseks.
    • PULSES_PER_REV = (impulsid mootori võlli ühe pöörde kohta) x (ülekandearv)
  • Seadke STOP_LENGTH, kui näete, et robot liigub pärast edasiliikumist üle.

    Robot peatub, kui hinnanguline asukoht on sihtkohast STOP_LENGTH kaugusel. Seega on STOP_LENGTH ligikaudne vahemaa, mis on vajalik robotil peatumiseks

  • PID parameetrid

    KP_FW: See on edasiliikumise proportsionaalne komponent. Suurendage seda, kuni robot läheb otse. Kui te ei saa seda häälestades otse minna, on tõenäoliselt süüdi riistvara. (nt rataste vale joondamine jne)

    KP_TW: See on pöörleva liikumise PID proportsionaalne komponent. Alustage lihtsalt madalast väärtusest ja suurendage seda seni, kuni keerdumiskiirus või roboti nurkkiirus keerdumise ajal on piisavalt kiire, kuid ei põhjusta ületamist. Vaatluste tegemiseks võite lasta robotil vahelduda vahemikus 0 kuni 90 ja tagasi, sisestades silmusefunktsiooni järgmise

Asetage see silmusesse, et häälestada KP_FW:

mover.forward (99999);

Asetage see silmusesse, et vahelduda vahemikus 0 kuni 90, et häälestada KP_TW:

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

viivitus (2000);

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

viivitus (2000);

Pange tähele, et nurkkiiruse TARGET_TWIST_OMEGA tegelikuks pööramiseks tuleb ka KI_TW häälestada, kuna proportsionaalne kontroller ei lepi kunagi täpse sihtmärgiga. Selle täpselt nurkkiiruse juures pole aga vaja keerduda. Nurkkiirus peab lihtsalt olema piisavalt aeglane.

6. toiming: kuidas see toimib

Kui olete huvitatud selle toimimisest, lugege edasi.

Edasiliikumine hoitakse sirgelt, kasutades puhta jälitamise algoritmi. Pure Pursuit kohta rohkem:

Pöörde PID -regulaator püüab hoida keerdumise nurkkiirust TARGET_TWIST_OMEGA. Pange tähele, et see nurkkiirus on kogu roboti, mitte rataste nurkkiirus. Kasutatakse ainult ühte PID -regulaatorit ja väljundiks on nii vasaku kui ka parema mootori PWM -i kirjutamiskiirus. Nurga arvutamiseks tehakse surnud arvestus. Kui nurk jõuab veakünniseni, peatub robot.

Soovitan: