Projecten portfolio

Hieronder staan een aantal projecten waar ik aan gewerkt heb:

Werkman Black

Werkman is een van de grootste producenten van hoefijzers in de wereld. Het is een familiebedrijf dat al langer dan honderd jaar bestaat en 4 generaties beslaat. Met de opkomst van het Internet of Things (IoT) en de steeds beter beschikbare technologieën was het idee geboren om een slimme sensor te maken die de hoefsmid kan ondersteunen bij zijn dagelijkse werk door objectief bewegingen vast te leggen.

In dit project heb ik heb prototyping en ontwikkeling van de benodigde data analyse algoritmes verzorgd, dashboards gemaakt voor continue kwaliteits bewaking en de integratie van de algoritmes bij derde partijen verzorgd.

System on a chip (SoC)

Een klant binnen de wearables markt kwam naar me toe met het verzoek om een algoritme te maken dat verantwoordelijk was voor verschillende wiskundige integratie- en filterbewerkingen die in de overige beschikbare ruimte van een Nordic chip van 512 kB moest passen. Die resterende ruimte werd geschat op ongeveer 128 kB. Met behulp van Matlab Coder toolbox konden we het algoritme verifiëren en valideren met behulp van veel meetdata voordat de definitieve code in de SoC werd geïmplementeerd.

Dit project vereiste out-of-the-box denken omdat best practices zoals vectorisatie en het uitrekenen van voortschrijdende gemiddelden normaliter veel meer dan 128 kB zouden innemen. Door de benodigde algoritmes goed tegen het licht te houden kon het toch gemaakt worden. Het eindresultaat was een goed algoritme dat geweldige resultaten levert, terwijl het binnen geheugenlimieten blijft en slechts weinig batterijvermogen vergt.

C-code from Matlab on a PCBA

Kart training

Waarom niet het aangename met het technische combineren? Met een groep vrienden wilden we ons gezamenlijke kart-talent verhogen op de lokale kartbaan. Om inzicht te krijgen in een rondje karten hebben we onboard gefilmd en een iPhone met sensoren gebruikt. Deze video en data zijn gecombineerd tot dit filmpje.

Met dank aan indoor kartbaan Duiven!

De data in het filmpje is gemeten met een iPhone en bewerkt in Matlab. De iPhone heeft een zogenoemde IMU chip aan boord met 6 (of meer) graden van vrijheid. Een IMU is eigenlijk een acceleratiesensor en draaisnelheidssensor (gyroscope) in een.

De iPhone zit echter niet netjes gemonteerd op de kart, maar ergens los in een jaszak. Daarom is eerst de oriëntatie van de iPhone bepaald ten opzichte van de kart. 

Vervolgens moet het hart van de sensor naar het midden geplaatst worden. Anders geven bochten naar rechts en links niet hetzelfde acceleratieniveau aan omdat de telefoon zich relatief aan de binnenkant of buitenkant van de bocht bevind.

De ruwe data van de sensor kan aliasing bevatten omdat er geen anti-alising filters toegepast zijn. Simplistisch gezegd: aliasing gebeurd als er meer trillingen in het signaal zitten dan dat er samples genomen worden. Om toch een bruikbaar resultaat te hebben is de data op 3 manieren gefilterd. Dit is in het filmpje aangegeven met de 3 bolletjes. Laag frequent ontstaat er een goed beeld van de gemiddelde g-krachten in bochten (grootste bolletje). Hoogfrequenter is duidelijker te zien wat sommige hobbels en bobbels in de rit teweeg kunnen brengen (kleinste bolletje).

In de afbeelding zie je de grip cirkel van de hele rit. Naar links en rechts betekent dat er gestuurd wordt naar links en rechts respectievelijk. Naar boven is gas geven en naar beneden is remmen. Omdat maar 2 wielen geremd zijn en niet 4 zie je dat er veel harder de bocht omgestuurd kan worden dan dat er geremd kan worden.

Grip circle, measured with iPhone on Kartbaan Duiven Netherlands

Psssst!

Ik mag nog niet teveel zeggen, maar voor een andere klant werk ik aan een project waar krachten gemeten worden aan sporters. In dit project zitten krachtsensoren, acceleratiesensoren en gyroscopen.

Krachtsensoren bestaan uit rekstrookjes die fysieke metingen omzetten in elektrische stroompjes. Door deze stroompjes om te zetten in getallen en daar de juiste algoritmes op los te laten kunnen de sporters feedback krijgen over hun training.

Ook in dit project combineer ik Matlab en Matlab C-coder om samen met de subcontractors tot een mooie oplossing te komen. Daarnaast bestaat dit project ook uit verschillende tools om makkelijk data analyse uit te voeren en zelfs om de productieprocessen te automatiseren.

Matlab user interface example for production test appliances
RUM random uncertainty mean

Onzekerheid van gemiddeldes

Sinds 2011 ben ik samen met collega's bij mijn vorige werkgever bezig met een stuk toegepaste wiskunde te ontwikkelen onder de noemer 'onzekerheid van statistische parameters'. Ook nu ik freelance schrijven we nog door aan publicaties over dit onderwerp.

Het gaat om een ingewikkeld stukje wiskunde om een op het oog simpele vraag te beantwoorden: "Als we een meting met veel ruis en onrust in het meetsignaal hebben, hoe willekeurig is dan bijvoorbeeld het gemiddelde?". In de praktijk stel je deze vraag vooral als de betreffende meting erg duur is en je niet zomaar een meting voor de lol 10 keer herhaalt.

Deze wellicht zeer abstracte vraag hebben we goed tegen het licht gehouden en daar zijn veel interessante dingen uit gekomen. Niet alleen is het gelukt om de vraag volledig te beantwoorden met een theoretische afleiding en een praktische uitwerking, maar we kwamen er ook achter dat we een nieuwe en veel scherpere definitie in handen hadden om te bewijzen of een signaal nu nog langzaam verloopt of niet. Dat laatste betekent in de praktijk dat metingen, maar ook dure rekensommen, veel korter en dus goedkoper uitgevoerd konden worden omdat de gewenste maximale variatie aantoonbaar gehaald was.

Wil je meer weten? We hebben een journal paper gepubliceerd over dit onderwerp en op Researchgate vind je een project pagina naar dit onderwerp.

Data to information