Andurisulandus

**Andurisulandus** (ingl ''Sensor fusion'') on andurite andmete kombineerimine, et parandada nende andmete täpsust, mahtu või õigust.
## Kasutus
Andurisulandust kasutatakse tänapäeval paljudes tehnoloogiavaldkondades, kus on tarvis saada täpset infot mingi objekti kohta, kui kasutada on samal ajal mitme eri või sama tüüpi anduri andmed. 

Autonoomsed ehk isejuhtivad sõidukid nagu isesõitev auto või isesõitvad droonid kasutavad andurisulandust suures ulatuses. Erinevalt inimese nägemisest, mis suudab eri oludes kohaneda, on isejuhtivates sõidukites kasutusel andurid teiste masinate, teede ja takistuste identifitseerimiseks. Nende andurite kvaliteet ja hulk sõltub masina kasutuskeskkonnast. Labori tingimustes võib piisata kaamerast ja pöördkooderist, aga isesõitval autol võib teel vaja minna nii lidarit, tavalisi kaameraid, ultraheliandurit ja tehisnärvivõrku. Andurisulandus laseks siis näiteks vihmas toetuda rohkem kaamera andmetele kui lidari andmetele, sest viimase töö on vihmapiiskade tõttu rohkem häiritud. 

Droon võib kombineerida GPS-i koha paigutuse ta enda inertsiaalanduri paigutuse kaamerapildiga, et oma asukohta mitte kaotada ja teada seda palju täpsemalt, kui ainult GPS-i kasutades.

Liikluse olukorda saab ennustada kasutades ainult kaamerat ja mikrofoni. Selline lahendus on lihtne ja kasutades nende kahe andurisulandust saab piisavalt infot, et ennustada liikluse olukorda mitmes ummikufaasis. Selline sulandust kasutav lahendus pakub paremaid tulemusi, kui pakuvad üksikandurite põhjal tehtavad otsused.

Liikumise ja tervise näitajaid on vaja jälgida mitmesuguste anduritega, näiteks güroskoobi, kiirendusanduri ja magnetomeetriga. Lisaks on südame või pulsi mõõtmiseks vaja mõõta mitut muud näitajat, sest otsene mõõtmine ei pruugi olla alati võimalik.

## Andurisulanduse tüübid
Andurisulandust saab liigitada mitmeti. Üks viis on eristada tsentraliseeritud ja mitte tsentraliseeritud sulandust. Tsentraliseeritud viitab sellele kus sulandus toimub, ehk kas andmed saadetakse mujale kokku töötlemiseks või toimub töötlus iga anduri tasemel individuaalselt. Selle lähenemise kasulikud küljed on modulaarsus ja laiendatavus, aga samas kaasneb sellega andmete hulga suurenemine. Tsentraalsel lähenemisel on üks keskne moodul, mille töö on kõikide andurite andmete töötlemine. Nende kahe viisi kombineerimine annab tihtipeale parimaid tulemusi keerulistes süsteemides. Selline hierarhiline lähenemine seisneb keskses planeerijas, mis kontrollib alamate mitte tsentraliseeritud anduritest koosnevate üksuste tööd. 

Andurisulandus ei nõua, et andurid oleks sama liiki. Saab eristada kas andureid kasutatakse rivaalitsevalt või komplementaarselt. Rivaalitsevalt saab mitu homogeenset andurit parandada tulemuse täpsust, kindlust, ja andurite liiasus kaitseb rikete korral täieliku andmekadu eest. Komplementaarses seadistuses sulandatakse mitme anduri andmed, et ühtede tugevate külgedega siluda teiste nõrkusi.  

Teine liigitus on andurite sisendandmete tüübi järgi. Need andurisulanduse tasemed on arendatud andmesulanduse tasemetest. Esimene selline taseme süsteem pandi paika aastal 1985. Tänapäevased kõige rohkem kasutatud tasemed grupeerivad andurisulanduse tüübid selle järgi mis tüüpi andmeid neile sisendatakse. 

* Andmete tase – andmete tasemel sulanduse eesmärk on ühitada mitme sama tüüpi anduri väljundeid. Selle eesmärgiks on saada täpsemaid andmeid ja vähendada korduvate või mitteasjakohaste andmete hulka. Seetõttu on sellel tasemel sulanduse protsess tihti aeglane, sest tuleb läbi töötada suur hulk andmeid. Sellel tasemel ei toimu keerulist otsuste tegemist ja eeldatakse, et andmed ei ole puudulikud, ega ebavajalikud.
* Karakteristikute tase – karakteristikute ehk tunnuste tase tegeleb tunnustehõivega. Andmete tasemelt saadud info töödeldakse, et leida vajalikud tunnused järgmisele kihile.
* Otsuse tase – otsuse tasemel vaadatakse kõik läbitöötatud andmed läbi ja tehakse otsus mida selle läbi töötatud info põhjal teha. Sellel tasemel on tähtis kasutada parimat ja kõige rohkem sisse tulevat infot kasutav algoritm. Peab arvesse võtma puuduliku või mitte usaldusväärset infot ja andurite usaldusväärsust antud olukorras.

## Algoritmid
Andurisulanduse eelduseks on sissetulevate andmete sulandamine, ehk ühendamine, ja kooskõlastus. Selleks on mitu meetodit ja rohkesti algoritme. Neist populaarsemad on järgmised:

### Komplementaarne filter
Kasutades komplementaarset filtrit, saab kahe erineva ja üksteisest sõltumatu muutuja kombineerimiseks lihtsalt liita nende vigade määramatused kasutades tsentraalse piirteoreemi (ingl *central limit theorem*) põhimõtet. Siis korrutades mõlemad muutujad läbi mingi kordajaga, saab määrata ühele suurem osakaal kui teisele, sõltuvalt kumb muutuja on tundlikum lühemal aja vahemikul ja kumb on stabiilsem pikemal ajal.

### Kalmani filter

Kalmani filter on keerulisem lahendus kui komplementaarne, aga pakub väiksemat vea määra ja täpsemat tulemust, sest saab kasutada rohkemate muutujatega ja kasutab kõike sisse saavat infot.

### Konvolutsiooniline närvivõrk
Konvolutsiooniline närvivõrk kasutab ka teoreetiliselt andurisulandust, sest närvivõrk võtab sisse mitu sisendit ja peale kõikide kihtide läbimist väljastab klassifikatsiooni või regressiivse tulemuse. Need kihid ongi algoritm, mis sulandab sisendandmed tulemuseks.

Sellist närvivõrku kasutatakse enamasti otsuse tasemel ja tsentraalset, kus tuleb paljude tunnuste põhjal vastu võtta lõplik otsus. Närvivõrku andmete tasemel kasutada on liiga ressursi nõudlik ja ebavajalik, sest ei ole veel näha keerulisi tunnuseid nii madalal tasemel. 

Sama võib ka öelda inimese aju kohta. Närvivõrk on modelleeritud bioloogilise närvivõrguga sarnaselt. Inimene saab kogu aeg välismaailmast tohutult andmeid, mis tuleb sulandada kokku teadlikuks keskkonna tajumiseks. Näiteks autos raamatut lugedes võib minna süda pahaks, sest sisekõrvas olev andur annab infot, et toimub liikumine, aga silmad näevad paigal olevat teksti. Sel juhul ei suuda aju eri allikatest saadavaid andmeid tasakaalustatult sulandada.
## Viited