Världens första pre-screening-robot
Föreställ dig en robot som skulle kunna hjälpa till att upptäcka riskfaktorer för diabetes, hypotyreos och alkoholism på förbipasserande personer. Föreställ dig sen hur i hela friden du skulle gå till väga för att bygga den. Detta är precis vad vi gjorde tillsammans med Merck & Furhat Robotics och lyckades på samma gång ta fram en helt ny diagnosteknik för sjukvården.
Furhat Robotics 2nd Generation Robot & SDK• Kotlin• React• Amazon Polly Text-to-speech• Google Speech Recognition
I början av 2018 lånade Pontus Österberg från oss en tidig prototyp av ett futuristiskt ansikte från startupen Furhat Robotics. Prototypen togs med till ett av våra bootcamps där vi började testa och experimentera med den. I slutet av samma vecka hade vi tagit fram ett kortspel som gick att spela med roboten där du behövde lista ut robotens beteendemönster för att vinna.
Teamet på Furhat älskade kreativiteten bakom vår tekniska lösning och bjöd med oss till ett av sina “hackathons”. Det blev början på en lång och fin relation med Furhat Robotics och deras robotar.
Spola fram tiden ett par veckor och vi träffar Merck som hade den ambitiösa visionen att kunna använda Furhat-roboten som en diagnossköterska. Förutom att kunna ställa diagnos på tre olika sjukdomar (diabetes, hypotyreos och alkoholism) ville de att sköterskan också skulle ha en god social förmåga för att på ett naturligt sätt kunna interagera med patienter. Och som om det inte var nog behövde roboten också vara redo för en utställning om tre månader.
Då vi redan hade byggt ihop två funktioner till roboten var vi också redan några av de mest erfarna utvecklare som använde sig av Furhats plattform. Vi trodde att vi hade full koll på vad vi gav oss in på, men oj så fel vi hade
"Vi var övertygade om att Furhat & Prototyp, trots all osäkerhet, skulle kunna hjälpa oss att hitta en lösning för att öka kännedom kring, och lättare diagnostisera dessa sjukdomar." - Petra Sandholm, Merck
Petra Sandholm
Merck
Gustav Aspengren
Merck
Björn Helgeson
Tech Lead, Prototyp
Yoav Luft
Developer, Prototyp
Joe Mendelson
Project Coordinator, Furhat Robotics
Gabriel Skantze
Dialog System Advisor, Furhat Robotics
Det finns ingen given metod för hur man bäst bygger en röstkontrollerad robot och även efter febrilt sökande på nätet så hittade vi i princip inga bra riktlinjer för det. Vi fick börja från ett blankt papper och det blev vår största utmaning.
Vi hade däremot en idé om hur vi skulle genomföra projektet. Planera flödet för de diagnostiska frågorna först och därefter koda dem – då borde det fungera rent tekniskt. Men huruvida det skulle fungera i praktiken, ja, det var en annan femma.
"Det går inte att googla fram hur man bäst bygger en röststyrd robot." - Björn Helgeson, Tech Lead
Vi behövde implementera erkända tekniker för att kunna ställa de diagnoser som behövdes men dessa behövde översättas från detaljerade frågeenkäter till mer vardagliga konversationer. Det senare var ju en viktig hörnsten i den förmodade tjänsten i slutändan och därför var viktigt för oss att, på något sätt, koda roboten så att den inte bara förstod en mängd olika svar på frågorna, utan att den också hade ett mänskligt förhållningssätt till hur den interagerade med patienterna.
Vi valde att byggde allt i Kotlin, en version av Java som används av Furhat Robotics SDK.
Den första prototypen vi visade för Furhats team hade ett integrerat flöde för att ställa diagnoser med hjälp utav talsynteser och röstigenkänning. Roboten var uppställd i ett testrum och där fick vårt team en möjlighet att ge roboten en första och ordentlig genomkörning innan Merck skulle testa. Trots ett tufft och genomgripande testningsförfarande kunde roboten alla gånger prata sig fram till en diabetesdiagnos och vänligt rekommendera ett nästa steg. Succé, tänkte vi.
Tyvärr gick det inte lika bra när Mercks team gick in och gjorde samma test då vi inte hade räknat med att deras charmiga “svengelska” uttal skulle förvirra roboten. Testet misslyckades och vi insåg att det fanns fler dimensioner att ta i beaktning för att lyckas göra en robot mänsklig.
En aning modfällda men desto mer beslutsamma jobbade vi vidare. Det misslyckade testet belyste den svåraste delen av projektet – att göra robotens samtalsfärdigheter tillräckligt smarta för att kunna interagera naturligt med människor.
"Det var fantastiskt att se roboten sitta där och prata med en patient. Allt gick inte enligt plan, men vi kunde se hur visionen höll på att komma till liv." - Petra Sandholm, Merck
Vi fick tänka om kring ganska mycket under projektets tre månader. Vårt arbetssätt förändrades helt och hållet. Från att först designa interaktioner och sedan bygga dem, till en mer intensiv, iterativ process där vi designade och utvecklade samtidigt.
Har du någonsin funderat över alla de där små, omedvetna sakerna vi gör när vi pratar med varandra? Med småsaker menar vi t.ex. att hålla ögonkontakt och vända bort blicken, att säga “ummm…” och “eeeh…” och att ta små pauser. Det var ett visst uppvaknande för alla i vårt team.
Det är dessa små, men ack så viktiga, detaljer som gör att en konversation flyter på naturligt och uppfattas som positiv och hjälpsam. Helt plötsligt befann vi oss i en situation där vi behövde koda psykologi- och beteendemönster, något vi inte klarat av utan experthjälp från KTH-professorn Gabriel Skantze.
"Till slut kombinerade vi så pass många olika discipliner att vi inte längre byggde mjukvara – vi hackade mänskligt beteende." - Yoav Luft, Developer
Vi märkte att välbeprövade metoder för användartester av visuella gränssnitt inte fungerade för vår prototyp. Varje gång vi iterativt tog fram lösningar baserade på tidigare misslyckade användartester skapade vi problem för nästa testperson. Vi satt fast i en ond cirkel av feedback och det krävdes mycket vilja av oss för att vi skulle kunna bryta oss loss.
Furhats plattform befann sig fortfarande i ett väldigt tidigt stadie och var fortsatt under utveckling när vårt projekt startade. Vi upptäckte att plattformen behövde breddas och förbättras för att kunna få “mänskliga” features, såsom att t.ex. kunna titta i sidled, att fungera. Därför fick vi jobba nära Furhats team för att överhuvudtaget göra arbetet möjligt. Samtidigt tog vi även fram stöd för att kunna logga och aggregera data, för att sedan kunna rapportera tillbaka hur många patienter som rekommenderades för vidare kontroller.
Merck ville vara först med att kombinera AI, robotar och läkemedel och just så blev det. Tisdagen den 27 november 2018 välkomnade vi roboten PETRA till världen. Med sin förmåga att hälsa på och samtala med förbipasserande personer, kunde hon försiktigt diagnostisera dem utifrån tre olika medicinska tillstånd samt hänvisa dem vidare till passande hjälp om det ansågs behövas.
PETRA är byggd som en fristående applikation och kan hantera multipla användare, ansiktsuttryck och ögonrörelser. Vi byggde också ett grafiskt användargränssnitt (i React) för att stötta de som inte är helt bekväma med att interagera med en robot.
PETRA gjorde sitt första framträdande på tech-hubben Epicenter i Stockholm. Under de två veckor som hon fanns på plats diagnostiserade hon många personer som aldrig ens haft en tanke på att ha ett liknande samtal med sin doktor, och då inte minst med en robot. Idag reser PETRA runt i Europa för att inspirera branschen till att använda sig av ny teknik för att hitta innovativa lösningar till de hälsoproblem som finns.
På hur många sätt kan man svara “ja” på en fråga? Ja, jo, yes, absolut, definitivt, japp, jajamän... ja, dessa är bara några exempel. PETRA kan förstå nästintill en oändlig mängd möjliga svar, vilket sammanfattar komplexiteten i projektet. Lösningen satt minst sagt i detaljerna.
"Det här projektet var förmodligen bland det svåraste jag någonsin jobbat med, just för att det var så multidisciplinärt." - Björn Helgeson, Tech Lead
PETRA var ett otroligt givande projekt. Med sin grund i våra Prototyp-bootcamps och en problemställning som utmanade hela vårt kompetensspektra tvingade PETRA oss verkligen att bryta ny mark.
Rädda maten-startupen Matsmart behövde stärka upp sin ehandelssida och brottades med svåra tekniska val. Känns det bekant?
Vi använder kakor (cookies) för att ge dig en bättre upplevelse av vår webbplats. Du väljer själv om du godkänner kakor. Läs mer om hur vi hanterar kakor