Blog

Sie befinden sich hier: :/
  • Classification2
Jul2016

Improved Activity Classification: 97.91% Accuracy

By |07/2016|Categories: Entwicklungen|Tags: , , , , |0 Comments

Vor einiger Zeit haben wir eine Maschine Learning Activity Classification vorgestellt, welche laufen, rennen, stillstehen und radfahren mit Hilfe einer 6DoF IMU (=3 Beschleunigungen und 3 Drehraten) erkennen kann.


Neueste Version: Mehr Daten = Besserer Algorithmus
Die neueste Version wurde mit dem PAMAP2 Dataset trainiert und es wurde eine Support Vector Machine mit Radial Kernel eingesetzt, statt bisher linearem Kernel.

Der so verbesserte Detektionsalgorithmus ermöglicht Erkennungsraten von im Schnitt 97.91%. Die Confusion Matrix ist nachfolgend abgebildet (Train/Test 80/20, Subject 106 des PAMAP2 Dataset):

Verbesserte Detektion: Verbesserte Sicherheit!
Mit dieser hohen Erkennungsrate eignet sich der Machine Learning Algorithmus noch besser, um Aktivitäten von hoch verletzlichen Verkehrsteilnehmern zu erkennen. Mit der Aktivität können Rückschlüsse auf Bewegungsgeschwindigkeiten und auch Bewegungsrichtungen gezogen werden. Eine verbesserte Vorhersage der Bewegungstrajektorien ist möglich.
Source Code
Der Code ist OpenSource auf Github zu finden (like to see the Link):

  • AMG_Partner_HIGHTS
Jun2016

MechLab Engineering ist neuer assoziierter Partner des HIGHTS EU Projekts

By |06/2016|Categories: Allgemein|Tags: , , |0 Comments

Das EU Projekt HIGHTS beschäftigt sich mit hochpräziser Ortung für kooperative, intelligente Transportsysteme. Diese benötigen für neue Anwendungsfälle (z.b. hochautomatisiert Fahrt) ihre Position genauer als es ein konventionelles GPS, v.a. in Häuserschluchten von Großstädten, leisten kann. Deshalb müssen verschiedenste Lokalisierungslösungen kombiniert werden, um zukünftige Anforderungen bezüglich Genauigkeit und Sicherheit zu erfüllen. MechLab Engineering beschäftigt sich mit Aktivitätenerkennung von nicht motorisierten Verkehrsteilnehmern (so genannter „Highly Vulnerable Road User“).

In Kooperation mit der ZigPos GmbH können damit innovative kooperative Lokalisierungslösungen entwickelt werden, welche in Zukunft dabei helfen werden die Unfallszahlen und/oder Verletzungsschwere zu reduzieren.

MechLab Engineering ist ab sofort assoziierter Partner des Projekts, gemeinsam mit Firmen wie Preh Car Connect GmbH (ehemals TechniSat GmbH), IAV Automotive Engineering und BMW AG.

Mehr dazu auf http://hights.eu…

  • 4-kind-of-people-Teaser
Mai2015

PyData Berlin 2015 Review

By |05/2015|Categories: Allgemein|0 Comments

Wow, that was a blast! We are back from PyData Berlin 2015 and it was such an input for Python enthusiasts like us. Thank’s for the organisation and food and drinks and talks and everything. What impressed most, explained in one chart:

the four kind of mindsets you frequently meet in your company or while talking with customers, CC-BY 2.0

Every single person there was located in the very top left corner of this chart and this is actually not representative for the business daily routine or private life. Sometimes even a colleague in your company is in the top right corner, because your idea is better than his and he knows that it will outperform everything he did, so he is willing to fight your idea. In the bottom left corner, you have sometimes friends, who don’t like your idea but they at least help you to find a contact or something like this. Most of the business daily routine is in the bottom right corner, depends on your company. The bigger it is, the more people will settle in the bottom right corner. You will find examples…

[…]

  • ActivityClassification
Apr2015

Motion Activity Classification with Acceleration and Rotation Sensor

By |04/2015|Categories: Allgemein|Tags: , , , |0 Comments

A lot of devices are able to measure acceleration and rotation. For example every Smartphone is capable of this, the Tinkerforge IMU or even Sensor Tags for Car-2-X Communication, if they are equipped with such sensors. The interesting question is, how to get information out of the raw sensor data? For example Car-2-X communication: Every advanced driver assistant system (ADAS) nowadays is just able to ’see‘ a potential collision within the line of sight, like shown in this video:

If, for example, a child is crossing the street from behind a bus, the collision avoidance system of the car (camera system) is not able to ’see‘ the approaching child, because it is hidden behind the bus.
City of the Future: Smart and Connected
What if a sensor tag could broadcast the information, that somebody/something is ‚walking‘ behind the bus in direction of the street, where the car is approaching? What, if a device is estimating ‚biking’/’running‘ in direction of the car? Life-saving!

Modern Car-2-X Communication infrastructure is able to share movement information between traffic lights, cars, bikes and people in a city. If the system is able to determine the position (via GPS or sensor networks) and the direction of the movement, it is able to calculate a possible collision.
Activity Classification using Machine Learning
The hard part is to predict the kind of movement (standing, walking, running, biking), because this is an essential information for collision prevention algorithms (in the car). We have developed a real time classification algorithm, which is able to predict, whether the device is walking, running, sitting or going by bike.

 

We used sensor data of an iPhone to get data for these 4 different activities and developed a highly sophisticated classifier based on rotation rates and acceleration sensor data. The activity classification […]

  • Durchschnittlicher Fahrpreis mit Uber ab HU Berlin Campus Adlershof
Apr2015

Uber Pricing Heatmap

By |04/2015|Categories: DataLab|Tags: , , , , |0 Comments

Uber – der durchaus umstrittene Fahrdienst – hat eine Developer Schnittstelle geschaffen, womit man auf verschiedene Parameter des Softwaresystems zugreifen kann.

Wir haben den geschätzten Fahrpreis für viele hundert Ziele in Berlin abgefragt, als ob wir vormittags am HU Campus Berlin Adlershof ein Uber ordern wollen. Die aggregierten und interpolierten Daten werden dann georeferenziert und über OpenStreetmap gelegt, sodass eine Heatmap heraus kommt, welche die durchschnittliche Fahrpreise (ohne Surge Pricing) mit Uber übersichtlich visualisiert.
Was kostet eine Uber Fahrt ab HU Campus Adlershof
In ein blaues Gebiet durchschnittliche 2€, in ein grünes durchschnittlich 4€ usw… bishin zu 16€ oder mehr in ein rotes Gebiet.

Tools used:

Python (requests, json, Scypi, Matplotlib)
QGis (Georeferencer)
TileMill
OSM in Postgres

  • Teaser
Mrz2015

Reglerauslegung mit Python Control Systems Library

By |03/2015|Categories: Academy|Tags: , , |0 Comments

Nicht nur Matlab hat eine Control System Toolbox zur Auslegung und Analyse von Regelkreisen, auch Python ist mit der Control Systems Library recht gut aufgestellt.

Im Folgenden soll an einem Beispiel gezeigt werden, wie man mit Python einen Regler entwirft und parametriert, der einen Regelkreis stabilisieren kann.
Regelkreis: Wasserbehälter mit Störung
Das Beispiel ist entnommen aus „Systemdynamische Grundlagen der Regelungstechnik“ der Uni Stuttgart, wo auch die Herleitung der Übertragungsfunktionen erläutert wird. Dies soll hier und im nachfolgenden Tutorial nicht mehr geschehen.

Angesteuert wird der Elektromotor, welcher auf ein Getriebe (Spindel) wirkt, welches ein Ventil stellt, wodurch Wasser in den Behälter einfließt. Die Füllstandshöhe im Behälter wird von einem Sensor (Schwimmer) erfasst und ist die Rückführung.

Der Regler soll nun den Füllstand des Wasserbehälters konstant halten, obwohl es Störungen gibt (z.B. Regen fließt ein oder Wasser wird entnommen).
Reglerauslegung mit Hilfe der Wurzelortskurve
Die Wurzelortskurve (engl. Root-Locus) ist eine von vielen Möglichkeiten einen Regelkreis auszulegen.

Dabei werden die Nullstellen (0) und Pole (X) des gesamten, offenen Regelkreises in der Imaginären Ebene aufgespannt. Dominante Pole sind dicht an der Imaginären Achse (Real=0). Es zeigt sich, dass der Regelkreis grenzstabil ist.

Im folgenden Video wird gezeigt, wie ein Regler ausgelegt und parametriert wird, sodass der Regelkreis ein relativ gutes Störübertragungsverhalten aufweist.

Regelungstechnik mit Python: Wie man einen Regler auslegt
(HD Version mit Klick auf ‚HD‘)

  • 'Ostansicht' von Stefan Eissing unter CC-BY2.0 Lizenz von flickr.com
Mrz2015

Vorhersage der Parkhausbelegung mit Offenen Daten

By |03/2015|Categories: DataLab|Tags: , , , |0 Comments

Wir engagieren uns seit geraumer Zeit in der Open Knowledge Foundation, welche das Ziel verfolgt, ohnehin schon öffentliche Daten auch noch standardisiert und maschinenlesbar verfügbar zu machen, damit Mehrwert daraus generiert werden kann.

Ein schönes Beispiel für den Nutzen von Offenen Daten (Open Data) möchten wir am Beispiel der freien Parkplätze in Dresden zeigen. Die Stadt Dresden hat ein intelligentes Verkehrsleitsystem und -konzept (VAMOS), welches auch die freien Parkplätze in den jeweiligen Parkhäusern und -plätzen erfasst und bereitstellt.

Leider stehen diese Daten nicht offen – heißt: über eine Schnittstelle für jedermann – zur Verfügung. Die Open Data Aktivisten vom OKLab Dresden haben deshalb einen Scraper geschrieben, der die Zahlen von der Webseite holt und in eine Datenbank speichert sowie eine maschinenlesbare Schnittstelle zur Verfügung stellt. Erste Anwendungen auf Grund der offenen Daten sind bereits entstanden:

ParkenDD – eine Smartphone App für Android (von J. Kliemann) und iOS (von K. Költzsch)
Karte mit freien Parkplätzen Dresden

Da die Daten nun fast für ein gesamtes Jahr vorhanden sind (03/2014 – 03/2015) ist der Zeitpunkt gekommen, sich diese einmal anzusehen.

Zum einen sind statistische Aussagen interessant, zum anderen ist das Ziel ein Modell aufzustellen, welches die Belegung von innerstädtischen Parkhäusern vorhersagen kann. Wer samstags 11Uhr mit Auto zum Shopping nach Dresden kommt, der wird wissen, dass sich fast überall lange Schlangen vor den Parkhäusern bilden. Es ist für Touristen (auch aus Tschechien) also durchaus interessant, schon vorher zu wissen, wie in 1h die Belegung des angesteuerten Parkhauses ist. Dies ermöglicht intelligente Verkehrssteuerung. Man könnte sagen: Smart City!
Datenbasis: Open Data
Leider nicht von der Stadt Dresden direkt bereitgestellt, aber wenigstens von den Open Data Aktivisten aus Dresden. Ein aktueller Auszug aus der Datenbank kann hier heruntergeladen werden. Dieser bildet die Basis der nachfolgenden Visualisierungen.
Zeitreihenanalyse der Belegung
Die einfachste und logischste Analyse ist zuerst einmal die Zeitreihenanalyse. […]

  • rviz_screenshot_2015_02_18-15_28_02
Feb2015

Aufbau eines Roboters in ROS aus CAD-Daten mit Hilfe von Blender, Meshlab und urdf-File

By |02/2015|Categories: Entwicklungen|Tags: , , , , , , , |0 Comments

Das Robot-Operating-System, kurz ROS, ist ein weit verbreitetes Open-Source-Softwaresystem, welches für viele Zwecke in der Robotik genutzt werden kann.

Die Hauptbestandteile und -aufgaben von ROS sind

Hardwareabstraktion
Gerätetreiber
Oft wiederverwendete Funktionalität
Nachrichtenaustausch zwischen Programmen bzw. Programmteilen
Paketverwaltung
Programmbibliotheken zum Verwalten und Betreiben der Software auf mehreren Computern

Kurzum: Für viele Anwendungsfälle im Umgang mit Robotern wurde schon viel Software geschrieben, getestet und erprobt. Keine Notwendigkeit also, das Rad noch einmal neu zu erfinden, wie auch Andreas Bihlmaier in folgendem Video demonstriert:

Für einen mittelständischen Betrieb haben wir die Aufgabe ein Arbeitsgerät zu simulieren, Kollisionsanalysen und Bewegungssteuerung auszuführen. Die Bauteile liegen in CAD-Software vor, sodass die Roboterkonfiguration in ROS überführt werden muss.

[…]

  • weniger ist besser
Jan2015

Wie man große Dateien auch auf einem kleinen Notebook bearbeitet

By |01/2015|Categories: DataLab|Tags: , , , , , , |0 Comments

Wer sich mit Data Analytics beschäftigt, hat hin und wieder mit sehr großen Dateien zu kämpfen. Diese entstehen schlichtweg heutzutage in vielen Wirtschaftszweigen. Ob Industrie 4.0 oder M2M Kommunikation, überall werden Zahlenkolonnen gespeichert und dann auch hoffentlich irgendwann ausgewertet.

Dabei überschlagen sich die Consultants im Jahrestakt mit neuen Buzzworts zum Thema. Vor einigen Jahren hieß es  noch ‚Cloud‘, aktuell wird über ‚Big Data‘ geschrieben und bald kann man von ‚Smart Data‘ lesen.

Dabei gilt:

