Innehållsförteckning:

SnappyXO Precise Mover Robot: 6 steg
SnappyXO Precise Mover Robot: 6 steg

Video: SnappyXO Precise Mover Robot: 6 steg

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

Låt din Arduino -robot gå rakt ett visst avstånd eller vrid till en viss vinkel med hjälp av PreciseMovement Arduino -biblioteket.

Roboten behöver en rullkula eller motsvarande för att minimera friktion vid vridning.

www.pololu.com/product/954

Du kan be roboten att gå framåt till ett visst avstånd eller vrida till en viss vinkel. Programmet bestämmer sin position med hjälp av dödräkning. Eftersom positionsuppskattningarna endast är beroende av hjulhastigheten kommer glidning att orsaka betydande fel. Robotens designer bör vara försiktig för att minimera risken för halka.

Detta har testats för att fungera med SnappyXO -roboten.

Steg 1: Handledningens plats har ändrats

Handledningen har flyttats till sidan nedan. Denna handledning underhålls inte längre.

sites.google.com/stonybrook.edu/premo

Steg 2: Bygg SnappyXO Differential Drive Robot

PreciseMovement -biblioteket som vi kommer att använda är endast kompatibelt med differentialdrivrobotar. Du kan välja att använda andra tvåhjulsdrivna robotar.

Steg 3: Anslut elektroniken

Anslut elektroniken
Anslut elektroniken

För standard SnappyXO optisk kodare:

D0 (kodarutgång) -> Arduino Digital Pin

VCC -> Arduino 5V

GND -> GND

Motor och Arduino Power:

Motorkraftkällan bör vara tillräcklig för de motorer du använder. För SnappyXO -satsen används 4AA -batterier för motoreffekten och 9V -batteri för Arduino -kraften. Se till att de alla har en gemensam GND.

Steg 4: Installera PreciseMovement Arduino Library

Ladda ner:

github.com/jaean123/PreciseMovement-library/releases

Så här installerar du Arduino Library:

wiki.seeedstudio.com/How_to_install_Arduino_Library/

Steg 5: Kod

Arduino -kod:

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

Dessa parametrar kräver justering. Andra parametrar som rekommenderas på koden kan justeras för bättre prestanda.

  • Kontrollera och ställ in motorstiften under ARDUINO PINS.
  • Ställ in LÄNGD och RADIUS.

    • LÄNGD är avståndet från vänster hjul till höger hjul.
    • RADIUS är hjulets radie.
  • Ställ in PULSES_PER_REV, vilket är antalet pulser som kodaren matar ut för ett hjulvarv.

    • Observera att detta skiljer sig från antalet pulser som kodaren matar ut för en motoraxelvarvtal om inte givarna är anslutna för att avläsa direkt från hjulaxeln.
    • PULSES_PER_REV = (pulser per ett varv på motoraxeln) x (växelförhållande)
  • Ställ in STOP_LENGTH om du ser att roboten skjuter över efter framrörelsen.

    Roboten stannar när den beräknade positionen är STOP_LENGTH från målet. STOP_LENGTH är alltså det ungefärliga avståndet som krävs för att roboten ska stanna

  • PID -parametrar

    KP_FW: Detta är den proportionella komponenten i framåtrörelsen. Öka detta tills roboten går rakt. Om du inte kan få det att gå direkt genom att ställa in det här, är det troligtvis fel på hårdvaran. (t.ex. feljustering av hjul osv.)

    KP_TW: Detta är den proportionella komponenten i vridrörelsen PID. Starta helt enkelt från ett lågt värde och öka detta tills vridningshastigheten, eller robotens vinkelhastighet vid vridning, är tillräckligt snabb, men orsakar inte överskott. För att göra observationer kan du låta roboten växla från 0 till 90 och tillbaka genom att infoga följande i loop -funktionen

Placera detta i loop för att ställa in KP_FW:

flyttare. framåt (99999);

Placera detta i loop för att växla från 0 till 90 för att ställa in KP_TW:

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

fördröjning (2000);

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

fördröjning (2000);

Observera att för att faktiskt vrida vinkelhastigheten vid TARGET_TWIST_OMEGA måste KI_TW också justeras eftersom en proportionell styrenhet aldrig kommer att nöja sig med det exakta målet. Det är dock inte nödvändigt att vrida med den exakta vinkelhastigheten. Vinkelhastigheten behöver bara vara tillräckligt långsam.

Steg 6: Hur det fungerar

Om du är nyfiken på hur det fungerar läs vidare.

Rörelsen framåt hålls rak med den rena jaktalgoritmen på en rak linje. Mer om Pure Pursuit:

Twist PID -regulatorn försöker hålla vridvinkelhastigheten vid TARGET_TWIST_OMEGA. Observera att denna vinkelhastighet är vinkelhastigheten för hela roboten inte hjulen. Endast en PID -regulator används och utgången är PWM -skrivhastigheten för både vänster och höger motor. Död räkning görs för att beräkna vinkeln. När vinkeln når felgränsen stannar roboten.

Rekommenderad: