Hur många av er har kommit i kontakt med avancerade mätmetoder? Sensorfusion

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
DanielM
Inlägg: 2189
Blev medlem: 5 september 2019, 14:19:58

Re: Hur många av er har kommit i kontakt med avancerade mätmetoder? Sensorfusion

Inlägg av DanielM »

adent skrev: 5 september 2022, 16:21:29 Jag kan inget om kalman-filter, men har kommit i kontakt med det. Jag tycker de verkar magiskt bra. T.ex. för att kombinera en GPS med ett gyro för att få en väldigt exakt position. GPS:ens fel hanteras av gyrot och gyrots drift hanteras av GPS:en m.h.a. kalmanfilter.
Ett kalmanfilter statistiskt beräkna nästa mätvärde. Så kan man säga det.
Du använder ett kalmanfilter när du har en modell som beskriver dynamiken. Då kan du mäta på områden som du ej kommer åt. Sedan så skapar ett kalmanfilter inte någon eftersläpning på signalen.

Jag har själv byggt ett kalman filter av denna matematik, i rent C-kod. Minns en youtube-film som förklarade att UKF-filter är alltid bättre än vanligt kalman-filter och EKF. EKF är det sämsta filtret av alla kalman-filter, på grund utav sin ostabilitet. Det var därför UKF togs fram. EKF togs fram för att ersätta vanligt linjärt kalman-filter från 50-60-talet som användes vid Appolloprogrammet. Sedan dess har vi inte landat på månen. :mrgreen:
https://citeseerx.ist.psu.edu/viewdoc/d ... 1&type=pdf

Jag har inte testat det än. Bara på lite enklare simuleringar på min PC. Det fungerar. Notera att detta är Square Root UKF. Inte vanligt UKF-filter. SR-UKF är något som MATLAB använder sig utav.
https://se.mathworks.com/help/control/u ... ation.html
[1] Simon, Dan. Optimal State Estimation: Kalman, H Infinity, and Nonlinear Approaches. Hoboken, NJ: John Wiley and Sons, 2006.

[2] Van der Merwe, Rudolph, and Eric A. Wan. “The Square-Root Unscented Kalman Filter for State and Parameter-Estimation.” 2001 IEEE International Conference on Acoustics, Speech, and Signal Processing. Proceedings (Cat. No.01CH37221), 6:3461–64. Salt Lake City, UT, USA: IEEE, 2001. https://doi.org/10.1109/ICASSP.2001.940586.
Gimbal
Inlägg: 7919
Blev medlem: 20 april 2005, 15:43:53

Re: Hur många av er har kommit i kontakt med avancerade mätmetoder? Sensorfusion

Inlägg av Gimbal »

ToPNoTCH skrev: 5 september 2022, 17:33:38 Gyro har väl inte så mycket med position att göra ?
Du tänker kanske på accelerometer.

Sensor fusion är väl lite ett "mode ord" nu.

Det handlar väl i sin enklaste form att data från sensor1 ihop med data från sensor2 kan generera en ny attribut som ingen av dessa kan göra ensamma.
Inget nytt med andra ord. Det nya är väl möjligtvis att man har så mycket datakraft och så optimerade algoritmer att man kan göra det "on edge" i dag.
Position är inte bara x,y,z utan man vill även veta orienteringen dvs hur ex. en quadcopter lutar i olika led, och där kommer gyrona in. Ska man sedan ändra position så är det hyffsat viktigt (minst sagt) att ha rätt info om vinklarna i luften.
En grej med kalman är väl idén att blanda input från en verklig sensor med input från en simulerad sensor, eller snarare en simulerad modell av det man försöker beräkna positionen på. Eller så har jag fattat det, vilket kan vara stolligt.
ToPNoTCH
Inlägg: 4882
Blev medlem: 21 december 2009, 17:59:48

Re: Hur många av er har kommit i kontakt med avancerade mätmetoder? Sensorfusion

Inlägg av ToPNoTCH »

Jag håller inte med om att position och orientering (läge/Inertial/AOA/vinkel/vridning) är samma sak.
Det är väl därför det är två olika ord :-)

Jag håller dock med om beskrivningen att det är viktigt att ha den informationen i ditt exempel (ihop med lite andra grejor som magnetometer och kanske barometer).
DanielM
Inlägg: 2189
Blev medlem: 5 september 2019, 14:19:58

Re: Hur många av er har kommit i kontakt med avancerade mätmetoder? Sensorfusion

Inlägg av DanielM »

Är det någon här som kan förklara partikelfilter? Hur mycket data behöver man?
Jag har hört att partikelfilter ska vara enkelt. Men jag har inte riktigt förstått det ändå.
Användarvisningsbild
rvl
Inlägg: 5780
Blev medlem: 5 april 2016, 14:58:53
Ort: Helsingfors

Re: Hur många av er har kommit i kontakt med avancerade mätmetoder? Sensorfusion

Inlägg av rvl »

Ja vet man inte orienteringen så vet inte vad som är "frammåt".
Men med gyro (om den inte är stor och skitdyr gyro) tappar man fort den informationen om man bara integrerar förändringarna, så annan input (t.ex. kompass eller kamera) behövs också.
Användarvisningsbild
rvl
Inlägg: 5780
Blev medlem: 5 april 2016, 14:58:53
Ort: Helsingfors

Re: Hur många av er har kommit i kontakt med avancerade mätmetoder? Sensorfusion

Inlägg av rvl »

DanielM skrev: 5 september 2022, 20:58:40 Är det någon här som kan förklara partikelfilter? Hur mycket data behöver man?
Jag har hört att partikelfilter ska vara enkelt. Men jag har inte riktigt förstått det ändå.
Jag tycker partikelfilter känns lite som en simulering, men vill inte påstå att jag är insatt.
Användarvisningsbild
rvl
Inlägg: 5780
Blev medlem: 5 april 2016, 14:58:53
Ort: Helsingfors

Re: Hur många av er har kommit i kontakt med avancerade mätmetoder? Sensorfusion

Inlägg av rvl »

DanielM skrev: 4 september 2022, 11:53:31 Hur tyckte du din implementering var då?

Men du! Vad fint och pedagogiskt dokument!
Om jag skulle vilja lära mig det där, vart ska jag börja då? Är det basic_of_sensor_fusion_2020.pdf eller några andra filer från https://users.aalto.fi/~ssarkka/pub/?

Jag har tittat i den där Statistical Sensur Fusion booken som är skriven av dom där svenskarna. Nivån på den verkade verkligen hög och teoretisk, men det dokument du länkade var fint skrivet och jag förstod vad som menade. Speciellt dynamiska modeller. Höll på med sådan i fredags.

Edit:
Dokumentet basic_of_sensor_fusion_2020.pdf beskriver dokumentet som att den baseras på böckerna från Gustafsson, Kay, Särkkä och Solin med mera. Men det är förenklade modeller samt dom har lagt en stor vikt på pedagogik för bättre förståelse. Det tycker jag låter fint. Men det enda dokumentet verkar utesluta är just lokalisering med SLAM. Eller har jag fel?
Inget märkvärdigt att göra Python av tillgänglig pseudokod. Var inget realtidssyfte med det hela så pyhon dög bra.

Ja varför inte börja med den pdf:n som en lagom mjuk landning. Har inte sett Gustafssons bok (fanns inte på z-biblioteket...), men har tröskat litet i Estimation with applications to tracking navigation av Bar-Shalom & Li, men den var inte alltför lätt att hänga med i.
DanielM
Inlägg: 2189
Blev medlem: 5 september 2019, 14:19:58

Re: Hur många av er har kommit i kontakt med avancerade mätmetoder? Sensorfusion

Inlägg av DanielM »

rvl skrev: 5 september 2022, 21:43:59 Inget märkvärdigt att göra Python av tillgänglig pseudokod. Var inget realtidssyfte med det hela så pyhon dög bra.

Ja varför inte börja med den pdf:n som en lagom mjuk landning. Har inte sett Gustafssons bok (fanns inte på z-biblioteket...), men har tröskat litet i Estimation with applications to tracking navigation av Bar-Shalom & Li, men den var inte alltför lätt att hänga med i.
Jag ska slutera denna pdf. Mycket bra att du visade den. Den var bra skrivet. Jag är ofta lite halvrädd för överdrivna kurslitteraturer så som Hållfasthetslära med Hans Lundh eller System Identification Theory for the user....hemska saker.....man kan lösa samma problem med gymnasiematematik.
rvl skrev: 5 september 2022, 21:08:43 Jag tycker partikelfilter känns lite som en simulering, men vill inte påstå att jag är insatt.
Men du har en viss kännedom utav det? Då har jag några frågor.
Jag vet om att ett partikelfilter handlar om att estimera ett tillstånd.
  • Hur mycket data behöver jag för att estimera? Är det mycket data, eller bara 1 data sampel typ som ett kalmanfilter kräver?
  • Kan Kernel Density Estimation betraktas som ett partikelfilter?
guckrum
Inlägg: 1686
Blev medlem: 19 juni 2012, 09:04:27
Ort: Lund

Re: Hur många av er har kommit i kontakt med avancerade mätmetoder? Sensorfusion

Inlägg av guckrum »

KDE är ett sätt att estimera en sannolikhetsfördelning med hjälp av sampel. Den kan man använda i många applikationer.
Gimbal
Inlägg: 7919
Blev medlem: 20 april 2005, 15:43:53

Re: Hur många av er har kommit i kontakt med avancerade mätmetoder? Sensorfusion

Inlägg av Gimbal »

Partikelfilter har de på biltema, 129 spänn.

Jag ska vara tyst nu.
DanielM
Inlägg: 2189
Blev medlem: 5 september 2019, 14:19:58

Re: Hur många av er har kommit i kontakt med avancerade mätmetoder? Sensorfusion

Inlägg av DanielM »

guckrum skrev: 7 september 2022, 08:02:37 KDE är ett sätt att estimera en sannolikhetsfördelning med hjälp av sampel. Den kan man använda i många applikationer.
So. Jag uppfattar det så är det så ett partikelfilter fungerar. Ett partikelfilter kräver x antal mätvärden, till skillnad från ett Kalmanfilter som kräver bara ett mätvärde.
rohol
Inlägg: 6
Blev medlem: 8 januari 2012, 08:50:55

Re: Hur många av er har kommit i kontakt med avancerade mätmetoder? Sensorfusion

Inlägg av rohol »

Nu är det ett tag sedan jag läste om detta under mina universitetsstudier men här kommer min tolkning och varsågoda att rätta mig om jag har fel :)

Generellt gällande Kalman filter så skulle jag vilja påstå att det INTE är prediktionen man är ute efter, för tittar man i tidsuppdateringssteget för ett Kalman filter så ser man:
x[k+1|k] = f(x[k|k], u[k|k])

Så länge man har x[k|k] och u[k|k] dvs nuvarande tillstånd resp. styrsignal så använder filtret bara den tillståndsmodellen man angett för att prediktera nästa tidssteg. Det hade man kunnat göra enkelt utan ett Kalman filter.
Magin i Kalman filtret sker ju i mätuppdateringen där man bestämmer vad just x[k|k] är utifrån att man har en prediktion från föregående tidssteg kombinerat med en mätning från nuvarande tidssteg k.
Sen följer det med en kovariansmatris i Kalman filtret som talar om hur osäker estimeringen är.

Begränsningen av Kalman filter är ju att den endast hanterar gaussiskt brus, men ifall bruset är gaussiskt så är det det optimala filtret.

Vidare till partikelfilter då, styrkan i denna är att det är anpassat för olinjära system och alla typer av fördelningar för bruset, typexempel här är väl en multimodalfördelning av bruset. T ex, y=4 av y = x^2, dvs samma sannolikhet att x = -2 som att x=2.
Idén med partikelfiltret är väl att man då genererar massa partiklar utifrån någon uppskattad fördelning, låter dessa partiklar följa systemets dynamik och vid mätuppdateringar kollar man i princip hur stor sannolikhet det är att en viss partikel genererat ett visst mätvärde. Med tiden kommer partiklar att dö ut då de blir mer och mer osannolika och då tillämpar man väl tekniker för att generera nya partiklar utifrån den skattade fördelningen.
DanielM skrev: 7 september 2022, 09:54:38
guckrum skrev: 7 september 2022, 08:02:37 KDE är ett sätt att estimera en sannolikhetsfördelning med hjälp av sampel. Den kan man använda i många applikationer.
So. Jag uppfattar det så är det så ett partikelfilter fungerar. Ett partikelfilter kräver x antal mätvärden, till skillnad från ett Kalmanfilter som kräver bara ett mätvärde.
Skulle inte beskriva det så, man måste initialisera ett Kalman filter, dvs ge en första gissning av tillstånden till första mätningen (prediktionen x[0|-1]) samt osäkerheten i denna gissning via kovariansmatrisen P[0|-1]. Många gånger sätter man bara x[0|-1] till att vara första mätvärdet för att kicka igång det och P brukar man väl bara ange till någon diagonalmatris. Ska man vara petig så behövs inget första mätvärde för att initialisera filtret, är det däremot en dålig gissning så tar insvängningen längre tid.

Partikelfiltret behöver väl initialiseras på ett sånt sätt att man kan generera ett visst antal partiklar och dess vikter. Så något godtyckligt initial tillstånd och en sannolikhetsfördelning av bruset borde räcka för att kunna generera partiklarna och kunna kicka igång filtret? Är det en dålig initialgissning så lär många partiklar dö ut snabbt och man lär behöva generera nya partiklar ganska snabbt så även här blir insvängningen längre/svårare.


