EinzelunternehmerInnen und Entwicklerteams willkommen!

€ 10.000,- Budget für Unterstützung bei Open-Source Referenzimplementierung
#Pyramid #MongoDB #Neo4j #Apache-Spark #HTML5 Video-Streaming

 

Say „Hi“ to MOM!

Make-O-Matic (MOM) wird ein Software-Framework für die halb-automatische Dokumentation händischer Arbeitsschritte, die bei der Umsetzung von Hardware-Projekten notwendig sind. 

Gegenwärtig ist Dokumentation oft mühsam und stört den kreativen Prozess maßgeblich, weshalb wertvolle Erkenntnisse meist verloren gehen.

Um dieses Problem zu lösen, werden Sensoren in der Werkstatt, an Maschinen, Werkzeugen und Personen platziert. Make-O-Matic sammelt die Sensorinformationen, analysiert diese durch machine-learning Algorithmen, leitet Arbeitsschritte ab und erstellt daraus eine Dokumention.

 

Die Entwicklung von MOM wird aktuell von der „Austrian Internet Foundation (netIdee 2015)“ gefördert. Alle im Zuge der Entwicklung erstellten Inhalte sind Open-SourceMake-O-Matic wird daher der Maker-Community, Studenten, aber auch Unternehmen und allen Interessierten frei zugänglich sein.

 

How does MOM work?

Das Make-O-Matic Framework besteht aus drei Teilen. MOM/Collectoren: Dies sind alle Sensorknoten die auf Maschinen, Menschen und Werkzeugen, einer Werkstatt platziert werden. Sie senden ihre Messwerte laufend an einen zentralen Hub. MOM/Basis: ein Single-Chip-Computer, der als zentraler Hub für die Sensoren dient. Sie wird ebenfalls direkt in der Werkstatt platziert und speichert die eintreffenden Messwerte für die weitere Verarbeitung. MOM/Plattform: verarbeitet die Messwerte in Batches und sucht darin via machine-learning nach definierten Mustern (z.B.: Anstieg des Stromverbrauchs einer Maschine) um daraus eine Tätigkeit (z.B.: laserschneiden) abzuleiten. Wird eine Tätigkeit erkannt, so wird diese Schlussfolgerung in einer Graph-Datenbank abgespeichert. Zusätzlich zu den Messwerten speichert das Framework auch einen Video-Stream, von der Kamerabrille des „Arbeiters“. Nachdem alle Messdaten durchsucht wurden, kann ein Nutzer die fertige Dokumentation bestehend aus Videodaten + Tätigkeiten, via Browser betrachten. Die Plattform stellt außerdem ein Webinterface zur Verfügung, mit dem Nutzer zum Beispiel ihre Maschinen, Werkzeuge in deren Werkstätten anlegen können.

MOM_Plattform_Architektur

 

Technologisch setzen wir auf:

  • MOM/Basis:
    • Guh: ein Open-Source Framework für das universelle Sammeln von Sensordaten
    • SQLLite: Speicherung von Rohdaten/Messwerten(Time-Series Data)
  • MOM/Plattform
    • MongoDB: Speicherung von verarbeiteten Messwerten
    • Apache Spark + MLlib: zur Klassifizierung der Messwerte durch machine-learning Algorithmen
    • Neo4j: Speicherung der Datenmodelle (z.B.: Maschinen, Werkzeug, …) und der erstellten Klassifizierungen
    • Pyramid: Abbilden des Datenmodells, Schnittstelle zwischen MongoDB, Neo4j, SQLlite, Spark und dem User
    • alle libraries und Wrapper, die für die Verbindung von Pyramid + Software-Komponenten notwendig sind
    • OpenCV: empfangen des Video-Streams von der Kamerabrille und „zerschneiden“ des Streams in Einzelbilder/Videosequenzen für Bereiche in denen eine Tätigkeit erkannt wurde

für die Entwicklungsumgebung:

  • Intel NUC (NUC6i5SYH) mit i5 Prozessor, 120GB SSD, 8GB RAM, WLAN (a,c), BT4.0 (= „Projektcomputer“)
  • Ubuntu 16.04.1 LTS
  • Docker (wir trennen den Code von „MOM/Basis“ und „MOM/Plattform“ auf dem „Projektcomputer“)
  • Editor: aktuell sublime-text (nicht in Stein gemeißelt!)
  • Github

 

Die dargestellte Kombination der Software-Komponenten, wurden nach einer gründlichen Recherche ermittelt und stellt einen seriösen Entwurf dar. Kritik und Feedback erwünscht 😉

Mehr über das Projekt, die Features und (erwünschte) Funktionsweise von Make-O-Matic findest Du hier.


 

Wanna be part of MOM?

Aktuell arbeiten vier Personen (Mechatronik, Elektronik, Finance & Controlling, Research & Developement), an der Umsetzung von Make-O-Matic. Zur (professionellen) Unterstützung bei der Software-Entwicklung der MOM/Plattform suchen wir Dich. Solltest Du schon selbst in Richtung #machine-learning #Big-Data #Graph-Databases #IoT unterwegs sein oder großes Interesse haben in diese Themen einzutauchen, dann bist Du bei MOM genau richtig!

