Allgemein

Sie befinden sich hier: :/Allgemein
  • LinearRegression() predicted an RSSI based on measurements for ITS-G5 in 5.9GHz (WLANp)

Deploy your Machine Learning Model as REST-API in Less than 1 hour with Scikit-Learn and Docker

While working on our research project CartoX², we had to deploy a Machine Learning model for prediction of the received signal strength with V-2-X communication ITS-G5 (German name: WLANp). We will use a very simple and easy to understand linear prediction model and serve an API via a Docker container. Up in running in less than 1 hour!

WLANp Prediction Model with SciKit-Learn
We are working with Python and SciKit-Learn, but this may also work with other libs and models. Here is how we trained our linear regression model. First, we need some measurement data.

This is a distance in meter and the received signal strength (RSSI) in dBm with 5.9GHz frequency. We want to fit a linear regression model to predict the RSSI as function of distance. The distance could be between two cars or between a car and infrastructure.

With knowledge in the field of communication, you will know, that the physical model of free space path loss could be formulated with

\

On the first look, this is not a linear model, but if we provide the distance in and let the frequency be constant (ITS-G5 is around ), this leads to a linear model in the form of

\
Load the Data

Now we have the distance in r and the measured RSSI in vector y.
Train the Model

Now we have a trained prediction model.
Evaluate the model
For sure this model is not very sophisticated nor useful in real world scenarios, because you may never have the ideal free space condition, but for now it can provide some feedback.

The model estimated the linear factors . Because we didn’t had a variance in the frequency, the model consolidated the last […]

By |11/2017|Categories: Allgemein|Tags: , , , , , , |0 Comments
  • CAD2Robot: Von standardisierten CAD Daten (.wrl) zum fertigen Roboter-Script

Smart Production: Der Roboter unterstützt bei der Einzelteilfertigung

Roboter kommen oftmals dann zum Einsatz, wenn monotone, eintönige und immer gleiche Tätigkeiten zu verrichten sind. Produktionsbereiche mit extrem variantenreicher Fertigung sind bisher schwer von Robotern zu unterstützen, da die nötigen Bewegungen von Produktionsauftrag zu Produktionsauftrag abweichen. Die klassische Robotik funktioniert an Fließbändern nach wie vor mit Teach-In-Verfahren, was bedeutet, dass ein Mensch dem Roboter vorher „zeigen“ muss, was die korrekte Bewegung ist und der Roboter wiederholt diese dann einfach auf Kommando. So der Stand bisher!

Werden viele verschiedene Varianten gefertigt, müssen dafür jeweils eigene Programme geteached werden. Ganz unsinnig schien ein Roboter bisher für Einzelteilfertigung, bei der jeder neue Auftrag eine andere Roboterbewegung verlangt.
Von Daten zu Bewegungsabläufen in der Einzelteilfertigung
Der Smart Production Ansatz: Gemeinsam mit Sherpa.Dresden entwickelten wir eine Software, die aus standardisierten CAD-Daten die für die Fertigung erforderlichen Bewegungen des Roboters berechnet und das entsprechende Programm automatisch erstellt. Ein CAD-2-Robot Converter sozusagen.

Als Randbedingung stand, dass möglichst keine eigenen CAD-Formate erstellt werden sollen, sondern auf standardisierte CAD-Daten-Formate basierend, eine geschlossene Lösung entsteht. Das Programm soll auf Knopfdruck die CAD-Dateien (die Wahl fiel auf VRML .wrl und .wri) einlesen, alle für den Roboter relevanten Bauteile samt Daten (Größe, Nullpunkt, Position, Rotation, …) heraus parsen und daraus ein Montagereihenfolge bestimmen. Daraus generiert das CAD2Robot Programm vollautomatisch eine Bewegungsabfolge zur Produktion (Pick & Place) der Teile.
CAD-2-Robot Programm: Übersetzer zwischen den Welten
Beispielhaft wurde dies für einen Universal Robot UR10 in C# umgesetzt.

Das generierte Roboterprogramm kann nun direkt an den Roboter gesendet werden oder in Form einer .script File abgespeichert und dem Auftrag zugeordnet werden.
Demo einer automatisch generierten Bewegung
Nachfolgend ist eine Simulation der Bewegung zu sehen, welche in der Realität das Pick&Place von 3 Teilen vollführt.

Der Abholort (Pick) kann für jedes in der CAD-File befindliche Teil vorab konfiguriert werden (z.B. verschiedene Zuführautomaten für verschiedene Bauteile), die Ablageposition (Place) […]

By |11/2017|Categories: Allgemein|Tags: , , , , , |0 Comments
  • AMG_Partner_HIGHTS

MechLab Engineering ist neuer assoziierter Partner des HIGHTS EU Projekts

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…

By |06/2016|Categories: Allgemein|Tags: , , |0 Comments
  • 4-kind-of-people-Teaser

PyData Berlin 2015 Review

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…

[…]

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

Motion Activity Classification with Acceleration and Rotation Sensor

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 […]

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

CodeWeek Workshop: Datenvisualisierung für Journalisten

Vom 11. – 17. Oktober findet in der ganzen Europäischen Union die CodeWeek statt, welche das Programmieren und Offene Daten einem breiterem Publikum zugänglich machen soll.

Wir finden, das Datenvisualisierung ein elementarer Baustein zum Finden und Erzählen von Geschichten ist. Eine Auflistung von Zahlen in ein anschauliches Diagramm gepackt oder Sachverhalte georeferenziert aufgearbeitet, ergeben ein umfangreicheres Bild auf eine Geschichte. Das hilft, einen Mehrwert für den Leser zu schaffen.