Anser inte att det varit onödigt att läsa om detta, partikelfiltret har jag inte använt efter studierna så skulle jag få för mig att implementera det någon gång så skulle jag behöva sätta mig ner och se över de olika stegen mer i detalj. Däremot har jag viss insikt i vad algoritmen bygger på som givetvis är till hjälp om man ska ta tag i det senare. Stöter jag på något problem där man grämer sig över att bruset är multimodalt eller att det är för olinjärt för ett EKF då kommer ändå partikelfilter tanken att tändas lite inne i hjärnkontoret.
Kalman filter eller snarare EKF har jag använt efter mina studier.

Men med detta sagt, man ska inte göra det mer komplicerat än vad det behöver vara. Att ta fram en tillståndsbeskrivning av ett system är ju ett problem i sig bara det.
Duger det att lågpassfiltrera sina sensorvärden för ens applikation så väljer man ju helt klart det alternativet :)
DanielM
Inlägg: 2189
Blev medlem: 5 september 2019, 14:19:58

Re: Hur många av er har kommit i kontakt med avancerade mätmetoder? Sensorfusion

Inlägg av DanielM »

Med andra ord så bygger ett partikelfilter att man måste ha en hög med data först för att kunna estimera?
rohol
Inlägg: 6
Blev medlem: 8 januari 2012, 08:50:55

Re: Hur många av er har kommit i kontakt med avancerade mätmetoder? Sensorfusion

Inlägg av rohol »

Nej.

Om jag tolkar dig rätt. Det vill säga att du undrar hur mycket data du behöver för att kunna initialisera filtret?

Du behöver en initialgissning av dina tillstånd och en modell för tillstånden, vilket även innefattar PDF:en (Probability density function / Täthetsfunktion) för processbruset.
Du drar partiklar från PDF:en som tillsammans med initialgissningen av tillstånden och modellen genererar den första prediktionen.

Tittar man på Kalmanfiltret så behöver du också en initialgissning av tillstånden och en modell för tillstånden. Vad gäller processbruset så antas det vara normalfördelat med medelvärde 0, däremot måste du ge kovariansen, benämns ofta med Q.

DanielM, du skrev tidigare "[...] Kalmanfilter som kräver bara ett mätvärde.", om jag förstår vad du syftar på här så skulle jag hävda att du tänker fel här.
Man måste ha en initialgissning av tillstånden och tillståndsskattningens kovarians, benämns ofta med P.
Ett vanligt förfarande är väl att man tar första mätdatan och sätter dessa som initialtillstånden, men inget man måste göra.
Är inget krav att man mäter alla tillstånden och det är ju också väldigt vanligt att man just inte gör det. Hur hade du kickat igång Kalmanfiltret ifall du inte mäter alla tillstånden?
DanielM
Inlägg: 2189
Blev medlem: 5 september 2019, 14:19:58

Re: Hur många av er har kommit i kontakt med avancerade mätmetoder? Sensorfusion

Inlägg av DanielM »

Jag förstår inte riktigt hur du menar.

Om jag får förklara på mitt sätt hur ett KL fungerar, så får du förklara med samma analogi hur ett PF fungerar.

1. Först så tar man ett mätvärde med en givare. Mätvärdet kan var t.ex. en vektor av mätvärden också. Vi kallar mätvärdet för X1.
2. Sedan räknar man ut med en modell vad mätvärdet skulle vara. Vi kallar det för X2.
3. Man stoppar in X1 och X2 i ett kalman filter, som ger tillbaka mätvärdet X3. X3 är alltså det estimerade mätvärdet
4. Man uppdaterar modellens mätvärde X2.

För ett PF så tolkar jag att man samlar på sig t.ex. 100 mätvärden och sedan gör man en PDF - Propability Density Function av dessa 100 mätvärden. Sedan plockar man ut det mätvärde som har högst sannolikhet. Jag kan inte tolka PF på något annat sätt. Ett PF kräver ALLTID mer mätdata än ett KF.

Sedan undrar jag hur man skapa denna PDF. Jag har sett att vissa använder viktvärden för att estimera PDF:en. Men är inte det rätt värdelöst? Är det inte bättre att man använder Kernel Density Estimation metoden med variansen 1 och medelvärde 0? Då slipper man sätta vikter på ett filter.

Du får gärna förklara. Jag håller med att det skulle vara rätt tokigt att samla in 1000 mätvärden, från 10 givare för att estimera ett tillstånd. Det blir mycket data. Men så tolkar jag PF.
Skriv svar