Uitgebreide beschrijving van relevante werkervaring

Bosch Security Systems : Plato / Felix

Periode Project Functie
Februari 2005 - heden
Plato
Senior software designer
Project omschrijving
Plato is een software team van ongeveer 30 man dat software ontwikkeld voor het Plato systeem. Het Plato systeem is een embedded digitale harddisk recorder die tot maximaal 16 analoge en 32 digitale video camera's kan opnemen. Het bevat een 1 GHz processor, maximaal 5 video DSP's (Texas Instruments: TMS320DM642) en maximaal 2 audio DSP's (Texas Instruments: TMS320C6205). De video DSP's hebben als voornaamste taak het opnemen en analyseren van de analoge video signalen. Tevens moeten ze opgenomen video signalen weer kunnen afspelen waarbij ze meerdere camera's op dezelfde monitor moeten kunnen weergeven. De audio DSP's hebben dezelfde taken, maar dan voor audio signalen.

Ik heb als software designer meegewerkt aan het uitbreiden van het framework dat ik voor Dito gemaakt heb. Het framework biedt nu uitgebreide communicatie mogelijkheden voor software componenten verspreid over verschillende processoren. Tevens kan het framework de software componenten dynamisch aanmaken en met elkaar verbinden. Dankzij het framework hoeven de software componenten niks van de andere componenten te weten. Dit bevordert modulariteit en herbruikbaarheid van die software componenten.

Plato is doorgestart onder de naam Felix met een software team van ongeveer 8 man. Voor Felix heb ik bovenop mijn framework een applicatie gemaakt met flexibiliteit naar de verschillende hardware platformen (DiBos en Plato hardware).
Werkzaamheden
  • Eisen voor software onderzoeken
  • Software ontwerpen
  • Software implementeren
  • Componenten van collega's integreren in eigen framework
  • Software testen en debuggen
  • Documenteren
Systemen/pakketten/talen
Ontwikkel omgeving Windows 2000, CE, XP
Paketten Texas Instruments : Code composer studio
Microsoft Visual C++
Programmeertalen C, C++ (beide embedded en PC)

Bosch Security Systems : DiTO

Periode Project Functie
September 2003 – Februari '05
DiTO Senior software designer
Project omschrijving
DiTO is een software team van ongeveer 9 man dat software ontwikkeld voor het Vicam bord. Het Vicam bord is ontwikkeld voor Dibos 8.0, een digitale harddisk recorder die tot maximaal 30 analoge en 32 digitale video camera's kan opnemen. De voornaamste taak van het Vicam bord is het opnemen en analyseren van de analoge video signalen. Per Vicam kaart kunnen maximaal 6 analoge camera's verbonden worden. De meeste software is ontwikkeld voor de DSP processor (Texas Instruments: TMS320DM642).

Ik heb als software designer meegewerkt aan het ontwerpen, implementeren en testen van het framework die communicatie tussen de verschillende software componenten mogelijk maakt. Tevens heb ik enkele (test)componenten gemaakt voor in dat framework.

Naast mijn werk ben ik op eigen initiatief begonnen aan het ontwikkelen van debug tools zoals een DSP logfile analyser. Hiermee kan de software in ongeveer 30 seconden tijd tot een half miljoen regels logging produceren zonder veel verlies in prestatie of afwijkend runtime gedrag. Deze tools zijn zeer nuttig geweest tijdens de test en debug fase, wat ook erkend is in het getuigschrift.
Werkzaamheden
  • Eisen voor software onderzoeken
  • Software ontwerpen
  • Software implementeren
  • Componenten van collega's integreren in eigen framework
  • Software testen en debuggen
  • Test software ontwikkelen
  • Documenteren
Systemen/pakketten/talen
Ontwikkel omgeving Windows 2000
Paketten Texas Instruments : Code composer studio
Programmeertalen C, C++ (beide embedded)

Yacht : Philips ... (PPD), Eindhoven

Periode Project Functie
Juni 2003 – Augustus 2003
ViGeo Software ontwikkelaar
Project omschrijving
ViGeo is een project met als doel de productie van televisies goedkoper te maken. Dit kan bereikt worden door de dure maskers te vervangen door goedkopere dunne maskers. Dit heeft echter als nadeel dat als zo'n masker te veel energie (fotonen straling) ontvangt op een bepaalde plek dan gaat het masker daar uitzetten en zie je vervormingen op het beeldscherm. Om dit te voorkomen is er electronica ontwikkeld die de hoeveelheid energie kan beperken die naar een bepaalde plek op het masker gaat.

Ik heb als software ontwikkelaar meegewerkt aan het testen van de functionaliteit van de processor (Hitachi : H8S 2148) en aan het programmeren van de processor. De processor moet real-time gegevens kunnen inlezen van een andere processor (FPGA). Tevens moet de processor berekeningen uitvoeren zodat bepaald kan worden wanneer de energie toevoer beperkt moet worden. De resultaten moeten via het I2C protocol teruggestuurd worden naar de FPGA.

