Die Geschichte, wie sie im Hackathon AR SDK gesucht haben, aber sie haben ihre eigenen gesammelt

Im Königreich der Fernen Ferne ... Ich begann meine Geschichte über den Hackathon in Wrike, weil der Hackathon wie ein Märchen ist: Enthusiasten versammeln sich, um ihren Ideen Leben einzuhauchen. Eine Idee wird veröffentlicht, wie ein fabelhafter Pfeil, und dann kann sie auf den Hof des Bojaren fallen oder im Sumpf des Alltags verschwinden. Und wie in einem Märchen ist es immer aufregend. Es ist nicht einfach, in kürzester Zeit ein Team zusammenzustellen, aus einer Idee ein Produkt zu machen und es sogar so zu zeigen, dass ehrliche Menschen Sie überraschen.

Cyril

Aber im Ernst, ich möchte die Erfahrung der Teilnahme am Hackathon teilen, bei dem wir unsere Augmented Reality (AR) entwickelt haben. Ich erzähle Ihnen, wie wir versucht haben, ein fertiges AR SDK für unsere Aufgabe zu finden, dies aber nicht konnten. Infolgedessen beschlossen sie, AR selbst zu schreiben, und es stellte sich heraus.

Das Sprichwort


Ich liebe Hackathons wirklich: Ich habe an mehreren teilgenommen, ich musste es selbst machen und wenn möglich werde ich teilnehmen.

Auf der Suche nach Glück

Hackathons werden häufig von bestimmten Organisationen abgehalten, und dies funktioniert für die HR-Marke des Unternehmens. Die Ziele können unterschiedlich sein: eine Geschichte über ein Unternehmen oder ein Produkt, ein unterschiedliches Maß an Aggressivität, die Organisation einer thematischen Community, die Suche nach neuen Ideen ( trotz der Armeen Ihrer eigenen Produktexperten kann es nützlich sein, eine Reihe von Ideen von Träumern mit einer klaren Sicht auf den Themenbereich zu erhalten ) usw. d.

Für die Teilnehmer ist dies eine Gelegenheit, sich mit dem Unternehmen vertraut zu machen, da häufig ein Hackathon seine Reflexion ist und man daraus Schlussfolgerungen über die interne Küche ziehen kann. Um die Prozesse im Unternehmen zu verstehen, können Sie sich ansehen, wie der Hackathon organisiert wird: Welche Einschränkungen gelten für Projekte, die am Hackathon teilnehmen ( Aufgabenbereich, Themenbereich, Technologie, Tools usw. )? Niveau der Veranstaltung; Kriterien und Transparenz des Wettbewerbsteils; Schiedsrichter - Zusammensetzung und Qualität; Was sind die Regeln und Methoden für die Bildung von Teams. Im Allgemeinen werden Unternehmen in diejenigen unterteilt, die ( interne oder öffentliche ) Hackathons durchführen, und diejenigen, die dies nicht tun. Ich bevorzuge diejenigen, die ausgeben, weil Dies sind offenere Unternehmen.

Ich selbst gehe nicht zum Sieg, sondern zur Teilnahme zu Hackathons. Es interessiert mich:

  • Probieren Sie neue Technologien aus. Bei einem "Food" -Hackathon nahmen wir Flutter und schrieben eine Anwendung für iOS und Android. Obwohl keiner von uns zuvor Flutter ausprobiert hatte, wussten wir, wie man Dart macht .
  • Um neue Leute kennenzulernen und mit ihnen zu arbeiten , rief ich nach einem der „Stadt“ -Hackathons einen Komplizen des Hackathon-Projekts an, um in meinem Team für den Hauptjob zu arbeiten, was ich nie bereute. Hackathon ist eine großartige Möglichkeit, einen Kameraden in Aktion zu testen.
  • Um etwas zu tun, das ich wirklich brauche. Beim internen Hackathon haben sie die Anwendung abgesägt, die dann in der Arbeit verwendet wurde.
  • Erhalten Sie einfach positive Emotionen von der Schöpfung. Ich mag die Hackathon-Atmosphäre sehr!

Daher freue ich mich, an Wrike-Hackathons teilnehmen zu können ( dieses Jahr war der dritte interne Hackathon ), bei denen wir Wrike noch besser machen: Einige der vorherigen Hackathon-Projekte leben bereits in unserem Produkt, andere befinden sich im Rückstand von Teams. Die Skala ist auch inspirierend, obwohl der Hackathon intern ist, werden ungefähr 30 Teams rekrutiert ( mehr als 100 Personen ) - alle mit frischen coolen Ideen.

