29.08.2013 Views

Intelligent Robot Rullstol

Intelligent Robot Rullstol

Intelligent Robot Rullstol

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Artificiell Intelligens HKGBB0<br />

Kognitionsvetenskapliga programmet, HT 2001<br />

Institution för Datavetenskap, Linköpings Universitet<br />

<strong>Intelligent</strong>a <strong>Robot</strong><br />

<strong>Rullstol</strong>ar<br />

Karin Andersson<br />

730215<br />

Fack 3<br />

karan039@student.liu.se


~ <strong>Intelligent</strong>a <strong>Robot</strong> <strong>Rullstol</strong>ar ~<br />

Abstract<br />

För många människor är det en självklarhet att kunna ta sig till olika platser utan att behöva<br />

assistans. När man går i en korridor tänker man vanligtvis inte på alla små finjusteringar och<br />

undanmanövrar man gör för att undvika att krocka med föremål eller människor. För personer<br />

med grava rörelsehinder kan det sistnämnda vara en mycket krävande och stressande uppgift<br />

(Yanco, H., 1998).<br />

För att underlätta för dessa personer har man på flera håll utvecklat så kallade <strong>Intelligent</strong>a<br />

<strong>Robot</strong> <strong>Rullstol</strong>ar.<br />

I denna rapport kommer jag att ta upp och beskriva hur några generella handlingar (low-level)<br />

utförs genom att framförallt beskriva Wheelesley (Yanco, H., 1995, 1998) samt utifrån systemet<br />

MAid beskriva hur handlingar i en mer krävande omgivning kan utformas/genomföras<br />

(Prassler, Scholz & Strobel, 1998. Prassler, Scholz & Fiorini, 1999). Motsatsen till "lowlevel"<br />

är den så kallade "high-level", vilket syftar på användarens planering av vart han/hon<br />

vill ta sig samt själva kommandogivningen till rullstolen.<br />

Rapporten syftar på att ge en liten inblick i hur utvecklingen av intelligenta robot rullstolar<br />

fortskrider.<br />

1(12)


Innehållsförteckning:<br />

~ <strong>Intelligent</strong>a <strong>Robot</strong> <strong>Rullstol</strong>ar ~<br />

<strong>Intelligent</strong>a <strong>Robot</strong> <strong>Rullstol</strong>ar<br />

1. Inledning<br />

2. Grundläggande funktioner<br />

2.1 Wheelesley: Inomhusnavigering och Användargränssnitt<br />

2.1.1 Inomhusnavigering<br />

2.1.2 Användargränssnitt<br />

3. MAid - Mobility Aid for Eldery and Disabled People<br />

3.1 Hårdvara<br />

3.2 Systemarkitektur<br />

3.3 NAN - narrow area navigation<br />

3.4 WAN - wide area navigation<br />

3.4.1 Upptäcka och följa rörelser<br />

3.4.2 Beräkna undvikande kurs<br />

3.5 Testkörningar<br />

4. Diskussion<br />

Referenser<br />

2(12)


~ <strong>Intelligent</strong>a <strong>Robot</strong> <strong>Rullstol</strong>ar ~<br />

1. Inledning<br />

Att alltid kunna ta sig till olika platser utan att behöva ha med sig någon som hjälper en, är för<br />

många människor en självklarhet. För personer med grava rörelsehinder är detta kanske inte<br />

så självklart. Inte bara på grund av otillgängligheten utifrån nivån, eller kanske snarare saknaden,<br />

av handikappanpassning (trappor utan ramp, höga trottoarkanter, etc.), utan mer på grund<br />

av att de har svårt att själva hantera sin rullstol med tanke på deras funktionsnedsättningar.<br />

Elektriska rullstolar har funnits länge och med dessa kan många som inte klarar av en manuell<br />

rullstol få större rörelsefrihet. För de personer med till exempel ofrivilliga rörelser (såsom<br />

spastiska), problem med finmotorik, koordinationssvårigheter, och/eller koncentrationssvårigheter<br />

kan navigering, med en vanlig elektrisk rullstol, på exempelvis en större plats med<br />

många människor och föremål vara en uppgift som blir allt för svår och ansträngande. För att<br />

underlätta för dessa har man på flera håll utvecklat <strong>Intelligent</strong>a <strong>Robot</strong> <strong>Rullstol</strong>ar. Det bör påpekas<br />

att personen som ska använda sig av rullstolen måste nå upp till en viss kognitiv<br />

förmåga, man måste ha förståelse för hur de olika funktionerna ska användas, för att kunna<br />

lära sig hantera systemet och rullstolen (Yanco, H., 1998).<br />

Tillvägagångssätten för att lösa de hinder en användare av rullstolen kan stöta på har lösts på<br />

olika sätt utifrån de mål man satt för själva systemet (Gomi & Griffith, 1998, Yanco, 1998).<br />

Omgivningen som rullstolen är tänkt att användas i spelar stor roll. Är roboten tänkt att endast<br />

kunna fungera i en känd miljö eller ska den fungera även på helt nya platser? Ska den klara<br />