Vielleicht liegt es ja daran, dass viele PowerPoint Profis nur Excel auf dem Laptop installiert haben und das ein oder andere mal die nachfolgende Meldung gelesen haben:

Die Reaktion von Excel, wenn man versucht eine 1GB große Daten-Datei in eine Arbeitsmappe zu laden. Ist aber noch kein Big Data Problem. Wer selbst probieren möchte:

Excel stößt mit dieser Datei schon an seine Grenzen. Enthalten sind beispielhafte Daten, wie sie z.B. von unserem CarPC gesendet werden.
UUID, Latitude, Longitude, Value
Und von diesen Datenzeilen eben sehr viele. Versuchen wir nun diese Datei zu öffnen, um damit Berechnungen auszuführen, zu filtern oder Diagramme zu erstellen.
Effizientes Einlesen von großen CSV Dateien mit Python
Mit Python hat man mehrere Möglichkeiten eine Textdatei einzulesen. Wir konzentrieren uns auf 3 typische Module:

das Python CSV Modul, welches der Standard ist
Python Pandas, welches alles vereinfacht
Python Blaze

Schauen wir mal. Alle nachfolgenden Zeitangaben sind natürlich vom System abhängig. Die Zeiten sind auf einem MacBook Pro, 2.5GHz Intel Core i5, 8GB 1600MHz DDR3-RAM, SSD Festplatte mit IPython in der Anaconda Distribution und nur 1x ermittelt.

Einlesen einer 1GB Datei mit Python CSV Modul

Das Lesen der 1GB großen Datei dauert knapp 35s.
Einlesen einer 1GB Datei mit Python Pandas

Das Lesen der 1GB großen Datei dauert knapp 25s. Das ist schnell! Der Entwickler von Pandas, Wes McKinney schreibt
pandas.read_csv from pandas 0.5.0 onward […]

  • BlenSor-Blender-2.72b
Dez2014

BlenSor Laserscanner Simulation mit Blender 2.72, numpy und Cycles Render Engine

By |12/2014|Categories: Entwicklungen|Tags: , , , , , , , , , |0 Comments

Blender, die wahnsinnig umfangreiche OpenSource 3D Authoring Software, erlaubt es, auch eigene Module (Add-Ons) einzupflegen. Michael Gschwandtner tat dies im Rahmen seiner Dissertation und integrierte physikalische Modelle einiger Umfeldscanner und nannte sein Derivat BlenSor: Blender Sensor Simulation Toolbox M. Gschwandtner, R. Kwitt, A. Uhl In Advances in Visual Computing: 7th International Symposium, (ISVC 2011) Las Vegas, Nevada, USA, September 26 – 28, 2011. Er integrierte zum Beispiel:

ibeo Lux
Velodyne HDL-64E2
Microsoft Kinect

Wir nutzen BlenSor in unserer Virtual Lidar Test Bench, um damit Algorithmen synthetisch zu testen, bevor sie in den realen Einsatz mit vielen möglichen aber unbekannten Störeinflüssen kommen.

Die ursprüngliche Version enthielt leider kein Numpy und konnte auch nur mit der Blender Engine Rendern. Dies war nicht optimal. Die kürzlich aktualisierte Version, ermöglicht dies nun!
How to Build from Source for MacOS X Yosemite?
Eine ausführliche Anleitung kann auf der Blender Webseite gefunden werden. Hier nur kurz Step-by-Step.
Die aktuelle Version von BlenSor aus dem Github Repository ziehen. Darin enthalten ist bereits die aktuelle Blender Version 2.72.

Anschließend parallel zum `blensor` Ordner einen Ordner `build_darwin` erstellen.

Anschließend noch extern benötigte Libraries downloaden, welche bereits vorkompiliert für MacOS X auf der Blender Webseite zur Verfügung gestellt werden.

Nun sollte man 3 Verzeichnisse haben.

blensor
lib
build_darwin

Nun erfolgt das Konfigurieren der makefiles mit cmake. Dazu am einfachsten den grafischen Editor cmake 3.0.2 GUI starten.

Dort als Source den Ordner `blensor` auswählen und als Build Destination den Ordner `build_darwin`. Ein Klick auf

sollte mit ein paar roten Fehlermeldungen durchlaufen, sodass am Ende ein `Done.` erscheint. Ein anschließender Klick auf

erzeugt die nötigen Dateien für das Kompilieren:

Anschließend liegt nach ca. 10min Wartezeit im Verzeichnis `\build_darwin\bin\` die Blender.app, welche man aber auch direkt hier fertig kompiliert herunter laden kann:
Download für MacOS X Yosemite
Hier zum Download die für das aktuelle Mac OS X Yosemite kompilierte Version von BlenSor, […]