Here you can find some projects I’ve been working on. These vary from implementing solutions within the aerospace industry to working out new game concepts.
Autonomous Agricultural Robot
Many farmers use chemical herbicides to destroy weeds. Those herbicides harm the environment and will be banned in the future. But of course the weeds still need to be removed. Some farmers switch to hiring laborers to perform the weeding manually, but it’s becoming harder to find these laborers. That’s why Odd.Bot is developing an agricultural robot that removes weeds autonomously.
Together with a small team I designed and built a large part of the robot’s software and artificial intelligence. The software recognizes weeds and sends their positions to a robot arm that removes the weeds. The main challenges were detecting a wide variety of weeds in a wide variety of circumstances, as well as accurately transforming image coordinates to real world coordinates. For that we applied techniques involving deep learning, machine vision, and visual odometry. We built the software in Python and C++ using the ROS2 framework.
Rewriting complex tools for filtering data
TNO Wind Energy works with several Matlab tools for filtering great amounts of measuring data. These tools however showed no coherence and had to be configured with hard-coded input parameters.
I rewrote the tools completely with a structured and object-oriented design. Now the tools read their input parameters from an Excel file and also write their output back into that file. This helps TNO maintaining their tools and makes it easier to filter their measuring data.
Automated Order Processing
Online shopping platforms like Amazon and Bol offer their affiliates a well-known website to sell products. But the administration of orders via the portal of such a shopping platform is a long and tedious task. So my client asked whether it was possible to automate the administrative process.
I developed a REST client that performs all administration and also prints the necessary packing slips and labels. De client was very content, as the program takes care of the daily administration in less than 20 minutes, whereas that used to take more than 3 hours every day. And besides saving time, it also relieves my client from a tedious job.
Automated pricing
Online shopping platforms facilitate numerous resellers. And if you’re one of them, that means numerous competitors. And shopping platforms often rank offers lowest price first, as that’s what most customers are looking for. So as a reseller you’ll have to look after your prices constantly.
Since my client’s product range contains more than 40000 unique items, they needed some software that looks after their prices. I developed a REST client that collects competitor prices, computes a competitive price, and updates that price. The software also uses statistical analysis to determine which competitor prices should be taken into account and which not. This software doubled my client’s revenue, so I guess they were happy.
Autonomous Offer Syncing and Order Forwarding
My client acts as a broker between online selling platforms and suppliers. But manually syncing all stocks and prices on selling platforms with stocks and prices of suppliers is infeasible.
So I developed a collection of bots that autonomously keeps stocks updated, performs price comparisons and price calculations, and directly forwards orders from selling platforms to suppliers. All that’s left for my client is to send on incoming packages to its customers. And even that part is automated as much as possible, using an app similar to the one described under Automated Order Processing.
Complex Interfaces for Aircraft Design Tools
One can imagine that aircraft design involves extremely complicated calculations with countless parameters. Certified calculation tools are used to perform these calculations. The client asked for graphical shells around several calculation tools. The shells were to provide explanation about the calculations, give a clear overview of parameters, and check the input.
I was part of the team developing these graphical interfaces. My task was to develop the more complex parts. The client received the interfaces very well. The interfaces made it much easier to work with these calculation tools, increasing productivity and decreasing the chance of making errors.
Ant-Based Infrastructure Design
The electrical infrastructure of aircraft is generally very complex. The design of such infrastructures takes much time and effort. Ant Colony Optimization techniques are known for their ability to solve combinatorial optimization problems. As such they may also facilitate the design process of electrical infrastructures. I built a proof of concept showing that these techniques are indeed able to generate well-organized infrastructures.
Neuro-Evolution and Behavioral Specialization
Neuro-evolution employs artificial evolution to train neural networks. There is a variety of neuro-evolutionary methods. Our goal was to examine how certain methods influence behavioral specialization within a group of collaborating agents.
I implemented the environment and customized the evolutionary methods to our needs. After running the experiments I interpreted the data. Some of the outcomes were quite surprising. We anticipated certain behaviors, but the evolutionary process came up with much more elegant solutions.
Economic Resource Management Game Logic
Ever since The Settlers II, I enjoyed playing resource management games. Yet I always find these games are lacking something: a true economic system. In current games every workshop simply donates the fruit of its labor to the next link in the production chain.
So imagine a resource management game where each workshop really acts as its own enterprise trying to make profit. It needs to buy the required resources and tries to sell its products. It’s up to the player to put the workshops in the right place so as to make them profitable. Adding the concept of trade would take resource management games to a whole new level. So I decided to design such an economic model and build the game logic. It’s a work in progress, but the first results look promising.
Unit Configuration for RTS Games
In real time strategy games, players must build and command armies in order to defeat their opponents. Current games offer a fixed set of unit types to build an army from. These types are carefully configured so as to keep the game in balance.
But imagine you as a player are allowed to modify existing types or even invent whole new types from scratch. And imagine what it feels like to see your homemade units battling and defeating opposed units. Allowing players to develop unit types themselves gives a new level of game play and also puts more emphasis on strategy and tactics again.
That’s why I’m developing a unit configuration model that gives players great freedom to configure their own unit types while keeping the game in balance. The next step is to build a proof of concept including an implementation of the model, a comprehensible user interface, and mix-and-match unit visualization.