ˇ ´ vysoke ´ uc ˇen´ı technicke ´ v Praze Cesk e ´ Fakulta elektrotechnicka
´ PRACE ´ DIPLOMOVA Odhad orientace UAV v prostoru
Praha, 2010
ˇ an Autor: Michal Silh´
Podˇ ekov´ an´ı Dˇekuji pˇredevˇs´ım vedouc´ımu diplomov´e pr´ace Ing. Martinu Hromˇc´ıkovi, Ph.D. za cenn´e pˇripom´ınky a rady pˇri ˇreˇsen´ı probl´em˚ u souvisej´ıc´ıch s diplomovou prac´ı. D´ale bych ˇ r´ad podˇekoval Ing. Ondˇreji Spinkovi za poskytnut´ı dat a fakt˚ u d˚ uleˇzit´ ych pro tuto pr´aci.
ii
Abstrakt Bezpilotn´ı vzduˇsn´e prostˇredky (UAV) a jejich pouˇzit´ı se v dneˇsn´ı dobˇe velmi rychle ˇ rozv´ıjej´ı. Casto vˇsak b´ yvaj´ı osazeny levn´ ymi senzorick´ ymi syst´emy, kter´e neposkytuj´ı mˇeˇren´ı dostateˇcn´e pˇresnosti. Tato pr´ace se zab´ yv´a moˇznost´ı, jak pomoc´ı levn´ ych senzor˚ u co nejpˇresnˇeji odhadnout mˇeˇrenou veliˇcinu.
Konkr´etnˇe se tato pr´ace zab´ yv´a integrac´ı dat z gyroskop˚ u, akcelerometr˚ u a magnetometr˚ u za u ´ˇcelem odhadu polohov´ ych u ´hl˚ u vzduˇsn´eho prostˇredku v prostoru. Jako n´astroj pro integraci dat je potom pouˇzit algoritmus Kalmanova filtru, jehoˇz odhad je zpˇresˇ nov´an pomoc´ı modelovan´ ych chyb senzor˚ u.
iii
Abstract Unmanned aerial vehicles (UAVs) are nowadays rapidly developing. They are usually equipped with low-cost sensor systems, which do not provide sufficient measurement accuracy. This work deals with methods for low-cost sensors to estimate measured quantity with good accuracy.
Specifically, this work deals with integration of data from rate gyros, accelerometers and magnetometers to estimate Euler angles of a UAV. As a tool for data integration, the Kalman filter algorithm with sensor error model is then used.
iv
vi
Obsah Seznam obr´ azk˚ u
xi
´ 1 Uvod
1
2 Obecnˇ e
3
2.1
Pohyb v prostoru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
2.2
Souˇradn´e soustavy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
2.2.1
Inerci´aln´ı souˇradn´a soustava . . . . . . . . . . . . . . . . . . . . .
4
2.2.2
Zemsk´a souˇradn´a soustava . . . . . . . . . . . . . . . . . . . . . .
5
2.2.3
Navigaˇcn´ı souˇradn´a soustava . . . . . . . . . . . . . . . . . . . . .
6
2.2.4
Tˇelesov´a souˇradn´a soustava . . . . . . . . . . . . . . . . . . . . .
7
2.2.5
Transformace souˇradn´ ych soustav . . . . . . . . . . . . . . . . . .
7
2.2.6
Reprezentace orientace tˇelesa . . . . . . . . . . . . . . . . . . . .
9
2.2.6.1
Matice smˇerov´ ych kosin˚ u . . . . . . . . . . . . . . . . .
10
2.2.6.2
Eulerovy u ´hly . . . . . . . . . . . . . . . . . . . . . . . .
10
2.2.6.3
Quaterniony . . . . . . . . . . . . . . . . . . . . . . . . .
12
2.3
Kalman˚ uv filtr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
2.4
Rozˇs´ıˇren´ y Kalman˚ uv filtr . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
3 Sbˇ er dat 3.1
19
Senzory inerci´aln´ı navigace . . . . . . . . . . . . . . . . . . . . . . . . . .
19
3.1.1
Gyroskopy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
3.1.1.1
Mechanick´e gyroskopy . . . . . . . . . . . . . . . . . . .
20
3.1.1.2
Optick´e gyroskopy . . . . . . . . . . . . . . . . . . . . .
21
vii
3.1.1.3
Elektrick´e gyroskopy . . . . . . . . . . . . . . . . . . . .
22
3.1.1.4
Jadern´e gyroskopy . . . . . . . . . . . . . . . . . . . . .
23
3.1.1.5
Kvantov´e gyroskopy . . . . . . . . . . . . . . . . . . . .
23
Akcelerometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
3.2
Magnetometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
3.3
Chyby senzor˚ u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
3.1.2
4 Integrace dat 4.1
31
Gener´ator dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
4.1.1
Vˇetev gyroskop˚ u . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
4.1.2
Vˇetev akcelerometr˚ u . . . . . . . . . . . . . . . . . . . . . . . . .
34
4.1.3
Vˇetev magnetometr˚ u . . . . . . . . . . . . . . . . . . . . . . . . .
36
4.1.4
Kompletn´ı gener´ator dat . . . . . . . . . . . . . . . . . . . . . . .
38
4.2
Senzorick´ y model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
4.3
Kalman˚ uv filtr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
5 V´ ysledky
51
5.1
Umˇele vytvoˇren´a data . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
5.2
Re´aln´a letov´a data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
6 Moˇ zn´ a zpˇ resnˇ en´ı odhadu
63
7 Z´ avˇ er
69
Literatura
71
A Skripty gener´ atoru dat
I
A.1 Transformace Eulerov´ ych u ´hl˚ u na u ´hlov´e rychlosti . . . . . . . . . . . . .
I
A.2 Transformace vektoru z navigaˇcn´ı do tˇelesov´e souˇradn´e soustavy . . . . .
I
B Skripty senzorick´ eho modelu
III
B.1 Misalignment error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
III
B.2 Temperature drift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
III
viii
B.3 Bias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IV
B.4 Chyba polohy akcelerometr˚ u mimo tˇeˇziˇstˇe . . . . . . . . . . . . . . . . .
IV
C Obsah pˇ riloˇ zen´ eho CD
V
ix
x
Seznam obr´ azk˚ u 2.1
Pohybov´e veliˇciny vzuˇsn´eho prostˇredku . . . . . . . . . . . . . . . . . . .
4
2.2
Zn´azornˇen´ı inreci´aln´ı (i ), zemsk´e (e ) a navigaˇcn´ı (n ) souˇradn´e soustavy .
5
2.3
Zn´azornˇen´ı tˇelesov´e (b ) souˇradn´e soustavy . . . . . . . . . . . . . . . . .
6
2.4
Kladn´ y (+) a z´aporn´ y (-) smˇer rotace souˇradn´e soustavy . . . . . . . . .
7
2.5
Rotace souˇradn´ ych soustav . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.6
Algoritmus Kalmanova filtru . . . . . . . . . . . . . . . . . . . . . . . . .
17
2.7
Algoritmus rozˇs´ıˇren´eho Kalmanova filtru . . . . . . . . . . . . . . . . . .
18
3.1
Uspoˇr´ad´an´ı sn´ımaˇce MEMS gyroskopu . . . . . . . . . . . . . . . . . . .
22
3.2
Dip´olov´ y charakter magnetick´eho pole Zemˇe (zdroj: www.cez.cz) . . . . .
26
3.3
Celkov´a intenzita mag. pole na Zemi v nT (zdroj: www.geophysics.ou.edu)
27
3.4
Mag. deklinace na Zemi ve stupn´ıch z roku 1860 (zdroj: www.wikipedia.org) 27
4.1
Sch´ema mˇeˇren´ı ide´aln´ımi gyroskpy . . . . . . . . . . . . . . . . . . . . .
34
4.2
Sch´ema mˇeˇren´ı ide´aln´ımi akcelerometry ve funkci sklonomˇeru . . . . . . .
35
4.3
Sch´ema mˇeˇren´ı ide´aln´ımi magnetometry . . . . . . . . . . . . . . . . . .
37
4.4
Sch´ema gener´atoru dat . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
4.5
Sch´ema senzorick´eho modelu . . . . . . . . . . . . . . . . . . . . . . . . .
40
5.1
Vytvoˇren´e pr˚ ubˇehy polohov´ ych u ´hl˚ u . . . . . . . . . . . . . . . . . . . .
52
5.2
Data senzor˚ u v ose z . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
5.3
Srovn´an´ı skuteˇcn´ ych a odhadnut´ ych quaternion˚ u (vlevo) a odpov´ıdaj´ıc´ıch
5.4
polohov´ ych u ´hl˚ u (vpravo) . . . . . . . . . . . . . . . . . . . . . . . . . .
56
Srovn´an´ı skuteˇcn´ ych a odhadnut´ ych aditivn´ıch chyb . . . . . . . . . . . .
56
xi
5.5
Pr˚ ubˇehy polohov´ ych u ´hl˚ u z re´aln´eho letu . . . . . . . . . . . . . . . . . .
58
5.6
Srovn´an´ı mˇeˇren´ ych a modelovan´ ych dat . . . . . . . . . . . . . . . . . . .
60
5.7
Srovn´an´ı mˇeˇren´ ych a odhadnut´ ych quaternion˚ u . . . . . . . . . . . . . .
61
5.8
Srovn´an´ı mˇeˇren´ ych a odhadnut´ ych polohov´ ych u ´hl˚ u . . . . . . . . . . . .
62
6.1
Srovn´an´ı polohov´ ych u ´hl˚ u skuteˇcn´ ych, odhadnut´ ych a stanoven´ ych dynamick´ ym modelem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
xii
67
Kapitola 1 ´ Uvod Letectv´ı lze v dneˇsn´ı dobˇe rozdˇelit do nˇekolika kategori´ı podle toho, kdo a jak´ ym zp˚ usobem letadla vyuˇz´ıv´a. Jako dvˇe nejvetˇs´ı skupiny m˚ uˇzeme oznaˇcit civiln´ı a vojensk´e letectv´ı. Dnes se vˇsak st´ale v´ıce rozˇsiˇruje skupina letadel, kter´a m´a oproti pˇredchoz´ım dvˇema nˇekolik nesporn´ ych v´ yhod. Jsou to bezpilotn´ı vzduˇsn´e prostˇredky (UAV), kter´e d´ıky absenci pos´adky mohou b´ yt nasazov´any do mis´ı, kter´e by pro ˇclovˇeka byly extr´emnˇe riskantn´ı, nebo tam, kde je pˇr´ıliˇs m´alo prostoru a velikost pouˇziteln´eho letadla je omezen. V dneˇsn´ı dobˇe se jiˇz bezpilotn´ı vzduˇsn´e prostˇredky vyuˇz´ıvaj´ı napˇr´ıklad pro meteorologick´e u ´ˇcely ˇci monitorov´an´ı Zemˇe. Jejich v´ yhoda v mal´e velikosti vˇsak m˚ uˇze b´ yt z´aroveˇ n i nev´ yhodou, jelikoˇz t´ım p´adem leckdy nen´ı na z´astavbu veˇsker´ ych potˇrebn´ ych zaˇr´ızen´ı a senzorick´ ych syst´em˚ u dostatek prostoru.
Dalˇs´ım omezuj´ıc´ım faktorem vˇsak mohou b´ yt i finance. Zat´ımco v pˇr´ıpadˇe vojensk´eho nebo civiln´ıho letectv´ı se mnohdy napˇr´ıklad z d˚ uvodu bezpeˇcnosti na mnoˇzstv´ı vynaloˇzen´ ych finanˇcn´ıch prostˇredk˚ u nehled´ı, v pˇr´ıpadˇe bezpilotn´ıch prostˇredk˚ u, kter´e mohou provozovat i drobn´ı model´aˇri nebo nadˇsenci, mohou b´ yt finance do znaˇcn´e m´ıry omezen´e. To je potom spojeno se z´astavbou levnˇejˇs´ıch a m´enˇe pˇresn´ ych senzorick´ ych syst´em˚ u, coˇz pouˇzitelnost tˇechto prostˇredk˚ u do znaˇcn´e m´ıry omezuje.
Konkr´etnˇe se tato pr´ace bude zab´ yvat odhadem orientace vzduˇsn´eho prostˇredku v prostoru za pˇredpokladu pouˇzit´ı levn´ ych a m´enˇe pˇresn´ ych senzor˚ u, kter´e jsou zat´ıˇzeny mnoha 1
´ KAPITOLA 1. UVOD
2 chybami.
Pr´ace je rozdˇelena n´asleduj´ıc´ım zp˚ usobem. V kapitole 2 se sezn´am´ıme s obecn´ ymi informacemi o pohybov´ ych moˇznostech a reprezentaci polohy vzduˇsn´eho prostˇredku v prostoru, d´ale je zde pak nast´ınˇen princip pr´ace algortitmu Kalmanova filtru a jeho rozˇs´ıˇren´e modifikace, kter´a bude v t´eto pr´aci pouˇzita. Kapitola 3 potom obsahuje informace o senzorech pouˇz´ıvan´ ych v t´eto pr´aci, zejm´ena o fyzik´aln´ıch jevech a principech, na kter´ ych jsou mˇeˇren´ı tˇemito senzory zaloˇzena. Kapitola 4 d´ale pojedn´av´a o integraci dat ze senzor˚ u. Jsou zde uvedeny z´akladn´ı informace o moˇznostech integrace a d´ale je zde podrobnˇe rozebr´ana integrace dat ze senzor˚ u pouˇz´ıvan´ ych v t´eto pr´aci za u ´ˇcelem odhadu polohov´ ych u ´hl˚ u vzduˇsn´eho prostˇredku. V kapitole 5 jsou potom uvedeny v´ ysledky integrace pˇri pouˇzit´ı jak umˇele vytvoˇren´ ych dat, tak i dat z re´aln´eho letu. Kapitola 6 d´ale nastiˇ nuje moˇznosti dalˇs´ıho vylepˇsen´ı algoritmu. V kapitole 7 je nakonec tato pr´ace shrnuta a pod´any z´avˇereˇcn´e informace.
Kapitola 2 Obecnˇ e 2.1
Pohyb v prostoru
Prvn´ı vˇec´ı, kterou je nutno udˇelat, je obecn´e definov´an´ı pohybov´ ych moˇznost´ı vzduˇsn´eho prostˇredku a jejich znaˇcen´ı, kter´e bude pouˇz´ıv´ano d´ale v t´eto pr´aci. Z´akladn´ı pohybov´e veliˇciny jsou potom zn´azornˇeny na obr´azku 2.1. Zde je zobrazeno sch´ema vrtuln´ıku, jehoˇz tˇelesov´e osy x, y a z proch´azej´ı tˇeˇziˇstˇem a dalˇs´ı pohybov´e veliˇciny jsou s tˇemito osami sv´az´any. Veliˇciny u, v a w znaˇc´ı rychlosti pohybu ve smˇerech pˇr´ısluˇsn´ ych os, veliˇciny znaˇcen´e jako Φ, Θ a Ψ pˇredstavuj´ı u ´hly natoˇcen´ı vrtuln´ıku kolem pˇr´ısluˇsn´ ych os, ˇc´ımˇz ´ urˇcuj´ı jeho orientaci v prostoru. Uhel natoˇcen´ı Φ je tak´e naz´ yv´an jako klopen´ı (angl. roll), ´hel Θ je potom naz´av´an jako klonˇen´ı (angl. pitch) a u u ´hel Ψ je naz´ yv´an jako zat´aˇcen´ı (angl. yaw). Posledn´ımi zobrazen´ ymi veliˇcinami, kter´e jsou oznaˇceny jako p, q a r, jsou potom u ´hlov´e rychlosti ot´aˇcen´ı kolem pˇr´ısluˇsn´ ych os.
2.2
Souˇ radn´ e soustavy
Pro spr´avnou interpretaci dat z´ıskan´ ych ze senzor˚ u a t´ım i pro spr´avn´e urˇcen´ı orientace tˇelesa v prostoru je nutn´e definovat nˇekolik druh˚ u souˇradn´ ych soustav (Titterton, D. H. a Weston, J. L., 2004). Kaˇzd´a z nich vˇsak bude ortogon´aln´ı (osy souˇradn´eho syst´emu jsou vz´ajemnˇe kolm´e) a pravotoˇciv´a, liˇsit se potom budou vztaˇzn´ ymi soustavami. 3
ˇ KAPITOLA 2. OBECNE
4
Obr´ azek 2.1: Pohybov´e veliˇciny vzuˇsn´eho prostˇredku
Souˇradn´e soustavy se dˇel´ı na tˇri z´akladn´ı skupiny. Prvn´ı skupinou jsou soustavy, jejichˇz poˇca´tek se umist’uje do stˇredu Zemˇe, a proto je naz´ yv´ame jako zemsk´e souˇradn´e syst´emy. Druhou skupinou jsou soustavy, jejichˇz poˇca´tek se umist’uje s ohledem na navigaˇcn´ı syst´em a naz´ yv´ame je lok´aln´ı souˇradn´e soustavy. Posledn´ı, tˇret´ı, skupinou jsou soustavy, jejichˇz poˇc´atek b´ yv´a nˇejak´ ym zp˚ usobem spojen s tˇelesem, proto se naz´ yvaj´ı tˇelesov´e souˇradn´e soustavy. Jednotliv´e souˇradn´e soustavy jsou zn´azornˇeny na obr´azc´ıch 2.2 a 2.3.
2.2.1
Inerci´ aln´ı souˇ radn´ a soustava
Inerci´aln´ı souˇradn´a soustava spad´a do prvn´ı skupiny definovan´e v´ yˇse, jej´ı poˇca´tek je tedy um´ıstˇen do stˇredu Zemˇe. Osa z je shodn´a s osou rotace Zˇemˇe, kter´a je v tomto pˇr´ıpadˇe povaˇzov´ana za nemˇennou ve sv´em smˇeru, a proch´az´ı zemˇepisn´ ym severn´ım p´olem. Zbyl´e
ˇ ´ SOUSTAVY 2.2. SOURADN E
5
Obr´ azek 2.2: Zn´ azornˇen´ı inreci´ aln´ı (i ), zemsk´e (e ) a navigaˇcn´ı (n ) souˇradn´e soustavy
dvˇe osy x a y jsou potom fixov´any na okoln´ı hvˇezdy. Cel´a tato souˇradn´a soustava tedy nerotuje spoleˇcnˇe se Zem´ı. Na obr´azku 2.2 jsou osy t´eto soustavy oznaˇceny jako xi , y i a zi.
2.2.2
Zemsk´ a souˇ radn´ a soustava
Stejnˇe jako inerci´aln´ı souˇradn´a soustava spad´a i zemsk´a souˇradn´a soustava do prvn´ı skupiny s poˇca´tkem um´ıstˇen´ ym do stˇredu Zemˇe, avˇsak jej´ı osy jsou jiˇz pevnˇe spjat´e se Zem´ı. Osa z je opˇet shodn´a s osou rotace Zemˇe a proch´az´ı zemˇepisn´ ym severn´ım p´olem. Osa x potom leˇz´ı v pr˚ useˇcnici roviny rovn´ıku a poloroviny nult´eho poledn´ıku. Osa y se potom umist’uje tak, aby doplnila ortogon´aln´ı pravotoˇcivou souˇradnou soustavu. Cel´a zemsk´a souˇradn´a soustava potom vzhledem k inerci´aln´ı souˇradn´e soustavˇe rotuje kolem
ˇ KAPITOLA 2. OBECNE
6
Obr´ azek 2.3: Zn´ azornˇen´ı tˇelesov´e (b ) souˇradn´e soustavy
osy z u ´hlovou rychlost´ı rotace Zemˇe. Na obr´azku 2.2 jsou osy t´eto soustavy oznaˇceny jako xe , y e a z e .
2.2.3
Navigaˇ cn´ı souˇ radn´ a soustava
Navigaˇcn´ı souˇradn´a soustava spad´a do druh´e skupiny definovan´e v´ yˇse. Je to lok´aln´ı zemˇepisn´a soustava, jej´ıˇz poˇca´tek je um´ıstˇen shodnˇe s poˇca´tkem soustavy os navigaˇcn´ıho syst´emu. Osa z potom vˇzdy m´ıˇr´ı smˇerem k zemˇepisn´emu severu, osa y vˇzdy m´ıˇr´ı na ´ v´ ychod a osa z st´ale smˇeˇruje do stˇredu Zemˇe. Uhlov´ a rychlost a smˇer ot´aˇcen´ı navigaˇcn´ı souˇradn´e soustavy v˚ uˇci zemsk´e souˇradn´e soustavˇe je d´an rychlost´ı a smˇerem pohybu poˇca´tku navigaˇcn´ı souˇradn´e soustavy. Tato souˇradn´a soustava se pouˇz´ıv´a pro navigaci. Na obr´azku 2.2 jsou osy t´eto soustavy oznaˇceny jako xn , y n a z n .
ˇ ´ SOUSTAVY 2.2. SOURADN E
7
Obr´ azek 2.4: Kladn´ y (+) a z´ aporn´ y (-) smˇer rotace souˇradn´e soustavy
2.2.4
Tˇ elesov´ a souˇ radn´ a soustava
Tˇelesov´a souˇradn´a soustava spad´a do tˇret´ı skupiny definovan´e v´ yˇse. Poˇca´tek t´eto soustavy umist’ujeme do tˇeˇziˇstˇe tˇelesa, osa z smˇeˇruje smˇerem dol˚ u a je shodn´a s osou zat´aˇcen´ı telesa. Osa x smˇeˇruje dopˇredu a je shodn´a s osou klonˇen´ı tˇelesa. Osa y potom doplˇ nuje ortogon´aln´ı pravotoˇciv´ y syst´em a je shodn´a s osou klopen´ı tˇelesa. Tato souˇradn´a soustava je zn´azornˇena na obr´azku 2.3, kde jednotliv´e osy t´eto soustavy jsou oznaˇceny jako xb , y b a zb.
2.2.5
Transformace souˇ radn´ ych soustav
Jelikoˇz je bˇeˇzn´e, ˇze r˚ uzn´e senzory um´ıstˇen´e na tˇelese mˇeˇr´ı veliˇciny v r˚ uzn´ ych souˇradn´ ych soustav´ach, je nutn´e tyto veliˇciny mezi jednotliv´ ymi soustavami pˇrev´adˇet. Jednotliv´e soustavy se transformuj´ı jedna do druh´e pomoc´ı rotac´ı. Pro tento u ´ˇcel definujeme kladn´ y a z´aporn´ y smˇer rotace. Za kladn´ y smˇer rotace kolem jednotliv´ ych os budeme povaˇzovat takov´ y smˇer, kdy pˇri pohledu ve smˇeru osy rotace rotuje soustava ve smˇeru hodinov´ ych ruˇciˇcek. Za z´aporn´ y smˇer rotace se potom povaˇzuje rotace ve smˇeru opaˇcn´em, tedy proti smˇeru hodinov´ ych ruˇciˇcek. Kladn´ y a z´aporn´ y smˇer rotace je zn´azornˇen na obr´azku 2.4.
ˇ KAPITOLA 2. OBECNE
8
Obr´ azek 2.5: Rotace souˇradn´ ych soustav
ˇ ´ SOUSTAVY 2.2. SOURADN E
9
Z obr´azku 2.4 je tak´e patrn´e, ˇze orientaci tˇelesa m˚ uˇzeme vyj´adˇrit pomoc´ı s´erie rotac´ı kolem jednotliv´ ych os. Je vˇsak velice d˚ uleˇzit´e si uvˇedomit, ˇze zmˇena orientace tˇelesa zp˚ usoben´a takovouto rotac´ı nen´ı funkc´ı pouze velikost´ı u ´hl˚ u rotace kolem jednotliv´ ych os, ale tak´e poˇrad´ı, ve kter´em jsou jednotliv´e rotace prov´adˇeny. Tato skuteˇcnost je zˇrejm´a z obr´azku 2.5. Zde jsou v jednotliv´ ych sloupc´ıch zn´azornˇeny dvˇe s´erie rotac´ı souˇradn´eho syst´emu (xb ,y b ,z b ) se shodnou v´ ychoz´ı polohou (xe ,y e ,z e ). V obou s´eri´ıch jsou potom prov´adˇeny rotace stejn´e velikosti ve stejn´em smˇeru dle konvence zn´azornˇen´e na obr´azku 2.4, liˇs´ı se vˇsak poˇrad´ım, v jak´em jsou jednotliv´e rotace prov´adˇeny. V lev´em sloupci jsou rotace prov´adˇeny v poˇrad´ı yaw → roll → pitch, v prav´em sloupci je to potom sekvence pitch → roll → yaw. Vˇsechny rotace maj´ı velikost 90◦ v kladn´em smˇeru. V posledn´ım ˇra´dku obr´azku potom vid´ıme, ˇze aˇc mˇely rotace kolem jednotliv´ ych os stejn´ y smˇer i velikost, v´ ysledky se d´ıky rozd´ıln´emu poˇrad´ı rotac´ı podstatnˇe liˇs´ı.
2.2.6
Reprezentace orientace tˇ elesa
K vyj´adˇren´ı orientace tˇelesa vzhledem pˇr´ısluˇsn´e souˇradn´e soustavˇe m˚ uˇzeme vyuˇz´ıt nˇekolik r˚ uzn´ ych matematick´ ych metod. Kaˇzd´e metodˇe potom pˇr´ısluˇs´ı nˇekolik kl´ıˇcov´ ych parametr˚ u. Ze vˇsech r˚ uzn´ ych metod reprezentace se nejv´ıce pouˇz´ıvaj´ı n´asleduj´ıc´ı tˇri, kter´e budou podrobnˇeji pops´any d´ale. 1. Matice smˇ erov´ ych kosin˚ u. Je to matice 3 × 3, jej´ıˇz sloupce reprezentuj´ı jednotkov´e vektory v tˇelesov´e souˇradn´e soustavˇe transformovan´e pod´el navigaˇcn´ı souˇradn´e soustavy. 2. Eulerovy u ´ hly. V tomto pˇr´ıpadˇe se transformace z jedn´e souˇradn´e soustavy do druh´e definuje pomoc´ı tˇr´ı po sobˇe jdouc´ıch rotac´ı kolem jednotliv´ ych os. Reprezentace pomoc´ı Eulerov´ ych u ´hl˚ u je pravdˇepodobnˇe jedna z nejjednoduˇsˇs´ıch metod vyj´adˇren´ı orientace tˇelesa. 3. Quaterniony. Reprezentace orientace tˇelesa pomoc´ı quaternion˚ u umoˇzn ˇuje transformaci z jedn´e souˇradn´e soustavy do druh´e pomoc´ı jedin´e rotace kolem vektoru definovan´eho v referenˇcn´ı souˇradn´e soustavˇe. Quaternion je vektor o ˇctyˇrech prvc´ıch,
ˇ KAPITOLA 2. OBECNE
10
kter´e jsou funkcemi orientace tohoto vektoru a velikosti rotace. 2.2.6.1
Matice smˇ erov´ ych kosin˚ u
Matici smˇerov´ ych kosin˚ u, kter´a m´a rozmˇer 3 × 3, ⎡ c c ⎢ 11 12 ⎢ Cbn = ⎢ c21 c22 ⎣ c31 c32
m˚ uˇzeme zapsat n´asledovnˇe. ⎤ c13 ⎥ ⎥ c23 ⎥ ⎦ c33
Jak jiˇz bylo ˇreˇceno v´ yˇse, jednotliv´e sloupce matice Cbn reprezentuj´ı jednotkov´e vektory v tˇelesov´e souˇradn´e soustavˇe transformovan´e pod´el navigaˇcn´ı souˇradn´e soustavy. Prvek v i-t´em ˇra´dku a j-t´em sloupci pˇredstavuje kosinus u ´hlu mezi i-tou osou navigaˇcn´ı souˇradn´e soustavy a j-tou osou tˇelesov´e souˇradn´e soustavy.
Transformace vektoru vyj´adˇren´eho v jedn´e souˇradn´e soustavˇe do souˇradn´e soustavy druh´e se potom vykon´a pˇren´asoben´ım tohoto vektoru matic´ı smˇerov´ ych kosin˚ u. Pokud tedy napˇr´ıklad budeme cht´ıt vektor rn vyj´adˇren´ y v navigaˇcn´ı souˇradn´e soustavˇe transformovat do tˇelesov´e souˇradn´e soustavy, m˚ uˇzeme to prov´est dle n´asleduj´ıc´ıho pˇredpisu. rb = Cbn rn
(2.1)
Podrobnˇejˇs´ı v´ yklad t´ ykaj´ıc´ı se matice smˇerov´ ych kosin˚ u je moˇzno nal´ezt v literatuˇre (Titterton, D. H. a Weston, J. L., 2004). 2.2.6.2
Eulerovy u ´hly
Transformace z jedn´e souˇradn´e soustavy do drhuh´e, jak jiˇz bylo ˇreˇceno v´ yˇse, m˚ uˇzeme tak´e prov´est pomoc´ı tˇr´ı po sobˇe jdouc´ıch rotac´ı kolem jednotliv´ ych os. Napˇr´ıklad m˚ uˇzeme uvaˇzovat situaci z lev´eho sloupce obr´azku 2.5. Zde je transformace z v´ ychoz´ıho do nov´eho souˇradn´eho syst´emu vyj´adˇrena n´asledovnˇe. 1. rotace kolem osy z v´ ychoz´ıho souˇradn´eho syst´emu o u ´hel Ψ v kladn´em smˇeru,
ˇ ´ SOUSTAVY 2.2. SOURADN E
11
2. rotace kolem osy x nov´eho souˇradn´eho syst´emu o u ´hel Φ v kladn´em smˇeru, 3. rotace kolem osy y nov´eho souˇradn´eho syst´emu o u ´hel Θ v kladn´em smˇeru. ´ Uhly Φ, Θ a Ψ jsou oznaˇcov´any pr´avˇe jako Eulerovy u ´hly. Reprezentace pomoc´ı Eulerov´ ych u ´hl˚ u je obl´ıben´a hlavnˇe z d˚ uvodu jednoduch´eho mˇeˇren´ı pomoc´ı senzor˚ uu ´hlov´e rychlosti a tak´e z d˚ uvodu jednoduchosti na pˇredstavu.
Jednotliv´e rotace m˚ uˇzeme tak´e vyj´adˇrit pomoc´ı tˇr´ı matic smˇerov´ ych kosin˚ u jako ⎡
⎤ cos(Ψ)
sin(Ψ) 0
⎢ ⎢ C1 = ⎢ − sin(Ψ) cos(Ψ) 0 ⎣ 0 0 1 ⎡ cos(Θ) 0 − sin(Θ) ⎢ ⎢ C2 = ⎢ 0 1 0 ⎣ sin(Θ) 0 cos(Θ) ⎡ 1 0 0 ⎢ ⎢ C3 = ⎢ 0 cos(Φ) sin(Φ) ⎣ 0 − sin(Φ) cos(Φ)
⎥ ⎥ ⎥, ⎦ ⎤ ⎥ ⎥ ⎥, ⎦ ⎤ ⎥ ⎥ ⎥, ⎦
´hel Ψ kolem osy z, C2 pˇredstavuje rotaci o u ´hel Θ kolem kde C1 pˇredstavuje rotaci o u osy y a C3 pˇredstavuje rotaci o u ´hel Φ kolem osy x. Pokud bychom napˇr´ıklad chtˇeli pomoc´ı tˇechto tˇr´ı matic vyj´adˇrit transformaˇcn´ı matici vedouc´ı k transformaci z navigaˇcn´ı do tˇelesov´e souˇradn´e soustavy, kde tato matice bude pˇredstavovat rotaci o jednotliv´e u ´hly kolem jednotliv´ ych os v poˇrad´ı yaw → roll → pitch, staˇc´ı tyto tˇri matice smˇerov´ ych kosin˚ u ve spr´avn´em poˇrad´ı vyn´asobit. V tomto pˇr´ıpadˇe tedy Cbn = C2 C3 C1 .
(2.2)
Podobnˇe m˚ uˇzeme vyj´adˇrit i matici inverzn´ı transformace, tedy transformace z tˇelesov´e do navigaˇcn´ı soustavy. T T T Cnb = CbT n = C1 C3 C2
ˇ KAPITOLA 2. OBECNE
12
˙ Θ, ˙ Ψ ˙ Vztah mezi u ´hlov´ ymi rychlostmi p, q, r a rychlost´ı zmˇeny Eulerov´ ych u ´hl˚ u Φ, potom vypad´a n´asledovnˇe. ⎡
p
⎤
⎡
Φ˙
⎡
⎤
⎤
⎡
0
⎤ 0
⎢ ⎥ ⎢ ⎢ ⎥ ⎢ ⎥ ⎥ ⎢ ⎥ ⎢ ⎢ ˙ ⎥ ⎢ ⎥ ⎥ ⎢ q ⎥ = ⎢ 0 ⎥ + C3 ⎢ Θ ⎥ + C3 C2 ⎢ 0 ⎥ ⎣ ⎦ ⎣ ⎣ ⎦ ⎣ ⎦ ⎦ ˙ r 0 Ψ 0
(2.3)
Rozn´asoben´ım a pˇreuspoˇr´ad´an´ım rovnice (2.3) dostneme ⎡
Φ˙
⎤
⎤⎡
⎡ 1 sin(Φ) tan(Θ) cos(Φ) tan(Θ)
⎢ ⎥ ⎢ ⎢ ˙ ⎥ ⎢ ⎢ Θ ⎥=⎢ 0 ⎣ ⎦ ⎣ ˙ 0 Ψ
cos(Φ)
− sin(Φ)
sin(Φ) cos(Θ)
cos(Φ) cos(Θ)
p
⎤
⎥⎢ ⎥ ⎥⎢ ⎥ ⎥⎢ q ⎥. ⎦⎣ ⎦ r
(2.4)
Jednotliv´e Eulerovy u ´hly m˚ uˇzeme z rovnice (2.4) z´ıskat pomoc´ı integrace pˇri znalosti poˇca´teˇcn´ı oriantace tˇelesa. Tento vztah je vˇsak omezen t´ım, ˇze nab´ yv´a neurˇcit´ ych hodnot pokud se Θ rovn´a ±90◦ . Tyto situace ˇreˇs´ı reprezentace orientace tˇelesa pomoc´ı quaternion˚ u.
2.2.6.3
Quaterniony
Jako jiˇz bylo ˇreˇceno v´ yˇse, reprezentace polohy pomoc´ı quternion˚ u je zaloˇzena na myˇslence, ˇze m˚ uˇzeme prov´est transformaci z jedn´e douˇradn´e soustavy do druh´e pomoc´ı jedin´e rotace kolem vektoru definovan´eho v referenˇcn´ı souˇradn´e soustavˇe. Tento vektor budeme znaˇcit μ. Quaternion, kter´ y ze budeme znaˇcit q, je vektor o ˇctyˇrech prvc´ıch, kter´e jsou funkcemi orientace tohoto vektoru a velikosti rotace. Quaternion tedy definujeme jako ⎡
q0
⎤
⎡
⎢ ⎥ ⎢ ⎢ ⎥ ⎢ ⎢ q1 ⎥ ⎢ ⎢ ⎥=⎢ q=⎢ ⎥ ⎢ ⎢ q2 ⎥ ⎢ ⎣ ⎦ ⎣ q3
cos( μ2 ) μx μ μy μ μz μ
⎤
⎥ ⎥ ) ⎥ ⎥, ⎥ μ sin( 2 ) ⎥ ⎦ μ sin( 2 ) sin( μ2
kde μx , μy , μz jsou prvky u ´hlov´eho vektoru μ a μ je jeho velikost. Vztah mezi u ´hlov´ ymi rychlostmi p, q, r a rychlost´ı zmˇeny quaternion˚ u q˙0 , q˙1 , q˙2 , q˙3
ˇ ´ SOUSTAVY 2.2. SOURADN E potom vypad´a n´asledovnˇe. ⎡
⎤
13
⎡
q˙ ⎢ 0 ⎥ ⎢ ⎢ ⎥ ⎢ ⎢ q˙1 ⎥ 1 ⎢ ⎢ ⎥ ⎢ q˙ = ⎢ ⎥= 2 ⎢ ⎢ q˙2 ⎥ ⎢ ⎣ ⎦ ⎣ q˙3
0 −p −q −r
⎤⎡
⎤
q ⎥⎢ 0 ⎥ ⎥ ⎥⎢ p 0 r −q ⎥ ⎢ q1 ⎥ ⎥ ⎥⎢ ⎥ ⎥⎢ q −r 0 p ⎥ ⎢ q2 ⎥ ⎦ ⎦⎣ q3 r q −p 0
D´ale si m˚ uˇzeme pomoc´ı quaternion˚ u vyj´adˇrit transformaˇcn´ı matici. ⎡ 2(q1 q2 + q0 q3 ) 2(q1 q3 − q0 q2 ) q 2 + q12 − q22 − q32 ⎢ 0 ⎢ C = ⎢ 2(q1 q2 − q0 q3 ) q02 − q12 + q22 − q32 2(q2 q3 + q0 q1 ) ⎣ 2(q1 q3 + q0 q2 ) 2(q2 q3 − q0 q1 ) q02 − q12 − q22 + q32
(2.5)
⎤ ⎥ ⎥ ⎥ ⎦
(2.6)
Transformace vektoru vyj´adˇren´eho v jedn´e souˇradn´e soustavˇe do souˇradn´e soustavy druh´e se potom, stejnˇe jako je to v pˇr´ıpadˇe matice smˇerov´ ych kosin˚ u, vykon´a pˇren´asoben´ım tohoto vektoru transformaˇcn´ı matic´ı. Pokud tedy napˇr´ıklad budeme opˇet cht´ıt vektor rn vyj´adˇren´ y v navigaˇcn´ı souˇradn´e soustavˇe transformovat do tˇelesov´e souˇradn´e soustavy, m˚ uˇzeme to prov´est dle pˇredpisu rb = Crn ,
(2.7)
kde pˇri porovn´an´ı s rovnic´ı (2.1) vid´ıme, ˇze C odpov´ıd´a matici smˇerov´ ych kosin˚ u Cbn . Quaterniony se daj´ı d´ale vyj´adˇrit pomoc´ı Eulerov´ ych u ´hl˚ u dle n´asleduj´ıc´ıho pˇrepisu. Θ Ψ Φ Θ Ψ Φ ) cos( ) cos( ) + sin( ) sin( ) sin( ) 2 2 2 2 2 2 Θ Ψ Φ Θ Ψ Φ q1 = sin( ) cos( ) cos( ) − cos( ) sin( ) sin( ) 2 2 2 2 2 2 Θ Ψ Φ Θ Ψ Φ q2 = cos( ) sin( ) cos( ) + sin( ) cos( ) sin( ) 2 2 2 2 2 2 Θ Ψ Φ Θ Ψ Φ q3 = cos( ) cos( ) sin( ) − sin( ) sin( ) cos( ) 2 2 2 2 2 2 q0 = cos(
(2.8) (2.9) (2.10) (2.11)
D˚ uleˇzit´a podm´ınka pouˇzit´ı quaternion˚ u je, ˇze velikost vektoru q mus´ı b´ yt vˇzdy 1, tedy mus´ı b´ yt splnˇeny n´asleduj´ıc´ı rovnice. q02 + q12 + q22 + q32 = 1 ⇒ q02 + q12 + q22 + q32 = 1
(2.12)
ˇ KAPITOLA 2. OBECNE
14
Podrobnˇejˇs´ı v´ yklad, kter´ y se zab´ yv´a quaterniony, je d´ale moˇzno nal´ezt v literatuˇre (Titterton, D. H. a Weston, J. L., 2004).
2.3
Kalman˚ uv filtr
ˇ Kalman˚ uv filtr (Havlena, V. a Stecha, J., 2000) je filtr zaloˇzen´ y na metodˇe nejmenˇs´ıch ˇctverc˚ u chyb a poskytuje velice efektivn´ı v´ ypoˇcetn´ı rekurzivn´ı ˇreˇsen´ı pro odhad sign´alu, kter´ y je zkreslen Gaussovsk´ ym ˇsumem. Je to algoritmus, kter´ y optim´alnˇe vyuˇz´ıv´a nepˇresn´a data line´arn´ıho nebo t´emˇeˇr line´arn´ıho syst´emu s Gaussovsk´ ymi chybami tak, aby st´ale dosahoval co nejlepˇs´ıho odhadu aktu´aln´ıho stavu syst´emu.
Kalman˚ uv filtr je zaloˇzen na stavov´em pˇr´ıstupu, kde stavov´e rovnice modeluj´ı dynamiku procesu generov´an´ı sign´alu a rovnice pozorov´an´ı (mˇeˇren´ı) modeluj´ı zaˇsumˇen´ y a zkreslen´ y pozorovan´ y (mˇeˇren´ y) sign´al. Bez ztr´aty na obecnosti budeme v t´eto kapitole uvaˇzovat syst´em bez vstup˚ u. Pro sign´al x (k) a zaˇsumˇen´e pozorov´an´ı y (k) jsou pak definov´any rovnice popisuj´ıc´ı model procesu a model pozorov´an´ı jako x (k + 1) = Ax (k) + w (k),
(2.13)
y (k) = Hx (k) + n(k),
(2.14)
kde x (k) je P -rozmˇern´ y vektor sign´al˚ u neboli tak´e stavov´ y vektor v ˇcase k, A je P × P rozmˇern´a pˇrechodov´a matice d´avaj´ıc´ı v souvislost stav syst´emu v ˇcase k a stav syst´emu v ˇcase k + 1, w (k) neboli ˇsum procesu je P -rozmˇern´ y nekorelovan´ y vstupn´ı bud´ıc´ı vektor stavov´e rovnice. Pˇredpokl´ad´ame, ˇze w (k) je norm´aln´ı (Gaussovsk´ y) proces neboli p(w (k)) ∼ N (0, Q), kde Q je P × P -rozmˇern´a kovarianˇcn´ı matice ˇsumu w (k) nebo tak´e kovarianˇcn´ı matice ˇsumu procesu. y (k) je M -rozmˇern´ y zaˇsumˇen´ y vektor pozorov´an´ı, H je M × P -rozmˇern´a matice a n(k) je M -rozmˇern´ y vektor ˇsumu nebo tak´e ˇsum mˇeˇren´ı. Opˇet pˇredpokl´ad´ame, ˇze n(k) m´a norm´aln´ı rozdˇelen´ı neboli p(n(k)) ∼ N (0, R),
˚ FILTR 2.3. KALMANUV
15
kde R je M × M -rozmˇern´a kovarianˇcn´ı matice ˇsumu n(k) nebo tak´e kovarianˇcn´ı matice ˇsumu mˇeˇren´ı.
Algoritmus Kalmanova filtru pracuje se dvˇema druhy odhad˚ u stavu. Prvn´ım z nich je tzv. apriorn´ı odhad, kter´ y je uˇcinˇen´ y v ˇcase k za u ´ˇcelem odhadu stavu v ˇcase k + 1. Tento odhad se tak´e naz´ yv´a predikce, jelikoˇz odhaduje budouc´ı stav na z´akladˇe znalosti stav˚ u aktu´aln´ıch. Budeme jej znaˇcit jako ˆ x (k + 1|k). Druh´ ym je tzv. aposteriorn´ı odhad, kter´ y je uˇcinˇen v ˇcase k na z´akladˇe mˇeˇren´ı y (k), tedy vyuˇz´ıv´a aktu´alnˇe zmˇeˇren´ ych hodnot k odhadu aktu´aln´ıho stavu. Tento odhad budeme znaˇcit jako ˆ x (k|k). Chyba apriorn´ıho odhadu stavu je potom definov´ana jako e(k|k − 1) = x (k) − ˆ x (k|k − 1) a chyba aposteriorn´ıho odhadu stavu jako e(k|k) = x (k) − ˆ x (k|k). Kovarianˇcn´ı matici chyby apriorn´ıho odhadu stavu potom vyj´adˇr´ıme jako
P(k|k − 1) = E e(k|k − 1)e T (k|k − 1) a kovarianˇcn´ı matici chyby aposteriorn´ıho odhadu stavu jako
P(k) = E e(k)e T (k) .
Algoritmus Kalmanova filtru pracuje ve dvou hlavn´ıch kroc´ıch. V prvn´ım kroku (predikce) provede apriorn´ı odhad stavu syst´emu x (k + 1|k) a jeho kovarianˇcn´ı matice chyby P(k + 1|k). Tento krok lze vyj´adˇrit rovnicemi ˆ x (k + 1|k) = Aˆ x (k|k), P(k + 1|k) = AP(k|k)AT + Q. V druh´em kroku se prov´ad´ı aktualizace stavu predikovan´eho v prvn´ım kroku a jeho
ˇ KAPITOLA 2. OBECNE
16
kovarianˇcn´ı matice chyby pomoc´ı informace z´ıskan´e z mˇeˇren´ı. Tento krok vyjadˇruj´ı rovnice K (k) = P(k|k − 1)H T (HP(k|k − 1)H T + R)−1 ,
(2.15)
ˆ x (k|k) = ˆ x (k|k − 1) + K (k)(y (k) − Hˆ x (k|k − 1)), P(k|k) = (I − K (k)HP(k|k − 1)), kde I je jednotkov´a matice, K (k) je P × M -rozmˇern´a matice vyjadˇruj´ıc´ı tzv. Kalmanovo zes´ılen´ı. Tento ˇclen minimalizuje kovarianˇcn´ı matici chyby apostreiorn´ıho odhadu a m´a funkci v´ahy“, kter´a urˇcuje, do jak´e m´ıry informace z´ıskan´a mˇeˇren´ım ovlivn´ı aposteriorn´ı ” odhad stavu syst´emu. Rozd´ıl y (k) − Hˆ x (k|k − 1) se naz´ yv´a inovace mˇeˇren´ı a vyjadˇruje neshodu mezi predikovanou hodnotou a aktu´aln´ım mˇeˇren´ım. Pokud se pod´ıv´ame na rovnici (2.15), vid´ıme, ˇze pokud se bude kovarianˇcn´ı matice ˇsumu mˇeˇren´ı R bl´ıˇzit k nule, potom Kalmanovo zes´ılen´ı K (k) v´ahuje inovaci mˇeˇren´ı vyˇsˇs´ı mˇerou, konkr´etnˇe lim K (k) = H −1 .
R→0
Pokud se vˇsak k nule bude bl´ıˇzit kovarianˇcn´ı matice chyby apriorn´ıho odhadu P(k|k − 1), potom Kalmanovo zes´ılen´ı K (k) v´ahuje inovaci mˇeˇren´ı menˇs´ı mˇerou, konkr´etnˇe lim
P(k|k−1)→0
K (k) = 0.
Pro snaˇzˇs´ı pochopen´ı si m˚ uˇzeme ˇr´ıci, ˇze pokud se bude kovarianˇcn´ı matice ˇsumu mˇeˇren´ı R bl´ıˇzit k nule, budeme aktu´aln´ımu mˇeˇren´ı vˇeˇrit v´ıce, zat´ımco predikovan´ ym hodnot´am mˇeˇren´ı budeme vˇeˇrit m´enˇe. Na druhou stranu pokud se k nule bude bl´ıˇzit kovarianˇcn´ı matice chyby apriorn´ıho odhadu P(k|k − 1), aktu´aln´ımu mˇeˇren´ı budeme vˇeˇrit m´enˇe, zat´ımco predikovan´ ym hodnot´am mˇeˇren´ı budeme vˇeˇrit v´ıce.
Pro shrnut´ı si m˚ uˇzeme ˇr´ıc´ı, ˇze algoritmus Kalmanova filtru pracuje jako zpˇetnovazebn´ı syst´em tak, ˇze v urˇcit´em ˇcase odhadne stav procesu a pot´e obdrˇz´ı zpˇetnovazebn´ı informaci ve formˇe (zaˇsumˇen´eho) mˇeˇren´ı, dle kter´e uprav´ı odhad stavu. Pro uveden´ı algoritmu do chodu je vˇsak nutn´e zadat poˇca´teˇcn´ı odhad stavu ˆ x (k|k − 1) a kovarianˇcn´ı matici chyby apriorn´ıho odhadu stavu P(k|k − 1). Sch´ema algoritmu Kalmanova filtru m˚ uˇzeme vidˇet na obr´azku 2.6.
ˇ Y ´ KALMANUV ˚ FILTR 2.4. ROZSˇ´IREN
17
Obr´ azek 2.6: Algoritmus Kalmanova filtru
2.4
Rozˇ s´ıˇ ren´ y Kalman˚ uv filtr
Ne vˇzdy vˇsak m˚ uˇzeme dynamick´ y syst´em popsat line´arn´ımi rovnicemi (2.13) a (2.14). ˇ Casto je dynamika syst´emu pops´ana rovnicemi neline´arn´ımi, kter´e m˚ uˇzeme obecnˇe zapsat jako x (k + 1) = f (x (k)) + w (k),
(2.16)
y (k) = h(x (k)) + n(k),
(2.17)
kde f (x (k)) je neline´arn´ı stavov´a funkce a h(x (k)) je neline´arn´ı v´ ystupn´ı funkce.
Algoritmus Kalmanova filtru popsan´ y v sekci 2.3 je moˇzn´e rozˇs´ıˇrit i na neline´arn´ı syst´emy popsan´e rovnicemi (2.16) a (2.17). Predikˇcn´ı krok algoritmu rozˇs´ıˇren´eho Kalmanova filtru potom bude vypadat n´asledovnˇe. ˆ x (k + 1|k) = f (ˆ x (k)) A(k) =
∂f (x ) ∂x x =ˆx (k|k)
P(k + 1|k) = A(k)P(k|k)AT (k) + Q
(2.18) (2.19) (2.20)
Zde je vidˇet, ˇze predikce stavu se poˇc´ıt´a pomoc´ı neline´arn´ıch rovnic, zat´ımco pro v´ ypoˇcet kovarianˇcn´ı matice chyby P se vyuˇzije matice A vypoˇcten´e jako jakobi´an funkce f (x ),
ˇ KAPITOLA 2. OBECNE
18
Obr´ azek 2.7: Algoritmus rozˇs´ıˇren´eho Kalmanova filtru
kter´a je tak linearizov´ana v okol´ı aktu´aln´ıho pracovn´ıho bodu. Podobnˇe potom vypadaj´ı rovnice kroku aktualizace. H (k) =
∂h(x ) ∂x x =ˆx (k|k−1)
K (k) = P(k|k − 1)H T (k)(H (k)P(k|k − 1)H T (k) + R)−1
(2.21) (2.22)
ˆ x (k|k) = ˆ x (k|k − 1) + K (k)(y (k) − h(ˆ x (k|k − 1)))
(2.23)
P(k|k) = P(k|k − 1) − K (k)(H (k)P(k|k − 1)H T (k) + R)K T (k)
(2.24)
Matice H (k) je zde jakobi´an funkce h(x ), kter´a je tak opˇet linearizov´ana kolem aktu´aln´ıho pracovn´ıho bodu. Sch´ema pr´ace algoritmu rozˇs´ıˇren´eho Kalmanova filtru m˚ uˇzeme vidˇet na obr´azku 2.7.
Podrobnˇejˇs´ı v´ yklad t´ ykaj´ıc´ı se Kalmanova filtru a jeho modifikac´ı je moˇzno nal´ezt ˇ v literatuˇre (Havlena, V. a Stecha, J., 2000).
Kapitola 3 Sbˇ er dat D˚ uleˇzitou kapitolou t´eto pr´ace jsou senzory zaloˇzen´e na nejr˚ uznˇejˇs´ıch fyzik´aln´ıch principech a jevech, kter´e poskytuj´ı d˚ uleˇzit´a letov´a data, kter´a m˚ uˇzeme d´ale zpracov´avat. Pro u ´ˇcel odhadu orientace v prostoru budou v t´eto pr´aci pouˇzity zejm´ena tˇri druhy senzor˚ u, a to gyroskopy, akcelerometry (tyto dva spadaj´ı do skupiny senzor˚ u inerci´aln´ı navigace) a magnetometry. S kaˇzd´ ym z tˇechto senzor˚ u se d´ale sezn´am´ıme bl´ıˇze, abychom si pˇribl´ıˇzili principy, na jejichˇz z´akladˇe tyto senzory mˇeˇr´ı, a t´ım p´adem byli schopni jejich v´ ystupn´ı data co nejefektivnˇeji vyuˇz´ıt.
3.1
Senzory inerci´ aln´ı navigace
Inerci´aln´ı navigace je proces, pˇri kter´em se pomoc´ı inerci´aln´ıch senzor˚ u, jako jsou gyroskopy a akcelerometry, prov´ad´ı mˇeˇren´ı, jehoˇz hodnoty slouˇz´ı pro v´ ypoˇcet postupn´eho pohybu objektu.
Inerci´aln´ı navigaˇcn´ı syst´em se skl´ad´a z mˇeˇr´ıc´ı jednotky, kter´a obsahuje akcelerometry a gyroskopy, a z navigaˇcn´ıho poˇc´ıtaˇce, kter´ y vyhodnocuje data z mˇeˇr´ıc´ıch zaˇr´ızen´ı a urˇcuje aktu´aln´ı polohu objektu. Toto uspoˇr´ad´an´ı m´a potom velkou v´ yhodu v sobˇestaˇcnosti, jelikoˇz pro svou ˇcinnost nepotˇrebuje ˇz´adn´a vnˇejˇs´ı zaˇr´ızen´ı nebo objekty. Dalˇs´ı v´ yhodou je odolnost v˚ uˇci vnˇejˇs´ım vliv˚ um, jako je poˇcas´ı, magnetick´e poruchy atd. 19
ˇ DAT KAPITOLA 3. SBER
20
Z´akladn´ı myˇslenka tohoto uspoˇra´d´an´ı je zaloˇzena na Newtonovˇe pohybov´em z´akonu (Feynman, R. P. et al., 2000), kter´ y ˇr´ık´a, ˇze vyprodukovan´a s´ıla je pˇr´ımo u ´mˇern´a zrychlen´ı tˇelˇesa. Dle t´eto souvislosti m˚ uˇzeme vypoˇc´ıtat zmˇenu rychlosti a t´ım i pozici v ˇcase. Tuto informaci potom doplˇ nuj´ı gyroskopy, kter´e ˇr´ıkaj´ı, jak je ve chv´ıli p˚ usoben´ı zrychlen´ı tˇelˇeso orientov´ano.
V t´eto pr´aci vˇsak nebudou tyto senzory pouˇzity pˇr´ımo k navigaci, ale data z tˇechto senzor˚ u se budou pouˇz´ıvat separ´atnˇe za u ´ˇcelem co nejlepˇs´ıho odhadu orientace objektu v prostoru nad zem´ı.
3.1.1
Gyroskopy
Gyroskopy jsou zaˇr´ızen´ı vyuˇz´ıvan´a ke stanoven´ı u ´hlov´e rychlosti ot´aˇcen´ı objektu nebo ke stanoven´ı jeho natoˇcen´ı. Tˇechto informac´ı se vyuˇz´ıv´a zejm´ena v navigaci, a to nejen napˇr´ıklad letadel a lod´ı, ale i balistick´ ych raket a torp´ed.
Dle fyzik´aln´ıho principu, na kter´em jsou zaloˇzeny, m˚ uˇzeme gyroskopy rozdˇelit do pˇeti z´akladn´ıch skupin (Lachnit, Z., 2007): mechanick´e, optick´e, elektrick´e, jadern´e, kvantov´e.
3.1.1.1
Mechanick´ e gyroskopy
Mechanick´ y gyroskop je v podstatˇe tˇeˇzk´ y setrvaˇcn´ık ve tvaru prstence nebo kotouˇce, kter´ y rotuje kolem osy na nˇej kolm´e. Rotuj´ıc´ı setrvaˇcn´ık m´a moment hybnosti, kter´ y je d´an
´ ´I NAVIGACE 3.1. SENZORY INERCIALN
21
vztahem MH = Jω, kde J je moment setrvaˇcnosti tohoto setrvaˇcn´ıku k ose rotace a ω je u ´hlov´a rychlost rotace k t´eto ose. D´ıky nenulov´emu momentu hybnosti udrˇzuje osa rotuj´ıc´ıho setrvaˇcn´ıku st´ale stejn´ y smˇer, pokud nen´ı ovlivˇ nov´an vnˇejˇs´ımi silami. Tohoto efektu se potom vyuˇz´ıv´a k urˇcov´an´ı orientace objekt˚ u v prostoru - gyroskop si st´ale uchov´av´a v´ ychoz´ı orientaci, kdeˇzto objekt pohybuj´ıc´ı se v prostoru se v˚ uˇci gyroskopu ot´aˇc´ı. Aby byl setrvaˇcn´ık ovlivˇ nov´an vnˇejˇs´ımi silami co moˇzn´a nejm´enˇe, umist’uje se do tzv. Cardanova z´avˇesu, kter´ y m´a tˇri stupnˇe volnosti.
Dalˇs´ı zaj´ımavou vlastnost´ı mechnick´eho gyroskopu je to, ˇze pokud na rotuj´ıc´ı setrvaˇcn´ık p˚ usob´ı vnˇejˇs´ı s´ıly, kter´e vyvolaj´ı ot´aˇcen´ı kolem jin´e osy, neˇz je osa rotace setrvaˇcn´ıku, dojde k precesn´ımu pohybu, pˇri nˇemˇz se osa rotace setrvaˇcn´ıku bude snaˇzit po co nejkratˇs´ı dr´aze sesouhlasit s osou rotace vyvolan´e vnˇejˇs´ımi silami. Takto se d´a vhodnˇe uloˇzen´ y gyroskop pouˇz´ıt jako kompas, kdy vnˇeˇs´ı p˚ usob´ıc´ı silou je rotace Zemˇe. Osa rotace gyroskopu se po urˇcit´e dobˇe sesouhlas´ı s osou rotace Zemˇe a osa gyroskopu tedy ukazuje na sever.
3.1.1.2
Optick´ e gyroskopy
Optick´e gyroskopy jsou zaloˇzeny na principu Sagnacova jevu, coˇz znamen´a, ˇze pˇri rotaci kruhov´eho vlnovodu u ´hlovou rychlost´ı Ω, ve kter´em proti sobˇe ob´ıhaj´ı dva svˇeteln´e svazky, je obvodov´a rychlost svazku ob´ıhaj´ıc´ıho ve smˇeru rotace vlnovodu zvyˇsov´ana o hodnotu v = Ω · R, kde R je polomˇer rotace vlnovodu, zat´ımco obvodov´a rychlost svazku ob´ıhaj´ıc´ıho proti smˇeru rotace vlnovodu je o stejnou hodnotu sniˇzov´ana.
Optick´e gyroskopy lze rozdˇelit na dva druhy: laserov´ e, kde jsou svˇeteln´e svazky vedeny pomoc´ı soustavy zrcadel k detektoru, vl´ aknov´ e, kde jsou svˇeteln´e svazky vedeny k detektoru pomoc´ı optick´eho vlnovodu.
ˇ DAT KAPITOLA 3. SBER
22
Obr´ azek 3.1: Uspoˇra´d´ an´ı sn´ımaˇce MEMS gyroskopu
3.1.1.3
Elektrick´ e gyroskopy
Elektrick´e gyroskopy se vyr´abˇej´ı v proveden´ı MEMS1 a mimo samotn´eho sn´ımaˇce obsahuj´ı i spoustu vyhodnocovac´ıch a ˇr´ıdic´ıch obvod˚ u a obvod˚ u logiky.
Gyroskopy vyr´abˇen´e jako integrovan´e obvody MEMS pracuj´ı na principu Coriolisovy s´ıly, coˇz je takzvan´a virtu´aln´ı s´ıla, kter´a p˚ usob´ı na kaˇzd´ y hmotn´ y objekt, kter´ y se pohybuje rychlost´ı v v soustavˇe, kter´a rotuje kolem sv´e osy rotace u ´hlovou rychlost´ı ω. Tato s´ıla tedy p˚ usob´ı na kaˇzd´ y hmotn´ y objekt na Zemi. Coriolisovu s´ılu popisuje n´asleduj´ıc´ı vztah. FC = m · v × ω, kde m je hmotnost pohybuj´ıc´ıho se objektu, v je vektor rychlosti pohybuj´ıc´ıho se objektu a ω je vektor u ´hlov´e rychlosti rotace soustavy.
Uspoˇra´d´an´ı sn´ımaˇce MEMS gyroskopu je vidˇet na obr´azku 3.1. Z´aklad tvoˇr´ı rezonuj´ıc´ı struktura upevnˇen´a v r´amu, kter´a se vlivem vlastn´ı mechanick´e rezonance, kter´a 1
Micro-Electro-Mechanical Systems
´ ´I NAVIGACE 3.1. SENZORY INERCIALN
23
je zde reprezentov´ana pruˇzinami, pohybuje ve smˇeru kolm´em na smˇer rotace. Pˇri tomto pohybu vznik´a Coriolisova s´ıla, jej´ıˇz velikost je u ´mˇern´a u ´hlov´e rychlosti rotace. Tato s´ıla p˚ usob´ı na vnˇejˇs´ı pruˇziny, ˇc´ımˇz se mˇen´ı vz´ajemn´a poloha mˇeˇr´ıc´ıch ploˇsek, kter´e mohou m´ıt napˇr´ıklad funkci elektrod vzduchov´ ych kondenz´ator˚ u.
3.1.1.4
Jadern´ e gyroskopy
Jadern´e gyroskopy (Lachnit, Z., 2007) vyuˇz´ıvaj´ı principu jadern´eho paramagnetismu l´atek, jako je voda, organick´e roztoky, helium, p´ara rtuti atd. Atomy nebo molekuly tˇechto l´atek maj´ı v z´akladn´ım stavu magnetick´ y moment dan´ y spiny jader (vlastn´ı moment hybnosti). Pokud orientujeme magnetick´e momenty jader magnetick´ ym polem, a potom pole zruˇs´ıme, pak pokud nep˚ usob´ı jin´e magnetick´e pole, zachov´a si v´ ysledn´ y magnetick´ y moment po jistou dobu svou prostorovou orientaci, a to nez´avisle na zmˇen´ach orientace objektu obsahuj´ıc´ı tuto l´atku. Nicm´enˇe hodnota v´ ysledn´eho magnetick´eho pole bude v d˚ usledku relaxace postupnˇe klesat. Proto se pro tyto druhy gyroskop˚ u vol´ı l´atky s velk´ ymi relaxaˇcn´ımi ˇcasy. 3.1.1.5
Kvantov´ e gyroskopy
Kvantov´ y gyroskop (Lachnit, Z., 2007) je svou funkc´ı podobn´ y mechanick´emu gyroskopu, jen nevyuˇz´ıv´a vlastnost´ı setrvaˇcn´e hmoty, ale vlastnost´ı atomov´ ych jader.
3.1.2
Akcelerometry
Akcelerometry jsou v dneˇsn´ı dobˇe velmi rozˇs´ıˇren´e a velmi pouˇz´ıvan´e sn´ımaˇce. Prim´arn´ı veliˇcinou, kterou sn´ımaj´ı, je s´ıla, kter´a je vyvozena pˇri zrychlen´ı tˇelesa. Akcelerometry jsou schopny mˇeˇrit zrychlen´ı jak statick´e, coˇz je napˇr´ıklad t´ıhov´e zrychlen´ı pˇr´ıtomn´e nad povrchem Zemˇe, tak dynamick´e, kter´e je d´ano skuteˇcn´ ym zrychlen´ım objektu.
Hodnota zrychlen´ı se bˇeˇznˇe ud´av´a v jednotk´ach g, coˇz ud´av´a n´asobek t´ıhov´eho zrychlen´ı na Zemi. T´ıhov´e zrychlen´ı na Zemi je v´ ysledkem sloˇzen´ı gravitaˇcn´ıho zrychlen´ı
ˇ DAT KAPITOLA 3. SBER
24
a odstˇrediv´eho zrychlen´ı, kter´e vznik´a v d˚ usledku rotace Zemˇe. Jednotkou t´ıhov´eho zrychlen´ı je m · s−2 . Zde jeˇstˇe stoj´ı za zm´ınku, ˇze hodnota gravitaˇcn´ıho a odstˇrediv´eho zrychlen´ı v bl´ızkosti Zemˇe nen´ı vˇzdy stejn´a, ale z´avis´ı i na vzd´alenosti od stˇredu Zemˇe. M´ıstn´ı t´ıhov´e zrychlen´ı d´ale z´avis´ı na zemˇepisn´e ˇs´ıˇrce a nadmoˇrsk´e v´ yˇsce. Za pˇredpokladu, ˇze je v´ yˇska vzhledem k zemsk´emu pr˚ umˇeru mal´a, se na jeden metr v´ yˇsky sniˇzuje g o 3 · 10−6 m · s−2 . Dohodnut´a stˇredn´ı hodnota t´ıhov´eho zrychlen´ı, tzv. norm´aln´ı t´ıhov´e zrychlen´ı, je g = 9, 80665 m · s−2 . Senzory mohou mˇeˇrit od velmi n´ızk´ ych hodnot g, ale dok´aˇz´ı n´arazovˇe vydrˇzet i hodnoty v okol´ı tis´ıcin´asobku g.
Akcelerometry jsou v dneˇsn´ı dobˇe rozˇs´ıˇreny ve velk´em mnoˇzstv´ı nejr˚ uznˇejˇs´ıch oblast´ı: navigace, elektronick´e libely, detekce p´ adu, detekce n´ arazu, stabilizace obrazu, monitorov´ an´ı seismick´e aktivity, rehabilitaˇcn´ı pˇr´ıstroje, pedometry, zaˇr´ızen´ı pro sportovn´ı l´ekaˇrstv´ı a mnoho dalˇs´ıch.
Pro kaˇzdou oblast vyuˇzit´ı je pak vhodn´ y jin´ y typ akcelerometru. Akcelerometry lze rozdˇelit podle nˇekolika hledisek (Lachnit, Z., 2007). M˚ uˇze to b´ yt napˇr´ıklad podle poˇctu os, ve kter´ ych je akcelerometr schopen mˇeˇrit, a to na akcelerometry jednoos´e, dvouos´e a tˇr´ıos´e. D´ale m˚ uˇzeme akcelerometry dˇelit na akcelerometry se seismickou hmotou a MEMS akcelerometry s promˇennou kapacitou. Z akcelerometr˚ u se seismickou hmotou stoj´ı v dneˇsn´ı dobˇe za zm´ınku piezoelektrick´e akcelerometry, kter´e vyuˇz´ıvaj´ı piezoelektrick´ y krystal generuj´ıc´ı n´aboj u ´mˇern´ y s´ıle (zrychlen´ı) p˚ usob´ıc´ı na objekt, a piezo-
3.2. MAGNETOMETRY
25
rezistivn´ı akcelerometry, kter´e vyuˇz´ıvaj´ı mikrokˇrem´ıkovou mechanickou strukturu, kde zrychlen´ı odpov´ıd´a zmˇenˇe odporu.
3.2
Magnetometry
N´azev tohoto senzoru je odvozen od vˇedn´ı discipl´ıny, kter´a se jmenuje magnetometrie (EnviWeb s.r.o., 2008). Magnetometrie se zab´ yv´a mˇeˇren´ım indukce magnetick´eho pole, kter´a se mˇeˇr´ı bud’ v jednotk´ach Tesla (znaˇceno T), nebo Gauss (znaˇceno G) a plat´ı 1 T = 10 000 G. Magnetick´a indukce je vektorov´a veliˇcina a m´a tedy velikost a smˇer.
Magnetometry maj´ı velice ˇsirok´e moˇznosti vyuˇzit´ı: kompas (buzola), navigaˇcn´ı syst´emy, labolatorn´ı n´ astroje, medic´ınsk´e n´ astroje, geologick´e pr˚ uzkumy, archeologick´e pr˚ uzkumy, potravin´ aˇrsk´ y pr˚ umysl, zemˇedˇelsk´ y pr˚ umysl a mnoho dalˇs´ıch.
V kaˇzd´e oblasti se vˇsak magnetick´e pole m˚ uˇze vyuˇz´ıvat r˚ uznˇe. V nˇekter´ ych pˇr´ıpadech staˇc´ı pouze informace o jeho pˇr´ıtomnosti, jinde zase m˚ uˇzeme potˇrebovat informaci o intenzitˇe, smˇeru ˇci zmˇenˇe tohoto pole. Senzor˚ u, kter´e n´am tyto informace mohou poskytnout, exisˇmec, M., 2005). tuje cel´a ˇrada (Ne
ˇ DAT KAPITOLA 3. SBER
26
Obr´ azek 3.2: Dip´ olov´ y
charakter
magnetick´eho
pole
Zemˇe
(zdroj:
www.cez.cz)
V t´eto pr´aci se budeme zab´ yvat v´ yhradnˇe magnetick´ ym polem Zemˇe, jelikoˇz n´am jde o urˇcov´an´ı orientace objektu v prostoru nad jej´ım povrchem.
Magnetick´e pole Zemˇe s nejvˇetˇs´ı pravdˇepodobnost´ı vznik´a pohyby v jej´ım tekut´em j´adru a mˇen´ı se v ˇcase i v prostoru. Rozloˇzen´ı celkov´e intenzity magnetick´eho pole Zemˇe je potom vidˇet na obr´azku 3.3. Z tohoto obr´azku je tak´e vidˇet, ˇze pro Stˇredn´ı Evropu nab´ yv´a tato hodnota velikosti pˇribliˇznˇe 45000 nT. Tato hodnota vˇsak z´avis´ı i na aktivit´ach j´adra Zemˇe, na aktivitˇe Slunce a na magnetick´ ych bouˇr´ıch v ionosf´eˇre, d´ale na materi´alu zemsk´e k˚ ury a podobnˇe.
Magnetick´e pole Zemˇe m´a dip´olov´ y charakter, jak je vidˇet na obr´azku 3.2. Severn´ı magnetick´ y p´ol dnes leˇz´ı v severn´ıch oblastech Kanady a jiˇzn´ı magnetick´ y p´ol se nach´az´ı v Antarktidˇe. Zde je zˇreba si uvˇedomit, ˇze poloha magnetick´ ych a zemˇepisn´ ych p´ol˚ u se liˇs´ı, a tedy napˇr´ıklad stˇrelka kompasu neukazuje pˇresnˇe na zemˇepisn´ y sever, ale je m´ırnˇe ´ vych´ ylena. Uhel mezi smˇerem na sever (poledn´ık) a smˇerem, kam ukazuje kompas, se naz´ yv´a magnetick´a deklinace. Tento u ´hel je na r˚ uzn´ ych m´ıstech Zemˇe r˚ uznˇe velk´ y, coˇz je ˇ zn´azornˇeno na obr´azku 3.4. V dneˇsn´ı dobˇe je hodnota magnetick´e deklinace v Cesku asi 2 stupnˇe a 53 minut na v´ ychod a posouv´a se kaˇzd´ y rok asi o 6 minut v´ ychodn´ım smˇerem. Vektor intenzity magnetick´eho pole Zemˇe se vˇsak neprojevuje pouze v horizont´aln´ı rovinˇe, ale m´a svou sloˇzku i v rovinˇe veritk´an´ı. Sklon tohoto vektoru od horizont´aln´ı roviny se ˇ ´, J., naz´ yv´a magnetick´a inklinace a v Cesku m´a hodnotu asi 65 stupˇ n˚ u a 7 minut (Perny 2006). Jelikoˇz je tento sklon smˇeˇrov´an k Zemi, tedy smˇerem dol˚ u, je inklinace kladn´a.
3.2. MAGNETOMETRY
Obr´ azek 3.3: Celkov´a intenzita mag. pole na Zemi v nT (zdroj: www.geophysics.ou.edu)
Obr´ azek 3.4: Mag. deklinace na Zemi ve stupn´ıch z roku 1860 (zdroj: www.wikipedia.org)
27
ˇ DAT KAPITOLA 3. SBER
28
3.3
Chyby senzor˚ u
I pˇres velk´e pokroky v technologi´ıch v´ yroby senzor˚ u je st´ale tˇreba br´at v u ´vahu jejich nedokonalost. Tato nedokonalost potom zp˚ usobuje chyby v jejich mˇeˇren´ı, coˇz m˚ uˇze b´ yt zp˚ usobeno technologi´ı v´ yroby, ale i samotn´ ym fyzik´aln´ım principem, na kter´em je dan´ y senzor zaloˇzen.
Chyby senzor˚ u m˚ uˇzeme dˇelit na tˇri z´akladn´ı skupiny podle toho, jak se vyv´ıjej´ı v ˇcase. Prvn´ı skupinou jsou chyby, kter´e se v ˇcase nijak nevyv´ıjej´ı a maj´ı tedy stejn´e hodnoty v pr˚ ubˇehu cel´eho mˇeˇren´ı. Druhou skupinou jsou chyby, kter´e se v ˇcase mˇen´ı, ale kolem spr´avn´e hodnoty bud’ osciluj´ı, nebo se od n´ı odchyluj´ı pouze na omezenou dobu. Posledn´ı skupinou jsou chyby, kter´e se v ˇcase vyv´ıjej´ı, avˇsak maj´ı sp´ıˇse kumulativn´ı charakter. To znamen´a, ˇze chyba v ˇcase st´ale nar˚ ust´a a je tedy potˇreba s t´ım poˇc´ıtat.
Dle sv´e povahy m˚ uˇzeme z´akladn´ı chyby d´ale dˇelit na n´asleduj´ıc´ı: Bias. Tato chyba m´ıv´ a ˇcasto dvˇe sloˇzky. Prvn´ı z nich se v ˇcase nevyv´ıj´ı a jedn´a se
tedy o nenulovou hodnotu v´ ystupu pˇri nulov´em vstupu senzoru po zapnut´ı senzoru. Tato sloˇzka se v pr˚ ubˇehu mˇeˇren´ı nemˇen´ı, avˇsak m˚ uˇze nab´ yvat rozd´ıln´ ych hodnot pˇri kaˇzd´em zapnut´ı senzoru. Druhou sloˇzkou t´eto chyby je sloˇzka ˇcasovˇe promˇenn´a, kter´a m˚ uˇze m´ıt i kumulativn´ı charakter a je zp˚ usobena napˇr´ıklad zmˇenami teploty nebo fyzik´aln´ım principem, na kter´em je seznor zaloˇzen. Tento druh chyby se v r˚ uzn´e m´ıˇre vyskytuje u vˇsech senzor˚ u. Scale factor error. Tato chyba vyjadˇruje nest´ alost pomˇeru zmˇeny v´ ystupn´ıho
sign´alu ke zmˇenˇe vstupn´ıho sign´alu senzoru. Tato chyba se m˚ uˇze bˇehem mˇeˇren´ı m´ırnˇe mˇenit, ale m´ıv´a tak´e konstantn´ı sloˇzku, kter´a m˚ uˇze b´ yt zp˚ usobena napˇr´ıklad st´arnut´ım senzoru nebo tolerancemi pˇri jeho v´ yrobˇe. Misalignment error. Tato chyba je zp˚ usobena nepˇresn´ ym um´ıstˇen´ım senzor˚ u.
Pokud chceme mˇeˇrit veliˇcinu ve v´ıce os´ach objektu, ˇcasto nestaˇc´ı jedin´ y senzor, ale potˇrebujeme jich v´ıce na sebe kolm´ ych. Ne vˇzdy se vˇsak pˇri v´ yrobˇe podaˇr´ı
˚ 3.3. CHYBY SENZORU
29
tyto senzory um´ıstit pˇresnˇe kolmo na sebe, nav´ıc se ˇcasto nepodaˇr´ı tuto soustavu senzor˚ u um´ıstit tak, aby osy mˇeˇren´ı tˇechto senzor˚ u souhlasily s osami soustavy, ve kter´e chceme mˇeˇrit. Toto se potom projev´ı tak, ˇze se do jednotliv´ ych os mˇeˇren´ı senzor˚ u v r˚ uzn´e m´ıˇre prom´ıtnou i sloˇzky z os ostatn´ıch, kter´e by tyto jednotliv´e senzory teoreticky v˚ ubec nemˇely mˇeˇrit, a naopak sloˇzky, kter´e by tˇemito senzory mˇely b´ yt mˇeˇreny, jsou t´ımto zeslabeny. Citlivost senzor˚ u v jednotliv´ ych os´ach potom tedy nen´ı ide´aln´ı. ˇ Sum. Tato chyba vyjadˇruje zat´ıˇzen´ı v´ ystupn´ıho sign´alu senzoru ruˇsiv´ ym sign´alem. To se potom projev´ı oscilac´ı v´ ystupn´ı hodnoty senzoru kolem hodnoty skuteˇcn´e. Tento druh chyby m˚ uˇze m´ıt celou ˇsk´alu r˚ uzn´ ych pˇr´ıˇcin. M˚ uˇze b´ yt napˇr´ıklad zp˚ usoben elektronick´ ymi syst´emy samotn´eho senzoru, ale i okoln´ı elektronikou. Dle fyzik´aln´ıho principu, na kter´em jsou jednotliv´e senzory zaloˇzeny, mohou b´ yt pˇr´ıˇcinou t´eto chyby i r˚ uzn´e vnˇejˇs´ı vlivy, napˇr´ıklad ruˇsiv´e magnetick´e pole v pˇr´ıpadˇe mˇeˇren´ı magnetometry.
Pokud chceme u ´daje z´ıskan´e senzory co nejefektivnˇeji vyuˇz´ıt, je tˇreba s chybami v jimi namˇeˇren´ ych hodnot´ach poˇc´ıtat. Rovnici mˇeˇren´ı, kter´a respektuje jednotliv´e chyby uveden´e v´ yˇse, m˚ uˇzeme zapsat jako f m = Sff + M ff + Bf + nf,
(3.1)
kde f m je vektor hodnot mˇeˇren´e veliˇciny zmˇeˇren´ ych senzory v jednotliv´ ych os´ach, f je vektor jejich skuteˇcn´ ych hodnot, S f je diagon´aln´ı matice (m˚ uˇze to vˇsak b´ yt i polynomi´aln´ı funkce mˇeˇren´e veliˇciny) vyjadˇruj´ıc´ı scale factor error, M f je matice vyjadˇruj´ıc´ı misalignment error, B f je vektor vyjadˇruj´ıc´ı bias senzoru a n f je vektor ˇsumu senzoru.
30
ˇ DAT KAPITOLA 3. SBER
Kapitola 4 Integrace dat V t´eto sekci se pod´ıv´ame na to, jak data z´ıskan´a ze senzor˚ u co nejefektivnˇeji vyuˇz´ıt. Integrace dat se m˚ uˇze prov´adˇet hned za nˇekolika r˚ uzn´ ymi u ´ˇcely.
Jedn´ım z nich je napˇr´ıklad pˇr´ıpad, kde m´ame nˇekolik r˚ uzn´ ych senzor˚ u, jejichˇz informace se navz´ajem doplˇ nuj´ı, a my jsme potom schopni z tˇechto dat z´ıskat informace nov´e. Pˇr´ıkladem m˚ uˇze b´ yt palubn´ı poˇc´ıtaˇc automobilu, kter´ y je schopen n´am napˇr´ıklad vypoˇc´ıtat pr˚ umˇernou spotˇrebu paliva na z´akladˇe informac´ı o ujet´e vzd´alenosti a mnoˇzstv´ı spotˇrebovan´eho paliva.
Dalˇs´ım pˇr´ıpadem je situace, kdy m´ame k dispozici nˇekolik totoˇzn´ ych senzor˚ u, d´ıky ˇcemuˇz jsme schopni z´ıkat informaci, kterou bychom pomoc´ı jedin´eho senzoru z´ıskat nemohli. Pˇr´ıkladem mohou b´ yt dvˇe kamery um´ıstˇen´e vedle sebe zamˇeˇruj´ıc´ı stejn´ y bod. Kombinac´ı takto poˇr´ızen´ ych dvourozmˇern´ ych obr´azk˚ u jsme potom schopni vypoˇc´ıtat vzd´alenost zamˇeˇren´eho objektu a tedy dvourozmˇernou informaci z jednotliv´ ych kamer doplnit o tˇret´ı rozmˇer, tedy hloubku.
Pˇr´ıpadem, kter´ ym se budeme zab´ yvat v t´eto pr´aci, je situace, kde m´ame nˇekolik r˚ uzn´ ych senzor˚ u zaloˇzen´ ych na rozd´ıln´ ych fyzik´aln´ıch principech a jevech, avˇsak vzhledem k veliˇcinˇe, kterou chceme mˇeˇrit, jsou informace z nich do jist´e m´ıry redundatn´ı. Pokud by vˇsak tyto senzory mˇeˇrily dokonale pˇresnˇe a jejich v´ ystup by nebyl nijak zat´ıˇzen 31
KAPITOLA 4. INTEGRACE DAT
32
chybami, byla by tato redundance zbyteˇcn´a a k urˇcen´ı mˇeˇren´e veliˇciny by staˇcil jedin´ y senzor, kter´ y by byl schopen tuto veliˇcinu mˇeˇrit. V dneˇsn´ı dobˇe vˇsak senzory dokonal´e rozhodnˇe nejsou, coˇz jeˇstˇe m˚ uˇze b´ yt umocnˇeno pouˇzit´ım levn´ ych senzor˚ u, kter´e maj´ı chyby obecnˇe v´ yznamnˇejˇs´ı.
V t´eto pr´aci budeme k urˇcen´ı orientace objektu v prostoru uvaˇzovat tˇri druhy senzor˚ u, jejichˇz funkce a principy byly nast´ınˇeny v kapitole 3. Prvn´ım z nich jsou gyroskopy, kter´e mˇeˇr´ı u ´hlovou rychlost ot´aˇcen´ı tohoto objektu. Jelikoˇz v´ıme, ˇze vztah mezi u ´hlovou rychlost´ı ot´aˇcen´ı a zmˇenou polohov´eho u ´hlu je obecnˇe d´an vztahem ω=
dα = α, ˙ dt
(4.1)
kde ω je vektor u ´hlov´e rychlosti ot´aˇcen´ı a α je polohov´ yu ´hel, bude informace o u ´hlov´ ych rychlostech ot´aˇcen´ı kolem jednotliv´ ych tˇelesov´ ych os velmi uˇziteˇcn´a.
Dalˇs´ımi senzory, jejichˇz informace vyuˇzijeme, jsou akcelerometry. V tomto pˇr´ıpadˇe n´am vˇsak bude uˇziteˇcn´a pouze sloˇzka gravitaˇcn´ıho zrychlen´ı, kterou akcelerometry mˇeˇr´ı jako statick´e zrychlen´ı, a akcelerometry tak vyuˇzijeme jako libelu. Je vˇsak tˇreba si uvˇedomit, ˇze zde tak´e existuj´ı sloˇzky zrychlen´ı zp˚ usoben´e zmˇenou rychlosti pohybu objektu, kter´e jsou pro n´as potom ˇskodlivou informac´ı, a to nesm´ı b´ yt opom´ıjeno.
Posledn´ımi senzory jsou magnetometry, kter´e budou vyuˇzity podobnˇe jako akcelerometry s t´ım rozd´ılem, ˇze vektor intenzity magnetick´eho pole Zemˇe, kter´ y je magnetometry sn´ım´an, m´a jin´ y smˇer a velikost neˇz vektor gravitaˇcn´ıho zrychlen´ı. V´ yhodou oproti akcelerometr˚ um je v tom, ˇze zde mˇeˇren´a veliˇcina nen´ı negativnˇe ovlivˇ nov´ana pˇr´ımo pohybem objektu. Nev´ yhoda vˇsak m˚ uˇze spoˇc´ıvat v moˇznosti zkreslen´ı vektrou intenzity magnetick´eho pole Zemˇe r˚ uzn´ ymi elektronick´ ymi pˇr´ıstoji a dalˇs´ımi vnˇejˇs´ımi vlivy, jako jsou veden´ı vysok´eho napˇet´ı, magnetick´e horniny atd.
M´ame tedy r˚ uzn´e senzory zat´ıˇzen´e r˚ uzn´ ymi chybami a naˇs´ım c´ılem je, aby tyto senzory sv´e chyby vz´ajemnˇe potlaˇcovaly.
´ 4.1. GENERATOR DAT
4.1
33
Gener´ ator dat
Nutnou sloˇzkou syst´emu efektivn´ı integrace dat v t´eto pr´aci je gener´ator, kter´ y zachycuje ˇcinnost jednotliv´ ych senzor˚ u popsan´ ych v sekc´ıch 3.1 a 3.2 ve vztahu k mˇeˇren´ı polohov´ ych u ´hl˚ u.
4.1.1
Vˇ etev gyroskop˚ u
Jak jiˇz bylo ˇreˇceno v sekci 3.1.1, gyroskopy jsou prim´arnˇe urˇceny k mˇeˇren´ı u ´hlov´e rychlosti rotace objektu, na kter´em jsou um´ıstˇeny. Zde si tedy vytvoˇr´ıme model, kter´ y bude zn´azorˇ novat funkci tˇechto senzor˚ u v ide´aln´ım pˇr´ıpadˇe, tedy zat´ım bez zat´ıˇzen´ı mˇeˇren´ı chybami. Tento model bude tedy vyjadˇrovat vztah mezi polohov´ ymi u ´hly a u ´hlovou rychlost´ı rotace objektu. Sch´ema tohoto modelu je zn´azornˇeno na obr´azku 4.1.
Vztah mezi polohov´ ym u ´hlem a u ´hlovou rychlost´ı rotace je obecnˇe d´an vztahem (4.1). Zde je vˇsak tˇreba si uvˇedomit, ˇze nen´ı moˇzn´e tento vztah pouˇz´ıt na jednotliv´e osy separ´atnˇe, jelikoˇz zmˇeny polohov´ ych u ´hl˚ u jsou vz´ajemnˇe prov´az´any. Napˇr´ıklad v pˇr´ıpadˇe nenulov´eho u ´hlu klopen´ı Θ nezp˚ usob´ı ot´aˇcen´ı kolem tˇelesov´e osy z pouze zmˇenu u ´hlu natoˇcen´ı Ψ, ale z´aroveˇ n se budou mˇenit zbyl´e dva polohov´e u ´hly Φ a Θ. Nicm´enˇe i pˇres to, ˇze se v takov´em pˇr´ıpadˇe mˇen´ı vˇsechny polohov´e u ´hly, gyroskopy zaznamenaj´ı u ´hlovou rotaci pouze kolem tˇelesov´e osy z. Tato skuteˇcnost je d´ana t´ım, ˇze gyroskopy mˇeˇr´ı u ´hlovou rychlost rotace pˇr´ımo v tˇelesov´e souˇradn´e soustavˇe, zat´ımco jednotliv´e polohov´e u ´hly Φ, Θ a Ψ jsou urˇcov´any jako natoˇcen´ı tˇelesov´e souˇradn´e soustavy v˚ uˇci soustavˇe navigaˇcn´ı. Zjiˇstˇen´ım derivac´ı jednotliv´ ych polohov´ ych u ´hl˚ u (bloky Discrete Derivative“ na obr´azu ” 4.1) tedy nez´ısk´ame informace pˇr´ımo o u ´hlov´ ych rychlostech rotac´ı p, q a r. Informaci o rychlostech zmˇen jednotliv´ ych u ´hl˚ u, kter´e jsou mˇeˇreny v navigaˇcn´ı souˇradn´e soustavˇe, je tedy tˇreba transformovat na u ´daje poskytovan´e gyroskopy, jeˇz mˇeˇr´ı u ´hlov´e rychlosti v tˇelesov´e souˇradn´e soustavˇe. Tuto transformaci provedeme dle vztahu ⎡ ⎤ ⎡ ⎤⎡ ⎤ p 1 0 − sin(Θ) Φ˙ ⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎢ ˙ ⎥ = ⎢ q ⎥ ⎢ 0 cos(Φ) sin(Φ) cos(Θ) ⎥ ⎢ Θ ⎥ , ⎣ ⎦ ⎣ ⎦⎣ ⎦ ˙ r 0 − sin(Φ) cos(Φ) cos(Θ) Ψ
KAPITOLA 4. INTEGRACE DAT
34
1 Phi
2 Theta
3 Psi
K (z−1) Ts z Discrete Derivative
K (z−1) Ts z Discrete Derivative
MATLAB Function eul2pqr
1 p,q,r
K (z−1) Ts z Discrete Derivative
Obr´ azek 4.1: Sch´ema mˇeˇren´ı ide´ aln´ımi gyroskpy
kter´ y je z´ısk´an dosazen´ım do vztahu (2.3). Na obr´azku 4.1 tuto transformaci zajiˇst’uje blok eul2pqr“ obsahuj´ıc´ı skript uveden´ y v pˇr´ıloze A.1. T´ım jsme z´ıskali model mˇeˇren´ı ” ide´aln´ıch gyroskop˚ u.
4.1.2
Vˇ etev akcelerometr˚ u
Funkce akcelerometr˚ u jiˇz byla nast´ınˇena v sekci 3.1.2. Jak jiˇz bylo ˇreˇceno, akcelerometry jsou urˇceny k mˇeˇren´ı zrychlen´ı, a to jak statick´eho, tak dynamick´eho. Statick´e zrychlen´ı je d´ano pˇr´ıtomnost´ı hmotn´ ych tˇeles. V naˇsem pˇr´ıpadˇe, jelikoˇz se zab´ yv´ame pohybem nad povrchem Zemˇe, je t´ımto tˇelesem pr´avˇe Zemˇe. Dynamick´e zrychlen´ı je pak d´ano dynamikou pohybu objektu, na nˇemˇz jsou akcelerometry um´ıstˇeny.
Protoˇze se tato pr´ace zab´ yv´a urˇcov´an´ım polohov´ ych u ´hl˚ u, vyuˇzijeme tˇr´ıos´ y akceleroˇ a ´c ˇ, M., 2008). V takov´em pˇr´ıpadˇe je pro n´as uˇziteˇcn´a pouze metr jako sklonomˇer (Rez sloˇzka statick´eho zrychlen´ı, jej´ıˇz vektor je moˇzn´e nad povrchem Zemˇe uvaˇzovat jako konstantn´ı. Zmˇeny z´avisl´e na nadmoˇrsk´e v´ yˇsce a zemˇepisn´e ˇs´ıˇrce, kter´e byly zm´ınˇeny v sekci
´ 4.1. GENERATOR DAT
35
1 Phi [0, 0, −9.81] Gravity constants 2 Theta
MATLAB Function geo2bdy
1 ax,ay,az
3 Psi
Obr´ azek 4.2: Sch´ema mˇeˇren´ı ide´ aln´ımi akcelerometry ve funkci sklonomˇeru
3.1.2, je moˇzn´e zanedbat i proto, ˇze se zde vˇzdy budou vyskytovat i dalˇs´ı ruˇsiv´e sloˇzky, jejichˇz vliv je mnohem v´ yznamˇejˇs´ı. Nejv´ yznamˇejˇs´ı ruˇsivou sloˇzkou zde bude p˚ usoben´ı dynamick´e sloˇzky zrychlen´ı, d´ale to pak mohou b´ yt zrychlen´ı zp˚ usoben´a vibracemi pohonn´ ych jednotek atd.
Vektor t´ıhov´eho zrychlen´ı p˚ usob´ı smˇeˇrem dol˚ u, coˇz je v naˇs´ı navigaˇcn´ı soustavˇe kladn´ y smˇer. Zde je vˇsak tˇreba si uvˇedomit, ˇze akcelerometr nemˇeˇr´ı pˇr´ımo t´ıhov´e zrychlen´ı, ale mˇeˇren´ı zrychlen´ı obejktu, na kter´em je um´ıstˇen. A jelikoˇz tento objekt mus´ı t´ıhov´e zrychlen´ı kompenzovat, namˇeˇr´ı akcelerometr pr´avˇe toto kompenzaˇcn´ı zrychlen´ı“ vyvozovan´e ” objektem, kter´e m´a opaˇcn´ y smˇer neˇz t´ıhov´e zrychlen´ı.
Zde tedy vytvoˇr´ıme model, kter´ y bude zn´azorˇ novat mˇeˇren´ı ide´aln´ımi akcelerometry ve funkci sklonomˇeru. Sch´ema tohoto modelu je zn´azornˇeno na obr´azku 4.2. Zde se vektor zrychlen´ı [0; 0; −9, 81], kter´ y m´a v navigaˇcn´ı soustavˇe konstantn´ı velikost i smˇer, transformuje na z´akladˇe znalosti polohov´ ych u ´hl˚ u do soustavy tˇelesov´e, ve kter´e mˇeˇr´ı soustava akcelerometr˚ u. Tuto transformaci m˚ uˇzeme prov´est bud’ pomoc´ı transformaˇcn´ı matice smˇerov´ ych kosin˚ u dle vztahu (2.1), kde se transformaˇcn´ı matice Cbn urˇc´ı dle vztahu (2.2), nebo pomoc´ı transformaˇcn´ı matice quaternion˚ u dle vztahu (2.7), kde se transformaˇcn´ı
KAPITOLA 4. INTEGRACE DAT
36
matice C urˇc´ı dle vztahu (2.6). V t´eto pr´aci je zvolena transformace pomoc´ı quaternion˚ u. V souladu se vztahy (2.7) a (2.6) potom bude transformace vypadat dle n´asleduj´ıc´ıho vztahu. ⎡ ⎤ ⎡ 2(q1 q2 + q0 q3 ) 2(q1 q3 − q0 q2 ) a q 2 + q12 − q22 − q32 ⎢ x ⎥ ⎢ 0 ⎢ ⎥ ⎢ ⎢ ay ⎥ = ⎢ 2(q1 q2 − q0 q3 ) q02 − q12 + q22 − q32 2(q2 q3 + q0 q1 ) ⎣ ⎦ ⎣ 2(q1 q3 + q0 q2 ) az 2(q2 q3 − q0 q1 ) q02 − q12 − q22 + q32
⎤
⎤⎡ ⎥⎢ ⎥⎢ ⎥⎢ ⎦⎣
0 0 −9, 81
⎥ ⎥ ⎥ (4.2) ⎦
Zde se jednotliv´e quaterniony z polohov´ ych u ´hl˚ u urˇc´ı dle vztah˚ u (2.8) aˇz (2.11). Tato transformace je ve sch´ematu na obr´azku 4.3 realizov´ana pomoc´ı bloku geo2bdy“, kter´ y ” obsahuje skript uveden´ y v pˇr´ıloze A.2. Takto jsme z´ıskali model mˇeˇren´ı ide´aln´ıch akcelerometr˚ u ve funkci sklonomˇeru.
4.1.3
Vˇ etev magnetometr˚ u
Jak jiˇz bylo ˇreˇceno v sekci 3.2, magnetometry jsou urˇceny k mˇeˇren´ı intenzity magnetick´eho pole. Jejich funkce v t´eto pr´aci bude velmi podobn´a funkci akcelerometr˚ u, kde se tˇr´ıos´ y akcelerometr pouˇz´ıval jako sklonomˇer, neboli mˇeˇril intenzitu t´ıhov´eho pole Zemˇe ve tˇrech na sebe kolm´ ych os´ach. Zde budou magnetometry pouˇzity stejnˇe, liˇsit se budou pouze vektorem, na kter´em je toto mˇeˇren´ı zaloˇzeno. Zat´ımco vektor t´ıhov´eho zrychlen´ı, kter´ y je mˇeˇren akcelerometry, je moˇzn´e nad cel´ ym povrchem Zˇemˇe uvaˇzovat jako konstantn´ı, vektor intenzity magnetick´eho pole Zemˇe mˇen´ı sv˚ uj smˇer i velikost v z´avislosti na horizont´aln´ı poloze nad Zem´ı, jak to ukazuj´ı obr´azky 3.3 a 3.4. Z tohoto d˚ uvodu je nutn´e urˇcit pro kaˇzdou oblast, nad kterou se m´a operovat, tento vektor zvl´aˇst’. ˇ Pro Cesko se vektor intenzity magnetick´eho pole Zemˇe urˇc´ı n´asledovnˇe. Jak bylo ˇ ˇreˇceno v sekci 3.2, velikost tohoto vektoru je v Cesku pˇribliˇznˇe 45000 nT. Inklinace tohoto vektoru je zde asi 65 stupˇ n˚ u a 7 minut. Rozloˇzen´ı tohoto vektoru do horizont´aln´ı sloˇzky Mh a vertik´aln´ı sloˇzky Mv , kter´a bude z´aroveˇ n sloˇzkou vektoru v ose z, se potom urˇc´ı jako Mh = 45000 cos(65◦ 7 ) = 18939, 49 nT, Mv = M z = 45000 sin(65◦ 7 ) = 40820, 29 nT.
´ 4.1. GENERATOR DAT
37
1 Phi (Mx
My
Mz)
Magnetic constants 2 Theta
MATLAB Function geo2bdy
1 Hx,Hy,Hz
3 Psi
Obr´ azek 4.3: Sch´ema mˇeˇren´ı ide´ aln´ımi magnetometry
ˇ Horizont´aln´ı sloˇzku je d´ale nutn´e vlivem deklinace, jej´ıˇz velikost je v Cesku nyn´ı asi 2 stupnˇe a 53 minut v´ ychodn´ım smˇerem, rozdˇelit na sloˇzku v ose x a sloˇzku v ose y.
Mx = Mh cos(2◦ 53 ) = 18915, 57 nT My = Mh sin(2◦ 53 ) = 951, 60 nT
V´ yhodou oproti mˇeˇren´ı akcelerometry je nez´avislost na zrychlen´ı objektu, nicm´enˇe se zde ale mohou projevovat r˚ uzn´e vnˇejˇs´ı magnetick´e vlivy.
Opˇet vytvoˇr´ıme model, kter´ y bude zn´azorˇ novat mˇeˇren´ı ide´aln´ımi magnetometry ve funkci sklonomˇeru. Sch´ema tohoto modelu je zn´azornˇeno na obr´azku 4.3. Zde se vektor intenzity magnetick´eho pole [Mx ; My ; Mz ], kter´ y je moˇzn´e v urˇcit´e oblasti uvaˇzovat jako konstantn´ı v navigaˇcn´ı soustavˇe, opˇet transformuje na z´akladˇe znalosti polohov´ ych u ´hl˚ u do soustavy tˇelesov´e, ve kter´e mˇeˇr´ı soustava magnetometr˚ u. Tuto transformaci m˚ uˇzeme stejnˇe jako v pˇr´ıpadˇe akcelerometr˚ u prov´est bud’ pomoc´ı transformaˇcn´ı matice smˇerov´ ych kosin˚ u, nebo pomoc´ı transformaˇcn´ı matice quaternion˚ u. St´ale se vˇsak budeme drˇzet transformace pomoc´ı quaternion˚ u. V souladu se vztahy (2.7) a (2.6) potom bude transformace
KAPITOLA 4. INTEGRACE DAT
38 vypadat dle vztahu ⎡
⎤
⎡
H ⎢ x ⎥ ⎢ ⎢ ⎥ ⎢ ⎢ Hy ⎥ = ⎢ ⎣ ⎦ ⎣ Hz
q02
+
q12
−
q22
−
q32
2(q1 q2 + q0 q3 )
2(q1 q2 − q0 q3 )
q02 − q12 + q22 − q32
2(q1 q3 + q0 q2 )
2(q2 q3 − q0 q1 )
2(q1 q3 − q0 q2 )
⎤⎡
⎤
M ⎥⎢ x ⎥ ⎥⎢ ⎥ 2(q2 q3 + q0 q1 ) ⎥ ⎢ My ⎥ , (4.3) ⎦⎣ ⎦ 2 2 2 2 q 0 − q1 − q 2 + q3 Mz
kde jednotliv´e quaterniony se z polohov´ ych u ´hl˚ u urˇc´ı opˇet dle vztah˚ u (2.8) aˇz (2.11). Stejnˇe jako v pˇr´ıpadˇe akcelerometr˚ u je tato transformace ve sch´ematu na obr´azku 4.3 realizov´ana pomoc´ı bloku geo2bdy“, kter´ y obsahuje skript uveden´ y v pˇr´ıloze A.2. Takto ” jsme z´ıskali model mˇeˇren´ı ide´aln´ıch magnetometr˚ u.
4.1.4
Kompletn´ı gener´ ator dat
Spojen´ım model˚ u popsan´ ych v sekc´ıch 4.1.1 aˇz 4.1.3 z´ısk´ame kompletn´ı model gener´atoru dat, kter´ y v z´avislosti na polohov´ ych u ´hlech objektu, na kter´em jsou senzory um´ıstˇeny, reprezentuje mˇeˇren´ı ide´aln´ımi gyroskopy, akcelerometry a magnetometry . Sch´ema tohoto modelu je na obr´azku 4.4. Pomoc´ı tohoto gener´atoru m˚ uˇzeme na z´akladˇe znalosti pr˚ ubˇehu polohov´ ych u ´hl˚ u objektu z´ıskat informaci o tom, jak´e pr˚ ubˇehy hodnot by mˇely b´ yt namˇeˇreny jednotliv´ ymi senzory v ide´aln´ım pˇr´ıpadˇe.
4.2
Senzorick´ y model
V pˇredchoz´ı sekci byl vytvoˇren model gener´atoru dat, kter´ y bere v potaz fyzik´aln´ı principy jednotliv´ ych senzor˚ u a poskytuje tak u ´daje, kter´e by mˇely b´ yt v ide´aln´ım pˇr´ıpadˇe namˇeˇreny jednotliv´ ymi senzory v z´avislosti na polohov´ ych u ´hlech objektu. V dneˇsn´ı dobˇe vˇsak ˇz´adn´ y takov´ y senzor neexistuje, proto chceme-li se v´ıce pˇribl´ıˇzit realitˇe a ˇcinnost senzor˚ u namodelovat tak, aby se v´ ystup modelu realitˇe co nejv´ıce pˇribliˇzoval, mus´ıme vz´ıt v u ´vahu chyby vyskytuj´ıc´ı se v mˇeˇren´ı tˇemito senzory a co nejpˇresnˇeji je namodelovat (Kumar, N. S. a Tann, T., 2004).
´ MODEL 4.2. SENZORICKY
1 Phi
2 Theta
39
K (z−1) Ts z
MATLAB Function
Discrete Derivative
eul2pqr
[0, 0, −9.81]
K (z−1) Ts z
MATLAB Function
Gravity constants
Discrete Derivative
geo2bdy
3 Psi
1 p,q,r
(Mx
K (z−1) Ts z Discrete Derivative
My
2 ax,ay,az
Mz) MATLAB Function
Magnetic constants
geo2bdy
3 Hx,Hy,Hz
Obr´ azek 4.4: Sch´ema gener´atoru dat
V t´eto sekci se vˇsak budeme zab´ yvat pouze chybami, kter´e se daj´ı deterministicky urˇcit. To jsou napˇr´ıklad chyby zp˚ usoben´e nepˇresnostmi pˇri v´ yrobˇe, teplotn´ı z´avislost´ı materi´al˚ u, ze kter´ ych jsou senzory vyrobeny, a dalˇs´ımi fyzik´aln´ımi z´avislostmi. Sch´ema modelu, kter´ y tyto chyby zachycuje, je zn´azornˇeno na obr´azku 4.5.
Prvn´ım typem chyby, kter´ ym jsou zat´ıˇzeny vˇsehny tˇri uvaˇzovan´e typy senzor˚ u (kaˇzd´ y vˇsak v jin´e m´ıˇre), je tzv. misalignment error. Jak jiˇz bylo ˇreˇceno v sekci 3.3, je to chyba zp˚ usoben´a nepˇresn´ ym uloˇzen´ım jednotliv´ ych senzor˚ u z pˇr´ısluˇsn´e trojice do os, ve kter´ ych maj´ı tyto senzory mˇeˇrit. Tuto ⎡ f ⎢ mx ⎢ ⎢ fmy ⎣ fmz
chybu vyjadˇruje vztah ⎤ ⎡ m12 m13 m ⎥ ⎢ 11 ⎥ ⎢ ⎥ = ⎢ m21 m22 m23 ⎦ ⎣ m31 m32 m33
⎤⎡
⎤
f ⎥⎢ x ⎥ ⎥⎢ ⎥ ⎥ ⎢ fy ⎥ , ⎦⎣ ⎦ fz
(4.4)
kde fmx , fmy a fmz jsou hodnoty namˇeˇren´e senzory, prvky m11 aˇz m33 v matici jsou koeficienty vyjadˇruj´ıc´ı kˇr´ıˇzov´e vazby v mˇeˇren´ı senzory v jednotliv´ ych os´ach a tedy z´aroveˇ n m´ıru nepˇresnoti uloˇzen´ı jednotliv´ ych senzor˚ u v pˇr´ısluˇsn´ ych os´ach a fx , fy a fz jsou skuteˇcn´e hodnoty mˇeˇren´ ych veliˇcin. Tento typ chyby je na obr´azku 4.5 realizov´an blokem Misa”
KAPITOLA 4. INTEGRACE DAT
40
MATLAB
1
Function
p, q, r MATLAB
Misalignment
Function CG Offset
Function
ax, ay, az
Misalignment
3
MATLAB Function
Temperature drift
Sensor bias
MATLAB
MATLAB
1 p, q, r
MATLAB
2
Hx, Hy, Hz
MATLAB Function
Function
Function
Temperatue drift
Sensor bias
2 ax, ay, az
MATLAB Function Misalignment
MATLAB
MATLAB
Function Temperatue drift
3
Function
Hx, Hy, Hz
Sensor bias
4 T
Obr´ azek 4.5: Sch´ema senzorick´eho modelu
lignment“, kter´ y vykon´av´a skript uveden´ y v pˇr´ıloze B.1.
Dalˇs´ım typem chyby je tzv. scale factor error. Jak jiˇz bylo ˇreˇceno v sekci 3.3, je to chyba zp˚ usoben´a nest´alost´ı zes´ılen´ı senzoru. Zde budeme uvaˇzovat pouze konstantn´ı sloˇzku t´eto chyby. Potom v souladu s rovnic´ı (3.1) m˚ uˇzeme tuto chybu zahrnout do chyby misalignment. Rovnice ⎡ f ⎢ mx ⎢ ⎢ fmy ⎣ fmz
(4.4) potom pˇrejde ve tvar ⎤ ⎡ m12 m13 s + m11 ⎥ ⎢ x ⎥ ⎢ ⎥ = ⎢ m21 sy + m22 m23 ⎦ ⎣ m31 m32 sz + m33
⎤⎡
fx
⎤
⎥⎢ ⎥ ⎥⎢ ⎥ ⎥ ⎢ fy ⎥ , ⎦⎣ ⎦ fz
(4.5)
kde sx , sy a sz jsou jednotliv´e sloˇzky chyby scale factor.
Dalˇs´ım zdrojem chyb je z´avislost v´ ystupn´ı hodnoty na teplotˇe. T´eto z´avoslosti ˇr´ık´ame teplotn´ı drift a je to hodnota, kter´a se pˇriˇc´ıt´a ke skuteˇcn´e v´ ystupn´ı hodnotˇe senzoru v z´avislosti na jeho teplotˇe. Tato z´avislost se bˇeˇznˇe popisuje polynomem jako funkce teploty. Tuto chybu v pˇr´ıpadˇe namodelov´an´ı polynomem tˇret´ıho ˇr´adu vyjadˇruje vztah ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ 3 2 f f t T + t12 T + t13 T + t14 ⎢ mx ⎥ ⎢ x ⎥ ⎢ 11 ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ (4.6) ⎢ fmy ⎥ = ⎢ fy ⎥ + ⎢ t21 T 3 + t22 T 2 + t23 T + t24 ⎥ , ⎣ ⎦ ⎣ ⎦ ⎣ ⎦ fmz fz t31 T 3 + t32 T 2 + t33 T + t34
´ MODEL 4.2. SENZORICKY
41
kde fmx , fmy a fmz jsou hodnoty namˇeˇren´e senzory, fx , fy a fz jsou skuteˇcn´e hodnoty mˇeˇren´ ych veliˇcin, T je teplota senzoru a prvky t11 aˇz t34 jsou koeficienty polynomu vyjadˇruj´ıc´ıho teplotn´ı z´avislost. Teplotu T je moˇzn´e z´ıskat bud’ pomoc´ı samostan´eho senzoru, nebo se d´a v jist´ ych pˇr´ıpadech modelovat pˇri znalosti vertik´aln´ıho teplotn´ıho profilu atmosf´ery. Dle modelu standardn´ı atmosf´ery potom teplota kles´a o 6, 5◦ na kaˇzd´ y kilometr v´ yˇsky. Zde je vˇsak tˇreba si uvˇedomit, ˇze samotn´ y senzor, jehoˇz teplotn´ı z´avislost modelujeme, nemus´ı b´ yt ovlivnˇen pouze teplotou okoln´ıho vzduchu, ale m˚ uˇze b´ yt ovlivˇ nov´an okoln´ımi zastavˇen´ ymi zaˇr´ızen´ımi, jako je napˇr´ıklad spalovac´ı motor. Proto samostatn´ y senzor teploty je jistˇe mnohem lepˇs´ı volba.
Tento typ chyby je na obr´azku 4.5 realizov´an blokem Temperature drift“, kter´ y vy” kon´av´a skript uveden´ y v pˇr´ıloze B.2.
Dalˇs´ım typem chyby, kter´ y ovlivˇ nuje funkci vˇsech tˇr´ı typ˚ u senzor˚ u, je tzv. bias. Podobnˇe jako chyba zp˚ usoben´a teplotn´ım driftem je i toto chyba aditivn´ı a tedy se ke skuteˇcn´e v´ ystupn´ı hodnotˇe senzoru pˇriˇc´ıt´a. V modelu na obr´azku 4.5 je tento typ chyby realizov´an blokem Sensor bias“. Tento blok vykon´av´a skript uveden´ y v pˇr´ıloze B.3. ” Jak jiˇz bylo ˇreˇceno v sekci 3.3, projevy t´eto chyby jsou velmi rozmanit´e. V modelu na obr´azku 4.5 je vˇsak zahrnuta pouze konstatntn´ı sloˇzka t´eto chyby. Tuto sloˇzku m˚ uˇzeme naz´ yvat tak´e chybou nuly senzoru, kter´a je d´ana nenulov´ ym v´ ystupem senzoru pˇri jeho nulov´em vstupu. Tuto chybu potom vyjadˇruje vztah ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ fmx fx Bx ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ fmy ⎥ = ⎢ fy ⎥ + ⎢ By ⎥ , ⎣ ⎦ ⎣ ⎦ ⎣ ⎦ fmz fz Bz
(4.7)
kde opˇet fmx , fmy a fmz jsou hodnoty namˇeˇren´e senzory, fx , fy a fz jsou skuteˇcn´e hodnoty mˇeˇren´ ych veliˇcin a prvky Bx , By a Bz jsou honoty ud´avaj´ıc´ı chybu nuly senzoru.
KAPITOLA 4. INTEGRACE DAT
42
Pˇrestoˇze v tomto modelu je funkce chyby biasu omezena pouze na konstantn´ı hodnotu, pozdˇeji uvid´ıme, ˇze tato sloˇzka chyby m´a mnohem rozs´ahlejˇs´ı v´ yznam pro odhad polohov´ ych u ´hl˚ u objektu.
Posledn´ı chybou zahrnutou ve zde popisovan´em modelu je chyba zp˚ usoben´a nepˇresn´ ym um´ıstˇen´ım akcelerometr˚ u na objektu. V ide´aln´ım pˇr´ıpadˇe by soustava akcelerometr˚ u mˇela b´ yt um´ıstˇena v tˇeˇziˇsti objektu. Pokud vˇsak budou akcelerometry um´ıstˇen´e jinde neˇz v tˇeˇziˇsti objektu, bude pˇri jeho ot´aˇcen´ı vznikat dostˇrediv´e zrychlen´ı, kter´e akcelerometry budou tak´e mˇeˇrit. Tato informace je pro n´as vˇsak ruˇsiv´a a budeme se ji tedy snaˇzit kompenzovat.
Na kaˇzd´ y ze tˇr´ı akcelerometr˚ u bude p˚ usobit aditivn´ı zrychlen´ı dan´e vztahem ad = ω 2 R,
(4.8)
´ kde ω je u ´hlov´a rychlost ot´aˇcen´ı a R je polomˇer tohoto ot´aˇcen´ı. Uhlov´ a rychlost ot´aˇcen´ı se potom pro kaˇzd´ y akcelerometr bude skl´adat ze dvou sloˇzek. Pro akcelerometr um´ıstnˇen´ y tak, aby mˇeˇril zrychlen´ı v tˇelesov´e ose x, to budou sloˇzky dan´e ot´aˇcen´ım objektu kolem tˇelesov´ ych os y a z, pro akcelerometr um´ıstˇen´ y pro mˇeˇren´ı zrychlen´ı v tˇelesov´e ose y to potom budou sloˇzky ot´aˇcen´ı objektu kolem tˇelesov´ ych os x a z a nakonec pro akcelerometr mˇeˇr´ıc´ı zrychlen´ı v tˇelesov´e ose z to budou sloˇzky ot´aˇcen´ı kolem tˇelesov´ ych os x a y. Jednotliv´e dvojice sloˇzek ot´aˇcen´ı pˇr´ısluˇsej´ıc´ı jednotliv´ ym akcelerometr˚ u je tˇreba sloˇzit, coˇz se napˇr´ıklad pro akcelerometr mˇeˇr´ıc´ı v tˇelesov´e ose x provede dle vztahu ωx =
q 2 + r2 ,
kde q je u ´hlov´a rychlost ot´aˇcen´ı kolem tˇelesov´e osy y a r je u ´hlov´a rychlost ot´aˇcen´ı kolem tˇelesov´e osy z. Po dosazen´ı tohoto vztahu do vztahu (4.8) dostaneme adx = (q 2 + r2 )Rx , kde Rx je vzd´alenost um´ıstˇen´ı akcelerometr˚ u od tˇeˇziˇstˇe v ose x. Analogicky potom do-
˚ FILTR 4.3. KALMANUV staneme vztah pro vˇsechny tˇri akcelerometry. Tento vztah m˚ uˇzeme napsat jako ⎡ ⎤ ⎡ ⎤ adx (q 2 + r2 )Rx ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ 2 ⎥ 2 = ⎢ ady ⎥ ⎢ (p + r )Ry ⎥ , ⎣ ⎦ ⎣ ⎦ adz (p2 + q 2 )Rz
43
(4.9)
kde q, q a r jsou u ´hlov´e rychlosti ot´aˇcen´ı kolem jednotliv´ ych tˇelesov´ ych os a Rx , Ry a Rz jsou vzd´alenosti um´ıstˇen´ı akcelerometr˚ u od tˇeˇziˇstˇe v jednotliv´ ych os´ach. Jednotliv´a zrychlen´ı adx , ady a adz se potom pˇriˇc´ıtaj´ı ke skuteˇcn´ ym hodnot´am zrychlen´ı mˇeˇren´ ym jednotliv´ ymi akcelerometry. Jelikoˇz se vˇsak jedn´a o zrychlen´ı dostˇrediv´e, je jeho smˇer pˇri kladn´ ych hodnot´ach vzd´alenost´ı um´ıstˇen´ı akcelerometr˚ u od tˇeˇziˇstˇe z´aporn´ y, jelikoˇz toto zrychlen´ı smˇeˇruje do stˇredu ot´aˇcen´ı. Princip urˇcov´an´ı smˇeru p˚ usoben´ı zrychlen´ı je zde velice podobn´ y jako pˇri urˇcov´an´ı vektoru zrychlen´ı v sekci 4.1.2 a je tedy moˇzn´e si to pˇredstavit i takto.
Tato chyba je na obr´azku 4.5 realizov´ana blokem CG Offset“, kter´ y vykon´av´a skript ” uveden´ y v pˇr´ıloze B.4.
4.3
Kalman˚ uv filtr
Nyn´ı, kdyˇz jiˇz m´ame pˇripraven model mˇeˇren´ı jednotliv´ ymi senzory, m˚ uˇzeme pˇristoupit k jejich integraci. Velice vhodn´ ym n´astrojem pro takovou integraci se uk´azal b´ yt Kalman˚ uv filtr, kter´ y byl jiˇz pops´an v sekci 2.3.
Jako prvn´ı tedy setav´ıme stavov´e rovnice, kter´e jsou obecnˇe pops´any rovnicemi (2.13) ˇci (2.16). K tomu vyuˇzijeme pr´avˇe informace ze sestaven´eho modelu ˇcinnosti senzor˚ u. Jelikoˇz jsou stavov´e rovnice obecnˇe pops´any pomoc´ı derivac´ı nebo diferenc´ı, nab´ız´ı se k sestaven´ı stavov´ ych rovnic pouˇz´ıt model mˇeˇren´ı pomoc´ı gyroskop˚ u, jelikoˇz naˇr´ıklad na obr´azku 4.1 vid´ıme, ˇze zde jsou derivace (diference) obsaˇzeny. Pˇri sestavov´an´ı stavov´ ych rovnic budeme postupovat od konce modelu mˇeˇren´ı k jeho zaˇca´tku, neboli u ´hlov´e rychlosti zmˇeˇren´e pomoc´ı gyroskop˚ u postupnˇe oprav´ıme pomoc´ı informac´ı z modelu mˇeˇren´ı
KAPITOLA 4. INTEGRACE DAT
44
a nakonec je transformujeme v quaterniony, kter´e reprezentuj´ı polohov´e u ´hly.
Prvn´ım krokem tedy bude dle obr´azku 4.5 odstranˇen´ı chyby biasu. To se dle rovnice (4.7) provede jako ⎡
p1
⎤
⎡
pm
⎢ ⎥ ⎢ ⎢ ⎥ ⎢ ⎢ q 1 ⎥ = ⎢ qm ⎣ ⎦ ⎣ r1 rm
⎤
⎡
Bp
⎤
⎥ ⎢ ⎥ ⎥ ⎢ ⎥ ⎥ − ⎢ Bq ⎥ , ⎦ ⎣ ⎦ Br
´hlov´e rychlosti. kde pm , qm a rm jsou zmˇeˇren´e u
D´ale n´asleduje odstranˇen´ı teplotn´ıho ⎡ ⎤ ⎡ ⎤ ⎡ p p ⎢ 2 ⎥ ⎢ 1 ⎥ ⎢ ⎢ ⎥ ⎢ ⎥ ⎢ ⎢ q2 ⎥ = ⎢ q1 ⎥ − ⎢ ⎣ ⎦ ⎣ ⎦ ⎣ r2 r1
driftu. To se dle rovnice (4.6) provede jako ⎤ 3 2 tp1 T + tp2 T + tp3 T + tp4 ⎥ ⎥ tq1 T 3 + tq2 T 2 + tq3 T + tq4 ⎥ . ⎦ 3 2 tr1 T + tr2 T + tr3 T + tr4
Nyn´ı odstran´ıme kombinaci chyb misalignment a scale factor. To se dle rovnice (4.5) provede jako ⎡
⎤
⎡
mp2 mp3 p s + mp1 ⎢ o ⎥ ⎢ p ⎥ ⎢ ⎢ ⎢ qo ⎥ = ⎢ mq1 sq + mq2 mq3 ⎦ ⎣ ⎣ ro mr1 mr2 sr + mr3
⎤−1 ⎡ ⎥ ⎥ ⎥ ⎦
⎤
p ⎢ 2 ⎥ ⎢ ⎥ ⎢ q2 ⎥ . ⎣ ⎦ r2
ych Z mˇeˇren´ ych u ´hlov´ ych rychlost´ı pm , qm a rm jsme tedy opraven´ım dle namodelovan´ chyb z´ıskali u ´hlov´e rychlosti po , qo a ro . Posledn´ım krokem k vytvoˇren´ı stavov´ ych rovnic je transformace u ´hlov´ ych rychlost´ı na quaterniony. To lze prov´est dle rovnice (2.5). Tedy ⎡ ⎤ ⎤ ⎤⎡ ⎡ 0 −po −qo −ro q0 q˙0 ⎢ ⎥ ⎥ ⎥⎢ ⎢ ⎢ ⎥ ⎥ ⎥⎢ ⎢ ⎢ q˙1 ⎥ 1 ⎢ po 0 ro −qo ⎥ ⎢ q1 ⎥ ⎥= ⎢ ⎥. ⎥⎢ (4.10) q˙ = ⎢ ⎢ ⎥ ⎥ ⎥⎢ ⎢ ⎢ q˙2 ⎥ 2 ⎢ qo −ro 0 p o ⎥ ⎢ q2 ⎥ ⎣ ⎦ ⎦ ⎦⎣ ⎣ q˙3 ro qo −po 0 q3
˚ FILTR 4.3. KALMANUV
45
T´ım jsme z´ıskali ˇctyˇri stavov´e rovnice, ke kter´ ym d´ale pˇrid´ame dalˇs´ıch devˇet stav˚ u, kter´e vyjadˇruj´ı chybu biasu vˇsech tˇr´ı typ˚ u pouˇzit´ ych senzor˚ u. Kromˇe polohov´ ych u ´hl˚ u tedy budeme jeˇstˇe odhadovat aditivn´ı chyby jednotliv´ ych senzor˚ u, coˇz d´ale zpˇresn´ı odhad quaternion˚ u (polohov´ ych u ´hl˚ u). Chyby biasu budeme v tomto kroku modelovat jako konstanty, ˇc´ımˇz ˇr´ık´ame, ˇze se tyto stavy nebudou v predikˇcn´ım kroku algoritmu Kalmanova filtru mˇenit, ale budou se aktualizovat pouze v aktualizaˇcn´ım kroku. Vˇsech tˇrin´act stavov´ ych rovnic potom bude vypadat n´asledovnˇe. 1 (−po q1 − qo q2 − ro q3 ) 2 1 q˙1 = (po q0 + ro q2 − qo q3 ) 2 1 q˙2 = (qo q0 − ro q1 + po q3 ) 2 1 q˙3 = (ro q0 + qo q1 − po q2 ) 2 B˙ p = 0 q˙0 =
B˙ q = 0 B˙ r = 0 B˙ ax = 0 B˙ ay = 0 B˙ az = 0 B˙ Hx = 0 B˙ Hy = 0 B˙ Hz = 0 Vˇsechny tyto stavov´e rovnice jsou spojit´e, Kalman˚ uv filtr vˇsak pracuje v diskr´etn´ıch kroc´ıch. Je tedy tˇreba tyto rovnice diskretizovat. Diskretizaci m˚ uˇzeme prov´est napˇr´ıklad pomoc´ı Eulerovy diskretizaˇcn´ı metody, kter´a ˇr´ık´a, ˇze ˙ x(t) ≈
x(t + Ts ) − x (t) , Ts
kde Ts je vzorkovac´ı perioda. Odtud plyne, ˇze ˙ x(t + Ts ) ≈ x (t) + Ts x(t).
46
KAPITOLA 4. INTEGRACE DAT
Diskretizovan´e stavov´e rovnice potom pˇrejdou v n´asleduj´ıc´ı tvar. ⎡ ⎡ ⎤ 1 q (−po q1 − qo q2 − ro q3 ) ⎢ 2 ⎢ 0 ⎥ ⎢ 1 ⎢ ⎥ ⎢ 2 (po q0 + ro q2 − qo q3 ) ⎢ q1 ⎥ ⎢ ⎢ ⎥ ⎢ 1 ⎢ ⎥ ⎢ 2 (qo q0 − ro q1 + po q3 ) ⎢ q2 ⎥ ⎢ ⎢ ⎥ ⎢ 1 ⎢ ⎥ ⎢ 2 (ro q0 + qo q1 − po q2 ) ⎢ q3 ⎥ ⎢ ⎢ ⎥ ⎢ ⎢ ⎥ ⎢ ⎢ Bp ⎥ 0 ⎢ ⎢ ⎥ ⎢ ⎢ ⎥ ⎢ ⎢ Bq ⎥ 0 ⎢ ⎢ ⎥ ⎢ ⎢ ⎥ x(k + 1) = ⎢ Br ⎥ + Ts ⎢ 0 ⎢ ⎢ ⎥ ⎢ ⎢ ⎥ ⎢ ⎢ Bax ⎥ 0 ⎢ ⎢ ⎥ ⎢ ⎢ ⎥ ⎢ ⎢ Bay ⎥ 0 ⎢ ⎢ ⎥ ⎢ ⎢ ⎥ ⎢ ⎢ Baz ⎥ 0 ⎢ ⎢ ⎥ ⎢ ⎢ ⎥ ⎢ ⎢ BHx ⎥ 0 ⎢ ⎢ ⎥ ⎢ ⎢ ⎥ ⎢ ⎢ BHy ⎥ 0 ⎣ ⎣ ⎦ 0 BHz
⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦
(4.11)
D´ale sestav´ıme rovnice mˇeˇren´ı. K tomu vyuˇzijeme zbyl´e dvˇe senzorick´e vˇetve z modelu ˇcinnosti senzor˚ u, tedy vˇetev akcelerometr˚ u a vˇetev magnetometr˚ u. Podle tˇechto rovnic se jiˇz vˇsak nebude prov´adˇet odhad, ale budou pouˇzity ke korekci stav˚ u popsan´ ych rovnic´ı (4.11). Z toho d˚ uvodu budeme pˇri sestavov´an´ı rovnic mˇeˇren´ı postupovat od zaˇc´atku modelu ke konci, narozd´ıl od sestavov´an´ı stavov´ ych rovnic, kde jsme postupovali naopak. Nejprve tedy vytvoˇr´ıme rovnice popisuj´ıc´ı ˇcinnost akcelerometr˚ u. Z obr´azku 4.2 vid´ıme, ˇze nejprve mus´ıme prov´est transformaci vektrou zrychlen´ı do tˇelesov´e souˇradn´e soustavy. Tato transformace je d´ana vztahem (4.2), tedy ⎡ ⎤ ⎡ a q 2 + q12 − q22 − q32 2(q1 q2 + q0 q3 ) 2(q1 q3 − q0 q2 ) ⎢ x1 ⎥ ⎢ 0 ⎢ ⎥ ⎢ ⎢ ay1 ⎥ = ⎢ 2(q1 q2 − q0 q3 ) q02 − q12 + q22 − q32 2(q2 q3 + q0 q1 ) ⎣ ⎦ ⎣ 2(q1 q3 + q0 q2 ) az1 2(q2 q3 − q0 q1 ) q02 − q12 − q22 + q32
⎤
⎤⎡ ⎥⎢ ⎥⎢ ⎥⎢ ⎦⎣
0 0 −9, 81
⎥ ⎥ ⎥. ⎦
D´ale budeme postupovat dle obr´azku 4.5. Dalˇs´ım krokem je tedy zapoˇcten´ı chyby zp˚ usoben´e nepˇresn´ ym um´ıstˇen´ım akcelerometr˚ u. Tato chyba je pops´ana rovnic´ı (4.9),
˚ FILTR 4.3. KALMANUV
47
tedy ⎡
ax2
⎢ ⎢ ⎢ ay2 ⎣ az2
⎤
⎡
ax1
⎥ ⎢ ⎥ ⎢ ⎥ = ⎢ ay1 ⎦ ⎣ az1
⎤
⎡
(qo2 + ro2 )Rx
⎥ ⎢ ⎥ ⎢ 2 ⎥ − ⎢ (po + ro2 )Ry ⎦ ⎣ (p2o + qo2 )Rz
⎤ ⎥ ⎥ ⎥. ⎦
D´ale zapoˇc´ıt´ame kombinaci chyb misalignment a scale factor dle rovnice (4.5). Tedy ⎡
ax3
⎢ ⎢ ⎢ ay3 ⎣ az3
⎤
⎡
⎥ ⎢ ⎥ ⎢ ⎥=⎢ ⎦ ⎣
sax + m ax 1
m ax 2
m ax 3
m ay 1
say + m ay 1
m ay 3
m az 1
m az 2
saz + m az 3
⎤⎡
ax2
⎥⎢ ⎥⎢ ⎥ ⎢ ay2 ⎦⎣ az2
⎤ ⎥ ⎥ ⎥. ⎦
Dalˇs´ım krokem je zapoˇcten´ı chyby teplotn´ıho driftu dle rovnice (4.6). Tedy ⎡
axe
⎢ ⎢ ⎢ aye ⎣ aze
⎤
⎡
ax3
⎥ ⎢ ⎥ ⎢ ⎥ = ⎢ ay3 ⎦ ⎣ az3
⎤
⎡
tax 1 T 3 + tax 2 T 2 + tax 3 T + tax 4
⎥ ⎢ ⎥ ⎢ ⎥ + ⎢ tay 1 T 3 + tay 2 T 2 + tay 3 T + tay 4 ⎦ ⎣ taz 1 T 3 + taz 2 T 2 + taz 3 T + taz 4
⎤ ⎥ ⎥ ⎥. ⎦
Po pˇriˇcten´ı posledn´ı modelovan´e chyby, tedy chyby biasu, z´ısk´ame prvn´ı tˇri rovnice mˇeˇren´ı. ⎡
axm
⎢ ⎢ ⎢ aym ⎣ azm
⎤
⎡
axe
⎥ ⎢ ⎥ ⎢ ⎥ = ⎢ aye ⎦ ⎣ aze
⎤
⎡
Bax
⎥ ⎢ ⎥ ⎢ ⎥ + ⎢ Bay ⎦ ⎣ Baz
⎤ ⎥ ⎥ ⎥ ⎦
Dalˇs´ı tˇri rovnice mˇeˇren´ı z´ısk´ame z vˇetve modelu, kter´a popisuje ˇcinnost magnetometr˚ u. Z obr´azku 4.3 vid´ıme, ˇze nejprve mus´ıme opˇet prov´est transformaci pˇr´ısluˇsn´eho vektoru magnetick´eho pole Zemˇe do tˇelesov´e souˇradn´e soustavy. Tato transformace je
KAPITOLA 4. INTEGRACE DAT
48
d´ana vztahem (4.3), tedy ⎡ ⎤ ⎡ 2(q1 q2 + q0 q3 ) 2(q1 q3 − q0 q2 ) H q 2 + q12 − q22 − q32 ⎢ x1 ⎥ ⎢ 0 ⎢ ⎥ ⎢ ⎢ Hy1 ⎥ = ⎢ 2(q1 q2 − q0 q3 ) q02 − q12 + q22 − q32 2(q2 q3 + q0 q1 ) ⎣ ⎦ ⎣ 2(q1 q3 + q0 q2 ) Hz1 2(q2 q3 − q0 q1 ) q02 − q12 − q22 + q32
⎤⎡
⎤
M ⎥⎢ x ⎥ ⎥⎢ ⎥ ⎥ ⎢ My ⎥ . ⎦⎣ ⎦ Mz
Dalˇs´ı kroky budou opˇet vych´azet z obr´azku 4.5. Nyn´ı tedy zapoˇc´ıt´ame kombinaci chyb misalignment a scale factor dle rovnice (4.5). Tedy ⎤ ⎡ ⎡ mHx 2 mHx 3 H s + mHx 1 ⎢ x2 ⎥ ⎢ Hx ⎥ ⎢ ⎢ ⎢ Hy2 ⎥ = ⎢ mHy 1 sHy + mHy 1 mHy 3 ⎦ ⎣ ⎣ Hz2 mHz 1 mHz 2 sHz + mHz 3
D´ale zapoˇc´ıt´ame ⎡ H ⎢ xe ⎢ ⎢ Hye ⎣ Hze
⎤⎡
H ⎥ ⎢ x1 ⎥⎢ ⎥ ⎢ Hy1 ⎦⎣ Hz1
chybu teplotn´ıho driftu dle rovnice (4.6). Tedy ⎤ ⎡ ⎤ ⎡ H t T 3 + tHx 2 T 2 + tHx 3 T + tHx 4 ⎥ ⎢ x2 ⎥ ⎢ Hx 1 ⎥ ⎢ ⎥ ⎢ ⎥ = ⎢ Hy2 ⎥ + ⎢ tHy 1 T 3 + tHy 2 T 2 + tHy 3 T + tHy 4 ⎦ ⎣ ⎦ ⎣ Hz2 tHz 1 T 3 + tHz 2 T 2 + tHz 3 T + tHz 4
⎤ ⎥ ⎥ ⎥. ⎦
⎤ ⎥ ⎥ ⎥. ⎦
Nakonec opˇet pˇriˇcteme chybu biasu, ˇc´ımˇz z´ısk´ame druhou trojici rovnic mˇeˇren´ı. ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ Hxm Hxe BHx ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ Hym ⎥ = ⎢ Hye ⎥ + ⎢ BHy ⎥ ⎣ ⎦ ⎣ ⎦ ⎣ ⎦ Hzm Hze BHz
Nyn´ı pˇrid´ame jeˇstˇe jednu rovnici mˇeˇren´ı, kter´a bude zajiˇst’ovat, ˇze souˇcet kvadr´at˚ u jednotliv´ ych quaternion˚ u bude roven jedn´e, jak to poˇzaduje rovnice (2.12). Tedy 1 = q02 + q12 + q22 + q32
˚ FILTR 4.3. KALMANUV Kompletn´ı skupina sedmi rovnic mˇeˇren´ı potom vypad´a ⎡ ⎤ ⎡ 1 q 2 + q12 + q22 + q32 ⎢ ⎥ ⎢ 0 ⎢ ⎥ ⎢ ⎢ axm ⎥ ⎢ axe + Bax ⎢ ⎥ ⎢ ⎢ ⎥ ⎢ ⎢ aym ⎥ ⎢ aye + Bay ⎢ ⎥ ⎢ ⎢ ⎥ ⎢ ⎢ azm ⎥ = ⎢ aze + Baz ⎢ ⎥ ⎢ ⎢ ⎥ ⎢ ⎢ Hxm ⎥ ⎢ Hxe + BHx ⎢ ⎥ ⎢ ⎢ ⎥ ⎢ ⎢ Hym ⎥ ⎢ Hye + BHy ⎣ ⎦ ⎣ Hze + BHz Hzm
49 n´asledovnˇe. ⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦
(4.12)
Jelikoˇz jsou jak stavov´e rovnice, tak rovnice mˇeˇren´ı neline´arn´ı, budou se zpracov´avat algoritmem rozˇs´ıˇren´eho Kalmanova filtru. V kaˇzd´em kroku se potom provede v´ ypoˇcet dle rovnic (2.18) aˇz (2.24), tedy n´asledovnˇe. ˆ x (k + 1|k) = f (ˆ x (k)) A(k) =
∂f (x ) ∂x x =ˆx (k|k)
P(k + 1|k) = A(k)P(k|k)AT (k) + Q H (k) =
∂h(x ) ∂x x =ˆx (k|k−1)
K (k) = P(k|k − 1)H T (k)(H (k)P(k|k − 1)H T (k) + R)−1 ˆ x (k|k) = ˆ x (k|k − 1) + K (k)(y (k) − h(ˆ x (k|k − 1))) P(k|k) = P(k|k − 1) − K (k)(H (k)P(k|k − 1)H T (k) + R)K T (k) N´azornˇe je algoritmus zn´azornˇen na obr´azku 2.7. Aby vˇsak tento algoritmus mohl fungovat, je nutn´e nejprve inicializovat poˇc´ateˇcn´ı odhad stavu x (k), jeho kovarianˇcn´ı matici chyby P(k|k), kovarianˇcn´ı matici ˇsumu procesu Q a kovarianˇcn´ı matici ˇsumu mˇeˇren´ı R. Vˇsechny tyto hodnoty se budou liˇsit pˇr´ıpad od pˇr´ıpadu a budou pro kaˇzd´ y pˇr´ıpad pouˇzit´ı ˇsity na m´ıru“. ”
50
KAPITOLA 4. INTEGRACE DAT
Kapitola 5 V´ ysledky V pˇredchoz´ı kapitole byly vytvoˇreny n´astroje pro integraci dat ze senzor˚ u k urˇcov´an´ı polohov´ ych u ´hl˚ u. V t´eto kapitole se pod´ıv´ame na jejich funkˇcnost, a to jak na datech vytvoˇren´ ych umˇele, tak na skuteˇcn´ ych letov´ ych datech bezpilotn´ıho vzduˇsn´eho prostˇredku.
5.1
Umˇ ele vytvoˇ ren´ a data
Prvn´ım krokem zde bude vytvoˇren´ı pr˚ ubˇeh˚ u jednotliv´ ych polohov´ ych u ´hl˚ u, kter´e budou reprezentovat skuteˇcn´e hodnoty a ze kter´ ych budeme vych´azet. K tomu poslouˇz´ı Simulinkov´e bloky Signal Builder“, ve kter´ ych je moˇzn´e ruˇcnˇe namodelovat jak´ekoliv pr˚ ubˇehy ” sign´al˚ u. Vytvoˇren´e pr˚ ubˇehy polohov´ ych u ´hl˚ u jsou potom vidˇet na obr´azku 5.1.
Nyn´ı pomoc´ı gener´atoru vytvoˇren´eho v sekc´ıch 4.1 a 4.2 budeme schopni z´ıskat data, kter´a odpov´ıdaj´ı mˇeˇren´ı jednotliv´ ymi senzory. Nejprve je vˇsak nutn´e do tohoto modelu zan´est parametry jednotliv´ ych modelovan´ ych chyb. Zvoleny byly n´asleduj´ıc´ı hodnoty jednotliv´ ych parametr˚ u. 51
´ KAPITOLA 5. VYSLEDKY
52
Φ uhel [rad]
0.5
0
−0.5 0
20
40
60 cas [s] Θ
80
100
120
20
40
60 cas [s] Ψ
80
100
120
20
40
60 cas [s]
80
100
120
uhel [rad]
0.5
0
−0.5 0
uhel [rad]
20
10
0 0
Obr´ azek 5.1: Vytvoˇren´e pr˚ ubˇehy polohov´ ych u ´hl˚ u
Matice chyb kombinuj´ıc´ı misalignment a scale factor jednotliv´ ych senzor˚ u:
⎡ 1, 1000
⎢ ⎢ M pqr = ⎢ −0, 1000 ⎣ 0, 2000 ⎡ 1, 1500 ⎢ ⎢ M a = ⎢ −0, 0900 ⎣ 0, 1500 ⎡ 0, 9000 ⎢ ⎢ M H = ⎢ 0, 0000 ⎣ −0, 0500
0, 1000
−0, 0500
⎤
⎥ ⎥ 0, 9000 0, 1000 ⎥ ⎦ −0, 1000 0, 9500 ⎤ 0, 0500 0, 0100 ⎥ ⎥ 1, 0500 0, 0200 ⎥ ⎦ −0, 1000 1, 0100 ⎤ 0, 0000 0, 0000 ⎥ ⎥ 0, 8000 0, 0000 ⎥ ⎦ 0, 1000 1, 0000
ˇ ˇ A ´ DATA 5.1. UMELE VYTVOREN
53
Koeficienty rovnice chyby teplotn´ıho driftu:
tp3 = 0, 1
tp4 = 0, 4
tq3 = 0, 02
tq4 = −0, 5
tr3 = 0, 05
tr4 = −0, 2
tax 3 = −0, 01
tax 4 = 0, 3
tay 3 = −0, 02
tay 4 = 0, 5
taz 3 = 0, 05
taz 4 = −1
tHx 3 = −0, 005 tHx 4 = 0, 003 tHy 3 = −0, 002 tHy 4 = 0, 004 tHz 3 = 0, 005
tHz 4 = −0, 001
Vˇsechny ostatn´ı koeficienty rovnic teplotn´ıho driftu byly zvoleny jako nulov´e. Konstantn´ı sloˇzky chyb biasu:
Bp = 0, 01 rad/s Bq = 0, 02 rad/s
Br = −0, 01 rad/s
Bax = 0, 2 m/s2
Bay = −0, 1 m/s2 Baz = 0, 06 m/s2
BHx = 0, 02 T
BHy = −0, 04 T
BHz = −0, 06 T
Vzd´ alenosti um´ıstˇen´ı akcelerometr˚ u od tˇeˇziˇstˇe v jednotliv´ ych os´ach:
Rx = 0, 01 m Ry = 0, 03 m Rz = 0, 02 m Teplota:
T = 23, 7◦ C (odpov´ıd´a teplotˇe ve v´ yˇsce 200 m pˇri pˇr´ızemn´ı teplotˇe 25◦ C dle modelu standardn´ı atmosf´ery) Vzorkovac´ı frekvence:
fs = 64 Hz
´ KAPITOLA 5. VYSLEDKY
54
uhlova rychlost [rad/s]
r 4
poskozena data data realnych senzoru data idealnich senzoru
2
0 0
10
20
30
40
50
60
70
80
90
100
110
60
70
80
90
100
110
60
70
80
90
100
110
zrychleni [m/s2]
cas [s] az −7 −8 −9 −10
intenzita mag. pole [T]
−11 0
10
20
30
40
50 cas [s] Hz
0.1 0.08 0.06 0.04 0.02 0
10
20
30
40
50 cas [s]
Obr´ azek 5.2: Data senzor˚ u v ose z
Aby se takto z´ıskan´a data co nejv´ıce bl´ıˇzila re´aln´emu mˇeˇren´ı, je tˇreba v´ ystupn´ı data jeˇstˇe zat´ıˇzit dalˇs´ımi chybami, kter´e se vˇsak jiˇz nedaj´ı dobˇre modelovat. Nejprve je to aditivn´ı ˇsum, kter´emu se nelze vyhnout pˇri ˇza´dn´em mˇeˇren´ı. D´ale byla data gyroskop˚ u a akcelerometr˚ u zat´ıˇzena ˇcasov´ ym driftem a data magnetometr˚ u byla zat´ıˇzena skokov´ ymi zmˇenami intenzit magnetick´eho pole, coˇz simuluje poruchy dan´e lok´aln´ımi vlivy jin´ ych magnetick´ ych pol´ı.
Pˇr´ıklad v´ ystupn´ıch dat jednotliv´ ych senzor˚ u v ose z je vidˇet na obr´azku 5.2. Zde je tak´e vidˇet rozd´ıl mezi daty z´ıskan´ ymi pouhou transformac´ı polohov´ ych u ´hl˚ u (tedy daty, kter´a by byla namˇeˇrena ide´aln´ımi senzory), daty z´ıskan´ ymi pomoc´ı senzorick´eho modelu (tedy daty z´ıskan´ ymi mˇeˇren´ım re´aln´ ymi senzory bez dalˇs´ıch poruch) a daty poˇskozen´ ymi vˇsemi chybami (tedy v´ ystupn´ımi daty senzor˚ u pˇri mˇeˇren´ı, kter´e se v´ıce bl´ıˇz´ı realitˇe).
ˇ ˇ A ´ DATA 5.1. UMELE VYTVOREN
55
Nyn´ı jiˇz m´ame vˇsechny potˇrebn´e informace k pouˇzit´ı algoritmu rozˇs´ıˇren´eho Kalmanova filtru. Nejprve je tedy tˇreba prov´est inicializaci algoritmu. Jako prvn´ı urˇc´ıme poˇc´ateˇcn´ı stav, kter´ y bude vypadat n´asledovnˇe.
x (0) =
T
1 0 0 0 Bp Bq Br Bax Bay Baz BHx BHy BHz
Prvn´ı ˇctyˇri stavy byly urˇceny tak, aby byla zachov´ana podm´ınka, ˇze souˇcet kvadr´at˚ u quaternon˚ u mus´ı b´ yt roven jedn´e. Zbyl´e stavy odpov´ıdaj´ı konstantn´ım sloˇzk´am chyb biasu pouˇz´ıvan´ ym v senzorick´em modelu.
D´ale je tˇreba urˇcit poˇc´ateˇcn´ı hodnotu kovarianˇcn´ı matice chyby apriorn´ıho odhadu stavu P(0). Tu urˇc´ıme jednoduˇse jako jednotkovou matici o velikosti 13 × 13.
Jako posledn´ı urˇc´ıme kovarianˇcn´ı matice ˇsumu procesu Q a ˇsumu mˇeˇren´ı R. Cyklickou optimalizac´ı se jako nejlepˇs´ı uk´azalo n´asleduj´ıc´ı nastaven´ı. Obˇe matice jsou diagon´aln´ı.
Q = diag R = diag
2
1
2
1
2
1
2
10
2
1, 4
2
1, 4
2
1, 4
2
2, 5
2
2, 5
0.000012 10002 10002 10002 102 102 102
2
2, 5
2
0, 6
2
0, 6
2
0, 6
Algoritmus bude d´ale pracovat dle obr´azku 2.7, kde vyuˇz´ıv´a rovnic (2.18) aˇz (2.24). V´ ysledek ˇcinnosti algoritmu je potom vidˇet na obr´azc´ıch 5.3 a 5.4. Zde je vidˇet, ˇze algoritmus dok´azal velmi efektivnˇe zkombinovat poˇskozen´a data ze senzor˚ u a odhadnout polohov´e u ´hly. Odhadnut´e hodnoty se potom jen velmi m´alo liˇs´ı od tˇech skuteˇcn´ ych. Jak je vidˇet z obr´azku 5.4, algoritmus dok´azal tak´e velmi dobˇre odhadnout pr˚ ubˇeh aditivn´ıch chyb, kter´e byly k dat˚ um pˇrid´any za u ´ˇcelem lepˇs´ıho pˇribl´ıˇzen´ı k realitˇe. Dok´azal velmi dobˇre odhadnout jak chyby ˇcasov´ ych drift˚ u, tak skokov´e chyby u mˇeˇren´ı magnetometry.
´ KAPITOLA 5. VYSLEDKY
56
Φ
uhel [rad]
10
20
30
40
50 60 cas [s] q1
70
80
90
100
110
skutecnost
0
−0.5 0
odhad
10
20
30
40
0.5 0
50 60 cas [s] Θ
70
80
90
20
30
40
50 60 cas [s] q2
70
80
90
100
uhel [rad]
10
110
100
110
skutecnost odhad
1
−0.5 0
0
0.5 −1 0
0 20
30
40
50 60 cas [s] q3
70
80
90
100
110
1 0 −1 0
10
20
30
40
50 60 cas [s]
70
80
90
100
10
20
30
40
50 60 cas [s] Ψ
70
80
90
100
110
10
20
30
40
50 60 cas [s]
70
80
90
100
110
5 uhel [rad]
10
0
−5 0
110
Obr´ azek 5.3: Srovn´ an´ı skuteˇcn´ ych a odhadnut´ ych quaternion˚ u (vlevo) a
velikost [rad/s]
Bp 0.2 0.1 0 40
60 cas [s] Br
80
100
0.1 0 −0.1 0
20
40
60 cas [s] Bay
80
100
0 −0.1 −0.2 0
20
40
60 cas [s] BHx
80
100
velikost [m/s2]
20
velikost [m/s2]
0
velikost [T]
velikost [rad/s]
velikost [rad/s]
odpov´ıdaj´ıc´ıch polohov´ ych u ´hl˚ u (vpravo)
velikost [m/s2]
velikost [−]
−0.5 0
velikost [T]
velikost [−]
0.5
0 −1 0
0.04 0.02 0 0
velikost [T]
velikost [−]
velikost [−]
q0 1
20
40
60 cas [s] BHz
80
100
Bq 0.2 0.1 0 0
20
40
60 cas [s] Bax
80
100
0
20
40
60 cas [s] Baz
80
100
0
20
40
60 cas [s] BHy
80
100
20
40
60 cas [s]
80
100
0.3 0.2 0.1
0.2 0.1 0
−0.02 −0.04 −0.06 0
−0.04 skutecnost −0.06 −0.08 0
odhad 20
40
60 cas [s]
80
100
Obr´ azek 5.4: Srovn´ an´ı skuteˇcn´ ych a odhadnut´ ych aditivn´ıch chyb
´ A ´ LETOVA ´ DATA 5.2. REALN
5.2
57
Re´ aln´ a letov´ a data
V pˇredchoz´ı sekci byla demonstrov´ana funkce algoritmu v pˇr´ıpadˇe integrace poˇskozen´ ych dat z r˚ uzn´ ych senzor˚ u. Bylo uk´az´ano, ˇze koneˇcn´ y odhad polohov´ ych u ´hl˚ u pomoc´ı takto poˇskozen´ ych dat byl velmi dobr´ y a od reality se pˇr´ıliˇs neliˇsil. Proto nyn´ı pˇristoup´ıme k ovˇeˇren´ı funkce algoritmu na re´aln´ ych datech nasb´ıranych bˇehem letu bezpilotn´ıho prostˇredku.
Data, kter´a zde budou pouˇzita, poch´azej´ı z bezpilotn´ıho vrtuln´ıku Hirobo sst-eagle ˇ Freya, kter´ y je souˇc´ast´ı projektu RAMA (Spinka, O. et al., 2010), na jehoˇz domovsk´ ych str´ank´ach je moˇzno se o tomto vrtuln´ıku dozvˇedˇet dalˇs´ı informace. Kromˇe mnoha jin´ ych je tento vrtuln´ık vybaven i senzory vhodn´ ymi pro pouˇzit´ı v t´eto pr´aci, tedy tˇr´ıos´ ym gyroskopem, tˇr´ıos´ ym akcelerometrem a tˇr´ıos´ ym magnetometrem. Veˇsker´a letov´a data jsou bˇehem letu ukl´ad´ana do matice, ze kter´e je n´aslednˇe moˇzno vybrat poˇzadovan´a data.
Vyst´av´a zde vˇsak probl´em, jak´ ym zp˚ usobem urˇcit skuteˇcn´e polohov´e u ´hly vrtuln´ıku bˇehem letu. Mezi mˇeˇren´ ymi daty jsou pr´avˇe i polohov´e u ´hly, ty vˇsak mohou b´ yt zat´ıˇzeny chybami, kter´e byly pops´any v pˇredchoz´ıch kapitol´ach. Mus´ıme tedy uˇcinit pˇredpoklad, ˇze tˇemto dat˚ um se d´a do urˇcit´e m´ıry v mal´em ˇcasov´em mˇeˇr´ıtku vˇeˇrit, jelikoˇz se zde ve ´ velk´e m´ıˇre neprojev´ı chyby driftu apod. Usek sign´al˚ u polohov´ ych u ´hl˚ u vrtuln´ıku, kter´e budou pouˇzity k ladˇen´ı senzorick´eho modelu jsou potom vidˇet na obr´azku 5.5.
Nyn´ı pomoc´ı gener´atoru vytvoˇren´eho v sekc´ıch 4.1 a 4.2 budeme schopni z´ıskat data, kter´a by odpov´ıdala mˇeˇren´ı jednotliv´ ymi senzory, pˇriˇcemˇz v´ ystupn´ı data budou z´aviset na konkr´etn´ım nastaven´ı parametr˚ u jednotliv´ ych modelovan´ ych chyb. Takto z´ıskan´a v´ ystupn´ı data je potom tˇreba porovn´avat s odpov´ıdaj´ıc´ımi skuteˇcn´ ymi letov´ ymi daty tak, aby se modelovan´a v´ ystupn´ı data co nejv´ıce bl´ıˇzila dat˚ um mˇeˇren´ ym. T´ım z´ısk´ame parametry urˇcuj´ıc´ı chyby jednotliv´ ych senzor˚ u pouˇz´ıvan´ ych na vrtuln´ıku. Nejlepˇs´ı shody bylo potom cyklickou optimalizac´ı dosaˇzeno pˇri n´asleduj´ıc´ım nastaven´ı parametr˚ u a shoda modelovan´ ych a re´aln´ ych dat je potom vidˇet na obr´azku 5.6.
´ KAPITOLA 5. VYSLEDKY
58
Φ
uhel [rad]
0.2
0
−0.2 0
10
20
30
40 cas [s] Θ
50
60
70
80
10
20
30
40 cas [s] Ψ
50
60
70
80
10
20
30
40 cas [s]
50
60
70
80
uhel [rad]
0.5
0
−0.5 0
uhel [rad]
6 5.5 5 4.5 0
Obr´ azek 5.5: Pr˚ ubˇehy polohov´ ych u ´hl˚ u z re´aln´eho letu
Matice chyb kombinuj´ıc´ı misalignment a scale factor jednotliv´ ych senzor˚ u:
⎡
1, 1000 0, 1000 −0, 1000 ⎢ ⎢ M pqr = ⎢ −0, 1000 1, 0000 0, 0000 ⎣ 0, 0300 −0, 1000 0, 3000 ⎤ ⎡ 0, 1000 0, 0000 0, 0000 ⎥ ⎢ ⎥ ⎢ M a = ⎢ 0, 0000 0, 2000 0, 0000 ⎥ ⎦ ⎣ −0, 1000 0, 0000 1, 0000 ⎡ ⎤ 0, 6000 0, 0000 0, 0000 ⎢ ⎥ ⎢ ⎥ M H = ⎢ 0, 0000 0, 8000 0, 0000 ⎥ ⎣ ⎦ 0, 0000 0, 0000 0, 8000 Koeficienty rovnice chyby teplotn´ıho driftu:
⎤ ⎥ ⎥ ⎥ ⎦
´ A ´ LETOVA ´ DATA 5.2. REALN
59
Chyba teplotn´ıho driftu zde modelov´ana nebude, jelikoˇz urˇcen´ı teploty senzor˚ u by bylo velice obt´ıˇzn´e. Nejsou zde totiˇz k dispozici samostatn´e teplotn´ı senzory a pˇr´ıpadn´e urˇcen´ı teploty dle modelu standardn´ı atmosf´ery tak´e nen´ı moˇzn´e, jelikoˇz hlavn´ım prvkem urˇcuj´ıc´ım teplotu je spalovac´ı motor. Z tohoto d˚ uvodu budou vˇsechny koeficienty nulov´e a konstantn´ı sloˇzky teplotn´ıho driftu budou zahrnuty v chyb´ach biasu. Konstantn´ı sloˇzky chyb biasu:
Bp = 0 rad/s
Bq = 0 rad/s
Br = 0 rad/s
Bax = −0, 8 m/s2 Bay = 0, 2 m/s2 Baz = 0 m/s2 BHx = 0, 002 T
BHy = 0, 003 T
BHz = 0, 015 T
Vzd´ alenosti um´ıstˇen´ı akcelerometr˚ u od tˇeˇziˇstˇe v jednotliv´ ych os´ach:
Rx = 0, 05 m Ry = −0, 003 m Rz = 0, 02 m Teplota:
Z d˚ uvodu neuvaˇzov´an´ı chyby teplotn´ıho driftu nebude teplota modelov´ava. Vzorkovac´ı frekvence:
fs = 64 Hz (odpov´ıd´a vzorkovac´ı frekvenci nasb´ıran´ ych letov´ ych dat)
Z obr´azku 5.6 je potom vidˇet, ˇze nejobt´ıˇznˇejˇs´ı bylo modelov´an´ı ˇcinnosti akcelerometr˚ u, u kter´eho se nepodaˇrilo dos´ahnout tak dobr´ ych v´ ysledk˚ u, jako u ostatn´ıch senzor˚ u. To m˚ uˇze b´ yt zp˚ usobeno velk´ ym poˇskozen´ım v´ ystupn´ıch dat senzor˚ u napˇr´ıklad vibracemi spalovac´ıho motru. Pˇri urˇcov´an´ı kovarianˇcn´ıch matic algoritmu rozˇs´ıˇren´eho Kalmanova filtru na tuto skuteˇcnost potom mus´ı b´ yt pamatov´ano.
´ KAPITOLA 5. VYSLEDKY p
ax
mereni
0.5
zrychleni [m/s2]
model 0
−0.5 35
36
37
38
39
40 cas [s]
41
42
43
44
model
−1
−2 0
45
0.5
10
20
30
40 cas [s] ay
50
60
70
80
−0.5 35
10
20
30
40 cas [s] az
50
60
70
80
10
20
30
40 cas [s]
50
60
70
80
1
zrychleni [m/s2]
0
36
37
38
39
40 cas [s]
41
42
43
44
0
−1 0
45
r zrychleni [m/s2]
1
0
36
37
38
39
40 cas [s]
41
43
44
−12 0
45
0.02
0 mereni −0.02 0
intenzita mag. pole [T] intenzita mag. pole [T]
42
−8 −10
Hx
intenzita mag. pole [T]
−1 35
mereni
0
q
uhlova rychlost [rad/s]
uhlova rychlost [rad/s]
uhlova rychlost [rad/s]
60
model 10
20
30
40 cas [s] Hy
50
60
70
80
0
10
20
30
40 cas [s] Hz
50
60
70
80
0
10
20
30
40 cas [s]
50
60
70
80
0.03
0.02
0.01
0.05
0.045
0.04
Obr´ azek 5.6: Srovn´ an´ı mˇeˇren´ ych a modelovan´ ych dat
Nyn´ı jiˇz opˇet m´ame vˇsechny potˇrebn´e informace k pouˇzit´ı algoritmu rozˇs´ıˇren´eho Kalmanova filtru. Nejprve znovu provedeme inicializaci algoritmu. Jako prvn´ı urˇc´ıme poˇca´teˇcn´ı stav, kter´ y bude vypadat stejnˇe jako v pˇr´ıpadˇe pouˇzit´ı umˇele vytvoˇren´ ych dat, tedy x (0) =
1 0 0 0 Bp Bq Br Bax Bay Baz BHx BHy BHz
T
.
D´ale je tˇreba urˇcit poˇc´ateˇcn´ı hodnotu kovarianˇcn´ı matice chyby apriorn´ıho odhadu stavu P(0). Tu opˇet urˇc´ıme jednoduˇse jako jednotkovou matici o velikosti 13 × 13. Posledn´ım krokem inicializace je urˇcen´ı kovarianˇcn´ı matice ˇsumu procesu Q a ˇsumu mˇeˇren´ı R. Cyklickou optimalizac´ı se jako nejlepˇs´ı uk´azalo n´asleduj´ıc´ı nastaven´ı. Obˇe
´ A ´ LETOVA ´ DATA 5.2. REALN
61
−1 −1.5 0
20
40
60
80 cas [s] q1
100
120
140
160 mereni odhad
0.5 0 −0.5 0
20
40
60
80 cas [s] q2
100
120
140
160
20
40
60
80 cas [s] q3
100
120
140
160
20
40
60
80 cas [s]
100
120
140
160
0.2 0 −0.2 0
velikost [−]
velikost [−]
velikost [−]
velikost [−]
q0 −0.5
1 0 −1 0
Obr´ azek 5.7: Srovn´ an´ı mˇeˇren´ ych a odhadnut´ ych quaternion˚ u
matice jsou diagon´aln´ı.
Q = diag R = diag
2
15
2
10
2
10
2
50
2
0, 8
2
0, 3
2
0, 6
2
0, 9
2
0, 5
0.000012 100002 100002 100002 502 502 102
2
7
2
0, 2
2
0, 2
2
0, 2
Algoritmus bude d´ale opˇet pracovat dle obr´azku 2.7, kde vyuˇz´ıv´a rovnic (2.18) aˇz (2.24). V´ ysledek ˇcinnosti algoritmu je potom vidˇet na obr´azc´ıch 5.7 a 5.8. Zde je vidˇet minim´alnˇe jedno zlepˇsen´ı odhadnut´ ych dat oproti dat˚ um mˇeˇren´ ym. V pˇr´ıpadˇe odhadov´an´ı polohov´ ych u ´hl˚ u Φ a Θ totiˇz vid´ıme, ˇze p˚ uvodn´ı mˇeˇren´a data driftovala, zat´ımco odhadnut´e polohov´e u ´hly driftem netrp´ı. Uˇcinit v´ıce z´avˇer˚ u by bylo velico obt´ıˇzn´e, jelikoˇz nem´ame k dispozici data spr´avn´a.
´ KAPITOLA 5. VYSLEDKY
62
Φ mereni
1 uhel [rad]
odhad 0.5 0 −0.5 0
20
40
60
80 cas [s] Θ
100
120
140
160
20
40
60
80 cas [s] Ψ
100
120
140
160
20
40
60
80 cas [s]
100
120
140
160
uhel [rad]
1 0.5 0 −0.5 0
uhel [rad]
1 0 −1 −2 0
Obr´ azek 5.8: Srovn´ an´ı mˇeˇren´ ych a odhadnut´ ych polohov´ ych u ´hl˚ u
Kapitola 6 Moˇ zn´ a zpˇ resnˇ en´ı odhadu V t´eto kapitole budou nast´ınˇeny moˇznosti, kter´e by mohly v´est k dalˇs´ımu vylepˇsen´ı algoritmu, coˇz by vedlo i ke zpˇresnˇen´ı odhadu polohov´ ych u ´hl˚ u.
Jednou z moˇznost´ı, jak takov´eho zlepˇsen´ı dos´ahnout, je pouˇzit´ı dynamick´eho modelu samotn´eho letadla. Ne vˇzdy je vˇsak moˇzn´e takov´ y model z´ıskat. Nicm´enˇe i v pˇr´ıpadˇe, ˇze je model k dispozici, nemus´ı m´ıt dostateˇcnou pˇresnost na to, aby ho bylo moˇzn´e pouˇz´ıt. Zde tedy budeme uvaˇzovat situaci, kdy dostateˇcnˇe pˇresn´ y model letadla m´ame. Tento model m˚ uˇze vypadat napˇr´ıklad n´asledovnˇe.
⎡ 0, 9982
−0, 00848
0, 00504
−2, 589 · 10−5
⎢ ⎢ ⎢ −0, 003726 0, 9651 1, 594 · 10−5 xpod (k + 1) = ⎢ ⎢ ⎢ 2, 428 · 10−5 −0, 0009618 1 ⎣ 0, 00314 −0, 1206 −1, 319 · 10−5 ⎡ ⎤ −5 0, 01669 1, 054 · 10 ⎢ ⎥⎡ ⎤ ⎢ ⎥ ⎢ −3, 138 · 10−5 0, 006059 ⎥ δm (k) ⎥⎣ ⎦ +⎢ ⎢ ⎥ −7 ⎢ 1, 345 · 10 0, 001376 ⎥ δv (k) ⎣ ⎦ 2, 596 · 10−5 0, 1735 63
0, 01468 0, 01494 0, 9137
⎤⎡
v(k)
⎤
⎥⎢ ⎥ ⎥⎢ ⎥ ⎥ ⎢ α(k) ⎥ ⎥⎢ ⎥+ ⎥⎢ ⎥ ⎥ ⎢ Θ(k) ⎥ ⎦⎣ ⎦ ˙ Θ(k)
(6.1)
ˇ A ´ ZPRESN ˇ ˇ ´I ODHADU KAPITOLA 6. MOZN EN
64 ⎡ 0, 992
−0, 000278
⎤⎡ 0, 0155
0, 0009279
⎢ ⎢ ⎢ −0, 6629 0, 9204 −0, 02899 −0, 000314 ⎢ ⎢ xstran (k + 1) = ⎢ −0, 3018 −0, 004838 0, 9889 −0, 0001412 ⎢ ⎢ ⎢ −0, 005229 0, 01499 −0, 0004724 1 ⎣ −0, 002369 −3, 849 · 10−5 0, 01554 −7, 37 · 10−7 ⎤ ⎡ 0, 0002151 0, 001344 ⎥ ⎢ ⎥ ⎢ ⎤ ⎢ 0, 6876 0, 1561 ⎥ ⎡ ⎥ δ (k) ⎢ k ⎥ ⎢ ⎦ + ⎢ 0, 02964 0, 08988 ⎥ ⎣ ⎥ δ (k) ⎢ s ⎥ ⎢ ⎢ 0, 005443 0, 001229 ⎥ ⎦ ⎣ 0, 0002365 0, 0007048
0
⎥⎢ ⎥⎢ 0 ⎥⎢ ⎥⎢ ⎥⎢ 0 ⎥⎢ ⎥⎢ ⎥⎢ 0 ⎥⎢ ⎦⎣ 1
β(k)
⎤
⎥ ⎥ ˙ Φ(k) ⎥ ⎥ ⎥ ˙ Ψ(k) ⎥ + ⎥ ⎥ Φ(k) ⎥ ⎦ Ψ(k)
(6.2)
Vid´ıme, ˇze celkov´ y model je sloˇzen ze dvou d´ılˇc´ıch. Prvn´ı z nich popisuje pod´eln´ y pohyb letadla. Zde stavov´a veliˇcina v znaˇc´ı rychlost letu (nab´ıhaj´ıc´ıho vzduchu) letadla a α znaˇc´ı u ´hel n´abˇehu letadla, vstupn´ı veliˇcina δm odpov´ıd´a ovl´ad´an´ı pˇr´ıpusti motoru a δv odpov´ıd´a nastaven´ı v´ yˇskov´eho kormidla letadla. Druh´ y d´ılˇc´ı model popisuje stranov´ y pohyb letadla. Zde stavov´a veliˇcina β znaˇc´ı u ´hel vyboˇcen´ı letadla, vstupn´ı veliˇcina δk odpov´ıd´a nastaven´ı kˇrid´elek a δs odpov´ıd´a nastaven´ı smˇerov´eho kormidla letadla. Oba modely jsou diskretizovan´e s vzorkovac´ı frekvenc´ı 64 Hz.
Jelikoˇz stavy v modelu popsan´em rovnicemi (6.1) a (6.2) jsou mimo jin´e i polohov´e u ´hly, nab´ız´ı se jejich zaˇclenˇen´ı do stavov´ ych rovnic (4.11) v algoritmu Kalmanova filtru nam´ısto rovnic, kter´e obsahuj´ı mˇeˇren´ı gyroskopy. Rovnice mˇeˇren´ı (4.12) potom mohou z˚ ustat nezmˇenˇeny a mohou b´ yt opˇet pouˇzity ke korekci odhadu z´ıskan´eho pomoc´ı dynamick´eho modelu.
Vyvst´av´a zde vˇsak probl´em, ˇze v modelu popsan´em rovnicemi (6.1) a (6.2) je poloha letadla urˇcov´ana v podobˇe Eulerov´ ych u ´hl˚ u, kdeˇzto rovnice mˇeˇren´ı (4.12) algoritmu Kalmanova filtru pouˇz´ıvan´e v t´eto pr´aci pracuj´ı s polohou, kter´a je urˇcena pomoc´ı quaternion˚ u. Pro spr´avnou funkˇcnost algoritmu Kalmanova filtru je tedy nut´e zajistit konzistenci stavov´ ych rovnic s rovnicemi mˇeˇren´ı. Jednoduˇse to lze prov´est tak, ˇze simulace modelu se bude prov´adˇet jeˇstˇe pˇred zpracov´av´an´ım stavov´ ych rovnic v algoritmu Kal-
65 manova filtru a n´aslednˇe se Eulerovy u ´hly, kter´e jsou v´ ystupem simulace modelu letadla, pˇrevedou na quaterniony. Ty se potom zahrnou do novˇe vytvoˇren´ ych stavov´ ych rovnic algoritmu Kalmanova filtru. Takto vytvoˇren´e stavov´e rovnice potom budou vypadat n´asledovnˇe. ⎡
⎤
q + B0 ⎢ 0e ⎥ ⎢ ⎥ ⎢ q1e + B1 ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ q2e + B2 ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ q3e + B3 ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ B0 ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ B1 ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ B2 ⎥ x(k + 1) = ⎢ ⎢ ⎥ ⎢ ⎥ B3 ⎢ ⎥ ⎢ ⎥ ⎢ Bax ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ Bay ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ Baz ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ BHx ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ BHy ⎥ ⎣ ⎦ BHz Zde q0e aˇz q4e jsou quaterniony z´ıskan´e konverz´ı Eulerov´ ych u ´hl˚ u, kter´e jsou v´ ystupy simulace dynamick´eho modelu letadla. B0 aˇz B4 vyjadˇruj´ı aditivn´ı chyby, kter´ ymi algoritmus m˚ uˇze podchytit r˚ uzn´e ruˇsiv´e vlivy, se kter´ ymi dynamick´ y model letadla nepoˇc´ıt´a, jako jsou napˇr´ıklad poryvy vˇetru.
Nyn´ı pˇristoup´ıme k ovˇeˇren´ı funkce takto navrˇzen´eho algoritmu. Chyby akcelerometr˚ u a magnetometr˚ u a dalˇs´ı ruˇsiv´e vlivy, vˇcetnˇe jejich nastaven´ı a velikost´ı, budeme uvaˇzovat stejn´e, jako v sekci 5.1. Jako jedin´ y ruˇsiv´ y vliv t´ ykaj´ıc´ı se dynamick´eho modelu zde budeme pro jednoduchost uvaˇzovat aditivn´ı chybu, kter´a pˇredstavuje chybn´e urˇcen´ı polohov´ ych u ´hl˚ u, coˇz m˚ uˇze b´ yt napˇr´ıklad d˚ usledkem poryvu vˇetru. Tato chyba je patrn´a na obr´azku 6.1, kde se vˇsak o poryv vˇetru nejden´a, ale jedn´a se sp´ıˇse o vnitˇrn´ı chybu modelu ˇci o jeho chybn´e vstupy.
ˇ A ´ ZPRESN ˇ ˇ ´I ODHADU KAPITOLA 6. MOZN EN
66
Jako prvn´ı je tˇreba inicializovat algoritmus Kamlanova filtru. Poˇc´ateˇcn´ı stav bude tedy vypadat n´asledovnˇe.
T x (0) = 1 0 0 0 0 0 0 0 Bax Bay Baz BHx BHy BHz
D´ale je tˇreba urˇcit poˇc´ateˇcn´ı hodnotu kovarianˇcn´ı matice chyby apriorn´ıho odhadu stavu P(0). Tu urˇc´ıme jednoduˇse jako jednotkovou matici o velikosti 14 × 14. Jako posledn´ı urˇc´ıme kovarianˇcn´ı matice ˇsumu procesu Q a ˇsumu mˇeˇren´ı R. Cyklickou optimalizac´ı se jako nejlepˇs´ı uk´azalo n´asleduj´ıc´ı nastaven´ı. Obˇe matice jsou diagon´aln´ı.
2 2 2 2 2 2 2 2 2 2 2 2 2 2 Q = diag 10 10 10 10 3 3 3 3 5 5 5 2 2 2
2 2 2 2 2 2 2 R = diag 0.00001 100 100 100 100 100 100
Algoritmus bude d´ale pracovat dle obr´azku 2.7, kde vyuˇz´ıv´a rovnic (2.18) aˇz (2.24). Skuteˇcn´e hodnoty polohov´ ych u ´hl˚ u, vˇcetnˇe pˇr´ısluˇsn´ ych vstup˚ u dynamick´eho modelu letadla, byly vytvoˇreny pˇredem. V´ ysledek ˇcinnosti algoritmu je potom vidˇet na obr´azku 6.1. Zde je vidˇet, ˇze algoritmus dok´azal efektivnˇe zkombinovat poˇskozen´a data ze senzor˚ u a v´ ystupn´ı data dynamick´eho modelu letadla. V odhadnut´ ych hodnot´ach se potom t´emˇeˇr neprojevuj´ı chyby akcelerometr˚ u a magnetometr˚ u, stejnˇe tak se zde neprojevuje konstantn´ı chyba v´ ystupn´ıch dat dynamick´eho modelu. Odhadnut´e hodnoty se potom od skuteˇcn´ ych pˇr´ıliˇs neliˇs´ı, pouze je zde patrnˇejˇs´ı ˇsum, kter´ y se algoritmem nepodaˇrilo odstranit.
Z´avˇerem t´eto kapitoly je jeˇstˇe nutno dodat, ˇze metoda uveden´a v t´eto kapitole pouze nastiˇ nuje dalˇs´ı moˇznost odhadu polohov´ ych u ´hl˚ u pomoc´ı algoritmu Kalmanova filtru. Tato metoda nebyla testov´ana na ˇza´dn´ ych re´aln´ ych datech nebo v re´aln´em provozu a oproti metodˇe pouˇz´ıvan´e v pˇredchoz´ıch kapitol´ach pˇredstavuje vyˇsˇs´ı v´ ypoˇcetn´ı n´aroˇcnost a dosaˇzen´e v´ ysledky nejsou pˇri porovn´an´ı s v´ ysledky dosaˇzen´ ymi v sekci 5.1 lepˇs´ı.
67 Φ
uhel [rad]
0.5 0 −0.5 −1 0
10
20
30 cas [s] Θ
40
vystup dynamickeho modelu 50 60 odhad skutecnost
uhel [rad]
0.5
0
−0.5 0
10
20
30 cas [s] Ψ
40
50
60
10
20
30 cas [s]
40
50
60
uhel [rad]
2
1.5
1 0
Obr´ azek 6.1: Srovn´ an´ı polohov´ ych u ´hl˚ u skuteˇcn´ ych, odhadnut´ ych a stanoven´ ych dynamick´ ym modelem
Nicm´enˇe tato metoda m´a jistˇe velk´e moˇznosti dalˇs´ıho vylepˇsov´an´ı. Napˇr´ıklad pokud by byl k dispozici model letadla pracuj´ıc´ı s quaterniony nebo pokud by rovnice mˇeˇren´ı algoritmu Kalmanova filtru byly v´ıce konzistentn´ı se stavy modelu letadla, mohly by b´ yt stavov´e rovnice algoritmu Kalmanova filtru sestaveny pˇr´ımo bez nutnosti separ´atn´ı simulace, coˇz by pˇrineslo i pˇresnˇeˇs´ı v´ ypoˇcty uvnitˇr algoritmu.
68
ˇ A ´ ZPRESN ˇ ˇ ´I ODHADU KAPITOLA 6. MOZN EN
Kapitola 7 Z´ avˇ er C´ılem t´eto pr´ace bylo navrhnout vhodn´ y algoritmus pro odhad polohov´ ych u ´hl˚ u bezpilotn´ıho vzduˇsn´eho prostˇredku. Velice vhodn´ ym n´astojem v tomto pˇr´ıpadˇe se uk´azal b´ yt Kalman˚ uv filtr, respektive rozˇs´ıˇren´ y Kalman˚ uv filtr, kter´ y pracuje s neline´arn´ım popisem syst´emu. Do popisu syst´emu, kter´ y vyuˇz´ıval algoritmus rozˇs´ıˇren´eho Kalmanova filtru, byl zahrnut i model ˇcinnosti jednotliv´ ych senzor˚ u, kter´e byly vyuˇzity pro urˇcov´an´ı polohov´ ych u ´hl˚ u. Tˇemito senzory jsou gyroskopy meˇr´ıc´ı u ´hlov´e rychlosti, akcelerometry ve funkci sklonomˇeru a magnetometry mˇeˇr´ıc´ı vektor intenzity magnetick´eho pole Zemˇe ve vˇsech tˇrech os´ach.
Odhad polohov´ ych u ´hl˚ u prob´ıh´a ve formˇe quaternion˚ u, jelikoˇz quaterniony nab´ızej´ı v´ ypoˇcetn´ı v´ yhody oproti pˇr´ım´emu odhadu polohov´ ych u ´hl˚ u. V dneˇsn´ı dobˇe jiˇz nen´ı v pˇr´ıpadˇe potˇreby probl´em pˇrevody mezi quaterniony a polohov´ ymi u ´hly prov´adˇet za bˇehu.
Na umˇele vytvoˇren´ ych datech bylo uk´az´ano, ˇze navrˇzen´ y algoritmus rozˇs´ıˇren´eho Kalmnanova filtru dok´azal s pomoc´ı modelu ˇcinnosti senzor˚ u velmi efektivnˇe zkombinovat poˇskozen´e informace z jednotliv´ ych senzor˚ u a pomˇernˇe pˇresnˇe dok´azal zrekonstruovat polohov´e u ´hly (ve formˇe quternion˚ u) a stejnˇe tak dok´azal velmi pˇresnˇe odhadnout aditivn´ı chyby senzor˚ u.
69
´ ER ˇ KAPITOLA 7. ZAV
70
Algoritmus byl d´ale otestov´an na re´aln´ ych letov´ ych datech. V´ ysledek odhadu algoritmu rozˇs´ıˇren´eho Kalmanova filtru byl pot´e porovn´an s polohov´ ymi u ´hly, kter´e byly mˇeˇreny bˇehem letu. V tomto pˇr´ıpadˇe bylo uk´az´ano zlepˇsen´ı ve formˇe odstranˇen´ı ˇcasov´eho driftu, kter´ ym byla zat´ıˇzena mˇeˇren´a data.
Na z´avˇer byla jˇeˇstˇe otestov´ana moˇznost zaˇclenˇen´ı dynamick´eho modelu do algoritmu rozˇs´ıˇren´eho Kalmanova filtru. Zde algoritmus dok´azal efektivnˇe zkombinovat chybami zat´ıˇzen´a data z akcelerometr˚ u a magnetometr˚ u s daty poskytnut´ ymi dynamick´ ym modelem letadla zat´ıˇzen´ ymi aditivn´ımi chybami.
Algoritmy uveden´e na pˇriloˇzen´em CD byly konstruov´any s ohledem na jejich pˇr´ıpadnou implementaci, proto obsahuj´ı minimum sloˇzit´ ych funkc´ı prostˇred´ı MATLAB a veˇsker´e v´ ypoˇcty, vˇcetnˇe jakobi´an˚ u, jsou ps´any manu´alnˇe.
Literatura EnviWeb
s.r.o.
(2008),
EnviWeb
[online].
Posledn´ı revize
2008-07-24,
http://www.enviweb.cz/. Feynman, R. P., Leighton, R. B. a Sands, M. (2000), Feynmanovy pˇredn´ aˇsky z fyziky, Havl´ıˇck˚ uv Brod: FRAGMENT. ISBN 80-7200-405-0. ˇ ˇ Havlena, V. a Stecha, J. (2000), Modern´ı teorie ˇr´ızen´ı, Praha: Vydavatelstv´ı CVUT. ISBN 80-01-02095-9. Kumar, N. S. a Tann, T. (2004), Estimation of attitudes from a low-cost miniaturized inertial platform using Kalman Filter-based sensor fusion algorithm. Lachnit, Z. (2007), Inerci´ aln´ı sn´ımaˇce pro zpˇresˇ nov´an´ı odometrie mobiln´ıch robot˚ u – Bakal´aˇrsk´ a pr´ ace, Brno. ˇmec, M. (2005), Mˇeˇren´ı stejnosmˇern´ych a stˇr´ıdav´ych magnetick´ych pol´ı – Bakal´aˇrsk´ Ne a pr´ ace, Plzeˇ n. ´, J. (2006), Mˇeˇren´ı magnetick´eho pole Zemˇe. Perny Titterton, D. H. a Weston, J. L. (2004), Strapdown inertial navigation technology, Stevenage: Institution of Electrical Engineers. ISBN 0-86341-358-7. ˇ ˇ a Hanza ´lek, Z. (2010), RAMA UAV Control System [online]. Spinka, O., Kroupa, S. Posledn´ı revize 07/01/2010, http://rtime.felk.cvut.cz/helicopter/. ˇ a ´c ˇ, M. (2008), N´ Rez avrh ˇr´ızen´ı pro syst´em stabilizace optick´e osy kamerov´eho syst´emu pro bezpilotn´ı letoun – Diplomov´a pr´ ace, Praha.
71
72
LITERATURA
Pˇ r´ıloha A Skripty gener´ atoru dat A.1
Transformace Eulerov´ ych u ´ hl˚ u na u ´ hlov´ e rychlosti
function [pqr] = eul2pqr(dPhi, dTheta, dPsi, Phi, Theta) %EUL2PQR − euler angles to angular rates p, q, r conversion %eul2pqr(dPhi, dTheta, dPsi, Phi, Theta) R = [1 0 −sin(Theta); 0 cos(Phi) sin(Phi)*cos(Theta); 0 −sin(Phi) cos(Phi)*cos(Theta)];
pqr = R*[dPhi; dTheta; dPsi];
end
A.2
Transformace vektoru z navigaˇ cn´ı do tˇ elesov´ e souˇ radn´ e soustavy
function [AxAyAz] = geo2bdy(Phi, Theta, Psi, x, y, z)
I
II
ˇ ´ILOHA A. SKRIPTY GENERATORU ´ PR DAT
%GEO2BDY converts vector [x;y;z] between two frames %
geo2bdy( Phi, Theta, Psi, x, y, z )
Q = [cos(Phi/2)*cos(Theta/2)*cos(Psi/2)+sin(Phi/2)*sin(Theta/2)*sin(Psi/2) sin(Phi/2)*cos(Theta/2)*cos(Psi/2)−cos(Phi/2)*sin(Theta/2)*sin(Psi/2) cos(Phi/2)*sin(Theta/2)*cos(Psi/2)+sin(Phi/2)*cos(Theta/2)*sin(Psi/2) cos(Phi/2)*cos(Theta/2)*sin(Psi/2)−sin(Phi/2)*sin(Theta/2)*cos(Psi/2)];
AxAyAz = [Q(1)ˆ2+Q(2)ˆ2−Q(3)ˆ2−Q(4)ˆ2, 2*(Q(1)*Q(4)+Q(2)*Q(3)), 2*(Q(2)*Q(4)−Q(1)*Q(3)); 2*(Q(2)*Q(3)−Q(1)*Q(4)), Q(1)ˆ2−Q(2)ˆ2+Q(3)ˆ2−Q(4)ˆ2, 2*(Q(1)*Q(2)+Q(3)*Q(4)); 2*(Q(1)*Q(3)+Q(2)*Q(4)), 2*(Q(3)*Q(4)−Q(1)*Q(2)), Q(1)ˆ2−Q(2)ˆ2−Q(3)ˆ2+Q(4)ˆ2] * [x; y; z];
end
Pˇ r´ıloha B Skripty senzorick´ eho modelu B.1
Misalignment error
function [ out ] = misalig( fx, fy, fz, Mf ) % misalig( ax, ay, az, Maxyz ) %
misalignment of sensors
out = Mf*[fx; fy; fz];
end
B.2
Temperature drift
function [ out ] = Temp drift( fx, fy, fz, T, t11, t12, t13, t14, t21, t22, t23, t24, t31, t32, t33, t34 ) % Temp drift pqr( fx, fy, fz, T, t11, t12, t13, t14, % %
t21, t22, t23, t24, t31, t32, t33, t34 ) Temperature drift of sensors
out = [fx; fy; fz] + [t11*Tˆ3+t12*Tˆ2+t13*T+t14; t21*Tˆ3+t22*Tˆ2+t23*T+t24;
III
ˇ ´ILOHA B. SKRIPTY SENZORICKEHO ´ PR MODELU
IV
t31*Tˆ3+t32*Tˆ2+t33*T+t34];
end
B.3
Bias
function [ out ] = Sensor bias( fx, fy, fz, Bx, By, Bz ) % Sensor bias pqr( fx, fy, fz, Bx, By, Bz ) %
Sensor bias
out = [fx; fy; fz] + [Bx; By; Bz];
end
B.4
Chyba polohy akcelerometr˚ u mimo tˇ eˇ ziˇ stˇ e
function [ out ] = CG Offset( p, q, r, Xax, Yay, Zaz ) % Center of gravity offset %
CG Offset( p, q, r, Xax, Yay, Zaz )
out = [(qˆ2+rˆ2)*Xax; (pˆ2+rˆ2)*Yay; (pˆ2+qˆ2)*Zaz];
end
Pˇ r´ıloha C Obsah pˇ riloˇ zen´ eho CD K t´eto pr´aci je pˇriloˇzeno CD, na kter´em jsou uloˇzeny n´asleduj´ıc´ı soubory: tento dokument ve form´ atu PDF, n´ asleduj´ıc´ı skripty programu MATLAB a modely prostˇred´ı Simulink pouˇz´ıvan´e v
t´eto pr´aci: – kalman angles.m vykon´avaj´ıc´ı algoritmus Kalmanova filtru, – kalman angles model.m vykon´avaj´ıc´ı algoritmus Kalmanova filtru zahrnuj´ıc´ı dynamick´ y model letadla, – test generator.mdl obsahuj´ıc´ı gener´ator dat vˇcetnˇe senzorick´eho modelu, – dalˇs´ı podp˚ urn´e skritpy, modely a datov´e soubory.
V