En robot är utrustad med en laseravståndsmätare, som kan
mäta avståndet till olika föremål i omgivningen. Den har
också en vinkelgivare, som mäter laserstrålens riktning
relativt roboten. På så sätt kan den skapa en uppsättning
data för laserträffar. Men dess girvinkel, Ψ
och position, pos är inte kända.
Det totala relationsnätverksfiltret för det här problemet är
relativt stort, eftersom det också realiserar en simulering
av lasersensorn och svarar för beräkningen av den figur, som
visas. Men följande figur visar den del av nätet, som löser
själva navigeringsuppgiften.
Hela mönstret med Laserträffar (som är givna i ett fast
robotfast koordinatsystem) vrids med en hypotetisk girvinkel,
Ψ
hos roboten. Därmed befinner sig träffmönstret i ett
inertiellt koordinatsystem. Observera att laserträffarna
bara är ändarna på laserstrålarna. Detta mönster skall nu
kunna translateras till en hypotetisk position hos roboten, och
då skall laserträffarna stämma med kartan Karta. Kartan
beskriver läget hos ytan hos väggarna plus en viss osäkerhet,
men inte tjockleken hos väggarna. I noden pos får man då
mängden av translationer, så att lasermätningarna och kartan stämmer
överens. Om fel hypotetisk girvinkel har antagits, så blir
blir denna mängd tom. Nu konstruerar man grafen för relationen
mellan Ψ och pos. Genom projektion till
noderna kan man få ut både robotens position estpos
och girvinkel estΨ.
Den första bilden visar roboten med laserträffmönster ritad
för sig, och kartan med ett hörn mellan två väggar ritad för
sig i ett oberoende koordinatsystem. I nästa bild är navigeringen
klar, och en robot med rätt girvinkel och kurs visas. I en
tredje bild visas ett banplaneringsuppdrag. Roboten skall
åka till en punkt strax "norr om" väggen. Resultatet är en
polygon i grönt. (En del inre linjer i polygonen är också
utritade) För att komma till punkten skall man följa polygonens
ytterkontur. Det finns två möjligheter, och det är klart att
det är vägen till vänster om hindret, som ger den kortaste
resan.
Kör programmet här. Stega
fram programmet med returnknappen. Återvänd till huvudsidan
genom att klicka på "tillbaka".