Sisällysluettelo:

Itsetasapainottava robotti - PID -ohjausalgoritmi: 3 vaihetta
Itsetasapainottava robotti - PID -ohjausalgoritmi: 3 vaihetta

Video: Itsetasapainottava robotti - PID -ohjausalgoritmi: 3 vaihetta

Video: Itsetasapainottava robotti - PID -ohjausalgoritmi: 3 vaihetta
Video: Makeblock Untimate Robot Kit Part 1 : Step by Step Assembly Robot of Aram Tank 2024, Joulukuu
Anonim
Itsetasapainottava robotti - PID -ohjausalgoritmi
Itsetasapainottava robotti - PID -ohjausalgoritmi

Tämä projekti suunniteltiin, koska olin kiinnostunut oppimaan lisää ohjausalgoritmeista ja toiminnallisten PID -silmukoiden tehokkaasta toteuttamisesta. Projekti on vielä kehitysvaiheessa, koska Bluetooth -moduulia ei ole vielä lisätty, mikä mahdollistaa robotin hallinnan Bluetooth -yhteensopivalla älypuhelimella.

Käytetyt N20 -tasavirtamoottorit olivat suhteellisen halpoja, ja siksi niillä on huomattava määrä leikkiä. Tämä johtaa pieneen nykäykseen, kun moottorit voittavat "löysyyden", koska se kohdistaa vääntömomentin pyöriin. Näin ollen on lähes mahdotonta saavuttaa täysin tasainen liike. Kirjoittamani koodi on kohtuullisen yksinkertainen, mutta osoittaa tehokkaasti PID -algoritmin kyvyt.

Projektin yhteenveto:

Robotin runko on 3D-tulostettu Ender 3 -tulostimella ja se on suunniteltu puristettavaksi yhteen.

Robotia ohjaa Arduino Uno, joka ottaa anturitiedot MPU6050 -laitteesta ja ohjaa tasavirtamoottoreita ulkoisen moottoriajurin kautta. Se toimii 7,4 V, 1500 mAh: n akulla. Moottorin ohjain säätää tämän 5 V: ksi Arduinon virran saamiseksi ja syöttää moottoreihin 7,4 V.

Ohjelmisto on kirjoitettu alusta alkaen gitHubin Arduino-KalmanFilter-master- ja Arduino-MPU6050-master-kirjastojen avulla.

Tarvikkeet:

  • 3D -tulostetut osat
  • Arduino UNO
  • MPU6050 6-akselinen anturi
  • DC -moottorin kuljettaja
  • N20 DC -moottorit (x2)
  • 9V akku

Vaihe 1: Robotin rakentaminen

Robotin rakentaminen
Robotin rakentaminen
Robotin rakentaminen
Robotin rakentaminen
Robotin rakentaminen
Robotin rakentaminen

Tulostus ja kokoonpano

Koko rakenteen tulee olla puristussovitettu, mutta olen käyttänyt superliimaa komponenttien kiinnittämiseen varmistaakseni, että robotti on täysin jäykkä tasapainottamisen aikana.

Olen suunnitellut osat Fusion 360: een ja optimoinut jokaisen osan tulostamaan ilman tukia, jotta toleranssit ovat tiukemmat ja pintakäsittely puhtaampi.

Ender 3 -tulostimessa käytetyt asetukset olivat: 0,16 mm: n kerroksen korkeudet @ 40% täyttö kaikille osille.

Vaihe 2: 3D -tulostusrobotti

3D -tulostusrobotti
3D -tulostusrobotti

Alusta (x1)

Vasen pyörä (x2)

Moottorin vasen kotelo (x2)

Arduino -kotelo (x1)

Vaihe 3: PID -ohjausalgoritmi

PID -ohjausalgoritmi
PID -ohjausalgoritmi

Olen kirjoittanut PID-ohjausalgoritmin alusta alkaen käyttämällä gitHubin Arduino-KalmanFilter-master- ja Arduino-MPU6050-master-kirjastoja.

Algoritmin lähtökohta on seuraava:

  • Lue raakatietoja MPU6050 -laitteesta
  • Kalman -suodattimen avulla voit analysoida sekä gyroskoopin että kiihtyvyysmittarin tietoja poistaaksesi anturin kiihtyvyydestä johtuvat epätarkkuudet gyroskoopin lukemissa. Tämä palauttaa suhteellisen tasoitetun arvon anturin nousulle asteina kahteen desimaaliin.
  • Laske E rror kulmassa, eli: Anturin ja asetusarvon välinen kulma.
  • Laske suhteellisuusvirhe muodossa (Suhteellisuusvakio x virhe).
  • Laske integrointivirhe (integraatiovakio x virhe) juokseva summa.
  • Laske johdannaisvirhe vakiona [erotusvakio] x (virheen muutos / ajan muutos)]
  • Summaa kaikki virheet ja anna moottorille lähetettävä nopeuslähtö.
  • Laske moottorin kääntösuunta virhekulman merkin perusteella.
  • Silmukka jatkuu loputtomiin ja perustuu lähtöön, kun tulo vaihtelee. Se on takaisinkytkentäsilmukka, joka käyttää lähtöarvoja uusina syöttöarvoina seuraavaa iteraatiota varten.

Viimeinen vaihe on virittää PID -silmukan Kp, Ki & Kd parametrit.

  1. Hyvä lähtökohta on nostaa hitaasti Kp, kunnes robotti värähtelee tasapainopisteen ympäri ja voi pudota.
  2. Aloita seuraavaksi Kd noin 1%: lla Kp -arvosta ja lisää hitaasti, kunnes värähtelyt häviävät ja robotti liukuu tasaisesti työnnettäessä.
  3. Aloita lopuksi Ki: llä noin 20%: lla Kp: stä ja vaihda, kunnes robotti "ylittää" asetusarvon, jotta se voi aktiivisesti havaita putoamisen ja palata pystyasentoon.

Suositeltava: