Was macht BASELABS eigentlich?

Sensorfusion als Produkt

Wir haben unser gesamtes Wissen über Sensorfusion in unsere Software BASELABS Create Embedded und BASELABS Dynamic Grid gepackt, damit dieses Wissen allen Entwicklern zur Verfügung steht, um eigene Systeme möglichst effizient zu entwickeln. Die Software besteht aus unterschiedlichen Teilen, die beim Kunden zusammenspielen. Der Kern ist eine nach Sicherheitsnormen zertifizierte Bibliothek bzw. ein SDK, die/das verschiedene mathematische und statistische Verfahren wie den Kalman Filter beinhaltet. Für die Entwicklung der Bibliotheken verwenden wir eine stark an Rust angelehnte und selbst entwickelte Programmiersprache, die wir Trait-C nennen, aber auch C++ kommt stark zum Einsatz.

Benutzeroberfläche unserer Software BASELABS Create Embedded. Modelle und Parameter aller im System verwendeten Sensoren werden vom Nutzer konfiguriert. Daraus erzeugt die Software C-Quellcode, der für die jeweilige Zielplattform kompiliert wird. Im Fahrzeug werden dann die Daten aller Sensoren eingesammelt und dem erzeugten Algorithmus bzw. der Sensorfusion übergeben. Diese berechnet ein einheitliches Abbild der Fahrzeugumgebung, woraus die Fahrbefehle wie Bremsen oder Lenken abgeleitet werden. — Übrigens: Die Automobilwelt setzt stark auf die Sprachen C und C++, um den hohen Sicherheits- und Performanceanforderungen gerecht zu werden. Speziell für diese Sprachen gibt es bereits eine Vielzahl von zertifizierten Tools und Workflows, die in der Regel beibehalten werden sollen.
Freie Bereiche (schwarz) vs. statische Hindernisse (grau) vs. dynamische Objekte (bunt) — Mit hochauflösenden Sensoren und dem neuartigen Verfahren “Dynamic Grid” können vielfältige Objektarten inkl. Freiraum genau erfasst werden.

Softwareprodukt vs. Auftragsentwicklung

Natürlich entwickeln wir auch hin und wieder Software nach genauen Vorgaben eines Kunden, unser Fokus liegt jedoch in der Entwicklung von Softwareprodukten. Wo liegen die Unterschiede zwischen beiden Entwicklungsarten? Softwarequalität eignet sich hier nicht als Unterscheidungsmerkmal; diese hängt vor allem von der Entwicklungsphase wie z.B. Vor- oder Serienentwicklung ab.

Big Data für die Entwicklung von Sensorfusionssystemen

Sensorfusionsalgorithmen enthalten eine Vielzahl von statistischen Modellen, die durch den Anwender für sein spezifisches System und Sensorkombination gefunden, parametriert und angewendet werden müssen. Wir entwickeln daher gerade eine neue Software, die es ermöglicht, genau diese Modelle automatisiert zu finden und zu parametrieren.

Auszug aus einem Vortrag, den wir auf der diesjährigen Tech.AD Konferenz in Berlin gezeigt haben.
Moderne Radarsensoren liefern viele sogenannte Reflektionen oder Detektionen, je nachdem, von welcher Seite ein Fahrzeug vom Sensor gesehen wird. Um solche Modelle zu entwickeln, werden große Datenmengen benötigt.

Womit und wie wir Software entwickeln

Als Entwicklungsumgebung verwenden viele Kollegen Visual Studio (Code), die Programmiersprachen reichen von C über C++ (zwischen ´98 und ´20 ist alles vertreten) zu C#, Python, CUDA und unserer eigenen Sprache Trait-C. Die Verwendung von git, Jira, Code Review und Unit Testing Tools ist für uns selbstverständlich und natürlich werden alle Produkte und Projekte im Rahmen von Continuous Integration entwickelt — dafür verwenden wir TeamCity von JetBrains.

Continuous Integration (hier am Beispiel mit TeamCity) ermöglicht schnelle Integration und permanentes automatisiertes Testen von neuen Codebestandteilen. Fehler werden so frühzeitig erkannt und Entwickler gehen sicher, dass ihre Änderungen wie beabsichtigt funktionieren.

--

--

Sensor fusion enthusiast and co-founder of BASELABS.

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store