Balancující robot

Pochlubte se svým robotem ostatním!
JuraS.
Příspěvky: 318
Registrován: 28 led 2015, 16:06

Re: Balancující robot

Příspěvek od JuraS. »

K otázce řízení pan/tildu. Použili by jste řízení serv cestou Ryspberry a pythonu a I2C s použitím 16 kanalového PWM driveru nebo raspberry se servoblasterem a nebo arduino a řízení pomocí jeho PWM ? Jde mi o plynulý chod bez záškubu a zbytečného vrčení v klidové fázi serva. Všechny metody mohu hned nasadit. jde mi jen o to které by jste dali přednost vy. Nejraději bych použil metodu kdy Raspberry pomocí opencv bude potřebovat otočit kamerou tak aby si to udělalo samo a ne aby si o to řeklo arduinu. Dříve jsem to prosazoval ale kvůli rychlosti opencv na Rpi B+ to raději chci společně.
AlesH
Příspěvky: 323
Registrován: 25 úno 2013, 09:18

Re: Balancující robot

Příspěvek od AlesH »

Nějak nechápu, do jakého kódu jsi zapsal ten PID příklad, ale musím konstatovat, že ten můj příklad sám o sobě "nic nedělá" (protože se mu nemění "měřená hodnota"), takže nevím, co chceš vypisovat.

Jinak si pořád myslím, že lepší než dělat "pro každé kolo samostatný PID proces", je kombinace PID procesů pro "balancování", "otáčení" a "popojíždění". Výstupem prvních dvou PID procesů bude rychlost otáčení kol, zatímco regulačním výstupem procesu pro "popojíždění" může být třeba "požadovaný náklon" (nakloněním dopředu pojedeme vpřed a naopak).

Jinak ty konstanty P, I, D jsou prostě "parametry" toho PID regulátoru (tomu PID regulátoru je vlastně jedno, co reguluje, je to prostě rovnice). Konstanta "P" říká, jak silně bude výstup reagovat na rozdíl naměřené a požadované vstupní hodnoty (tím je zajištěna základní zpětná vazba). Konstanta "I" říká, jak silně bude výstup reagovat na součet odchylek naměřené hodnoty od požadované (tím dokáže lépe dorovnat obě hodnoty [než to dokáže samotná P složka regulátoru]). Konstanta "D" říká, jak silně bude výstup reagovat na rychlost změn rozdílu naměřené a požadované hodnoty (tím omezuje překmity regulátoru).

Ty P, I, D konstanty neodpovídají přímo nějaké "snadno měřitelné vlastnosti" robota (třeba výšce), ale musí odpovídat "dynamice chování robota" (a to je věc, která se určuje dost obtížně, takže proto je snazší určit hodnoty P, I, D "zkusmo" [začít s nějakými hodnotami a pak je "ladit" buď ručně, nebo i automaticky]).

P.S.: A Juro, prosím, používej raději slovo "tilt" (anglicky "náklon") místo opakování slova "tild" (které v angličtině nic neznamená).
JuraS.
Příspěvky: 318
Registrován: 28 led 2015, 16:06

Re: Balancující robot

Příspěvek od JuraS. »

Ok, díky. nicméně nechápu co za hodnoty se musí do P, I, D zapisovat. je to 154734587126478541644825128 a nebo 0,0000000000000005 ? jestli to má být náhoda tak tam hodím výstup z generování náhodného čísla a bude to. Osobně mi straší v hlavě jeden článek co mám vytištěný kde byl balancující robot popsán hromadou písmen takže každá věc něco znamnenala..i vzdálenost mezi koly robota, tloušťka pneumatiky apod. takže je možné, protože je PID proces tak obecný, že jsem možná narazil na práci která ten PID proces pro balancování konkretizuje, respektive těm hodnotám v PID vzorci dáví víc konkrétnější význam...teď o víkendu mám našlápnutý čas tak se na to podívám příští týden.
AlesH
Příspěvky: 323
Registrován: 25 úno 2013, 09:18

Re: Balancující robot

Příspěvek od AlesH »

