8 april 2016

Tafeltje


Dat heeft iedereen weleens, ligt je potlood of notitieboekje net op dat andere tafeltje. Dan sta je, als je al uren zit te lezen een beetje stijf op, kreunt even tegen die ene verkrampte spier, hinkt naar die andere tafel en pakt het gewenste object. Dan zou het fijn zijn om het Jarvis systeem in de lucht te hebben en je aantekening mondeling door te geven. Gekoppeld aan wat deep-learning systemen, interwebs, je eigen e-biebje en de verrijking van de informatie waar je mee bezig bent loopt op volle toeren. Data wand van 3 bij 4 meter vóór je, achterover leunend in je automatisch instelbare stoel. Kortom, mijn natte droom in een notendop zeg maar.
een z.g. Zwerm robot; z,g, bron: robaid.com

Helaas is dat in LMQR nog niet zo ver. Daarom dacht ik aan een tafeltje op wieltjes die als je er naar wijst vanzelf naar je toe komt. Dat zou vet cool zijn. Of als je de tafel aan het dekken bent de caddy automatisch met het serviesgoed achter je aan rijdt. Dat soort dingen zouden het leven een beetje gemakkelijker maken. Het is overigens wel een project dat in de vorm van een "hout-haal-hak-kachel-vul" robotje in mijn gedachten permanent ronddoolt. Ooit begonnen als een gedachten experiment. De idee neemt steeds vastere en ook concretere vormen aan. De eerste kleine experimentjes zijn al begonnen. Mijn ongebreidelde fantasie is echter niet te temmen: zo zou je dat zelfde robotje ook automatisch de tafel kunnen laten dekken, zelfstandig stofzuigen in de kamers, schrobben, het terrein aanvegen... arbeid uit je handen nemen kortom. In geen tijd heb je het dan over verschillende vormen van robotjes cum karretjes aangestuurd door een centraal (bijna) intelligent-slim-achtig iets. Hier komt dan de zelf lerende machine om de hoek kijken; ook goed voor intruder alert.

Kan me dat zo voorstellen: een legertje kleine en grotere robotjes ronddolend op het terrein en in huis die dingen doen. Dat dit voor een pensionado gewoon niet te betalen is ligt voor de hand. Voor een beetje universeel robotje geef je toch al snel een paar honderd euries uit. Een mobiel chassis, camera's, de nodige sensoren, batterijen, oplaadpunten, Raspi-achtig computertje, extra dingetjes... Moet daar ook nog een armpje met de nodige extensies bijkomen zet er dan maar een nul achter. Dat zoiets dergelijks op weliswaar zeer kleine schaal er gaat komen, al was het maar voor (brand)alarm en de schapen in de gaten te houden, staat vast.

Vroegah, zeg maar 10-15 jaar geleden, zou dit allemaal bij een soort van lekkere warme droom gebleven zijn. Enter: de RaspberryPi met diens soortgenoten. Anno nu is bijna alles aan hardware en de tools (basis software) zo van de plank te krijgen. Heb je ook nog een 3D printer dan is er eigenlijk geen barriëre meer. Het nodige gereedschap aan software blijkt vrijwel totaal door opensource gedekt te kunnen worden. Honderden uren programmeer werk later, een paar honder euries armer, en je eerste autonome robotje staat klaar om de schapies in de gaten te houden. Hoe robuust zoiets zal zijn? Heb geen idee. Dat ligt een beetje aan je ontwerp specificaties denk ik: van redelijk kwetsbaar (3D print) voor iets binnenshuis tot iets onverwoestbaars (massief metalen chassis) als je de robot zelfstandig het bos in wil laten gaan om een boom te kappen.

Tijdens het gesprek dat ik onlangs hierover had merkte iemand op: "maar waarom iets centraals? Dat kan toch redelijk riskant zijn." Ja, als de centrale node plat gaat staat bijna alles na verloop van tijd stil, nl. geen opdrachten meer. Zie je wel eens in SF films. Zo dacht ik wel aan iets gedistribueerds: elke machine diens eigen programmatuur. Wel de coördinatie en updates centraal te houden met iets als een backup / no-break systeem. Wellicht als de zelflerende delen compacter gaan worden kun je dat op een nano computertje als een raspi installeren. Tot zolang dus maar centraal.

Idealiter zou de centrale cluster dan op een soort Gödel achtige manier pogingen kunnen doen voortdurend betere en efficiëntere manieren te vinden om de zaak aan te sturen en natuurlijk programmatuur te updaten voor de robot nodes. Een soort van evoltionair systeem dat steeds beter op zijn taken raakt ingericht. Nu ben ik al jaren op dit soort zelflerende dingen aan het studeren, in 1990 las ik mijn eerste boekje over genetische algoritmen, het zal nog wel ff duren voordat dit op een van mijn Raspi's draait. De hamvraag is: zou je een clustertje raspi's überhaupt kunstmatige intelligentie kunnen laten imiteren? Of ga je het dan hebben over distributed intelligence, iets wat in de basis op een mieren kolonie lijkt. Vrij basaal alleen, samen een ogenschijnlijk intelligent organisme. Het grappige is dat je met een programmeertaal als Python behoorlijk ver kunt komen in dit opzicht. Als snelheid niet een optie is tenminste. Anders zit je al snel aan C++ of zelfs machine taal vast. Sinds twee jaar ben ik mezelf een beetje Python aan het leren, terwijl C en C++ op zich prima gaat. Toevallig omdat Python de voorkeur op de Raspi's had ben ik me daar in gaan verdiepen. Hoe meer je daar van leert des te meer begin je deze programmeertaal te waarderen. Voor al met lijsten is de taal goed. Lijsten is ook typisch iets van Lisp, een taal die veel in AI (Artificial Intelligence - kunstmatige intelligentie) wordt gebruikt en begin negentiger jaren mijn intense belangstelling had. De link was daarom redelijk snel gelegd. Het heeft zo zijn voordelen om met pensioen te zijn, als je je dag goed verdeeld tussen huishoudelijke taken en dit soort dingen. Dan heb je veel vrije tijd.

Geen opmerkingen: