Intelligent Robot Rullstol
Intelligent Robot Rullstol
Intelligent Robot Rullstol
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)