Obsah:
Video: Samovyvažovací robot - algoritmus riadenia PID: 3 kroky
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:55
Tento projekt bol koncipovaný, pretože ma zaujímalo dozvedieť sa viac o riadiacich algoritmoch a o tom, ako efektívne implementovať funkčné slučky PID. Projekt je stále vo fáze vývoja, pretože ešte bude pridaný modul Bluetooth, ktorý umožní ovládanie robota zo smartfónu s podporou Bluetooth.
Použité jednosmerné motory N20 boli relatívne lacné, a preto v nich bolo veľa hry. To vedie k malému trhaniu, pretože motory prekonávajú „vôľu“, pretože na kolesá aplikuje krútiaci moment. Preto je takmer nemožné dosiahnuť dokonale plynulý pohyb. Kód, ktorý som napísal, je primerane jednoduchý, ale efektívne ukazuje schopnosti algoritmu PID.
Zhrnutie projektu:
Podvozok robota je vytlačený 3D tlačiarňou Ender 3 a je navrhnutý tak, aby do seba zapadol.
Robot je riadený Arduino Uno, ktoré preberá údaje zo senzorov z MPU6050 a riadi jednosmerné motory prostredníctvom externého ovládača motora. Napájanie zaisťuje batéria 7,4 V, 1 500 mAh. Ovládač motora to reguluje na 5 V na napájanie Arduina a dodáva motorom 7,4 V.
Softvér bol napísaný úplne od začiatku pomocou knižníc „Arduino-KalmanFilter-master“a „Arduino-MPU6050-master“od gitHub.
Zásoby:
- 3D tlačené diely
- Arduino UNO
- 6-osý snímač MPU6050
- Ovládač motora D. C
- Motory N20 DC (x2)
- 9V batéria
Krok 1: Zostavenie robota
Tlač a montáž
Celá konštrukcia by mala byť lisovaná, ale na zaistenie komponentov som použil superglue, aby som zaistil, že robot bude pri vyvažovaní úplne tuhý.
Diely som navrhol vo Fusion 360 a každú časť som optimalizoval na tlač bez podpier, aby som umožnil prísnejšie tolerancie a čistejšiu povrchovú úpravu.
Na tlačiarni Ender 3 boli použité tieto nastavenia: Výšky vrstvy 0,16 mm @ 40% výplň pre všetky diely.
Krok 2: 3D tlačový robot
Podvozok (x1)
Ľavé koleso (x2)
Ľavé teleso motora (x2)
Puzdro Arduino (x1)
Krok 3: Algoritmus riadenia PID
Algoritmus riadenia PID som napísal od začiatku pomocou knižníc „Arduino-KalmanFilter-master“a „Arduino-MPU6050-master“od gitHub.
Algoritmus má nasledujúce predpoklady:
- Prečítajte si nespracované údaje z MPU6050
- Pomocou Kalmanovho filtra analyzujte údaje z gyroskopu aj akcelerometra a odstráňte nepresnosti v údajoch gyroskopu v dôsledku zrýchlenia snímača. Tým sa vráti relatívne vyhladená hodnota pre výšku snímača v stupňoch na dve desatinné miesta.
- Vypočítajte chybu v uhle, t.j.: Uhol medzi snímačom a požadovanou hodnotou.
- Vypočítajte proporcionálnu chybu ako (konštanta proporcionality x chyba).
- Vypočítajte integrálnu chybu ako priebežný súčet (chyba konštanty integrácie x).
- Vypočítajte derivačnú chybu ako konštantnú ako [(diferenciačná konštanta) x (zmena v chybe / zmena v čase)]
- Sčítajte všetky chyby, aby ste získali rýchlosť, ktorá sa má odoslať do motorov.
- Vypočítajte, akým smerom sa majú otáčať motory na základe znamienka uhla chyby.
- Smyčka bude bežať neobmedzene dlho a bude závisieť od výstupu, pretože vstup sa líši. Ide o spätnoväzbovú slučku, ktorá používa výstupné hodnoty ako nové vstupné hodnoty pre ďalšiu iteráciu.
Posledným krokom je doladenie parametrov Kp, Ki & Kd slučky PID.
- Dobrým východiskovým bodom je pomalé zvyšovanie Kp, kým robot nekmitá okolo bodu rovnováhy a nemôže zachytiť pád.
- Potom začnite Kd na približne 1% hodnoty Kp a pomaly zvyšujte, kým oscilácie nezmiznú a robot po stlačení hladko kĺže.
- Nakoniec začnite s Ki okolo 20% Kp a variujte, kým robot „prestrelí“požadovanú hodnotu, aby aktívne zachytil pád a vrátil sa do vertikály.
Odporúča:
Line Follower Robot pre algoritmy riadenia výučby: 3 kroky
Line Follower Robot pre riadiace algoritmy výučby: Tento robot sledovača riadkov som navrhol pred niekoľkými rokmi, keď som bol učiteľom robotiky. Cieľom tohto projektu bolo naučiť svojich študentov, ako kódovať riadka nasledujúceho robota do súťaže a tiež porovnávať ovládanie If/Else a PID. A nie
2 -kolesový samovyvažovací robot: 4 kroky
2-kolesový samovyvažovací robot: Podľa môjho skromného názoru nie ste skutočným tvorcom, pokiaľ si nepostavíte vlastného dvojkolesového samonavíjacieho robota .::No Takže je to tu … a čo je najdôležitejšie, funguje to !!! Tento projekt vyzerá veľmi jednoducho. Namiesto toho to vyžaduje dobrú úroveň znalostí
Projekt riadenia motora s TB6612FNG: 4 kroky
Projekt riadenia motora s TB6612FNG: Jedná sa o jednoduchý projekt, ktorý ovláda lineárny pohon a servomotor pomocou oddeľovacej dosky SparkFUN TB6612FNG na ovládanie motora a Arduino Uno. Navštívte môj blog, kde nájdete ďalšie moje projekty
Samovyvažovací robot pomocou algoritmu PID (STM MC): 9 krokov
Samovyvažovací robot využívajúci algoritmus PID (STM MC): V poslednom čase sa vykonalo veľa práce na vlastnom vyvažovaní objektov. Koncept vlastného vyvažovania sa začal vyvážením obráteného kyvadla. Tento koncept sa rozšíril aj na dizajn lietadiel. V tomto projekte sme navrhli malý režim
EWEEDINATOR☠ Časť 4: Geometria diferenciálneho riadenia Kód: 3 kroky
EWEEDINATOR☠ Časť 4: Geometrický kód diferenciálneho riadenia: Ak máte čas pozrieť si vyššie uvedené video, všimnete si, že keď sa WEEDINATOR pohybuje po trase 3, WEEDINATOR každú chvíľu spôsobí, že sa motory na volante zaseknú a dôjde k zvláštnym zvukom. obrat bodu. Motory v zásade zasahujú proti