Wo steht MOM?

  • Recherche abgeschlossen, Programmiersprachen und Software-Komponenten ausgewählt
  • Features der MOM/Plattform bzw. Benutzerschnittstellen sind grob formuliert
  • Arbeiten an der MOM/Basis und der MOM/Collectoren sind definiert und haben bereits begonnen

Was ist für Dich zu tun?

  • Phase 1 (Aufsetzen der Entwicklungsumgebung)
    • gegenseitiger Wissensaustausch (Pyramid, Best-Practice bei SW-Entwicklung, Apache Spark und machine-learning)
    • Abstimmung der von uns vorgeschlagenen Technologien
      • Lizenzmanagement (alles muss so weit wie möglich Open-Source sein)
      • Dependency-Management
      • Festlegen der Ordner- und Dateistruktur
    • Aufsetzen von Docker auf unserem „Projektcomputer“ (optional)
    • Aufsetzen der Entwicklungsumgebung (IDE oder Editor, Datenbank Viewer, Github,..)
    • Referenzimplementierung “alles redet mit allem” und diese in einen Docker-Container packen
    • Installieren dieses Docker-Containers auf unserem „Projektcomputer“
  • Phase 2 (Consulting)
    • Erheben der Anforderungen + festlegen wie ein Anforderungsdokument für die Beauftragung einer Implementierung aussehen muss
    • gemeinsames, iteratives entwickeln der Datenmodelle / Schemas
    • laufende Technologieberatung
    • Beratung zum Verhalten in bzw. Best-Practice bei Open-Source Projekten (z.B: Software-Dokumentation)
  • Phase 2.1 (Implementieren definierter Features)
    • Userverwaltung in Pyramid
    • Video-Streaming mit Pyramid (noch keine Technologie festgelegt)
    • Tbd.
  • Phase 3 (machine-learning)
    • Unterstützung bei der Implementierung einer machine-learning Pipeline in Apache-Spark gemeinsam mit einem Experten

 

Die Umsetzung der MOM/Plattform ist von ab sofort bis 15.02.2017 vorgesehen

  • Phase 1: soll bis spätestens 01.10.2016 fertig gestellt sein
    • ab hier arbeiten wir „alleine“ weiter und implementieren Stück für Stück die Features in Pyramid
  • Phase 2: beginnt ab 02.10.2016
  • Phase 2.1: soll bis spätestens 01.02.2017 fertig gestellt sein
  • Phase 3: soll bis spätestens 31.12.2016 fertig gestellt sein

Für alle diese Phasen stehen insgesamt  +/- € 10.000,- (netto) zur Verfügung.

 

Wie gestaltet sich die Zusammenarbeit?

  • Wissensaustausch steht im Vordergrund. Für neue Themen, bringen wir bei Bedarf Experten ins Team (z.B.: machine-learning mit Apache-Spark).
    • die Kosten für eventuelle Experten-Workshops, Informationsmaterialien, … übernehmen wir (nach Absprache).
  • Credo: Hilfe zur Selbsthilfe (= mehr Betreuung/Consulting als Implementierung)
  • Implementierung nur bei entkoppelten Features (z.B.: Video-Streaming) notwendig
  • entwickelter Code muss Open-Source gestellt werden

Benötigte Skills:

  • selbstständig seit min. einem Jahr als Web-Entwickler
    • Erfahrung im Umgang mit Kunden wie Start-Ups oder Innovationsagenturen
  • Profi-Level in Python 2.7 und 3.x
  • Erfahrung mit Java oder Scala
  • Erfahrung mit der Entwicklung auf Linux-Systemen
  • geübt im Umgang mit Wissensvermittlung
  • strukturierte Denk- und Arbeitsweise
  • profunde Kenntnisse der agilen Softwareentwicklung
  • langjähriges Web-Development mit Pyramid auf Linux
    • hauptsächlich Back-End für statische Webprojekte (sowie geringfügig AJAX-basierte Webprojekte)
    • Erfahrung mit Wrappern bzw. der Einbindung von Libraries anderer Programmiersprachen (z.B.: Java, Scala)
    • Erfahrung mit Konzeption und Nutzung von APIs
  • Erfahrung mit SQL und (textbasierten) noSQL Datenbanken
    • Erfahrung mit der Gestaltung von Datenmodellen für nicht-relationalen Datenbanken (z.B.: MongoDB)
  • Erfahrung als „Open-Source Contributor“ auf Github
    • eigene Projekte/Repos auf GitHub
    • hohe Dokumentationstreue
  • hohes Interesse an Cluster-Computing bzw. Distributed-Systems
  • hohes Interesse an der Entwicklung von Applikationen unter Verwendung von machine-learning Techniken

Optional:

  • Erfahrung mit bzw. Interesse für Graph-Datenbanken (z.B.: Neo4j)
  • Erfahrung mit Twitter-Bootstrap
  • Erfahrung mit Docker
  • Erfahrung mit Cluster-Computing bzw. Distributed-Systems (Docker, Apache-Storm, Hadoop)
  • Erfahrung mit machine-learning (GRT, SciKit-Learn, Apache-Spark,…)

 


Wenn Du alles bis hierhin gelesen (und verstanden) hast, dann solltest Du Dich:

 >> hier und jetzt bewerben <<

Für Fragen und Feedback nutze bitte die Rubrik Q&A oder schreib uns an hello@make-o-matic.io