Beim Hackathon 2018 habe ich beschlossen, mit AR zu arbeiten . In MVP wollte ich Wrike-Aufgaben ( Name, Status, Künstler usw. ) auf dem Bildschirm eines Mobiltelefons anzeigen lassen, wenn Sie mit der Maus über einen Grafikcode mit der darin verschlüsselten Aufgaben-ID fahren, und die Möglichkeit hinzufügen, den Status zu ändern und Aufgaben von Ihnen selbst zuzuweisen / zu entfernen. Es gibt eine Idee, es gibt einen Hackathon, das Team hat sich auch nicht engagiert. Am vereinbarten Tag drehte sich alles um.

Ich fragte Asche


Ich bereite mich nicht besonders auf Hackathons vor, wenn es darum geht, die Umgebung einzurichten ( nach SDKs und Frameworks suchen, Software installieren, konfigurieren usw. ), Code im Voraus zu schreiben usw., sondern nur Ideen, Funktionen auszuarbeiten und darüber nachzudenken, was in welcher Reihenfolge zu tun ist usw. Daher konsultierte das Team und entschied, dass wir in Java schreiben würden (sie schreiben nativ für Android ), und es gab eine Hypothese, dass es wahrscheinlich viele vorgefertigte AR-Bibliotheken gab. Unser Plan: Nehmen Sie ein praktisches SDK, fügen Sie die Wrike-API hinzu und konzentrieren Sie sich darauf, die Logik unserer Anwendung zu schreiben. Daher bestand unsere erste Aufgabe darin, ein praktisches Java AR SDK zu finden, mit dem Sie:

  • Zeichnen Sie etwas auf eine bestimmte virtuelle Oberfläche.
  • Integrieren / enthält bereits einen Scanner für dynamische Grafikelemente ( Barcode, QR usw. ).
  • Arbeiten Sie mit einer niedrigen Schwelle ( wir sind beim Hackathon, wir müssen schnell ): Es gibt eine Demo, es gibt Dokumentation, es gibt eine kostenlose / Testversion.

Es sieht nach einer ziemlich einfachen Aufgabe aus. Und wir haben begonnen, Optionen anhand von Artikeln wie „ Top Augmented Reality SDK in 2018 “ zu sortieren.

Sonne, Mond, Wind

ARCore von Google


Zuerst haben wir uns Google angesehen. Sie öffneten den " Schnellstart ", machten alles gemäß den Anweisungen, starteten ihn und siehe da, alles funktioniert: Androiden erscheinen auf meinem Tisch, der auch bewegt werden kann. Das Gefühl, dass wir die "Grundlage" für unsere Bewerbung gefunden haben. Aber dann folgte die Enttäuschung, die Bilderkennung funktioniert nicht so, wie wir es brauchen: Es kann nur ein Bild geben, es sollte deutlich sichtbar sein und es sollte aus der Datenbank zuvor bekannter Bilder stammen ( und wir müssen für jede Aufgabe einen eigenen eindeutigen Marker haben ). Und das Traurigste ist die Unfähigkeit, den Fokus zu steuern, weshalb es für den Benutzer schwierig wird, das Bild zu erfassen, das wir zur Erkennung benötigen. Das Problem wurde zwar jetzt mit Fokus gelöst , aber wir mussten die Suche fortsetzen. Im Allgemeinen erwies sich Google als gut, aber nicht für unsere Aufgabe. Und auch aufgrund der Besonderheiten von OpenGL unter OSX konnten wir die Demo nicht im Emulator zum Laufen bringen und haben alles auf einem Live-Telefon gemacht.

Vuforia


Wir haben die Dokumentation gelesen, die Videos gesehen , es sieht beeindruckend aus. Es gibt viele Funktionen, z. B. Bildziele . Wir haben uns entschlossen zu versuchen: registriert, heruntergeladen, gesammelt, gestartet. Die Demo-Anwendung wurde gestartet, funktionierte jedoch weder auf dem Emulator noch auf Live-Android-E. Beim Versuch, eine Funktion zu testen, stürzte die gesamte Anwendung ab. Es wurde beschlossen, keine Zeit damit zu verschwenden, nach dem Problem zu suchen und es zu beheben, und mit dem nächsten SDK fortzufahren.

Wikitude


