Projecten
De voorbije dertig jaar heb ik zoveel projecten gedaan dat het niet haalbaar is om die hier allemaal te beschrijven. Hieronder staan enkele interessante voorbeelden.
- Draadloze gebruikersinterface voor industriëel meetapparaat
- Webapplicatie voor data mining
- Software-integratie voor een badmintonrobot
- Datastructuur voor hardware-synthesetools
Draadloze gebruikersinterface voor industriëel meetapparaat
Voor een industriëel meetapparaat dat bediend werd met een klassiek aanraakscherm op het toestel zelf was er nood aan een moderne draadloze bediening.
Mijn eerste bijdrage was de keuze voor bediening via tablet of smartphone via een webapplicatie en een Wifi-verbinding. Hierdoor werd de bediening onafhankelijk van het gekozen apparaat voor de bediening.
Voor de implementatie werd gebruik gemaakt van een Raspberry Pi die communiceert met de bestaande PLC van het meetapparaat over MODBUS. De Raspberry Pi zorgt voor een beveligd draadloos netwerk en draait een webserver met een op maat gemaakte applicatie voor de bediening van het apparaat.
Het volledige systeem werd op minder dan twee maand ontworpen en gebouwd.
Software-integratie voor een badmintonrobot
Bij FMTC staat 's werelds enige badminton robot (zie film). Met dit project wil FMTC zijn expertise op gebied van mechatronica (automatisatie) demonstreren en tegelijk meer zichtbaarheid verwerven bij het grote publiek.
De besturingssoftware voor de badmintonrobot draait verspreid over drie computers met verschillende beheerssystemen (Linux + Xenomai, Labview, Windows) en interageert in reële tijd met motoren, cameras en andere sensoren. Een belangrijk stuk van die software bestaat uit controllers gegenereerd vanuit Matlab en Simulink.
Mijn opdracht was ervoor te zorgen dat de genereerde controllers op de juiste wijze met elkaar en met de hardware communiceren. Uitdagingen daarbij waren onder andere tijdsynchronisatie tot submilliseconde-niveau over het netwerk en de automatische detectie van fouten of abnormale situaties. Daarnaast heb ik ook een grafische gebruikersinterface gebouwd voor de besturing.
De badmintonrobot is herhaaldelijk succesvol gedemonstreerd, zowel voor bedrijven als voor het grote publiek. Op dit ogenblik ben ik betrokken bij de implementatie van de tweede generatie van deze robot.
Webapplicatie voor data mining
De opdrachtgever voor dit project bouwt innovatieve software voor verkoop en marketing van een bepaald product. Door gebruik te maken van nieuwe technieken voor data mining kan deze software nog krachtiger worden. Vanuit de theorie is het echter niet evident om te bepalen op welke manier deze technieken best toegepast worden in de gegeven specifieke context.
Daarom heb ik een prototype ontwikkeld van een applicatie die data mining toepast op de klantengegevens. Deze applicatie draait in een browser en laat toe om ook zonder technische kennis van data mining ervaring op te doen met deze techniek en de beste manier te zoeken om ze toe te passen bij de marketing.
De uitdaging bestond eruit om op korte tijd een data- miningtechniek te leren kennen en een goed werkend prototype te bouwen dat bruikbaar was voor evaluatie door iemand zonder technische achtergrond in data mining. Voor dit project heb ik gebruik gemaakt van webtechnieken zoals CGI, Javascript, jQuery, Ajax en Raphaël, en van openbroncode zoals Apache en R.
Dit prototype wordt momenteel geëvalueerd door de opdrachtgever.
Herontwerp van de interne datastructuur voor hardware-synthesetools
In de jaren '90 ontwikkelde EDC, toen een onderdeel van Mentor Graphics, software om vanuit een beschrijving van een applicatie in een programmeertaal (eerst DFL, later C) semi-automatisch hardware te synthetiseren. Dit gebeurde op basis van prototype-software ontwikkelt bij IMEC en Philips. Dit was zeer complexe software, en de prototypes lieten op gebied van kwaliteit heel wat te wensen over.
Ik heb toen een nieuwe interne datastructuur ontworpen. Voor een stabiele implementatie van hoge kwaliteit heb ik gebruik gemaakt van destijds nog minder bekende technieken zoals object-orientatie, pre- en postcondities en invarianten in C++. Deze datastructuur heeft sindsdien als basis gediend voor deze tools en wordt nog steeds gebruikt.