navigering såväl utomhus som inomhus? Även den elektriska rullstolens grundutformning<br />

spelar in då man ska utföra olika handlingar. Drivhjulens placering är en aspekt att ta hänsyn<br />

till då exempelvis "sväng-handlingen" ska programmeras (Yanco, H., 1998).<br />

En annan sak är att rullstolen fortfarande ska kunna manövreras av användaren själv. Det är<br />

alltså viktigt att systemet smidigt kan växla mellan helt autonomt till användarkontrollerat<br />

(semi-autonomt) (Gribble et al., 1998).<br />

Man måste även ta hänsyn till den specifike användarens behov och begränsning. De vanliga<br />

elektriska rullstolarna styrs oftast med hjälp av en joystick men flera användare har så begränsad<br />

finmotorik att en annan lösning måste hittas. Man har bland annat prövat med röststyrning<br />

och "synstyrning" (EagleEyes) (Yanco, H. & Gips, J., 1997).<br />

Slutligen får man inte glömma själva utformningen på rullstolen inkluderat all extrautrustning.<br />

I största möjligaste mån bör extrautrustningen placeras så att den inte bli skrymmande<br />

eller drar "onödig" uppmärksamhet till sig (Prassler, E., Scholz, J. & Fiorini, P., 1999).<br />

2. Grundläggande funktioner<br />

Förutom Stopp, Framåt, Bakåt, Höger- respektive Vänstersväng, räknas följande handlingar<br />

som grundläggande funktioner (Prassler, E., Scholz, J. & Fiorini, P., 1999):<br />

• Navigering i korridor genom att följa väggen/arna.<br />

• Undvika att krocka med objekt.<br />

• Navigering genom trånga passager.<br />

Dessa funktioner benämns ofta som låg-nivå kommandon (low-level). Motsatsen high-level,<br />

syftar på användarens planering av vart han/hon vill ta sig samt själva kommandogivningen<br />

till rullstolen.<br />

För att roboten ska kunna klara dessa handlingar krävs att den har olika typer av sensorer som<br />

gör att den kan navigera säkert. Det förekommer olika varianter av navigering- och sensorutrustning.<br />

En del använder sig av så kallade Sonar sensorer (SOund Navigation and Ranging)<br />

3(12)


~ <strong>Intelligent</strong>a <strong>Robot</strong> <strong>Rullstol</strong>ar ~<br />

kombinerat med kartbaserad navigering. Andra utnyttjar flera olika typer av sensorer, exempelvis<br />

SUNX (infraröd), Sonar samt "shaft encoders" (Yanco, H., 1998).<br />

Några kombinerar "bump-" samt infraröda sensorer med kameror (Chrisman & Cleary, 1998).<br />

Det är även viktigt att interaktionen mellan användaren och roboten sker så smidigt som möjligt.<br />

<strong>Robot</strong>en ska lätt kunna ta över från användaren men samtidigt avbryta sin handling så<br />

fort användare vill ta över.<br />

2.1 Wheelesley: Inomhusnavigering och Användargränssnitt<br />

H. Yanco är en av de som varit med och utvecklat Wheelesley på MIT Artificial Intelligence<br />

Laboratory. Målet med projektet var att utveckla ett system som kunde gå in och assistera och<br />

ta över navigeringen, speciellt vid svåra moment, för att på så sätt underlätta för användaren.<br />

Meningen är att systemet ska klara både inomhus och utomhus navigering och automatiskt<br />

skifta mellan de bägge lägena. Utformandet av användargränssnittet och möjligheten att anpassa<br />

detta utefter användarens specifika behov betonas även. I sin rapport (Yanco, H., 1998)<br />

tar Yanco inte upp utomhus navigering, då det fortfarande var under utveckling, varför det<br />

heller inte kommer att tas upp i den här rapporten.<br />

2.1.1 Inomhusnavigering<br />

Wheelesley systemet kan ta över den så kallade låg-nivå navigeringen (low-level) genom att<br />

användaren ger den ett kommando (high-level). Till exempel kan användaren ge kommandot<br />

"framåt" och rullstolen kör framåt i exempelvis en korridor samtidigt som den undviker att<br />

krocka med föremål och människor. Den håller sig i mitten av korridoren för att underlätta för<br />

eventuella undanmanövrar. Den forstätter framåt tills det att den får in ett nytt kommando,<br />

dock stannar den innan den till exempel kör in i väggen. Systemet använder sig inte av någon<br />

karta över lokalen utan navigerar med hjälp av sensorer och utifrån de möjliga handlingarna<br />

som finns lagrade i mjukvaran. Då den inte använder sig av kartor kan den fungera i tidigare<br />

obesökta lokaler. Det gör även att den inte planerar hur den ska ta sig från plats a till b. Denna<br />

planering får användaren själv stå för, vilket gör att roboten inte behöver planera om, i fall<br />

användaren ändrar sig angående målet. Om det är önskvärt, kan dock kartor över de mest besökta<br />

lokalerna (hemmet, arbetet) läggas in för att på så sätt öka automatiseringen.<br />

De sensorer som systemet använder sig av är SUNX (infraröd), Sonar, "shaft encoders" (vid<br />

hjulen) samt att "stötdämparen" längst fram är försedd med sensorer. Systemet är reaktiv styrt,<br />

användaren ger kommandot och roboten ser till att handlingen utförs säkert.<br />

De infraröda sensorerna läser av omgivningen och indikerar, genom binär indata, om något<br />

befinner sig inom ca 30 cm avstånd. Så fort som någon infraröd sensor upptäcker ett föremål<br />

korrigeras rullstolens rörelse så att den inte kör på föremålet. Sonar sensorerna returnerar avstånden<br />

till olika objekt för att systemet på så sätt ska kunna avgöra om objektet är för nära<br />

rullstolen eller inte. Om både de infraröda och Sonar sensorerna skulle missa ett föremål under<br />

framåtkörning så kommer "stötdämparen" att köra på föremålet. Eftersom den är försedd<br />

med sensorer stannar emellertid rullstolen direkt. Dock inträffar det inte så ofta att rullstolen<br />

kör på föremål. Under ungefär 10 timmars testkörning hände detta endast en gång.<br />

2.1.2 Användargränssnitt<br />

För att så många som möjligt ska kunna använda sig av Wheelesley har man försökt hitta ett<br />

gränssnitt som är lätt att anpassa. Man har skapat ett grafiskt användargränssnitt som körs på<br />

en Mac Intosh Powerbook. Systemet har bland annat anpassats för "synstyrning" (EagleEyes)<br />

(Yanco, H. & Gips, J., 1997. Yanco, H., 1998). EagleEyes använder sig av en teknik där fem<br />

elektroder placeras på användaren. Två elektroder placeras över respektive under ett öga, två<br />

4(12)


~ <strong>Intelligent</strong>a <strong>Robot</strong> <strong>Rullstol</strong>ar ~<br />

placeras till vänster respektive höger om ögonen och en elektrod i pannan. Elektroderna mäter<br />

EOG:n (electro-oculographic potential) utifrån ögonens vinkel och sänder sedan värdena till<br />

datorn som bearbetar dessa så att användaren kan styra pilen på skärmen (i stället för den vanliga<br />

musen). Om man exempelvis tittar åt höger så rör sig pilen åt höger. För att bekräfta<br />

(klicka) räcker det att man håller pilen stilla en kort stund. Nedan (figur 1) ses Wheelesley's<br />

grafiska gränssnitt i originalutförande. Då EagleEyes används anpassas skärmen genom att<br />

man endast visar de fyra pilarna samt att stopptecknen utökas till fyra och placeras i vardera<br />

hörn. Detta för att minska pilförflyttningen vid ett stoppkommando.<br />

Figur 1. Wheelesley's grafiska gränssnitt i originalutförande<br />

Då användaren kan hantera rullstolen med joystick visas skärmbilden som den ovan (figur 1).<br />

Användaren kan bland annat, genom att klicka på + respektive - tecknet, reglera hastigheten.<br />

Om systemet är inställt på semi-autonomt, till exempel vid undvikning av objekt, kan systemet<br />

själv gå in och sänka hastigheten, om så behövs, för att genomföra handlingen på ett<br />

säkert sätt.<br />

"Sensor Map:en" talar om för användaren vart sensorerna sitter på rullstolen samt deras aktiveringsnivå.<br />

Vissa användare kan ha svårt att röra tillräckligt på huvudet för att kunna se sig<br />

om. De kan då istället titta på "kartan" och på så sätt veta vad rullstolen kan komma att behöva<br />

göra. Rektanglarna representerar Sonar sensorerna som mäter avståndet till objekten. En<br />

helt vit rektangel visar att det inte finns något föremål inom mätbart avstånd. Ju svartare rektangeln<br />

är desto närmare befinner sig rullstolen föremålet. De små cirklarna med ett litet<br />

streck på representerar de olika infraröda sensorerna, strecket visar vilken riktning sensorn<br />

har. Då dessa är binära representerar en tom cirkel att sensorn inte upptäckt något objekt och<br />

en fylld cirkel att sensorn upptäckt ett objekt.<br />

3. MAid - Mobility Aid for Eldery and Disabled People<br />

Grunden är en vanlig elektrisk rullstol som man utrustat med ett intelligent navigeringssystem.<br />

Systemet är liksom Wheelesley semi-autonomt och fullt autonomt.<br />

Vid diskussioner med äldre, rörelsehindrade samt läkare framkom det att det inte alltid är de<br />

generella handlingarna som är svåra att utföra. Det svåra är att navigera i en miljö med mycket<br />

människor i rörelse, där det hela tiden krävs stor koncentration och uppmärksamhet för att<br />

inte krocka med någon. MAid-systemet delades upp i två typer av navigering, NAN (narrow<br />

5(12)


~ <strong>Intelligent</strong>a <strong>Robot</strong> <strong>Rullstol</strong>ar ~<br />

area navigation) för navigering i kända miljöer och WAN (wide area navigation) för okända<br />