Werkzaamheden
  • Processor bestuderen
  • Processor testen
  • Software en algoritmes ontwerpen
  • Software en algoritmes implementeren
  • Processor programmeren
  • Software en algoritmes testen en debuggen
  • Documenteren
Systemen/pakketten/talen
Ontwikkel omgeving Windows 2000
Paketten Hitachi compiler
Programmeertalen C (embedded)

Yacht : Philips Digital Signals Lab (PDSL), Eindhoven

Periode Project Functie
September 2002 – Maart 2003 VCR Simulator Software ontwikkelaar
Project omschrijving
De VCR simulator is een elektronisch bord dat aangestuurd kan worden door een PC. De bedoeling van dat bord is het simuleren van onder andere video signalen en met name specifieke fouten in die signalen. Een voorbeeld van zo'n fout is de tweekops fout bij video recorders. Het voordeel van de VCR simulator is dat deze de fout iedere keer op exact dezelfde manier kan reproduceren. Dit is zeer handig bij het testen van bijvoorbeeld DVD recorders. DVD recorders moeten in staat zijn video signalen correct op te nemen, zelfs als er bepaalde fouten in die signalen aanwezig zijn.

Ik heb als software ontwikkelaar gewerkt aan het verder ontwikkelen van een script taal die gebruikt wordt voor het specificeren van het te genereren signaal. Een van de uitbreidingen van de script taal is de ondersteuning van parameters en constraints. De parameters kunnen door de gebruiker worden aangepast terwijl het script gebruikt wordt. Constraints zorgen ervoor dat als een parameter veranderd wordt door de gebruiker, andere parameters automatisch mee veranderen. Tevens zorgen constraints ervoor dat parameters geen illegale waardes kunnen krijgen. Als parameters veranderen, dan veranderdt het gegenereerde signaal ook. De overname van de nieuwe waardes voor de parameters gebeurt zodanig dat het oude signaal naadloos overloopt in het nieuwe signaal.

Om het gebruik van de script taal te vergemakkelijken heb ik een script editor gemaakt die de gebruiker ondersteunt en waarschuwt als er fouten in het script aanwezig zijn. Daarna heb ik een aantal scripts gemaakt die specifieke fouten in video signalen kunnen simuleren. Tevens heb ik software geschreven die het inlezen van het nieuwe type scripts mogelijk maakt. Ook heb ik alle software geschreven voor het gebruik van de parameters en constraints, van user interface en constraint waarborging tot en met het versturen van de gewenste aanpassingen naar het bord en het gebruiken van die ontvangen aanpassingen op het bord zelf. Uiteraard is alles afgeleverd met voldoende documentatie.

Werkzaamheden
  • Eisen voor software onderzoeken
  • Nieuwe software schrijven
  • Software en algoritmes ontwerpen
  • Software en algoritmes implementeren
  • Algoritmes invoegen in bestaande software
  • Software en algoritmes testen en debuggen
  • Documenteren
Systemen/pakketten/talen
Ontwikkel omgeving Windows NT
Paketten MS Visual Studio, MS Visio, Borland Delphi
Programmeertalen Delphi, MS Visual C++

Philips Natlab, Eindhoven

Periode Project Functie
September 2001 – Mei 2002 Image segmentation and depth reconstruction Software ontwikkelaar
Project omschrijving
Als afstudeer project heb ik vanaf september 2001 tot en met mei 2002 gewerkt als software ontwikkelaar voor Philips Natlab in Eindhoven. Ik heb daar gewerkt bij de afdeling Digital Signal Processing (DSP), waar ik software heb ontwikkeld voor het vinden van diepte informatie in videobeelden. Ik heb me hierbij toegespitst op beeld segmentatie en diepte reconstructie. Beeld segmentatie probeert een beeld zodanig op te delen in segmenten dat de grenzen van objecten in de werkelijke wereld overeen komen met de grenzen van de segmenten. Vervolgens gebruikt de diepte reconstructie deze segmenten samen met de verplaatsingen van de camera om aan ieder segment een diepte functie toe te kennen. Deze diepte functies kunnen gebruikt worden om voor ieder pixel in het beeld de diepte te berekenen.

Ik ben begonnen met al eerder ontwikkelde software en heb gekeken waar de software verbeterd kon worden. Daarna heb ik zelf algoritmes ontworpen om deze verbeteringen te realiseren. Dit resulteerde in een nieuw algoritme voor beeld segmentatie waardoor oversegmentatie verminderd kan worden, en een verbeterd algoritme voor diepte reconstructie dat complexere diepte functies kan vinden. Philips is aan het bekijken of er voor deze algoritmes een octrooi of patent kan komen.

Werkzaamheden
  • Bestaande software analyseren
  • Requirements voor de algoritmes opstellen
  • Algoritmes ontwerpen
  • Algoritmes implementeren
  • Algoritmes invoegen in bestaande software
  • Software testen en debuggen
  • Documenteren
