Björn Urban

  • About Me
  • Projects
  • Blog

Related Projects

Cluster Based Computation of Prefix Hijacking Events and their Consequences

The objective of the project work was to estimate the effects of BGP prefix hijacking events using a heuristic algorithm we developed. For this purpose, a routing graph was created on a high-performance cluster based on BGP archives, and costs were subsequently assigned to the edges to approximate a routing partitioning.

CPP
Docker

TCP Interface for Closed Loop Vehicle simulation

The goal was to connect the Carmaker simulator with an internal simulator to test closed-loop vehicle software. The simulation data were serialized using Protobuf and then streamed to the target simulator via TCP.

CPP

Real-time model free object tracking and speed estimation

In my thesis, I developed an approach for estimating velocity vectors of both static and moving objects in RGB-D images, which is critical for applications such as obstacle avoidance where understanding the dynamics of a scene is crucial. This was accomplished by first preprocessing the RGB-D data to isolate the objects by removing the floor from the scenes, which simplifies the tracking and categorization of objects in the image.

I employed a Voxel Region Growing algorithm for clustering scene elements based on their spatial locations, which aids in differentiating and tracking objects across consecutive frames. To associate objects across these frames, I adapted the Hungarian algorithm, enabling the precise computation of their velocity vectors. This method ensures that each object's trajectory is maintained, which is essential for the subsequent velocity calculations.

The velocity vectors are computed and validated against a ground truth to verify their accuracy. This validation is essential for ensuring that the vectors can reliably be used in practical scenarios, such as navigating through dynamic environments where accurate real-time responses are necessary.

I implemented the entire algorithm in C++ to leverage its performance capabilities, achieving cycle times of approximately 8 ms at a resolution of 848x480 pixels. This efficiency allows for real-time processing, which is crucial for the deployment in robotic systems and other applications requiring immediate reaction to changing conditions.

My thesis presents a comprehensive method for real-time velocity estimation using RGB-D images. The approach focuses on efficient data processing techniques, accurate object tracking across frames, and robust velocity computation, all of which contribute to the reliability and practicality of obstacle avoidance systems.

CPP
Python
OpenCV

Python Tool for Code Generation from Templates

The Python tool was tasked with generating C++ files from templates. The tool also automated the setup and build process of the resulting library.

CPP
Python

IoT System with Azure and Embedded Devices

The goal of the internal project was to build an IoT architecture that utilizes the Azure IoT Hub. For this, I analyzed various message formats and set up test devices that were provisioned with their own Linux image. This was built with Yocto and orchestrated with Mender. Among other tasks, I wrote the firmware for the ESP32 devices and set up the certificate-based communication of the devices with the IoT Hub. Additionally, I set up Hashicorp Vault and my own CA. I also developed a concept for device provisioning with the certificates as well as the ability to do Over-the-air updates.

CPP
Azure