Autonómne riadené autíčko pre autodráhu
27. Júl, 2009, Autor článku: Palkovič Lukáš, Elektrotechnika, Študentské práce
Ročník 2, číslo 7
Pridať príspevok
V tomto článku sa zaoberám problematikou autonómneho riadenia pre upravené autíčko používané v klasických autodráhach. Takéto autíčko musí byť schopné pohybovať sa po dráhe čo najrýchlejšie. V práci rozoberiem zákonitosti pohybu takéhoto autíčka, možnosť snímania signálu a jeho filtrovanie, možnosti predikcie dráhy a riadenia. Zároveň spomeniem súťaž Freescale Race Challenge 2009, ktorá bola mojou motiváciou pre napísanie tohto článku.
1. Úvod
V októbri 2009 vyhlásila firma Freescale súťaž Freescale Race Challenge 2009, ktorá bola určená pre študentov vybraných vysokých škôl v Českej Republike, na Slovensku a v Poľsku. Cieľom bolo vytvoriť auto s mikroprocesorovým riadením, ktoré je schopné pohybovať sa po dráhe samostatne bez manuálneho ovládania, pričom musí ísť čo najrýchlejšie.
Osobne som sa tiež na súťaži zúčastnil ako člen týmu zloženého z nasledujúcich študentov FEI STU Bratislava: Bc. Lukáš Palkovič, Bc. Jozef Rodina, Bc. Jakub Vonkomer.
2. O súťaži
Súťaž bola usporiadaná firmou Freescale s podporou firmy Faro – česká autodráha. Prihlásiť sa mohlo maximálne 50 študentov, resp. týmov z univerzít v Brne, Ostrave, Žiline a Krakove. Neskôr pribudla aj Bratislava. Súťažiaci boli materiálne podporení autíčkom na autodráhu Faro FAVORIT a balíčkom zloženým z CD disku a kľúčových súčiastok na stavbu zabudovanej elektroniky. Jednalo sa o dosku plošných spojov, 8-bitový mikrokontrolér S08JM32, akcelerometer MMA7361, integrovaný H-most MCZ33887, EEPROM pamäť 24AA512 a niekoľko ďalších súčiastok. Na disku bola dokumentácia k odporúčanému hardvéru, návod na stavbu a oživenie a softvérové prostredie pre vývoj. Takisto bol k dispozícii program pre mikrokontrolér, schopný plniť základné funkcie autíčka. Na súťažiacich bolo upraviť program, a prípadne hardvér tak, aby spĺňal ciele súťaže.
Univerzity dostali k dispozícii autodráhu, napájací zdroj, časomieru, optické snímače prejazdu na dráhu a zodpovedajúce softvérové vybavenie pre PC.
Súťaž prebieha v dvoch kolách. Prvé kolo prebehlo na jednotlivých univerzitách v období 23. až 25. marca 2009. Účastníci z Bratislavy súperili s účastníkmi zo Žiliny už v prvom kole na pôde Žilinskej univerzity. Traja najlepší z tohto kola postúpili do finálového kola, ktoré sa bude konať v piatok 24. 4. 2009 v priestoroch firmy Freescale v Rožnove pod Radhoštěm. Hlavnou cenou je 600€.
Obr.1 Autodráha použitá na univerzitnom finále na Žilinskej univerzite
Pravidlá súťaže:
- trať je pre auto dopredu neznáma,
- dĺžka trate je z rozsahu 10 až 16m,
- trať obsahuje len 3 druhy dielov: rovinka + zatáčka s dvoma možnými polomermi,
- trať neobsahuje prekríženia,
- autíčko prejde najprv 10 okruhov po pravej a potom 10 okruhov po ľavej dráhe spolu za čo najkratší čas. Za každé nedokončené kolo sa prirátava penále 60s,
- prítlačné magnety sú zakázané,
- na aute je k dispozícii jeden prepínač s ľubovoľným využitím,
- pred závodom treba povinne použiť nové pneumatiky,
- sú možné dodatočné úpravy, najmä elektroniky, avšak žiadna časť nesmie mechanicky presahovať rozmery vozidla.
2. Fyzikálna podstata pohybu autíčka
Autíčko sa pohybuje po dráhe tangenciálnou rýchlosťou v. V prípade zatáčky možno pohyb charakterizovať ako pohyb po kružnici s polomerom rovnajúcom sa polomeru zatáčky R. Na autíčko pôsobí odstredivá sila
(1) |
kde m je hmotnosť autíčka.
V pohybe do zákruty musí byť trecia sila udržiavajúca autíčko na dráhe väčšia ako sila odstredivá, čiže treciu Ftr silu vyjadríme
(2) |
kde f je súčiniteľ trenia závislý od materiálu kolies a materiálu podložky. Fn je sila ktorou autíčko pôsobí kolmo na podložku.
Aby sa autíčko udržalo na dráhe, musí byť trecia sila väčšia ako odstredivá.
(3) |
To je viac menej základná podmienka, ktorú treba pri riadení dodržať.
Priame meranie tejto sily však nie je v tomto prípade možné, preto využijeme priamu úmernosť medzi odstredivým zrýchlením a odstredivou silou.
(4) |
Čiže platí:
(5) |
Toto zrýchlenie už dokážeme merať napr. pomocou integrovaného MEMS akcelerometra umiestneného v autíčku.
Obr.2 Rýchlosť a odstredivé zrýchlenie pri pohybe po kružnici
3. Riadenie
Z jednoduchej fyzikálnej analýzy vyplýva, že je treba vyvinúť čo najvyššiu rýchlosť, avšak takú, aby autíčko nevyletelo, teda neporušilo vzťah (3). Čiže odstredivú silu (zrýchlenie) udržiavať pod určitou kritickou hodnotou. V prípade jazdy po rovinke je možné autíčku udeliť maximálnu možnú rýchlosť, pretože sa neuplatní odstredivý efekt. Avšak pri prejazde zákrutou treba rýchlosť znížiť tak, aby sa odstredivá sila udržala dostatočne malá. To si vyžaduje mať bočné zrýchlenie v reálnom čase k dispozícii. V lepšom prípade dokonca v predstihu. Tým narážame na 2 základné problémy:
- informácia o aktuálnom zrýchlení,
- predikcia dráhy.
Spracovanie signálu z akcelerometra
Použitým akcelerometrom je možné merať zrýchlenie v troch osiach: zvislej (binormálovej) – Z, tangenciálnej – Y a normálovej – X.
Nás zaujíma najmä odstredivé zrýchlenie. Na to použijeme meranie v osi X. Pre tangenciálne zrýchlenie os Y. To sa hodí na určovanie rýchlosti autíčka (pomocou integrácie). Zrýchlenie v osi Z možno využiť na zisťovanie náklonu.
Aktuálny signál z akcelerometra je však pre priame použitie absolútne nevhodný. A to z viacerých dôvodov. Prvým je drift akcelerometra. Aj v neutrálnej polohe, keď na akcelerometer nepôsobí žiadne zrýchlenie, sa z akcelerometra vyčíta nejaká malá hodnota. Vykompenzovať sa dá ľahko odčítaním tejto hodnoty od nameraného signálu. Zanedbanie môže mať nepríjemné následky najmä čo sa týka určovania rýchlosti integrovaním zrýchlenia – integrovaním konštantnej hodnoty neustále narastá výsledok. To znehodnotí celé meranie rýchlosti.
Drift úzko súvisí s sklonom autíčka. Zem pôsobí na autíčko gravitatačnou silou, čo spôsobuje konštantné zrýchlenie v zvislom smere. Keďže dráha nie je úplne vodorovná, ani umiestnenie akcelerometra v autíčku a tak isto autíčka na dráhe nie je ideálne, naklonenie autíčka spôsobí to, že snímame v každej osi aj priemet gravitačného zrýchlenia do osí akcelerometra. Následky to má podobné ako drift, ale teraz už nie je táto hodnota konštanta, ale sa mení počas pohybu autíčka po dráhe. Toto „falošné zrýchlenie je možné kompenzovať výpočtom sklonu najmä zo Z osi, na ktorú nepôsobí žiadne iné ako gravitačné zrýchlenie, avšak to už sa jedná o pomerne komplexný problém.
Najzávažnejšia úloha, ktorú treba riešiť je zašumený signál na výstupe akcelerometra. Šum je tvorený najmä mechanickými vibráciami spôsobenými jednosmerným motorom. To si jednoznačne vyžaduje filtrovanie nameranej hodnoty.
Na ukážku predkladám merania z autíčka, ktoré sme mali k dispozícii. Na obr. 3. sú merania vo všetkých troch osiach pri pohybe autíčka rukou. Signál je pomerne hladký, bez výrazného zašumenia, a bol by použiteľný aj pre účely riadenia.
Obr.3 Zosnímaný signál z akcelerometra pri manuálnom pohybe s autíčkom a so zastaveným motorom. Meranie v osi Y je vrchná krivka.
No na obr. 4. vidíme graf zrýchlenia v osi X pri pohybe konštantnou rýchlosťou po autodráhe. Je zrejmé, že signál je veľmi zašumený, aktuálne vzorky vôbec nereprezentujú užitočný signál a pre riadenie sú úplne nevhodné. Z toho vyplýva nutnosť signál filtrovať. Pre realizáciu sme zvolili filter realizovaný sústavou prvého rádu. Experimentálne sme nastavovali jeho konštanty, pričom najlepšie výsledky dával filter
(6) |
Je realizovaný diskrétne, pričom perióda vzorkovania je asi T = 2ms. Časová konštanta tohto filtra je asi 0,2s. Z toho vyplýva ďalšia skutočnosť. Signál s takým oneskorením je nepoužiteľný pre riadenie nedostatočný. Kým sa vjazd do zatáčky prejaví na tomto signáli, autíčko je už dávno z dráhy vonku. Z toho vyplýva potreba dodatočnej – doprednej informácie o priebehu zrýchlenia alebo aspoň o tvare dráhy.
Obr.4 Nefiltrovaný signál zrýchlenia v X osi pri obiehaní autíčka po oválnej dráhe konštantnou rýchlosťou
Obr.5 Vyfiltrovaný signál zrýchlenia v X osi pri obiehaní autíčka po oválnej dráhe konštantnou rýchlosťou, Použitý filter G(z) = 0,01 / (z – 0,99) s periódou vzorkovania Tvz = 2ms
Predikcia dráhy
Pre autíčko je vhodné, aby išlo po rovinkách maximálnou rýchlosťou, pričom v zákrutách je rýchlosť obmedzená povoleným odstredivým zrýchlením. Pritom ak autíčko vbehne do zákruty príliš rýchlo, už je neskoro spomaľovať. Preto je potrebné znížiť rýchlosť už v dostatočnom predstihu pred zatáčkou.
Ako to dosiahnuť? Možností je samozrejme viacero. Pouvažujme nad tým, ako to robí človek pri manuálnom riadení. Ten má k dispozícii vizuálnu informáciu o dráhe. Ak zhodnotí, že sa blíži zatáčka, spomalí. Tento prístup je takisto použiteľný aj v prípade autonómneho autíčka. Do autíčka je treba umiestniť kameru, ktorú však musíme zabudovať do vnútra autíčka. Na to už treba drahšiu – miniatúrnu verziu. Ďalšou úlohou je analýzaobrazového signálu. Vzhľadom na rýchlosť autíčka rádovo v metroch za sekundu je potrebné vzorkovať rýchlosťou rádovo desiatky vzoriek za sekundu a zároveň z každej vzorky vyrátať charakter dráhy. To už ide o výpočtovo náročný problém. Napriek tomu by sa asi dal, vzhľadom na špecifické požiadavky, nájsť pomerne efektívny algoritmus.
V ďalšom je možné použiť mapovacie algoritmy. Tieto algoritmy sú založené na tom, že sa na základe prvého prejdeného okruhu dráhy vytvorí interná reprezentácia mapy. Ujdenej vzdialenosti sa priradí namerané zrýchlenie. V ďalších okruhoch sa už používa maximálna možná rýchlosť určená na základe informácie z mapy. Treba na to na pomery jednočipových mikrokontrolérov relatívne veľkú pamäť, čiže minimálne externú EEPROM. Na toto je dodávaná platforma aj prispôsobená. Zároveň je však treba ošetriť možné výpadky napájania – aby v prípade straty kontaktu s dráhou nezačalo nové mapovanie a nestratila sa
informácia o pozícii.
Veľmi dôležitou podúlohou je určenie prejdenia prvého okruhu, aby algoritmus potom vedel, v ktorej časti dráhy sa nachádza. To sa dá vo všeobecnosti robiť dvoma spôsobmi:
- signálovou analýzou,
- pomocou dodatočnej informácie.
Dodatočnou informáciou môže byť nejaká značka na dráhe, pomocou ktorej sa dá určiť začiatok. Takáto značka môže byť prirodzená alebo umelá, pridaná účelovo. Na detekciu značky môže byť potrebný ďalší senzor.
Značkou môže byť napr. magnet umiestnený pri dráhe. Jeho pole by sa dalo pri prejazde detegovať. Alebo optické značky na dráhe. Takéto značenie však dovolené nie je a preto by sa mohlo využiť niečo, čo už na dráhe je.
Napríklad sa dá využiť aj optický zariadenie časomiery, ak vieme ako je optika umiestnená. Alebo by sa dalo využiť výpadku napájania v prípade, že by bolo sa dráhy križovali (toto ale nie je náš prípad). Tu však nastáva problém detekcie správnej značky. Rovnakých snímačov pre časomieru môže byť na dráhe viacero. Pri sledovaní výpadku napájania je zasa treba mať na pamäti to, že kontakt s koľajnicou môže autíčko stratiť pomerne často aj na nekríženej dráhe. Do tejto skupiny metód môžeme zaradiť aj informáciu o dĺžke dráhy.
V prípade, že žiadna dodatočná informácia k dispozícii nie je, je možné využiť to, že nameraný priebeh by mal byt podobný v každom okruhu. Preto treba porovnávať krivku zo začiatku meranie s aktuálnou krivkou. To sa dá povedzme pomocou korelačnej alebo regresnej analýzy. Konkrétne sa môže využiť metóda najmenších štvorcov alebo hľadanie extrému na autokorelačnej funkcii. Avšak tieto metódy majú pre naše pomery pomerne vysokú výpočtovú náročnosť. Preto treba hľadať jednoduchšie spôsoby ako nájsť zhodu. Pomôcť môže predpokladané rozmedzie dĺžky dráhy.
Optický senzor
Diametrálne iným prístupom je použitie optického snímača podobne ako v optických myšiach. Tento by sa umiestnil na spodok autíčka a sledoval by jeho pohyb. Taký snímač deteguje zmenu polohy v dvoch smeroch. V tangenciálnom a normálovom. Tangenciálny smer môže slúžiť na reguláciu rýchlosti. Pohyb po normále môže slúžiť na detekciu šmyku zadných kolies. Predpokladám, že regulátor rýchlosti s dobrou dynamikou dokáže autíčko dostatočne ubrzdiť, aby v šmyku už nepokračovalo.
Riadenie rýchlosti
Jednosmerný motor na napájacie napätie 12V je riadený PWM moduláciou. V dodanom softvéri sa zadáva strieda pre túto moduláciu. Rýchlosť potom záleží na dynamike motora a záťaži. Pre dobrú dynamiku autíčka je vhodné regulovať túto rýchlosť. Avšak základným predpokladom tejto rýchlosti je jej korektné meranie. Teda pre náš prípad merania pomocou akcelerometra ošetrené od šumov, driftu a gravitačnej zložky. Ak sa toto nezvládne, treba sa uspokojiť len s ovládaním pomocou, čiže pre rýchlosť neexistuje regulačná slučka, napätie na motor sa nastavuje priamo. Integrovaniu zrýchlenia sa môžeme vyhnúť použitím ďalšieho snímača.
V prípade regulácie rýchlosti je vhodné využiť klasické regulačné štruktúry riadenia rýchlosti ako PID regulátor alebo IP algoritmus s určovaním koeficientov pomocou metódy pole placement.
Vzhľadom na to, že je vhodné na rovinkách často krát používať maximálne napätie a tým pádom regulátor pracuje na obmedzeniach, stojí za to zvážiť nelineárne PID regulátory navrhnuté pre prácu na obmedzeniach. Kritériom pre návrh regulátora je v prvom rade rýchlosť, pričom kmitavosť ani presnosť v ustálených stavoch nie sú podstatné.
Pre zvýšenie rýchlosti na rovinkách a zlepšenie dynamiky je možné použiť zvyšujúci DC-DC menič napájacieho napätia pre H-mostík napr. na 15V a kľudne zvýšiť napätie na motore. Treba si však dať pozor, aby ho preťaženie nezničilo.
Generovanie želanej rýchlosti
Dôležitým algoritmom je generovanie želanej rýchlosti. Najjednoduchšou možnosťou je nastaviť takú hodnotu rýchlosti, ktorá je bezpečná na celej dráhe.
Ak máme k dispozíciu predikciu dráhy, môžeme použiť nasledovnú metódu. Vzhľadom na skutočnosť, že sa na dráhe vyskytujú len rovinky a 2 polomery zatáčok, je možné z predikcie dráhy určiť o ktorý typ sa jedná a podľa toho v diskrétnych hodnotách upraviť rýchlosť, to znamené každému polomeru priradíme vlastnú hodnotu rýchlosti. Na rovine bude táto rýchlosť maximálna.
V prípade, že nie je k dispozícii mapovanie dráhy je situácia komplikovanejšia. Rýchlosť treba udržiavať na takej hodnote, aby sa z nej dalo po zdetegovaní zatáčky spomaliť na úroveň, pri ktorej autíčko nevyletí. Napr. určíme maximálnu rýchlosť vmax na rovine a v zátačke túto zmenšíme priamo úmerne absolútnej hodnote zrýchlenia.
(7) |
Kde vzel je želaná rýchlosť. k je konštanta úmernosti ak je hodnota vyjadrujúca mŕtve pásmo okolo 0, kedy dráhu považujeme za rovnú. Obe konštanty je vhodné voliť empiricky.
Nevýhodou je to, že filter oneskoruje signál. V praxi toto oneskorenie znamená, že auto prejde rádovo až desiatky centimetrov, a na zatáčku algoritmus jednoducho nestihne včas zareagovať. Preto je treba algoritmus citlivo vyladiť na reálnej dráhe.
4. Záver
Táto práca popisuje úlohy, s ktorými sa súťažiaci prihlásený na Freescale Race Challenge 2009 stretne a načrtáva ich riešenie. Niektoré informácie sú podložené praktickými skúsenosťami získanými počas prípravy nášho týmu na súťaž.
Každopádne je súťaž pre študentov dobrou možnosťou na otestovanie si schopností pracovať na úlohe z praktického života, kombinujúcej viacero predmetov ako je programovanie, teória riadenia, metodika merania či analýza signálov.
5. Literatúra
- Brejl, M.: Freescale Race Challenge 2009 – Soutěž samořídících autíček na autodráhu, [online] Publikované 5.11.2008 [citované 19.4.2009], Dostupné z http://hw.cz/FRC2009
- Brejl, M.: Freescale Race Challenge 2009 – Závody na univerzitách, [online] Publikované 5.4.2009 [citované 19.4.2009], Dostupné z http://hw.cz/novinky/art2813-freescale-racechallenge-2009-zavody-na-univerzitach.html
- Katalógový list k obvodu VT5366, ST Microelectronic, 2006, Dostupné z http://www.dcdivideo.com/stonline/products/literature/ds/12945/vt5366.pdf
Článok vznikol na Fakulte elektrotechniky a informatiky STU, Ilkovičova 3, 812 19 Bratislava.