PEER-REVIEW COMAKERSHIP SMART WORLD ALGEMEEN Naam: Ingmar Koningen, Paul Koot, Jelmer Stavenga en Tom Visser Titel comakership: Cloud Robotics Organisatie: Lectoraat Robotica STATUS Bijgevoegde tekst is 80% gereed 1
1. INTRODUCTIE In dit comakership richten we ons op het bouwen van een robot die sensor data naar de cloud kan sturen en ophalen. Deze data moet verwerkt en gevisualiseerd kunnen worden in de vorm van een dashboard. Daarnaast word er ook onderzoek gedaan naar de verschillende mogelijkheden om dit doel te bereiken. De ingediende tekst gaat over de onderzoeksresultaten die we hebben bevonden, ons concept van de robot en de verschillende Arduino experimenten die we hebben uitgevoerd. ACHTERGROND De opdrachtgever van dit project is dr. Marcel Heerink, associate lector bij het lectoraat robotica. Het lectoraat robotica is een onderzoeksinstituut binnen Windesheim Flevoland die onderzoek doet naar robots in zorg en educatie. Peter van der Post is de bedrijfsbegeleider binnen het project. Peter zal de benodigde technische informatie verschaffen en zal beslissingen in overleg met dr. Marcel Heerink nemen op dit gebied. AANLEIDING Er is vanuit Windesheim Flevoland opdracht gegeven aan de derdejaars studenten, die samen de minor Smart World doen, om samen met een bedrijf een opdracht aan te gaan. Dit is een opdracht die met een studententeam wordt uitgevoerd van begin tot eind, met daarbij eigen verantwoordelijkheid en samenwerking met de opdrachtgever. Het lectoraat robotica besteedt onderzoek uit aan dit team, waarin het team moet gaan onderzoeken en testen wat de mogelijkheden zijn met het ophalen en opslaan van sensordata. Met de uitkomsten van het onderzoek, en uiteindelijke prototype, hoopt het lectoraat dat uit deze sensordata nuttige informatie kan worden gehaald en dat dit een stap in de goede richting is om uiteindelijk robots met elkaar te kunnen laten communiceren. DOELSTELLING De doelstelling van het project is om het lectoraat robotica inzicht te geven in hoe de sensordata opgehaald, opgeslagen en verwerkt kan worden in combinatie met een clouddienst. Om dit te bewerkstelligen dienen een prototype en basis-infrastructuur ontworpen en geproduceerd te worden. Bij het ontwerp dient rekening gehouden te worden met de toepasbaarheid binnen de domeinen zorg (therapie) en educatie. 2
2. VOORONDERZOEK Voordat een project van start kan gaan is het noodzakelijk de benodigde kennis van het vakgebied te vergaren, voor zoverre deze niet aanwezig is. Omdat het gebruik van sensoren, programmeren van micro-controllers en beheren en implementeren van cloud-oplossingen voor ons onbekend terrein zijn, hebben we onze kennis bijgeschaafd. Dit aan de hand van onderzoeksvragen. ONDERZOEKSVRAGEN De doelstelling was (min of meer) duidelijk bij aanvang van het project. Hierdoor was een ontwerpende onderzoeksvraag eenvoudig geformuleerd; Hoe kunnen we ervoor zorgen dat Arduino aangestuurde robots data via de cloud kunnen uitwisselen? Het lectoraat het aangegeven dat zij graag gebruik maken van de Arduino als medium om robots aan te sturen. Vanwege deze wens is de Arduino specifiek genoemd als medium en is er geen verder onderzoek gedaan naar alternatieve micro-controllers. Na formulering van de onderzoeksvraag zijn we gekomen tot de volgende deelvragen; 1. Welke cloud-platformen zijn er beschikbaar? 2. Welke IoT-platformen zijn er beschikbaar? 3. Van welke van de beschikbare platformen kunnen we het beste gebruik maken? 4. Hoe kunnen we een Arduino aangestuurde robot in verbinding stellen met het internet? 5. Welke programmeertalen zijn te gebruiken voor de verschillende IoT-platformen? 6. Welke programmeertaal is het meest geschikt om voor dit project te gebruiken? UITKOMSTEN ONDERZOEK Er zijn verschillende cloud-platformen beschikbaar die ingezet kunnen worden voor datgene wat het lectoraat wenst. Tijdens vervolgonderzoek, en afhankelijk van het uiteindelijke prototype, zal duidelijk worden welke het meest geschikt is voor het ontwerp. Indien de keuze wordt gemaakt voor een custom cloud-oplossing dienen de volgende opties zich aan; Google Cloud, Microsoft Azure, AWS Cloud (Amazon), IBM Cloud, Oracle, Docker, Rackspace. Waar de hoeveelheid cloud-platformen al relatief veel onderzoek vraagt (aangezien het meest aantrekkelijke systeem gekozen dient te worden), is de keuze nog groter bij de verschillende IoT-platformen. Wanneer er wordt gekozen voor een kant-en-klaar IoT-systeem zijn de keuzes; Amazon web services (AWS), Microsoft Azure IOT suite, Thingworx IOT platform, IBM Watson, Cisco IOT cloud connect, Salesforce IOT cloud, Carriots, Oracle integrated cloud, General electric s predix, Kaa (middleware), Adafruit. Vooralsnog is er nog geen (definitieve) keuze gevallen op een platform. Afhankelijk van de hoeveelheid tijd die nog beschikbaar is en de hoeveelheid werk die zit in het ontwerpen van een eigen systeem en het gemak die bestaande systemen kunnen bieden en de wensen vanuit het lectoraat, wordt een knoop doorgehakt tijdens een van de volgende iteraties. Om de Arduino in verbinding te stellen met het internet zijn er verschillende mogelijkheden, namelijk; het gebruik van een WiFi-Shield of Ethernet-Shield, RF-modules, een Bluetooth verbinding via een laptop of smartphone, het gebruik van een Arduino met on-board WiFi of het gebruik van een ESP8266 of NL6621. Op dit moment is er nog geen definitieve keuze gemaakt. Voornamelijk omdat het vooralsnog onduidelijk is hoe complex het prototype wordt. 3
Omdat de voorkeur vooralsnog uitgaat naar een robot die draadloos kan communiceren, wordt momenteel de focus gelegd op de verschillende Arduino oplossingen. Het is goed mogelijk dat hier een Raspberry Pi aan toe wordt gevoegd, op het moment dat een micro-controller onvoldoende rekencapaciteit blijkt te hebben. De keuze voor een programmeertaal is hier dan ook sterk van afhankelijk. Wanneer de robot bedraad aangestuurd wordt (of in combinatie met een Raspberry Pi ), ligt Java (via Processing) voor de hand. Wanneer er volledig draadloos (met alleen een Arduino ) wordt gewerkt, zullen we kiezen voor de standaard IDE. PAPER Om deel te mogen nemen aan een conferentie over cloud-robotica is een paper (abstract) geschreven. De inhoud van dit paper is meegenomen in het onderzoek als aanvullende informatie. Een samenvatting van de paper is te vinden in onderstaande infographic. De gehele paper staat in de bijlage en is te vinden op de blog. 4
3. CONCEPTEN Om tot een ontwerp te komen dat aansluit bij de doelstelling (een robot die ingezet kan worden binnen de domeinen zorg en educatie) is besloten een robot te baseren op bekende en vriendelijke vormen. Als inspiratie zijn hiervoor onder andere de robots BB-8 (Star Wars) en Bay max (Big Hero 6) genomen. Omdat het tijdsbestek te kort is om hier replica s (of afgeleiden) van te bouwen met dergelijke functionaliteiten, zullen de functies beperkter zijn. Omdat ook bij het ontwerpen rekening is gehouden met het feit dat dit slechts prototypen zijn, is ervoor gezorgd dat er voldoende ruimte is om de boards te plaatsen. Hieronder volgt een impressie van datgene wat wij verwachten op te leveren. stabilisatie) en motoren voor aandrijving. Bij de eerste schets (rechtsonder) is rekening gehouden met de vriendelijke vormen. Door deze rond en log te maken, is gepoogd enige associatie met agressie (door bijvoorbeeld Terminator of irobot) weg te nemen. Door de holle ruimte in de body is voldoende ruimte voor een gyroscoop (voor Een vervolg op de eerste schetsen is de eerste render (linksboven). Deze is gemaakt met Inventor. Door ontwerpen eerst in 3D te maken is het mogelijk om te kijken tegen welke problemen mogelijk aangelopen gaat worden. Denk hierbij aan onderdelen die elkaar in de weg zitten of een ontwerp dat topzwaar is. Naast het uitwerken van concepten is wat geëxperimenteerd met de overdracht/ communicatie van de Arduino naar een webpagina. Momenteel gebeurt dit nog niet draadloos. We hopen een zelfde techniek toe te kunnen passen bij draadloze communicatie, maar de kans bestaat dat hier een andere techniek voor gebruikt dient te worden. Het eerste experiment bestond uit de Arduino aansturen vanuit een webpage, op deze manier konden we via een simpele manier de kleur van een RGB-LED veranderen. Er waren slechts vier opties; rood, groen, blauw of uit. In het tweede Experiment hebben we dit concept uitgebreid, waarna de brightness van de led kon worden aangepast en de values konden worden weergegeven op een webpagina. Oftewel, we kunnen nu naar de Arduino communiceren vanaf een webpagina en ook vanaf de webpagina met de Arduino communiceren. 5