miljöer. Se vidare i avsnitt 3.3 och 3.4.<br />

3.1 Hårdvara<br />

Basen är en vanlig elektrisk rullstol med två drivhjul centralt placerade samt två "passiva"<br />

hjul längst fram för att stabilisera rullstolen. <strong>Rullstol</strong>en kan styras manuellt med hjälp av en<br />

joystick. Själva systemet körs på en PC (Pentium 166MHz) och man har installerat ett "realtime"<br />

system (QNX) på den.<br />

För att kunna avläsa omgivningen använder man sig av följande sensorer (se figur 2):<br />

• Ett död-räkning system (dead-reckoning system) som består av ett antal avläsare på<br />

hjulen (wheel encoders) samt ett fiber optiskt gyroskop.<br />

• En modul med Sonar system som omfattar tre delar där varje del består av 8 ultraljuds<br />

transformerare och en mikrokontroll. Dessa är monterade på en aluminiumram runt<br />

rullstolen och den kan fällas undan när användaren ska ta sig i och ur rullstolen.<br />

• Två infraröda scannrar (Sharp GP2D02) som mäter kortare avstånd.<br />

• En SICK 2D avståndsmätande laser (PLS 200) som är fäst på en avtagbar ställning.<br />

Figur 2. MAid - Hårdvara<br />

Död-räkning systemet beräknar rullstolens avverkade distans samt dess riktningsförändringar.<br />

Beräkningssystemet tillhandahåller således grundläggande information om rullstolens position<br />

och riktning. Det är inte helt optimalt men ändå acceptabelt. Sonar systemet och SICK<br />

lasern har till uppgift att avläsa omgivningen för att upptäcka och undvika föremål, samt bestämma<br />

vilka av föremålen som är rörliga och vilka som är stationära. Lasern ger en god<br />

tvådimensionell bild av omgivningen, men en stor nackdel med lasern är dock att den endast<br />

ger ut en tvådimensionell bild, vilket ju världen inte är. På grund av detta används datan från<br />

lasern främst till att upptäcka rörliga objekt. En annan nackdel är laserns kostnad (US$4000,<br />

1999) men för att kunna upptäcka och undvika flera rörliga objekt i "real-time" anser Prassler,<br />

E., Scholz, J. och Fiorini, P. (1999) att den är nödvändig. Sonarsystemet kompletterar lasern<br />

genom att det kan upptäcka objekt som är utom räckhåll för lasern, antingen för att objektet är<br />

för långt ner och därför hamnar utanför laserns konformade räckvidd, till exempel väskor på<br />

golvet, eller för att objektet inte returnerar tillräckligt starka signaler till lasern, exempelvis<br />

glasdörrar. Var för sig har både lasern och Sonarsystemet brister men tillsammans komplette-<br />

6(12)


~ <strong>Intelligent</strong>a <strong>Robot</strong> <strong>Rullstol</strong>ar ~<br />

rar de varandra bra för att kunna upptäcka och undvika rörliga föremål i en tredimensionell<br />

värld. Deras data används även för att uppskatta MAid's position i omgivningen genom att<br />

datan beräknas i ett utvidgat Kalman filter. För att beräkningar ska kunna ske behöver filtret<br />

ha förkunskap om omgivningen. Dessa kunskaper jämförs sedan med de värden filtret får in,<br />

för att på så sätt kunna göra en bedömning av vart rullstolen befinner sig. I en tidigare obesökt<br />

omgivning kan man inte använda sig av detta filter då förkunskap om omgivningen saknas,<br />

man får istället förlita sig på de beräkningar som död-räkning systemet gör.<br />

Ovannämnda sensorer, förutom lasern, samt rörelsekommandona till rörelsekontrollen är tillsammans<br />

länkade till och från PC:n via en "field bus". Då lasern ger ut så mycket data är den<br />

kopplad direkt till PC:n via en seriell port. Både rullstolen och navigeringsprogrammet (PC:n)<br />

styrs med hjälp av joysticken. Via navigeringsprogrammet kan användaren välja vilket läge<br />

systemet ska arbeta i, ge kommandon samt målposition.<br />

Då systemet ska kunna användas av olika personer med varierande funktionsnedsättningar<br />

krävs det att det är flexibelt, så att det kan anpassas efter användarens behov. Bland annat<br />

kommer försök med talstyrning att göras.<br />

3.2 Systemarkitektur<br />

Systemet är hierarkiskt uppbyggt med tre nivåer, baskontroll nivå, taktisk nivå samt strategisk<br />

nivå. Baskontroll nivån är den nivå i systemet som används på samma sätt av de högre nivåernas<br />

komponenter. Den taktiska nivån skiljer sig beroende på om NAN eller WAN är<br />

aktiverat, likadant är det med den strategiska nivån. Skillnaden ligger i att de två typerna av<br />

navigering använder sig av olika algoritmer. I figur 3 ser man de tre olika nivåerna, man har<br />

representerat skillnaderna i den taktiska och strategiska nivån genom att beskriva WAN, som<br />

den ljusare grå delen, och NAN, som den mörkare. Längst ner finns den gemensamma baskontroll<br />

nivån.<br />

Figur 3. MAid - Systemarkitektur<br />

På baskontroll nivån beräknas värdena av kontrollvariablerna som slutligen får rullstolen i<br />

rörelse. Den här nivån består i sin tur av två moduler, dels den som ansvarar för grundläggande<br />

kollisions undvikning samt att verkställa lokala nödsituationsmanövrar, dels den modul<br />

7(12)<br />

range data<br />

range data<br />

(Vodo, ωodo)


~ <strong>Intelligent</strong>a <strong>Robot</strong> <strong>Rullstol</strong>ar ~<br />

som kontrollerar rörelsen. Rörelsemodulen får in rörelsevektor som beskriver målets värden<br />

för förflyttning och riktning, samt aktuella värden för förflyttning (translational) och vridning<br />

(rotational) (v,ω) för rullstolen. Rörelsevektorn konverteras till målvärden och från dessa<br />

värden samt de aktuella värdena från död-räkning systemet beräknas nya värden som sedan<br />

matas ut till motor/rörelse kontrollen.<br />

Modulen för att undvika kollison får in samma värden bortsett de från död-räkning systemet,<br />

istället får den in information från positions uppskattnings modulen. Modulen för att undvika<br />

kollision måste utifrån de värden den får in garantera att rullstolen inte krockar med något<br />

objekt. För att kunna göra det beräknar modulen tiden som återstår innan rullstolen krockar<br />

med objektet för alla objekt i omgivningen. Translational och rotational rörelserna är begränsade<br />

så att rullstolen kommer att stanna i tid. Modulen talar endast om huruvida rullstolen är<br />

på kollisionskurs eller inte. Vad som bör göras för att undvika kollison och hur, lämnas till de<br />

högre nivåerna. Som säkerhet har man dock lagt in nödsituations manöver, denna gör att rullstolen<br />

backar tillbaka en bit samma väg som den kommit, för att på så sätt ge tid till de högre<br />

nivåerna att lösa situationen. Anledningen till att man gjort denna säkerhetsåtgärd är att de<br />

beräkningar som sker på de högre nivåerna kan ta för lång tid att utföra innan det är för sent.<br />

En annan anledning är att det kan förekomma fel i de olika uppskattningarna som systemet<br />

gör angående exempelvis position, sådana feluppskattningar kan lätt leda till kollison. Rörelsemodulen<br />

och modulen för att undvika kollison kallas tillsammans för piloten och den får<br />

sina kommandon antingen från WAN eller NAN, som båda består av submoduler från de högre<br />

nivåerna.<br />

3.3 NAN - narrow area navigation<br />

För att planera och genomföra en manöver i en liten, rörig omgivning använder sig MAid av<br />

konfigurationsrymds baserad planerare, rörelseplaneraren på strategiska nivån. Planeraren<br />

kräver start och mål konfiguration som består av position (x, y) och riktning θ. Startläget kan<br />

fås utifrån positions uppskattnings modulen men målet måste specificeras av användaren. I<br />

NAN modulen kan MAid använda sig av en karta över lokalen för att utifrån den kunna navigera.<br />

Baserat på MAid's kunskap om dess omgivning vid den tidpunkten då uppgiften<br />

specificeras, skapas en konfigurationsrymd som innehåller alla möjliga konfigurationer som<br />

MAid kan nå utan att kollidera. MAid söker sedan i denna rymd efter den optimala sekvensen<br />

som tar rullstolen från startpunkten till målet. Ett kriterium för att sekvensen ska vara optimal<br />

kan innebära att den ska vara den kortaste. Alltså söker planeringsalgoritmen efter den kortaste<br />

sekvensen. Den förs sedan vidare till planexekverings och positionskontrolls modulen. Där<br />

gås den igenom steg för steg och varje konfiguration konverteras till målvärden (v', ω') för<br />

förflyttning (oftast framåt) och sväng rörelserna. De förändringar som sker i omgivningen tas<br />

inte med i beräkningarna i konfigurationsrymden utan tas omhand av den underliggande modulen<br />

för att undvika kollison. Om en förändring har skett informerar den senare modulen<br />

rörelseplaneraren som uppdaterar sin kunskap och gör en omplanering utifrån de nya förhållandena.<br />

Det är viktigt att påpeka att NAN modulen inte klarar av att navigera i en snabbt<br />

föränderlig omgivning. För att klara detta använder sig MAid av WAN modulen.<br />

3.4 WAN - wide area navigation<br />

WAN ansvarar för säker navigering i en miljö med mycket folk och snabba förändringar, där<br />

huvuduppgiften är att nå målet som användaren specificerat. WAN använder sig inte av någon<br />

karta varför den även fungerar i ett tidigare obesökt område. För att klara detta består MAid's<br />

kontrollsystem av tre komponenter, en algoritm för att upptäcka rörelser, en algoritm för att<br />

