Enota 4 / 9

Sensor Fusion in integracija podatkov interneta stvari

Dobički:

  • Sposobnost izdelave fuzijske logike (integrator/Kalmanov filter), ki združuje podatke IMU, kodirnika in senzorja razdalje z AI
  • Sposobnost konfiguriranja in interpretiranja podatkovnih tokov interneta stvari in telemetrije na podlagi MQTT s pomočjo AI
  • Zmožnost zaznavanja in odpravljanja težav s šumom senzorja, kalibracijo in časovno sinhronizacijo v izhodu AI

Noben senzor ni popoln. Žiroskop je kratkoročno zelo natančen, vendar se sčasoma spreminja. Merilnik pospeška je na dolgi rok stabilen, vendar povzroča hrup zaradi tresljajev. Dajalnik natančno meri položaj, vendar se ob zdrsu zmoti. GPS deluje na širokem območju, vendar je nizkofrekvenčen in hrupen. Inženir mehatronike mora proizvesti eno samo, zanesljivo resnico iz teh nepopolnih senzorjev; To je senzorska fuzija. Še več, v sodobnih sistemih ti podatki ne ostanejo samo lokalni, temveč tečejo v oblak in nadzorne centre prek omrežij IoT. Umetna inteligenca je močan pripomoček pri nastavljanju fuzijskih algoritmov ter konfiguraciji in interpretaciji IoT telemetrije. V tej enoti pokrivamo komplementarni filter, logiko Kalmanovega filtra in kako nastaviti pretok IoT, ki temelji na MQTT, z umetno inteligenco ter lovljenje hrupa in sinhronizacijske pasti.

Zakaj Sensor Fusion?

Vsak senzor ima "dobro frekvenčno območje". Namen fuzije je uporabiti vsak senzor na območju, kjer je močan, in ga podpreti z drugim na območju, kjer je šibek.

senzor

močna točka

šibkost

žiroskop

Kratkotrajna kotna hitrost, hiter odziv

Odnašanje skozi čas

merilnik pospeška

Dolgoročna referenca naklona (gravitacija)

Vibracije/hrup pri premikanju

kodirnik

Lokacija visoke ločljivosti

Napaka zdrsa/povratnega udarca

GPS

absolutni položaj

Nizka frekvenca, hrup, brez notranjih prostorov

Zanašanje na en sam senzor v sistem vnese šibkost tega senzorja. Fusion na primer združuje hiter, a lebdeč kot žiroskopa s počasnim, a enakomernim referenčnim merilom pospeška, kar daje kot, ki je hiter in brez drsenja.

Komplementarni filter

Najenostavnejša in najpogostejša fuzija je komplementarni filter. Ideja je intuitivna: zaupajte žiroskopu pri visoki frekvenci (hitra sprememba), merilniku pospeška pri nizki frekvenci (počasno, stabilno). Enovrstični povzetek:

# Dopolnilni filter: ocena bolečine (naklon) # alfa ~ 0,98 : več do žiroskopa, manj do merilnika pospeška (stopinje/sekundo) acceleration_ange : kot izračunan iz merilnika pospeška (stopinje) dt : obdobje vzorčenja (sekunde) """ gyro_pac = prejšnji + žiroskopska_hitrost * dt # integriraj vrnitev žiroskopa alfa * gyro_pace + (1 - alpha) * acceleration_angle# Logika preverjanja: čisti giroskop (odnašanja), če je alpha=1, # če je alpha=0 čisti merilnik pospeška (šumno).

Koeficient alfa tukaj določa ravnovesje: če je blizu 1, se zanaša na žiroskop (tveganje zanašanja se poveča), če je blizu 0, se zanaša na merilnik pospeška (šum se poveča). Tipična vrednost je 0,95–0,98. AI lahko predlaga to vrednost, vendar je pravilna alfa odvisna od hitrosti vzorčenja in značaja hrupa vašega sistema; je postavljen eksperimentalno.

