Sisällysluettelo:

SnappyXO Precise Mover Robot: 6 vaihetta
SnappyXO Precise Mover Robot: 6 vaihetta

Video: SnappyXO Precise Mover Robot: 6 vaihetta

Video: SnappyXO Precise Mover Robot: 6 vaihetta
Video: Differential Drive Robot 2024, Marraskuu
Anonim
SnappyXO Precise Mover -robotti
SnappyXO Precise Mover -robotti

Aseta Arduino -robotti kulkemaan suoraan tietyn matkan tai kiertymään tiettyyn kulmaan PreciseMovement Arduino -kirjaston avulla.

Robotti tarvitsee vierintäpyörän tai vastaavan kitkan minimoimiseksi kiertäessään.

www.pololu.com/product/954

Voit käskeä robotin siirtymään eteenpäin tiettyyn etäisyyteen tai kiertymään tiettyyn kulmaan. Ohjelma määrittää sijaintinsa kuolleen laskennan avulla. Koska sijainti -arviot perustuvat vain pyörän nopeuteen, luistaminen aiheuttaa huomattavan virheen. Robotin suunnittelijan tulee olla varovainen minimoidakseen liukastumisvaaran.

Tämä on testattu toimimaan SnappyXO -robotin kanssa.

Vaihe 1: Opetuspaikan sijainti muutettu

Opetusohjelma on siirretty alla olevalle sivulle. Tätä opetusohjelmaa ei enää ylläpidetä.

sites.google.com/stonybrook.edu/premo

Vaihe 2: Rakenna SnappyXO -differentiaalikäyttörobotti

Käyttämämme PreciseMovement -kirjasto on yhteensopiva vain differentiaalikäyttöisten robottien kanssa. Voit käyttää muita 2 -nelivetoisia robotteja.

Vaihe 3: Liitä elektroniikka

Liitä elektroniikka
Liitä elektroniikka

Tavallinen SnappyXO -optinen kooderi:

D0 (anturilähtö) -> Arduino Digital Pin

VCC -> Arduino 5V

GND -> GND

Moottori ja Arduino -teho:

Moottorin virtalähteen tulee olla riittävä käyttämillesi moottoreille. SnappyXO -sarjassa käytetään 4AA -paristoja moottorin teholle ja 9V -paristoa Arduino -teholle. Varmista, että niillä kaikilla on yhteinen GND.

Vaihe 4: Asenna PreciseMovement Arduino -kirjasto

Ladata:

github.com/jaean123/PreciseMovement-library/releases

Arduino -kirjaston asentaminen:

wiki.seeedstudio.com/How_to_install_Arduino_Library/

Vaihe 5: Koodi

Arduino -koodi:

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

Nämä parametrit vaativat säätöä. Muita koodissa suositeltuja parametreja voidaan säätää suorituskyvyn parantamiseksi.

  • Tarkista ja aseta moottorin tapit kohtaan ARDUINO PINS.
  • Aseta PITUUS ja RADIUS.

    • PITUUS on etäisyys vasemmasta pyörästä oikeaan pyörään.
    • RADIUS on pyörän säde.
  • Aseta PULSES_PER_REV, joka on pulssien lukumäärä, jonka anturi antaa yhden pyörän kierrosta.

    • Huomaa, että tämä eroaa pulssien lukumäärästä, jotka anturi antaa yhden moottorin akselin kierroksen, ellei antureita ole kytketty lukemaan suoraan pyörän akselilta.
    • PULSES_PER_REV = (pulssia moottorin akselin yhtä kierrosta kohti) x (välityssuhde)
  • Aseta STOP_LENGTH, jos huomaat, että robotti ylittää laukauksen eteenpäin siirron jälkeen.

    Robotti pysähtyy, kun arvioitu sijainti on STOP_LENGTH etäisyydellä kohteesta. Siten STOP_LENGTH on likimääräinen etäisyys, joka tarvitaan robotin pysähtymiseen

  • PID -parametrit

    KP_FW: Tämä on eteenpäin suuntautuvan liikkeen suhteellinen komponentti. Lisää tätä kunnes robotti menee suoraan. Jos et saa sitä toimimaan suoraan virittämällä tämä, laitteisto on todennäköisesti viallinen. (esim. pyörien suuntaus jne.)

    KP_TW: Tämä on kiertoliikkeen PID: n suhteellinen komponentti. Aloita yksinkertaisesti pienestä arvosta ja lisää sitä, kunnes kiertonopeus tai robotin kulmanopeus kiertämisen aikana on riittävän nopea, mutta ei aiheuta ylitystä. Voit tehdä havaintoja tekemällä robotin vuorotellen välillä 0 - 90 ja taaksepäin lisäämällä seuraavat silmukkafunktioon

Aseta tämä silmukkaan virittääksesi KP_FW:

mover.forward (99999);

Aseta tämä silmukkaan vaihtaaksesi 0: sta 90: een KP_TW: n virittämiseksi:

mover.twist (90); // Kierrä 90 CW

viive (2000);

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

viive (2000);

Huomaa, että jotta TARGET_TWIST_OMEGA: n kulmanopeus todella kääntyy, KI_TW on myös viritettävä, koska suhteellinen säädin ei koskaan laskeudu tarkkaan kohteeseen. Ei kuitenkaan tarvitse kiertyä täsmälleen kulmanopeudella. Kulmanopeuden on vain oltava riittävän hidas.

Vaihe 6: Näin se toimii

Jos olet kiinnostunut siitä, miten se toimii, lue.

Eteenpäin suuntautuva liike pidetään suorana käyttäen puhdasta takaa -ajamisalgoritmia suoraviivaisella reitillä. Lisää Pure Pursuit:

Kierre PID -säädin yrittää pitää kiertymiskulmanopeuden TARGET_TWIST_OMEGA. Huomaa, että tämä kulmanopeus on koko robotin, ei pyörien, kulmanopeus. Käytetään vain yhtä PID -säädintä ja lähtö on sekä vasemman että oikean moottorin PWM -kirjoitusnopeus. Kuolleen laskenta suoritetaan kulman laskemiseksi. Kun kulma saavuttaa virherajan, robotti pysähtyy.

Suositeltava: