ROBOTHADVISELÉS 7. TUDOMÁNYOS SZAKMAI KONFERENCIA
2007. november 27.
KÜLÖNSZÁM |
Turóczi Antal:
NÉGYROTOROS PILÓTA NÉLKÜLI HELIKOPTER
FEDÉLZETI ELEKTRONIKAI RENDSZERE
Bevezetés
Kísérleti négyrotoros pilótanélküli helikopterem megépítéséhez egy a kereskedelmi forgalomban is kapható, viszonylag olcsó rádió távirányítású játékrepülő modellből indultam ki (1. ábra). Ez azért tűnt jó kiindulási pontnak, mert ez bizonyítottan működő mechanikai konstrukció, így nem kellett egyedi sárkányszerkezetet építenem, és az esetleges alkatrészbeszerzés is egyszerűbbnek látszott. A saját fedélzeti repülésszabályzó elektronika megépítése előtt azonban, megvizsgáltam néhány már létező, a gyakorlatban is kipróbált UAV robotpilóta felépítését és tulajdonságát.
Létező UAV robotpilóta rendszerek A kereskedelmi forgalomban már jó ideje hozzáférhetők hobbi és kutatási célokra szánt robotpilóta rendszerek. Saját kísérleti rendszerem optimális kialakításához segítséget nyújthat a létező, és gyakorlatban is kipróbált eszközök felépítésének és minőségi jellemzőinek vizsgálata. A következő fejezetekben két ismert gyártó termékét vizsgálom meg. A Micropilot MP2028g az egyik legismertebb kereskedelmi forgalomban is beszerezhető, kisméretű, pilóta nélküli repülőgépekbe szerelhető robotpilóta rendszer (2. ábra). Sikerének legfőbb oka, hogy a gyártő szinte minden, az automatikus repüléshez szükséges hardver elemet összeintegrált egyetlen kis tömegű (28g) és méretű (40 x 100 mm) kártyán. A PC-s földi irányító rendszer lehetővé teszi a fedélzeti egység állapotának valós idejű monitorozását, a repülésszabályozó paraméterek adott géphez való hangolását, valamint a repülési útvonal megtervezését és letöltését. A legfontosabb rendszerelemek [1]:
Cloud Cap PiccoloA Cloud Cap Technology Piccolo elnevezésű automatikus repülésirányító rendszerét kisméretű pilóta nélküli légi járművekhez ajánlja. A teljes rendszer a fedélzeti hardver és szoftver mellett egy PC-s földi állomást valamint szimulációs és fejlesztő környezetet is tartalmaz. Az egység legfontosabb jellemzői: nagy számítási teljesítmény, kis méret (122 x 61 x 38 mm), kis tömeg (90g), teljesen automata és félautomata üzemmódok, hardver-bővítési lehetőség, szoftvertámogatás, könnyen szerelhető kivitel. A fedélzeti egység felépítése a 3. ábrán látható. Ez alapján a fontosabb részegységek a következők [2]:
A kereskedelmi forgalomban kapható, viszonylag olcsó robotpilóta rendszerek szinte mindegyikére jellemző, hogy csatlakozó felületeik a rádió távirányítású (RC4) játékrepülőknél használt szenzorokhoz és szervomotorokhoz illeszkednek. Ennek oka, hogy a megcélzott vevőkör számára, akik főként lelkes modellezők vagy oktatási intézmények, ezek a repülő eszközök a leginkább hozzáférhetők. A szabványos csatlakozó felületnek köszönhetően ezek a robotpilóták könnyen beépíthetők többféle repülő eszközbe is, a szabályzó paraméterek adott konstrukcióhoz hangolása azonban eléggé nehézkes és időigényes feladat. További problémát okozhat az is, ha RC csatlakozó felülettel nem rendelkező beavatkozó szervet akarunk rendszerünkhöz illeszteni. Saját kísérleti rendszerem fedélzeti elektronikájának kiválasztásakor figyelembe kellett vennem azt is, hogy négyrotoros helikopterembe csak adott geometriai méretekkel rendelkező eszközt tudok beépíteni. Ezért saját fedélzeti elektronika tervezése és építése mellett döntöttem, kiindulási alapnak tekintve a létező robotpilótáknál látott megoldásokat. A következő fejezetekben kísérleti négyrotoros pilóta nélküli helikopterem robotpilóta rendszerének legfőbb építőelemeit mutatom be. SzenzorokA navigációs szenzorok a robotpilótánál hasonló funkciót töltenek be, mint az embernél az érzékszervei. Amikor az ember repülőgépet vezet, érzékszervei szolgáltatják a visszacsatoló jelet a jármű pillanatnyi állapotáról, segítségükkel határozzuk meg, hogyan kell mozgatnunk a gép kormányszerveit, ahhoz hogy az a repülési feladatnak megfelelően mozogjon. A hatásmechanizmus a robotpilótánál is hasonló [3]. Inerciális mérőegység (IMU5)Az inerciális navigációs berendezéseknél a pillanatnyi pozíciót, sebességet, és szögsebességet giroszkópok és gyorsulásmérők kimeneti jelének idő szerinti integrálásával kapjuk. Az első INS6 berendezések himbás rendszerűek voltak, de a karbantartás igényes mechanikai rendszerük és magas áruk miatt a szilárdtest giroszkópok megjelenése óta a modern repülő eszközökben szinte kizárólag strapdown (leszíjazott) INS rendszereket alkalmaznak. Ezekben a strapdown rendszerekben a szenzorok rögzített helyzetűek, vagyis együtt forognak a test koordináta rendszerrel. Valójában a mechanikus himbát itt matematikai számítások helyettesítik, vagyis a giroszkópok nem a mérőtengelyek stabilizálására szolgálnak, hanem a test koordinátarendszer szögelfordulásának mérésére. A szögelfordulásból a rendszer minden pillanatban "tudja" a mérőtengelyek orientációját. A robusztusság ára, hogy a gyorsulásmérő szenzoroknak néhányszor, a giroszkópoknak nagyságrendekkel nagyobb mérési dinamika tartománnyal és linearitással kell rendelkezniük ahhoz, hogy elérjék a himbás rendszerek pontosságát [3].
Saját kísérleti rendszerem számára a holland Xsens Technologies B.V. cég MTi inerciális navigációs szenzormodulját választottam (4. ábra). Választásom legfőbb okai:
A modul a benne lévő giroszkópok, gyorsulásmérők, és mágneses szenzorok által szolgáltatott analóg jelekből számolja ki a navigációs adatokat. A jelfeldolgozó processzorban megvalósított szenzorfúziós algoritmus lehetővé teszi, hogy a nyers szenzoradatoknál lényegesen pontosabb mérési eredményeket kapjunk [4]. Ultrahangos magasságmérőUltrahangos magasságmérő segítségével a helikopter földfelszín feletti pillanatnyi magasságát tudjuk meghatározni. Működési elve a következő: Az adó egy rövid hanghullámot bocsát ki, amely a földfelszínről visszaverődve az adó mellett elhelyezkedő vevőbe jut (5. ábra). A jel kibocsátása és vevőbe érkezése között eltelt idő egyenesen arányos az adó földfelszíntől való távolságának kétszeresével. Az arányszám a hang terjedési sebessége [5].
Távirányítás, földi lépcsőTávirányításTávirányítási lehetőségre a helikopter kézi vagy félautomata repülési üzemmódjainál lehet szükség. A kézi üzemmód nem jelenti feltétlenül azt, hogy repülésszabályzó elektronika nem avatkozik be aktívan a repülés stabilizálásába. A rotorok pusztán kézi fordulatszám szabályozásával ugyanis nagyon nehéz lenne irányítani a gépet. Inkább arról van szó, hogy a fedélzeti elektronika nem előre leprogramozott útvonal alapján, hanem a pilóta kormánymozdulatait követve irányítja repülést. Ilyenkor ugyan a földi pilóta határozza meg a helikopter mozgásának irányát, a stabil repülésről azonban a robotpilóta gondoskodik. A távirányítást egy 9 csatornás Futaba FF9 távirányító pult és hozzá tartozó vevő egység segítségével valósítottam meg (6. ábra), mely igen rugalmasan programozható. Az egyes csatornák hozzárendelhetők az irányító karokhoz vagy 2 és 3 állású kapcsolókhoz. A vevőből érkező, impulzus szélesség modulációval kódolt vezérlő információ a központi processzor eCAP bemenetére kerül (lásd 2.4.3.). Ez a periféria alkalmas impulzushossz mérésre, így a vezérlő információ az átalakítás után a repülésszabályzóhoz már egyszerű számértékként fog megérkezni. A szabványos RC eszközöknél az impulzusok szélessége 1 és 2ms között változhat. Ezek az értékek a maximálisan kitérített botkormány állapotokat jelentik. Az alapértelmezésben lineáris és szimmetrikus botkormány karakterisztika az adóban átprogramozható, így lehetőség van különböző érzékenységű, vagy éppen nemlineáris kormánytartományok definiálására [6].
Vezeték-nélküli kommunikációs csatornaA fedélzeti elektronika kézi üzemmódban a távirányító felől kap irányító jeleket. Olyan esetekben azonban, amikor a pilóta látótávolságon túl, fedélzeti kamera segítségével irányítja a járművet, vagy amikor automatikus útvonalrepülés a feladat, a gépnek a fedélzeti kamera képén kívül adatokat kell küldenie saját állapotáról is. Ezek az adatok pilótás repülésnél segítik a pilóta döntéseit, másrészt automatikus üzemmódban ellenőrizhető, hogy a repülés a megadott feltételek mellett zajlik-e, vagy éppen módosítani kell a repülési feladatot. A földi irányító központ és a fedélzeti elektronika közötti kétirányú vezeték-nélküli adatátvitelt két MaxStreem XBEE rádiómodul segítségével valósítottam meg (7. ábra). Választásom egyik oka az volt, hogy az eszköz igen kis méretekkel (24 x 33 x 8 mm) és tömeggel (8 g) rendelkezik, valamint további külső alkatrész nélkül csatlakoztatható szabványos UART interfészhez. Emellett akár 115200 baud/sec-os adatátviteli sebesség is elérhető 100m-es távolságon belül [7].
Földi irányító rendszerA földi lépcsőt egy Windows operációs rendszeren futó grafikus kezelői felülettel rendelkező programként valósítottam meg, mely - a PC soros portjára csatlakozó XBEE modulon keresztül - fogadja, feldolgozza és megjeleníti a helikopter felől érkező adatokat. Ilyenek a navigációs adatok, a rotorok szögsebessége, a motorok árama, a telep töltöttsége, a távirányítóból érkező adatok stb. Emellett lehetőség van parancsok és különböző paraméterek továbbítására a helikopter felé is. Így repülési útvonalat tölthetünk le, beavatkozhatunk az aktuális feladat végrehajtásába, vagy a tesztrepülések alatt megváltoztathatjuk a szabályozók paramétereit.
A programot C++ nyelven írtam Microsoft Visual Studio fejlesztői környezetben. Az elvégzendő feladatokat három nagyobb csoportra lehet osztani, melyeket három párhuzamos programszál hajt végre. Az első a főprogram, amely a felhasználói aktivitást figyeli és kezeli le, emellett előkészíti a bevitt, küldésre szánt adatokat. A második szál a PC soros portján keresztül a helikopterrel kommunikál, míg a harmadik a beérkezett adatok alapján, a képernyőn megjeleníti és frissíti a helikopter aktuális állapotát jellemző információkat. A program grafikus kezelői felülete a 8. ábrán látható. EnergiaellátásA rendszer energiaellátásához egy 3 cellás, 11,1V névleges feszültségű 1020mAh kapacitású lítium-polimer akkumulátort választottam (9. ábra). A tápforrással szemben támasztott legfőbb követelmények a minél kisebb tömeg/kapacitás és a nagy áramterhelhetőség voltak. A választott típus 20A-es maximális terhelést képes elviselni, ami a helikopter nagy áramigényű, gyors manővereinél is elegendő tartalékot jelent. Lítium-polimer akkumulátor használatakor, a hosszú élettartam biztosításához fontos, a telepfeszültség állandó monitorozása és a terhelés csökkentése vagy megszüntetése a meghibásodáshoz vezető feszültségérték elérése előtt. Ezt a feladatot a központi egységben valósítottam meg. A processzorban futó program az A/D átalakító által szolgáltatott mérési eredmények alapján minden szabályozási ciklusban ellenőrzi az akkumulátor feszültségét. Egy kritikus érték elérésekor a vezeték nélküli kommunikációs csatornán értesíti az irányító személyzetet, aki maga elvégezheti a kényszerleszállást, vagy megvárhatja, amíg a fedélzeti elektronika a repülési magasság fokozatos csökkentésével landol. Az ajánlások szerint, egy 3,7V-os cella biztonságosan 2,7V-ig terhelhető, ez után a telep tartós károsodást szenvedhet [8]. Ennek figyelembevételével a terhelés csökkentését 9V-os telepfeszültségnél határoztam meg.
Központi egységA központi egységben megvalósított digitális szabályzási körök mintavételi periódusát az inerciális mérőegység 100Hz-es mintavételi frekvenciájához igazítottam. Ez azt jeleni, hogy 10ms-os periódusidő alatt a következő feladatok mindegyikét el kell tudni végezni:
A fentiek alapján, valamint figyelembe véve, hogy az inerciális mérőegység lebegőpontos mérési eredményeket szolgáltat, a választandó központi egységnek az alábbi tulajdonságokkal kell rendelkeznie:
Mivel rendelkezem némi Texas Instruments DSP-s szoftver- és hardverfejlesztési tapasztalattal, kézenfekvőnek látszott, hogy ettől a gyártótól válasszak mikroprocesszort kísérleti rendszerem számára is. Tartalék erőforrások biztosítása érdekében úgy döntöttem, hogy a kiválasztott TMS320F28335 processzor mellé egy rugalmasan konfigurálható FPGA áramkört is elhelyezek, amely külső perifériaként fog funkcionálni. Ezek alapján felrajzoltam négyrotoros helikopterem fedélzeti elektronikai rendszerének egyszerűsített blokkvázlatát (10. ábra).
TMS320F28335 DSPFedélzeti elektronikai rendszerem központi egységének a Texas Instruments TMS320F28335 jelfeldolgozó processzorát választottam. A DSP - számítási képességeit és perifériakészletét tekintve - teljes egészében megfelel a központi egységgel szemben támasztott követelményeimnek. A fedélzeti elektronika és a programfejlesztés szempontjából legfontosabb tulajdonságai a következők:
A TMS320F28335 a TMS320C28x 32-bites fixpontos processzorcsaládra épült, kiegészítve egy IEEE-754 szabvány szerinti 32-bites lebegőpontos maggal és számos, a mikrokontrollerekben megszokott perifériával. A processzor belső buszrendszere Harvard architektúrájú, vagyis a program és adatmemória egymástól függetlenül érhető el, lehetővé téve az utasítás olvasás, adat olvasás és adat írás műveletek egyetlen ciklus alatt történő végrehajtását. A perifériák jeleit egy multiplexerrel irányíthatjuk az egyes I/O lábakhoz. Ez azt jelenti, hogy a felhasználó saját igényeinek megfelelően választhatja ki a processzor kivezetéseinek funkcionalitását. Egy I/O láb maximum három adott perifériához csatlakoztatható, vagy általános felhasználású I/O-ként használható. A belső oszcillátor és FLASH memória lehetővé teszi, hogy a TMS320F28335 egy külső kvarckristály és néhány passzív alkatrész hozzáadásával, egycsipes, stand-alone központi egységként üzemeljen. A processzor funkcionális blokkdiagramját a 11. ábra szemlélteti [9]. MotorvezérlésA fedélzeti automatika a helikopter rotorjait forgató DC motorok fordulatszámát csak közvetlen módon, a kapocsfeszültség változtatásával tudja szabályozni. Ezt a változó feszültség értéket digitális hajtásokban impulzusszélesség-modulációval szokták előállítani. A motor frekvenciával növekvő induktív reaktanciája miatt, az impulzusszélesség-modulációból adódó nagyfrekvenciás áramösszetevők amplitúdója jóval kisebb lesz, mint a moduláló jelből származó összetevőké. A motor tulajdonképpen aluláteresztő szűrőként viselkedik, ha kapocsfeszültséget tekintjük bemenő, a motoráramot pedig kimenő jelnek. A létrejövő nyomatékot tekintve a nagyfrekvenciás összetevők még kevésbé jelentkeznek a motor tengelyének nagy mechanikai időállandója miatt [10]. Az impulzusszélesség-modulált motorvezérlő jeleket a TMS320F28335 ePWM moduljainak segítségével állítom elő. Minden egyes modul két csatornát tartalmaz, melyeket egymástól függetlenül is lehet modulálni. A működési elvet a 12. ábra alapján követhetjük. Az ePWM egység TBCTR számlálója nulla és a kívánt felbontás által meghatározott maximális érték között föl-le számlál. A számláló értékét egy komparátor összehasonlítja a CA (CB) értékkel, mint moduláló jellel. Ha a számláló értéke nagyobb, mint a moduláló jelé, az EPWMxA (EPWMxB) kimenet 1-be, ha kisebb 0-ába állítja [11].
Ahhoz hogy a távirányító egyes csatornáinak jeleiből feldolgozható, és a repülésszabályzó algoritmus számára értelmezhető számértéket kapjunk, az RC vevőből érkező impulzusok szélességét meg kell mérni. Ezt a feladatot a processzor eCAP moduljainak felhasználásával oldottam meg. Az egység alkalmas a bemenetére érkező fel- és lefutó impulzus élek időalaphoz viszonyított időpontjának mérésére. A működési elvet a 13. ábra alapján követhetjük. A modul időalapját a 32-bites CTR számláló adja. A bemeneti fel és lefutó élek hatására a számláló aktuális értéke eltárolódik, majd a számlálás nullától folytatódik. Az eltárolt számláló értékekből az egység meghatározza az élek között eltelt időt [12].
ÖsszefoglalásAz automatikus repülési funkciók megvalósítása érdekében a négyrotoros helikopter mozgásállapotát megfelelő pontossággal és időbeli felbontással mérni szükséges. A pillanatnyi pozíciót, sebességet, gyorsulást valamint orientációt, szögsebességet és szöggyorsulást a mérési eredményekből meg kell határozni. A gyakorlatban ezt a feladatot szenzorok és mérőberendezések (giroszkópok, gyorsulásmérők, elektronikus iránytű, GPS, ultrahangos magasságmérő, barometrikus magasság- és szélsebességmérő stb.) valamint ezek jeleit feldolgozó digitális számítógép segítségével oldják meg. A fedélzeti elektronikával való kommunikációnak kétirányúnak kell lennie, ezzel lehetőség van a repülési adatok real-time monitorozására, valamint a tesztrepülések közötti átprogramozás idejének lerövidítésére. Ezért egy a távirányítástól független digitális kommunikációs csatornát is kiépítettem a helikopter és a földi irányító központ között. A központi egységnek egy szabályzási periódus alatt igen nagy mennyiségű feladatot kell végrehajtania, ezért érdemes olyan eszközt választani, amely a megfelelő számítási képességek mellett olyan periféria készlettel is rendelkezik, amely illeszkedik a fedélzeti elektronikai rendszer egyéb komponenseihez.
Irodalomjegyzék[1] MicroPilot Inc.: MicroPilot MP2028g, Installation and Operation Guide, Manitoba Canada, 2005. [2] Cloud Cap Technology: Piccolo System User Guide, Hood River, 2004. [3] Turóczi A.: Pilóta nélküli légi járművek navigációs berendezései, Bólyai szemle, 2006. I. szám. [4] Xsens Technologies: Motion Tracker Technical Documentation, Enschede, 2004. [5] Turóczi Antal: Önjáró robotok fedélzeti helyzet-meghatározó eszközei, Repüléstudományi közlemények, XV. évfolyam 35. szám, 2003. [6] Hobbico, Inc.,: 9CP Super Instruction Manual, 2004. [7] Maxstreem Inc.: XBee/XBee Pro OEM RF Modules, Lindon, 2006. [8] EEBM Co., Ltd.: Lithium Polymer Battery, Data Sheet, 2007. [9] Texas Instruments: TMS320F28335, TMS320F28334, TMS320F28332 Digital Signal Controllers, Data Manual, 2007. [10] C. P. Fritzen: Dynamics of machines and systems, Lecture notes, Universitat Siegen, 2007. [11] Texas Instruments: TMS320x28xx, 28xxx Enhanced Pulse Width Modulator (ePWM) Module, Reference Guide, 2007. [12] Texas Instruments: TMS320x28xx, 28xxx Enhanced Capture (eCAP) Module, Reference Guide, 2007. Jegyzetek: |
© ZMNE BJKMK 2008.