Systemen/pakketten/talen
Ontwikkel omgeving Unix, Solaris
Programmeertalen (ansi) C

Anorad

Periode Project Functie
Juli 2000 – December 2000 Lineaire motoren en processor analyse Software ontwikkelaar
Project omschrijving
Ik ben begonnen bij Anorad met 2 maanden vakantie werk. Deze 2 maanden werden vervolgd door 3 maanden stage. Anorad is een bedrijf gespecialiseerd in machines met lineaire motoren erin. Tijdens mijn vakantie werk heb ik meerdere programma’s geschreven in Visual Basic voor het aansturen van die lineaire motoren door middel van een PC met insteekkaart of seriële poort. In mijn stage heb ik vervolgens de capaciteiten van twee processoren (Texas Instruments: TMS320F240 & TMS320LF2407) geanalyseerd die zelfstandig de motoren aan kunnen sturen door middel van feedback van de motoren en een vooraf ingesteld programma. Dit programma moest te wijzigen en te sturen zijn door een PC via de seriële poort. De software voor de analyse van de processoren is geschreven in C en DSP Assembler.
Werkzaamheden
  • Requirements opstellen
  • Software ontwerpen
  • Software implementeren
  • Software testen en debuggen
  • Analyseren en testen van 2 processoren
  • Documenteren
Systemen/pakketten/talen
Ontwikkel omgeving Windows, WindowsNT
Paketten Texas Instruments : Code composer studio
Programmeertalen Visual Basic, C, DSP Assembler

Technische Universiteit Eindhoven (TU/e)

Periode Project Functie
Oktober 1998 – Juni 1999 Eurobot Software ontwikkelaar
September 1999 – Februari 2000 EffiTrein Software ontwikkelaar
Project omschrijving
Uit interesse heb ik op de Technische Universiteit Eindhoven meegedaan aan het project Eurobot. Later bleek dat ik dit mocht laten tellen als een stage. Eurobot is een jaarlijks terugkerende wedstrijd die in Frankrijk gehouden wordt, waarbij autonome robots tegen elkaar strijden om een bepaald doel te bereiken. Voor ons was het doel het verdedigen van ons kasteel en tegelijk het aanvallen van het vijandelijke kasteel. Het veld bestond uit een groen vlak met witte lijnen erop, een gracht met twee bruggen daarover en twee kastelen bestaande uit houten cilinders.

Ik heb voor deze wedstrijd de software geschreven voor de routeplanning van de robots over het speelveld. Deze software was geschreven in Pascal en draaide op een PC. Op de PC kon men grafisch een aantal doelen aangeven en het programma berekende een efficiënte route en gaf daarvoor een C code uit die geupload kon worden naar de robots. Voor oriëntatie maakte de robots gebruik van een bekende startpositie, verplaatsing van de robot, en de witte lijnen op het speelveld.

Naast Eurobot heb ik ook nog meegedaan aan EffiTrein. Hiervoor had de TU/e een treinbaan gebouwd en was de vraag om een programma te ontwikkelen in JAVA voor de aansturing van de treinen, met daarbij een goede route planner die efficiënt baanvakken aan treinen toekende en vrijgaf gegeven een aantal eisen voor de treinen. 

In beide projecten werd de software ontwikkeld door een groep van ruim 10 man. Het  Eurobot team bestond uit een multi-disciplinair team. Bij EffiTrein moest worden gewerkt op CMM level 2 (Repeatability), gebruik makende van OMT en het waterval model.

Werkzaamheden
  • Requirements opstellen
  • Software ontwerpen
  • Algoritmes ontwerpen
  • Software implementeren
  • Software testen en debuggen
  • Documenteren
Systemen/pakketten/talen
Ontwikkel omgeving Windows
Paketten Rational Rose
Programmeertalen Pascal, C, JAVA

Overig

Periode Club Functie
1992 - 1997 Computerclub AvDC Cursussen geven (Pascal)
1997 - 2000 Computerclub PTCC Cursussen geven (Windows, Internet)
Homepage beheren
Problemen oplossen
Project omschrijving
In 1992 heb ik samen met een vriend een computerclub opgericht op de onze middelbare school waar we cursussen gaven in Pascal voor medestudenten. Ook gaven we tijdens open dagen van die middelbare school demonstraties met computer aangestuurde lichteffecten en LEGO robotjes, alles uiteraard zelf gemaakt.

In de periode van 1997 tot en met 2000 was ik actief lid van de PTCC. Hier heb ik cursussen gegeven in Windows en Internet voor beginners aan oudere en gepensioneerde mensen. Daarnaast heb ik de homepage van de computerclub gemaakt en onderhouden en heb ik gefungeert als probleem oplosser voor leden van de computerclub. Hierbij ging het om problemen met de PC in het algemeen waaronder software, hardware en Internet.