följa rörelser samt en algoritm för att beräkna undvikande kurs. Dessa tre algoritmer tar cirka<br />

8(12)


~ <strong>Intelligent</strong>a <strong>Robot</strong> <strong>Rullstol</strong>ar ~<br />

70 ms att beräkna. Om man dessutom lägger till tiden för observationerna från sensorerna,<br />

ökar tiden till ca 0,3 s. MAid är alltså kapabel att beräkna en ny manöver var 0,3:e sekund.<br />

3.4.1 Upptäcka och följa rörelser<br />

Då eventuella förändringar i omgivningen ska upptäckas jämförs sekvenser av indata från<br />

samma område med varandra, för att se om det finns någon skillnad. Om det visar sig att en<br />

skillnad finnas ger det en stark indikation på att det skett en förändring, antingen genom att<br />

rullstolen själv har förflyttat sig eller att ett objekt flyttat sig. Den avståndsmätande lasern<br />

används för att upptäcka och följa rörelser. Den har en räckvidd på max d = 50 meter, med en<br />

noggrannhet på σd ≈ 50 mm och ett gradomfång på ± 90° med en upplösning på 0,5°. Den<br />

arbetar med en frekvens på 3 Hz och ger tre "omfångsbilder" per sekund. Avståndsinformationen<br />

som lasern ger är relaterad utifrån den lokala referensramen.<br />

Då man ska jämföra två lokala omfångsbilder är det nödvändigt att veta exakt vilken rörelse<br />

lasern (rullstolen) har gjort mellan de två observationerna, det vill säga hur långt den har rört<br />

sig från den ena bilden till den andra och hur mycket den har vridit sig. Denna information<br />

tillhandahålls av död-räkning systemet, vilket möjliggör för rullstolen att hålla ordning på sin<br />

position och riktning, över en viss begränsad förflyttning, med relativt hög noggrannhet. Med<br />

hjälp av den gällande positionen och riktningen beräknas och skickas värdena av de lokala<br />

omfångsbilderna till den aktuella referensramen.<br />

För att representera variationer i omgivningen över tid används en så kallad "time stamp map"<br />

(T S M). "Tidkartan" är ett tvådimensionellt rutsystem som endast innehåller de områden som<br />

är ockuperade vid en viss tidpunkt, t, den omfattar således inte någon information om de områden<br />

som inte är ockuperade vid samma tidpunkt. Anledningen till att man valt att göra på<br />

det här sättet var att man vid försök upptäckte att den mesta tiden gick åt till att kartlägga de<br />

områden som inte var upptagna.<br />

Variationen över tid beräknas utifrån sekvensen T S Mt, T S Mt-1,.....T S Mt-n.<br />

9(12)<br />

Figur 4. Exempel på "time stamp map"<br />

Bilderna a-c, figur 4, till vänster visar hur tidkartor<br />

kan se ut. De visar ett rörligt objekt och ett stationärt.<br />

I ruta d är de tre kartorna sammanslagna.<br />

Tiden för observationen representeras av färgen, ju<br />

mer nyligen observation skedde desto mörkare nyans.<br />

Tiden det tar att uppta och omvandla omfångsbilden<br />

till en 200 × 200 celler stor tidkarta är ungefär 1,5 ms<br />

på en Pentium 166 MHz.<br />

Genom att använda en enkel heuristik kan man upptäcka en rörelse i en tidsfrekvens. De celler<br />

i T S Mt som är markerade som upptagna, jämförs med motsvarande celler i T S Mt-1, om<br />

samma celler är upptagna vid båda tillfällena indikerar det på att det är ett stationärt föremål.<br />

Om det skulle finnas en skillnad i jämförelsen mellan de olika tidkartorna kan man dra den


~ <strong>Intelligent</strong>a <strong>Robot</strong> <strong>Rullstol</strong>ar ~<br />

slutsatsen att det handlar om ett rörligt objekt. Inaktuell tiddata behöver inte tas bort utan<br />

kommer att skrivas över av ny information.<br />

För att kunna följa en rörelse och uppskatta objektets rörelsebana krävs att man utifrån de<br />

tidigare nämnda tidskartorna fångar de senaste sekvenserna av objektets rörelseriktning och<br />

hastighet eller acceleration. Trots att det skulle vara tillräckligt att endast jämföra två tidkartor<br />

är det bra att utvidga denna jämförelse till flera, för att på så sätt kunna göra en säkrare beräkning<br />

av objektets föregående rörelsebana. Utifrån denna jämförelse görs en uppskattning av<br />

hur objektets fortsatta rörelsebana kommer att se ut. Huruvida objektet är rörligt eller stationärt<br />

beräknas av den tidigare beskrivna algoritmen.<br />

Det första steget i att fastställa objektets föregående rörelsebana är att identifiera objektet i en<br />

sekvens av tidkartor. När man väl identifierat objektet beräknas dess riktning och hastighet.<br />

Kriteriet för att identifiera objektet är principen "närmast granne". Om avståndet är inom en<br />