Daher bieten wir einen Grundlagen-Workshop Datenvisualisierung für Journalisten an, an dem Sie im Rahmen der CodeWeek am Mittwoch, 15.10.2014 um 19:00Uhr in der Kamenzer Str. 52 in Dresden kostenlos teilnehmen können.

Datenvisualisierung für Journalisten

Der Beruf des Journalisten ist im Wandel. Journalisten müssen eigene Wege gehen, um auch in Zukunft einen konkreten Mehrwert für die Leser zu generieren. Datenvisualisierung bietet dafür enorme Chancen – man muss sie nur zu nutzen wissen.

Datenvisualisierung ist ein enorm boomender Zweig und geradezu prädestiniert von Journalisten besetzt zu werden.

Die Inhalte sind speziell auf Programmier-Anfänger und bisherige Excel Nutzer ausgerichtet und bieten einen idealen Start in das unendliche Themengebiet. Alle eingesetzten Tools sind kostenfrei. Der Ablauf wird in etwa folgender sein:

Was erwartet Sie?

Beispiel Einwohnerdichte der Dresdner Stadtteile
Wir nehmen uns eine Tabelle aus der Wikipedia vor, z.B. die Dresdner Stadtteile, bereiten die Daten auf, sodass sie ein Algorithmus verarbeiten kann und stellen die Daten in einem so genannten Scatter Diagramm Einwohnerzahl vs. Fläche dar:

Es fällt sofort auf, dass die Stadtteile Altfranken, Oberwartha, Schönborn, Langebrück, Cossebaude, Mobschatz, Gompitz und Weixdorf dicht beieinander liegen, somit bezüglich der Einwohnerdichte ähnliche Gegebenheiten dort vorzufinden sind. Weiterhin fällt auf, dass Loschwitz ein Extrem in Dresden ist (seeeeehr viel Fläche für sehr wenig Einwohner), Blasewitz das Andere (seeehr viele Einwohner auf relativ wenig Fläche).

Und für Onlineangebote erstellen wir daraus eine interaktive Grafik, zum Einbetten:

Unterstützt wird der […]

By |10/2014|Categories: Allgemein|Tags: , , |0 Comments
  • Marienstr20-Dresden

Neue Anschrift

Wir sind nun direkt in der Dresdner Innenstadt im Neonworx in der Marienstr. 20 ansässig und genießen die schöne Aussicht dort.

By |02/2014|Categories: Allgemein|0 Comments
  • iPhone-CoreMotion-Koordinatensystem

Aktivitätenerkennung – Apple iPhone 5s mit M7 Motionprozessor

unter CC-BY-SA 2.0 Lizenz von cwnewserpics @ flickr

Im neu erschienenen iOS7 ist erstmalig die CMMotionActivity Class vorhanden, welche Apps über den aktuellen Zustand des Telefons (der Person) informiert. Darin unterscheidet der neue M7 Motion Prozessor zwischen

stationary
running
walking
automotive
unknown

Zusätzlich gibt die Klasse eine „confidence“, also Sicherheit, aus, mit welcher die aktuelle Aktivität erkannt wurde. Doch wie macht der M7 Motionprozessor das?

[…]

By |10/2013|Categories: Allgemein|Tags: , , , , , , |4 Comments
  • IMG_2887

Was wir nicht können: Wakeboarden

Am vergangenen Sonntag haben wir unser 1-jähriges Firmenjubiläum auf der Wakeboardanlage gefeiert. Etwas vorzeitig, aber im Oktober wird es wahrscheinlich nicht mehr so angenehm im Wasser. Und da haben wir oft gelegen…

 

By |09/2013|Categories: Allgemein|0 Comments
  • Kalkuliertes Projektbudget mit kumulativer Aufwandsschätzung und Pareto-Regel

Kumulative Aufwandskalkulation als Mittel zur Kommunikation

Jede Firma, jeder Entwickler und auch jeder Auftraggeber, der etwas mit Software zu tun hat, wird diese Situation kennen:
Könnten Sie noch das oder das oder das einbauen? Könnten Sie hier noch 1 Pixel nach oben schieben? Könnten Sie die Funktion bitte so machen, dass…
Diese Dialoge entstehen meist zum Ende des Projekts, nicht zu Beginn, wo sie zur korrekten Aufwandskalkulation richtig platziert wären, und sorgen für Unmut bei den Entwicklern. Das Grundproblem ist, dass der Auftraggeber oftmals unzureichend Verständnis von Art und Funktionsweise der Software hat und vermeintliche kleine Änderungen mitunter große Auswirkungen auf die Gesamtarchitektur haben. Grundsätzlich gilt für jedes Projekt das Paretoprinzip:

Pareto-Prinzip:
80% der Funktion können in 20% der Zeit erledigt werden. Die restlichen 20% beanspruchen allerdings noch mal 80% Zeit.

In den ersten 20% der Arbeitszeit entsteht ein funktionierender Prototyp, die Aufgabe ist formal erfüllt, die Software funktionstüchtig. Die restliche Zeit kann man unter „Feinschliff“ zusammenfassen, welcher aber einen erheblichen Aufwand darstellt. Denn das Interesse des Entwicklers ist oftmals die Lösung des Problems, nicht das zentrieren irgendwelcher Buttons oder das Dokumentieren. Somit sinkt die Produktivität für die restlichen Aufgaben. Kommt dann noch die anfangs beschriebene Situation hinzu, dass der Auftraggeber „eigentlich etwas anderes meinte“ und noch mal hart etwas geändert werden muss, ist das ärgerlich.

Die Idee, was die Software/Funktion/Produkt können soll, wird oft auch erst vollständig durchdacht, wenn 80% erledigt sind und der funktionierende Prototyp „zum Anfassen“ da steht.

Wie also diese Herausforderung zur beidseitigen Zufriedenheit zwischen Auftraggeber & Auftragnehmer lösen?

[…]