Wir haben das SDK heruntergeladen, das Tutorial durchgearbeitet und die Demo gestartet. Es gibt viele Möglichkeiten, die Demo ist sofort beeindruckend, eine Reihe von Mini-Beispielen, wir haben genug gespielt ( zum Beispiel gibt es eine Gesichtserkennung ), und siehe da, die Demo hat bereits eine QR-Erkennung. Das Problem ist jedoch, dass wir das bekommen, was im Code verschlüsselt ist, aber wir wissen nicht, wo es sich befindet. Sie begannen zu verstehen, wie der QR-Scanner angeordnet ist. Es stellte sich heraus, dass es als Add-On über ZBar in Form eines positiven Plug- Ins für SDK erstellt wurde. Zuerst hatte ich die verrückte Idee, gcc aufzudecken und das Plugin fertigzustellen, damit es auch die Koordinaten angibt, aber wir haben rechtzeitig angehalten.

Und sie kämpften 3 Tage und 3 Nächte


Als wir feststellten, dass ein gutes Viertel der für den Tag vorgesehenen Zeit zurückliegt und wir immer noch nach unserem SDK suchen (es gab Beispiele für andere Lösungen, die nicht nur oben beschrieben wurden, sondern auch ein Fiasko ), beschlossen wir, nicht mehr nach der „Silberkugel“ zu suchen, sondern alles zu übernehmen deine Hände. Ein neuer Plan ist gereift: Als Aufgabenmarker nehmen wir einen QR-Code als einfach und üblich; Für ihre Erkennung verwenden wir ZXing , das mehrere Codes gleichzeitig erkennen kann. Zusätzlich zum Wert gibt die Bibliothek auch die Koordinaten von 3 Suchpunkten des QR-Codes an. Und dann werden wir zusätzlich zum Codeleser unseren AR implementieren. Krempeln Sie die Ärmel hoch und gehen Sie, wir haben 3 Punkte, was bedeutet, dass wir mit Hilfe affiner Transformationen alles bekommen können, was wir brauchen.

Prinzessin Frosch

Sie haben nicht begonnen, nach einer Bibliothek für Mathematik zu suchen, da unsere Aufgabe nicht schwierig ist. Als erstes haben wir unsere eigene Klasse für die Koordinaten erstellt, die wir neu berechnen müssen. Der endgültige Algorithmus für die Arbeit mit QR-Code erwies sich als ziemlich primitiv:

  • Das Bild von der Kamera wird auf ZXing übertragen, wir erhalten ein Array mit den Koordinaten der Punkte und den Werten des QR-Codes.
  • Aus den 3 Koordinaten berechnen wir die 4. Ecke des Quadrats, erhöhen das Quadrat eineinhalb Mal, um den ursprünglichen QR-Code zu überlappen, und erhalten die Basis für die Karte.
  • Wir fordern in der Wrike-API an, Daten über die Aufgabe zu sammeln.
  • Wir ziehen eine Karte, dank affiner Transformationen speichern wir alle Verzerrungen ( Betrachtungswinkel, Drehung, Skalierung ).

Wir haben den Algorithmus heruntergespült, er funktioniert, wir testen, wir beschäftigen uns mit Speicherlecks, wir fügen visuelle Effekte hinzu, wir genießen den Hackathon.

Und ich war dort, trank Honigbier


Bei Hackathons ist neben Ihrem Produkt selbst die Art und Weise, wie Sie es präsentieren, sehr wichtig. Jeder versteht, dass Sie sehr enge Fristen haben und keine technisch schöne Lösung von Ihnen erwarten. Sie müssen also die Schönheit Ihrer Idee zeigen. Ich mag immer den Storytelling-Ansatz, bei dem das Publikum versteht, für wen das Produkt hergestellt wird, unter welchen Bedingungen es angewendet wird und welches Problem es löst.

Wrike Hackathon

Daher haben wir in unserer Präsentation nicht nur die erhaltene Funktionalität demonstriert, sondern auch die Vorstellungskraft in Anspruch genommen und Situationen beschrieben, in denen eine solche Augmented Reality ( AR-Brille wird bald alltäglich ) das Leben derer verbessern kann, die außerhalb des Computers arbeiten, deren Arbeit jedoch mit Wrike verbunden ist. Zum Beispiel für die Interaktion zwischen dem Designer-Architekten, der an der Reparatur des Hauses beteiligt ist, und dem Team, das das Projekt direkt im Haus selbst umsetzt.

Ich denke, wir haben unseren MVP ehrenvoll demonstriert und unsere Liebesstrahlen eingefangen. Der Sommer ist vorbei und die Picknick- und Ferienzeit neigt sich dem Ende zu. Wir erwägen, Herbstabende der Entwicklung unseres Wrike AR zu widmen.

Danke für die Illustration, Sai Kin !

Source: https://habr.com/ru/post/de421725/


All Articles