viss längd kan man avgöra om det handlar om samma objekt. För stationära objekt får avståndet<br />

vara upp till 30 cm och för rörliga objekt upp till 1 m, vilket är ungefär hur långt en person<br />

går i rask takt under den tid det tar för att få in och jämföra nästa tidkarta. Beräkningen grundar<br />

sig på att sträckan som objektet rör sig ökar linjärt mellan tidsintervallen t - 1 till t. Det<br />

kan verka vara en grov uppskattning av den egentliga rörelsen, den har dock visat sig fungera<br />

bra vid en cykeltid på mindre än 100 ms. En komplett cykel beträffande beräkningarna för att<br />

upptäcka och följa ett rörligt objekt tar ungefär 6 ms för MAid-systemet.<br />

3.4.2 Beräkna undvikande kurs<br />

Vid beräkningen för hur en undvikande kurs ser ut, använder sig MAid av "rörelse hinder"<br />

(velocity obstacles), en metod som utvecklats för att kunna undvika krockar i en omgivning<br />

med flera rörliga objekt (Fiorini, P. & Shiller, S., 1993).<br />

<strong>Rullstol</strong>ens konfigurationsrymd, som representeras som olika vektorer, beräknas på rullstolens<br />

position, hastighet och riktning. Objektets position, hastighet samt riktning jämförs sedan<br />

med konfigurationsrymden, de vektorer som sammanfaller med varandra, det vill säga de kollisionsrelaterade<br />

rörelserna, kallas för "kollisons kon". Kollisions konen är specificerad<br />

utifrån rullstolen och ett objekt, det vill säga parvis. Att välja en rörelsebana utanför "konen"<br />

gör att en kollision undviks, detta förutsatt att objektet fortsätter i samma riktning och hastighet.<br />

För att kunna undvika flera objekt måste liknande specificeringar göras för alla möjliga<br />

rörelsevektorer i konfigurationsrymden. Detta görs genom att ta unionen av alla rörelse hindren<br />

och jämföra denna med konfigurationsrymden, på så sätt får man fram en kollisons kon<br />

för alla objekt och rullstolen. Följaktligen väljs en rörelsevektor som ligger utanför denna kon<br />

och en kollison undviks därför. Om rullstolen är på kollisionskurs med många objekt, prioriteras<br />

de med minst tid kvar till själva krocken.<br />

En undanmanöver består av en förändring i rörelsen för att på så sätt undvika kollision inom<br />

en given tidsram. Utifrån tidigare beräkningar kan rullstolen väja för olika objekt på olika sätt,<br />

beroende på objektets tidigare rörelsemönster.<br />

En komplett bana för rullstolen består av en sekvens av undanmanövrar som undviker stationära<br />

och rörliga objekt och förflyttning mot målet på ett säkert sätt. En global sökning har<br />

föreslagits till "off-line" applikationerna och en heuristisk sökning är mest lämpad för "online"<br />

navigeringen. Banan genereras successivt genom att välja en av alla möjliga undanmanöver<br />

i taget, vid varje åtskilt tidsintervall, med hjälp av en specifik heuristik. Heuristiken kan<br />

specificeras för att tillfredsställa olika mål, såsom robotens överlevnad som första mål och att<br />

nå den önskade slutpositionen, minimera vissa utföranden och/ eller välja en önskad banstruktur<br />

som sekundära mål. Genom att hela tiden välja rörelser utanför kollisions konen (om den<br />

finns) säkrar roboten automatiskt sin överlevnad, vidare kan valet av den bästa, möjliga rörelsevektorn<br />

i riktning mot slutpositionen reducera tiden för utförandet. Det är dock viktigt att<br />

10(12)


~ <strong>Intelligent</strong>a <strong>Robot</strong> <strong>Rullstol</strong>ar ~<br />

påpeka att alla objekt inte alltid är tillgängliga vid alla tidpunkter. Syftet med den heuristiska<br />

sökningen är att hitta den bästa lösningen såvida det finns en.<br />

3.5 Testkörningar<br />

Flera testkörningar har gjorts, både i tillrättalagda och i verkliga miljöer, till exempel vänthallen<br />

på centralstationen i Ulm. På det stora hela har körningarna gått bra. MAid navigerar<br />

säkert och lyckas undvika att krocka med de flesta objekten. De föremål som orsakat kollisioner<br />

var till exempel väskor som låg på golvet, utanför laserns räckvidd. För att komma till<br />

rätta med detta satte man dit två extra sensorer på rullstolens fotstöd.<br />

MAid justerar hela tiden riktning, rörelse och hastighet utifrån förändringarna i omgivningen.<br />

Om en person närmar sig i rask takt börjar MAid sin undanmanöver tidigare än om en person<br />

närmar sig saktare. Om rullstolen inte hittar någon säker väg stannar den till och väntar tills<br />

vägen är fri, den fortsätter då automatiskt sin väg mot slutmålet.<br />

4. Diskussion<br />

Den här rapporten har gett en kort sammanfattning av framför allt två olika system - Wheelesley<br />