Ty P, I, D konstanty by se určitě neměly nastavovat zcela náhodně. Ta čísla vyjadřují vlastně "zesílení" jednotlivých regulačních složek (rozdílových vstupních hodnot) směrem k výstupní hodnotě. Záleží tedy na tom, co a jak měříme (jaký je rozsah měřené hodnoty a rychlost vzorkování) i jak řídíme výstup (rozsah výstupní řídicí hodnoty). Na nastavení konstant PID regulátoru existují různé doporučené postupy (viz. např. http://valter.byl.cz/plynula-regulace-pid [a odkazy z té stránky] nebo http://automa.cz/download/au090054.pdf ), ale žádný není úplně univerzální a jednoznačný (protože vždy záleží i na dynamice řízeného systému [regulace teploty je mnohem pomalejší, než balancování robota a i u toho robota záleží např. na tom, jak vysoko má těžiště]).

Pro mne je nejpochopitelnější postup, kdy nejprve se nechají I a D složky nulové a nastaví se jen P složka (vznikne tzv. P regulátor). Tu se snažíme nastavit co největší (aby regulátor reagoval rychle a přesně). Takže např. pokud budeme chtít regulovat náklon robota a ten náklon budeme měřit ve stupních (v rozsahu -180°až +180°), a přitom regulačním výstupem bude požadovaná rychlost otáčení kol třeba v otáčkách za minutu (v rozsahu např. -200 rpm až +200 rpm), tak první "zkušební" hodnotu P můžeme určit např. úvahou, že chceme, aby třeba už při náklonu o 2° byla nastavena maximální rychlost otáčení kol (200 rpm). Protože vzorec P regulátoru se zjednodušil na "výstup = P * vstupní_odchylka", tak z toho P = výstup / vstupní_odchylka = 200 / 2 = 100. pro výše uvedené předpoklady tedy můžeme začít s konstantou P = 100 (a přitom I = 0 a D = 0). To můžeme zkusit v reálu na robotovi. Velmi pravděpodobně se soustava při takto velkém P zesílení rozkmitá. To kmitání se pak můžeme pokusit utlumit snižováním hodnoty P, nebo postupným zvyšováním zesílení D derivační složky regulátoru (z původního D = 0 na D > 0) [tím by vznikl PD regulátor]. Integrační "I" konstanta bývá malá a používá se jen tehdy, pokud je nutné, aby regulovaná hodnota byla udržována přesná i za různých vnějších podmínek (například aby regulovaná dopředná rychlost robota byla přesně stejná na rovině, do kopce i z kopce).

Lépe to popsat nedokážu. Pokud někde najdeš úplně jasný a jednoduchý popis, jak určit nastavení hodnot PID regulátoru, tak sem o tom rozhodně dej vědět.
JuraS.
Příspěvky: 318
Registrován: 28 led 2015, 16:06

Re: Balancující robot

Příspěvek od JuraS. »

Díky ale teď mám úplně jiné problémy...koupili jsme novu sedačku. nevešla se do dveří do obýváku a jak jsem ji tam cpali tak se roztrhla kůže..asi metr...grrrr. tak se musí udělat díra...ten nepořádek si představí málokdo...a to jsme měli jet na dovolenou si odpočinout...tak ji strávíme tím, že budeme opravovat byt...
Přílohy
zedník dělá díru do bytu....
zedník dělá díru do bytu....
Uživatelský avatar
Dex
Administrátor
Příspěvky: 1519
Registrován: 16 úno 2013, 14:26

Re: Balancující robot

Příspěvek od Dex »

A tohle souvisí s roboty jak?! :roll:
"all your robots are belong to us"
robodoupe.cz
JuraS.
Příspěvky: 318
Registrován: 28 led 2015, 16:06

Re: Balancující robot

Příspěvek od JuraS. »

Dex píše:A tohle souvisí s roboty jak?! :roll:
že se k tomu robotu teď nemám čas a musím dělat jiné věci....grrrr.
JuraS.
Příspěvky: 318
Registrován: 28 led 2015, 16:06

Re: Balancující robot

Příspěvek od JuraS. »

Pošta dodala štít pro dva motory. Parádně zabaleno (až moc pevným igelitem), perfektní krabička, vyplněna, faktura, perfektně zabaleno. Pod lupou jsem hledal chyby. Nejsou. Nějaké info pro zájemce. Nechápu to, mohli to zabalit do jedné krabičky a poslat naráz a ne dvěma různými letadly dva dny za sebou. Tak zítra pošta dodá ten štít pro RPi. Nicméně teď mám dvě rozjeté akce tak se k testování dostanu jen mimochodem. A asi si testovačně vyrobím dvě kola z něčeho...
Otázka : pochopíte někdo jak zapojit (jakým směrem) do tohoto konektoru konektor z motoru ? Případně co se stane když ho otočím a pustím do motoru proud. Konektor od motoru má barvu drátů : modrá, červená, zelená, černá.
jova
Příspěvky: 361
Registrován: 16 pro 2013, 11:40

Re: Balancující robot

Příspěvek od jova »

JuraS. píše:Otázka : pochopíte někdo jak zapojit (jakým směrem) do tohoto konektoru konektor z motoru ? Případně co se stane když ho otočím a pustím do motoru proud. Konektor od motoru má barvu drátů : modrá, červená, zelená, černá.
Odměř si cívky ohmetrem a jednu připoj na 1AB a druhou na 2AB. Když prohodíš konce cívek, nebo vinutí mezi sebou, bude se to točit opačným směrem.
JuraS.
Příspěvky: 318
Registrován: 28 led 2015, 16:06

Re: Balancující robot

Příspěvek od JuraS. »

Přišel mi poštou arduino shield pro raspberry. Nějak jsem přechválil číňany. V krabičce krabička obložená polystyrenem ale v ní nacpaný modul, USB kablík a baterka. Nechápu jak baterka prošla celnicí a kontrolou na letišti. Ale ještě víc nechápu, že arduino shield nebyl v antistatickém obalu ale úplně naholo. Hned jsem to zapojil a začal si hrát. Taky mi přišel 50 cm kabel na kameru. Zapojení a protažení v pořádku (neláme se). Taky došli heat sinky, čili chladiče na A4988. Měli být i s pastou tedy lepidlem, Asi jsem vyhodil obálku předčasně ale žádné lepidlo jsem nenašel. Stejně chci dát na driver chladič uříznutý z můstků ze základní desky PC. Jen najít lepidlo co udrží 3cm vysoký chladič přilepený na ploše 3*3mm. Našel jsem lepidlo ale tak drahé, že se to ani nedá napsat.
Našel jsem popsaný PID proces kde jsou proměnné popsané. Ale ne všechny. Tak například : průměr kola, šířka pneumatiky, vzdálenost mezi koly, síla motoru, akcelerace motoru, hmotnost robota, těžiště robota, výška robota, výška od podložky umístnění gyra.
Jo a dnes přišly infra zářiče co se namontují na kameru aby viděla v úplné tmě. Bomba.
Odpovědět