Nasvet: Ko tiskate integralni filter v AI, se obvezno vprašajte, kako se meri dt. Večina napak izhaja iz predpostavke, da je dt konstanten, v resnici pa se čas cikla spreminja. Izmeri dt real z millis()/timestamp, ne piši konstant.

Logika Kalmanovega filtra

Komplementarni filter je preprost, vendar ne modelira statistike šuma. Kalmanov filter ustvari optimalno (pod določenimi predpostavkami) oceno z verjetnostnim modeliranjem šuma senzorja in negotovosti procesa. Deluje v dveh korakih:

  1. Predvidi: Predvidi naslednjo situacijo in njeno negotovost s sistemskim modelom.
  2. Posodobitev: novo meritev pretehtajte glede na zanesljivost meritve (Kalmanov dobiček) in popravite oceno.

Kalman gain K na vsakem koraku samodejno odgovori na vprašanje "ali naj bolj zaupam meritvi ali modelu". Če je merilni šum velik, postane K manjši (zaupanje v model), če je procesna negotovost velika, postane K večji (zaupanje v meritev). AI zlahka napiše enodimenzionalni Kalmanov filter; vendar je vaša naloga, da pravilno izberete kovariance hrupa ('Q', 'R'), ki izhajajo iz dejanskega hrupa sistema.

Pozor: vrednosti Q (procesni hrup) in R (merilni hrup), ki jih poda AI, so vzorčne/nadomestne oznake. Če teh ne določite iz dejanskega merilnega hrupa sistema (npr. variance, izmerjene, ko senzor miruje), bo filter prepočasen ali prehrupen. Ne zaupajte kovariancam, ki jih AI poda kot "pravo vrednost".

Podatkovni tok interneta stvari: MQTT in telemetrija

Čisti podatki, ki jih ustvarite s fuzijo, se običajno prenesejo v središče prek omrežja IoT. Najpogostejši protokol v panogi je MQTT: lahek model objave in naročnine, primeren za nizko pasovno širino. AI hitro vzpostavi kodo izdajatelja/naročnika MQTT in telemetrično shemo JSON.

