Škoda Load-In
01 Einführung
Eine Anzahl an Gepäckstücken im Kofferraum eines Autos unterzubringen, macht Körper und Geist zu schaffen. Besitzer von Škoda-Fahrzeugen können wir aber zumindest hinsichtlich der erforderlichen Denkarbeit entlasten. Wir kalkulieren und zeigen ihnen die ideale Vorgangsweise beim Beladen des Kofferraums.
Klient:
Škoda Auto
System:
iOS & Android
Jahr:
2018–2019
Schwierigkeitsgrad
+ 1 000 Stunden
02 Aufgabenstellung
Von grund auf neu
Im Sinne der User legten wir Wert auf so wenig Aufwand wie möglich. Die Arbeit mit der App sollte nicht mehr Zeit in Anspruch nehmen als die auf eigene Faust angewandte Methode von Versuch und Irrtum.
Der User wählt demnach sein Wagenmodell, fotografiert es oder gibt die Maße des Ladegutes ein – und lässt sich dann nur mehr zeigen, wie alles am besten zu verladen ist.
Design
UX
Backend
Entwicklung
Ausgabe
Service
Die Aufgabe bestand darin, ein unabhängiges Modul einer mobilen App für Android und iOS zu kreieren, das dem User innerhalb von 60 Sekunden sagen kann, ob die eingegebene Fracht in sein Auto passt, und falls ja, einen sicheren Weg der Beladung aufzuzeigen.
Design
UX
Backend
Entwicklung
Ausgabe
Service
03 Wie funktioniert das?
Klingt das für Sie allzu einfach?
04 Highlights
Wie wir an die Sache herangegangen sind
Rucksackproblem
Wir haben den Kofferraum des Autos in virtuelle kleine Würfel mit einer Kantenlänge von 5 cm unterteilt – nach ein paar Tests empfanden wir diese Größenordnung als ideal. In dieses Netz laden wir den Großteil der Gepäckstücke, und die Berechnung ist schneller fertig als wenn Sie selbst etwas im Kofferraum verstauen würden. Informatiker und Mathematiker vergegenwärtigen sich dies in Form des sog. Rucksackproblems.
Vier Arten der Berechnung
Die Ladung im Kofferraum berechnen wir auf vier Arten. Die effektivste Vorgehensweise beim Beladen stellen wir dann mit Hife von Vektormasken direkt im mobilen Gerät dar.
Ganz einfach
Selbstverständlich können User die Gepäckmaße sowie etwaige Angaben zu Zerbrechlichkeit bzw. Weichheit der Ladung selbst in die App eingeben. Bei manchen Verpackungen – etwa solchen für Möbelbausätze – sind die Maße auch schon angegeben. In diesem Fall reicht es, die Kamera zu zücken und die Eingabe der Maße der intelligenten Texterkennung zu überlassen.
Eigene Berechnung
Für die Darstellung der Objekte im Laderaum des Autos mussten wir von bloßem 2D Rendering des betreffenden Ladebereichs mit offenem Kofferraum ausgehen. Wir haben eine eigene Art der Perspektivenberechnung und der Projizierung der Objekte in den 2D-Raum entwickelt. Und das einschließlich von Masken für die Darstellung der verdeckten Teile.
Für die Berechnung geignetes Format
Die Modelle des Inneren des Laderaums werden im Standard-Dreiecksformat bereitgestellt. Wir mussten ein diskretes, für die Berechnungen geeignetes Format inklusive einer für Darstellung und Berechnung geeigneten Transformation des Koordinatensystems ersinnen.
Vermessung mit AR
Eine bloße manuelle numerische Eingabe der Größe der Objekte wäre unzureichend und nicht gerade benutzerfreundlich. Aus diesem Grund wird bei der Eingabe eines Objekts auf Visualisierung und Animation gesetzt, und es ist sogar ein Handling inklusive Größenanpassung des Objekts mittels Multi-Touchgest möglich. Doch das ist nicht alles. Mit Hilfe von OCR kann die App ein Objekt erkennen und dessen Größe umschreiben. Der User hat die Möglichkeit, das Objekt mit Hife von AR zu vermessen, sofern er gerade keinen Meterstab griffbereit hat oder die genaue Größe nicht weiß.
Ergebnisse in 3D
Zwecks Überprüfung der Funktionalität mussten wir iterieren und potentielle Szenarien unterscheiden. Die Ergebnisse der Berechnung können direkt in einer Matrix in 3D abgebildet werden, um im konkreten Ergebnis etwaige Mängel genau zu erkennen.
Wirksamste Strategie
Die Berechnung weist nicht eine bestimmte korrekte Lösung auf, sondern ist potentiell unendlich. Das heißt, wir mussten das Problem in einzelne mögliche Lösungen zerlegen und danach definieren, wie die ideale Lösung ausschauen könnte. Sukzessive haben wir mehrere unterschiedliche Strategien des Ladevorgangs implementiert, wobei man sich letztendlich für die effektivste entscheidet.
05 Ergebnis
Zufriedener Kunde
Erfolgreiche Zusammenarbeit von mehreren Algorithmen
Ein zufriedener Kunde. Nach gründlichem internen Testen und der bei einem großen Unternehmen unvermeidlichen internen Absegnung wurde die App Škoda Load-in allmählich in die Basis-App von Škoda für alle User integriert.
Die Version für Android basiert auf MVVM-Architektur. Das Coding haben wir in Kotlin gemacht. Die App für iOS ist in Swift in der Architektur MVVM-C gehalten. Da ja Load-in derzeit Teil der App MyŠkoda ist, haben wir zugunsten der Verwendung in anderen Apps auch alles mit Hilfe von gängigen Package Management-Systemen in eine Bibliothek verpackt.
Der am Backend laufende Algorithmus wurde in der Sprache Python entwickelt, die ein sehr gutes Set an Werkzeugen für die Arbeit mit wissenschaftlichen Berechnungen aufweist und in der rasches Iterieren möglich ist. Für die finale Lösung wird der Code überdies mit Hilfe des Werkzeugs Cython in C übersetzt, was die Berechnung noch um ein Mehrfaches schneller macht. Insgesamt läuft das auf Azure Cloud – mit intelligentem Skalieren bedienen wir eine beliebige Anzahl an Usern, gegebenenfalls auch während des Massenausverkaufs bei IKEA.
Für die Behandlung des Trunk Packing-Problems verwenden wir sukzessive mehrere Strategien – Residual Space und Minimal Space, beide in zwei Varianten: mager und brute-force.
Von einer genau so erfolgreichen App sind Sie
Nur eine E-Mail entfernt