Nárazník - nenárazník

24. února 2013 v 3:58 | Petr |  Roboti
Podle jisté pravidelnosti mého blogu by mohli moji čtenářové mylně soudit, že píšu tak lehce "jako když slípka snáší vejce". Opak je pravdou - krátká, ale intenzivní období, kdy "se píše" jsou střídána dlouhými a trudnými obdobími kdy "se přemýšlí" o čem se bude psát aby se blog nemusel s ostudou ukončit.
Takže na přelomu roku jsem si vyměnil pár mailů s jedním z nejgeniálnějších z nás - Martinem Lockerem (jeho vítězství na Eurobotu 2005 a opakovaná vítězství na Robotour vejdou do dějin). Otázka zněla: "Martine o čem mám psát?" A Martin, který stejně jako já píše nerad mi navrhl - napiš o nárazníku.
Tím měl na mysli ne robota obaleného gumou, ale nárazník jako mechanický kontakt, který po nárazu na překážku sepne a procesor robota na to "nějak" reaguje....
Martin hned uvedl i příklad - děcka někde ma Istrobotu měla robota bez nárazníku, ten narazil do stěny bludiště, hrabal kolečkama a než uplynul timeout - shořely mu H-můstky.
Problém psaní o nárazníku je v tom, že žádný můj robot nikdy nárazník neměl, protože nárazník nepotřeboval, takže ač je nárazník de facto mechanický kontakt alias tlačítko - tak tím, že jsem jej nikdy nepoužil - nemůžu poutavě popisovat "v čem je pes zakopaný".

Nárazník totiž nějak nezapadá do mé koncepce robota - co když robot narazí ze strany, kterou nárazník nepokryje, nebo co když se mu zablokuje kolečko, třeba protože se zamotá do koberce a H-můstky shoří i tak ? Takže jako správný vidlák, kterém u je i mikrospínače za 4.60 kč líto už léta letoucí používám jinou techniku jak určit jestli robot narazil nebo ne.

Nějaká idea ? Měřít proud motory ? Ale fuj - tačítko za 4.60 nahradit elektronikou za 2x tolik a ještě to muset naroutovat na plošný spoj. Nic takového. Martinovi, který se třese nad tím jak to dělám (nebo se chechtá, že on to objevil dávno přede mnou) prozradím rovnou konec - sleduju poměr mezi otáčkami a plněním PWM.
No a my ostatní to musíme probrat polopatisticky. Protože zbytek článku se bude zabývat jemnostmi regulace otáček koleček - pro ty, kdo v tom plavou - nebuďte líní a tady si přečtěte jak to funguje. Pro ty, kteří jsou opravdu líní tak opakování jedním vzorcem:

Chyba_rychlosti = Nastavená - současná rychlost
Suma_chyb = Chyba_rychlosti + Suma_chyb
Rozdíl_rychlosti = Současná - minulá rychost
Proud_do_motoru = P * Chyba_rychlosti + I * Suma_chyb + D * Rozdíl_rychlosti

kde P, I a D jsou Proporcionální , Integrační a Derivační koeficient regulace - jestli jste z toho jeleni - opět vyzývám - čtěte zde.
A co je teda to PWM ? Protože regulovat Proud do motoru analogově by vedlo k velkým ztrátám na regulačních tranzistorech řeší se to tak, že se do motoru chvíli pouští plné napětí baterky a chvíli zase nic - tomu se říká Pulse Width Modulation alias pulsně šířková modulace a poměr Vypnuto/zapnuto se nazývá Plnění PWM.

Tak a teď konečně "vo co go"! Představte si že si počítáte dlouhodobý průměr plnění PWM a víte, že pro určitou rychlost, třeba 1m/sec je plnění PWM 33%. Váš robot si jede jede a najednou zjistí, že má nastaveno 1m/sec, ve skutečnosti jede 0.1 m/sec a plnění PWM má 90% - co to znamená ? Že by se dal takto poznat náraz i bez nárazníku a dokonce i bez měření proudu ? Ano přesně tak to je - moji roboti si vedou dlouhodobý "průměr poměru" PWM/rychlost. Pokud tento poměr na určitou relativně krátkou dobu (0.2 - 0.5 sekundy) vzestoupí nad nějaký (pokusy zjištěný) limit - robot ví, že se zasekl.

Jednoduché - laciné a navíc "správně vidlácké" protože nejlépe funguje součástka, "která tam není".
Před závěrem několik poznámek:
  • H-Můstek má být postaven tak, aby snesl zaseknutý motor libovolnou dobu, nebo aby se sám (hardwarově) vypnul - zejména u malých robotů, je spíš složité to udělat naopak, protože můstky - integrované obvody - většinou nějakou ochranu mají.
  • Poměr PWM / rychost se používá v PID regulaci otáček jako tzv. Feed Forward - otrocky přeloženo "předkrm" - jeho zastánci si myslí, že když rovnou nastaví obvyklé PWM pro danou rychlost - regulace se ustálí rychleji - je to pravda ale jedná se o milisekundy - což u normálních rychlostí robotů nehraje roli.
  • Moje metoda klade důraz na spolehlivé měření otáček - jestli vám toto dokonale nefunguje - je pruser o to větší než kdybyste měli skutečný nárazník.
  • Pochopitelně, že kolik regulujete motorků tolik sledujete poměrů PWM/rychlost, protože každý motorek se může zaseknout.
  • Někdy stačí i jednodušší varianta - kdy sledujete jak dlouho je PWM nad nějakým limitem - třeba 80%. Je potřeba trochu experimentovat, protože tento způsob hlídání motorků závisí na konstrukci motorků, robota, jeho váze, rychlosti rozjezdů a brždění a i na terénu, ve kterém jezdí.
Ti, kteří nepochopili, ať napíší do komentáře - třeba to proberu příště - z jiné strany.

Zbývá už jenom tradiční rada pro blondýny, co dočetly až sem: kdysi slovo "nárazník" v souvislosti se ženou - bylo na hranici urážky - při dnes obvyklých molitanem mohutně vycpaných podprsenách, se raději moc nerozčilujte, a buďte rády, že vám ty "plné výstřihy" ješté pořád věříme.
 

1 člověk ohodnotil tento článek.

Komentáře

1 Karel Karel | 25. února 2013 v 6:57

Jestli nevíš o čem psát, napiš článek, kde bereš tolik času na roboty a psaní blogu.

2 petr-kubac petr-kubac | 25. února 2013 v 18:13

[1]: Starecka nespavost - vzbudim se ve 3.30 a uz nezaberu

Komentáře jsou uzavřeny.


Aktuální články

Reklama