och MAid. Systemen som beskrivits utgår båda från vanliga elektriska rullstolar och man<br />

förbereder systemets användargränssnitt så att det lätt kan anpassas efter användarens specifika<br />

behov. Utveckling, testning och förfining av systemen sker kontinuerligt. Än så länge<br />

verkar det dock inte finns någon intelligent robot rullstol ute på marknaden. När det kan bli<br />

aktuellt är svårt att säga.<br />

Huruvida miljö som robot rullstolen ska fungera i är känd eller inte, spelar in då man ska bestämma<br />

hur systemet ska arbeta. Om man beslutar sig för att använda kartor över lokalerna<br />

begränsar man systemet till de lokalerna, samtidigt kan man med hjälp av kartor göra systemet<br />

mer autonomt. I MAid löste man detta genom att dela upp navigeringen i två<br />

huvudmoduler - NAN och WAN. Vilket jag tycker var en bra lösning. I Wheelesley använde<br />

man sig inte av kartor men var beredda på att utvidga systemet med det, om så önskades. Då<br />

utvecklingen av de allra flesta systemen har som mål att öka individens rörelsefrihet, verkar<br />

det konstigt om man begränsar systemen till att endast fungera i kända miljöer. Det enda jag<br />

kan se som kan verka emot till exempel MAid's WAN modul, är att den kräver en 2D laser<br />

som är dyr att införskaffa. För övrigt nämns det inte så mycket om kostnaden för en sådan här<br />

rullstol, men vad jag har förstått utifrån de rapporter jag läst så är den ändå överkomlig. Vissa<br />

menar att även en assistent kostar och om en person skulle klara sig utan assisten så sparas<br />

pengar på så sätt.<br />

Att det satsas på utveckling av olika hjälpmedel tycker jag personligen är bra, då den tilltänkta<br />

målgruppen lätt kan glömmas bort. Bortsett från den rent ekonomiska aspekten måste jag säga<br />

att om och när en robot rullstol finns tillgänglig på marknaden, kommer i alla fall vinsten för<br />

de personer som kan använda den bli stor.<br />

11(12)


Referenser<br />

~ <strong>Intelligent</strong>a <strong>Robot</strong> <strong>Rullstol</strong>ar ~<br />

Chrisman & Cleary, (1998). A Deictically Controlled Wheelchair. Mittal, V.O. et al. (Eds)<br />

Assistive Technology and AI, LNAI 1458, 1998, pp.137-149. Springer-Verlag Berlin Heidelberg<br />

1998.<br />

Fiorini, P. & Shiller, S., (1993). Motion Planning in Dynamic Enviorments Using the Relative<br />

Velocity Pardigm. Proceedings of 1993 IEEE International Conference on <strong>Robot</strong>ics and<br />

Automation, pp. 560-565, Atalanta 1993.<br />

Gomi, t. & Griffith, A., (1998). Developing <strong>Intelligent</strong> Wheelchairs for the Handicapped.<br />

Mittal, V.O. et al. (Eds) Assistive Technology and AI, LNAI 1458, 1998, pp.150-178.<br />

Springer-Verlag Berlin Heidelberg 1998.<br />

Gribble et al., (1998). Integrating Vision and Spatial Reasoning for Assistive Navigation.<br />

Mittal, V.O. et al. (Eds) Assistive Technology and AI, LNAI 1458, 1998, pp.179-193.<br />

Springer-Verlag Berlin Heidelberg 1998.<br />

Prassler, E., Scholz, J. & Strobel, M. (1998). MAid: Mobility Assistance for Eldery and Disabled<br />

People. Proceedings of 24 th International Conference of the IEEE Industrial<br />

Electronics Society IECON'98, pp. 2493-2498. Aachen, Germany 1998.<br />

Prassler, E., Scholz, J. & Fiorini, P. (1999). Navigating a <strong>Robot</strong>ic Wheelchair in a Railway<br />

Station during Rush Hour. The International Journal of <strong>Robot</strong>ics Research, Vol.18, No. 7,<br />

July 1999, pp. 711-727.<br />

Yanco, H. (1998). Integrating <strong>Robot</strong>ic Research: A survey of <strong>Robot</strong>ic Wheelchair Development.<br />

AAAI Spring Symposium on Integrating <strong>Robot</strong>ic Research. Stanford University,<br />

California.<br />

Yanco, H. (1998). Wheelesly: A <strong>Robot</strong>ic Wheelchair System: Indoor Navigation and User<br />

Interface. Mittal, V.O. et al. (Eds) Assistive Technology and AI, LNAI 1458, 1998, pp. 256-<br />

268. Springer-Verlag Berlin Heidelberg 1998.<br />

Yanco, H. & Gips, J. (1997). Premilinary Investigation of a Semi-Autonomous <strong>Robot</strong>ic Wheelchair<br />

Directed Trough Electrodes. Proceedings of the Rehabilitation Engineering and<br />

Assistive Technology Society of North America Annual Conference, RESNA Press, 1997,<br />

pp. 414-416.<br />

12(12)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!