import json, timeimport paho.mqtt.client kot mqttclient = mqtt.Client()client.connect("broker.local", 1883, keepalive=60)def telemetry_broadcast(temperature, temperature, vibration_rms): message = { "ts": time.time(), # timestamp -- pogoj za sinhronizacijo "pain_deg": round(pain, 2), "temperature_c": round(temperature, 1), "vibration_rms": round(temperature_rms, 3), "unit": {"pain": "deg", "temperature": "C", "vibration": "mm/s"} } client.publish("machine/line1/sensor", json.dumps(message), qos=1)# qos=1: dostavljeno vsaj enkrat. Uporaba qos=0 (lahko se izgubi) za kritične podatke.

Tu sta pomembni dve inženirski odločitvi: (1) časovno žigosanje (ts) vsakega sporočila – različni senzorji so vzorčeni ob različnih časih, sinhronizacija je možna samo s časovnim žigom; (2) Raven QoS – kritični podatki uporabljajo vsaj qos=1 (dostavljeno vsaj enkrat), qos=0 dovoljuje izgubo sporočila.

Hrup, kalibracija in sinhronizacija

Ne glede na to, kako dobra je fuzija, tri težave z vnosom popačijo rezultat:

  • Hrup: če gredo neobdelani podatki senzorja v fuzijo, ne da bi bili filtrirani, bo tudi izhod fuzije šumen. Morda bo potrebno predhodno filtriranje (mediana, nizkoprepustnost).
  • Umerjanje: Napake odmika in merila (npr. ničelna točka merilnika pospeška je premaknjena) sistematično zavajajo fuzijo. Senzorje je treba pred uporabo umeriti.
  • Časovna sinhronizacija: za poravnavo senzorjev, vzorčenih z različnimi hitrostmi (npr. 10 Hz GPS z 1 kHz IMU), sta potrebna časovno žigosanje in interpolacija.

Umetna inteligenca lahko doda te korake v kodo, vendar pa je vsak potreben in ali so njegovi parametri specifični za vaš sistem. V izhodu AI "kje je kalibracija?" in "ali sta časovna žiga poravnana?" Bodite prepričani, da postavite vprašanja.

Šibek poziv / močan poziv

WEAK:»Izračunajte kot iz podatkov IMU.«(Kateri filter? Ali se obravnava zanašanje? Kako dt? Nejasno.)MOČNO:»Združite podatke merilnika pospeška in žiroskopa iz MPU6050 z vgrajenim filtrom in ocenite kot nagiba. Izračunajte dt iz realnega časovnega žiga, ne predpostavljajte konstante. Nastavite alfa kot parameter (privzeto 0,98). Izračunajte kot merilnika pospeška z tane2. Filtriraj kot zapis kot razred, ohrani prejšnji kot, dodaj izbirni srednji predfilter za šum."

Mini etui

Inženir robotike Selin želi komplementarni filter iz umetne inteligence za oceno kota na dvokolesnem robotu za uravnoteženje. AI ​​da čisto kodo, vendar se robot počasi nagne na eno stran. Selin preveri dt: koda predvideva, da je dt konstanten 0,01 s, medtem ko se čas cikla spreminja zaradi telemetrije Bluetooth. Ko se dt izračuna iz dejanskega časovnega žiga, se premik zmanjša, vendar ne izgine popolnoma. Nato pogleda kalibracijo merilnika pospeška; Tudi ko senzor miruje, je zamik 2°. Ko odstranim kalibracijski odmik, se robot postavi pokonci. Končno opazi, da uporablja qos=0 pri oddajanju telemetrije prek MQTT in ga poveča na qos=1 za podatke kritičnega kota. AI je v nekaj minutah dostavil fuzijski skelet; vendar je inženirjevo preverjanje zajelo tri težave, specifične za sistem: spremenljivka dt, umeritveni odmik in QoS.

Pogoste napake

  • Ob predpostavki, da je dt konstanten, medtem ko se čas cikla spreminja (fuzijski premiki).
  • Spajanje senzorjev brez njihove kalibracije (sistematični zamik).
  • Poskus poravnave senzorjev različnih hitrosti brez časovnega žiga.
  • Odhod z vzorčno vrednostjo AI ​​brez merjenja Kalmanovih Q/R kovarianc iz dejanskega šuma.
  • Dovolite izgubo sporočil z uporabo qos=0 na kritičnih podatkih IoT.
  • Podajanje neobdelanih hrupnih podatkov v fuzijo brez predhodnega filtriranja.

Če povzamem

  • Fusion uporablja vsak senzor v frekvenčnem območju, kjer je močan, in kompenzira njegovo šibkost.
  • Komplementni filter je preprost; Vzpostavi ravnotežje med žiroskopom in merilnikom pospeška z alfo.
  • Kalmanov filter verjetnostno modelira hrup; Q/R prihaja iz pravega sistema.
  • Pri telemetriji MQTT sta časovni žig in ustrezen QoS kritični inženirski odločitvi.
  • Hrup, kalibracija in časovna sinhronizacija določajo kakovost fuzije.
  • dt se meri v realnem času; kalibracija in QoS se preverita, ne da bi to prepustili AI.

Aplikacijska naloga

Za IMU (resnični ali simulirani podatki žiroskopa + merilnika pospeška) naj AI ustvari integralni filter in zagotovi, da se dt izračuna iz dejanskega časovnega žiga. Nato: (1) preizkusite alfa za 0,90, 0,98 in 1,0 ter opazujte ravnovesje drifta in hrupa, (2) senzorju dodajte namerno fiksni odmik (napaka umerjanja) in si oglejte, kako se izhod fuzije premika, (3) pretvorite podatke v shemo MQTT JSON ter dodajte polja s časovnim žigom in enoto. Upoštevajte, katera vrednost alfa daje najbolj uravnotežen rezultat za vaše podatke in koliko umeritveni odmik popači izhod.